第 1 章:一个 LlmAgent 内部怎么转
本章只讲单个 LLM agent,不碰图。读完你能回答:我给
Agent一段指令和几个 Python 函数,它是怎么真的「调用工具、把结果再喂回模型」的?
1.1 LlmAgent 是什么
Agent 只是 LlmAgent 的别名(agents/__init__.py 里 from .llm_agent import Agent)。它是一个 pydantic 模型,字段就是你能配置的一切。最常用的几个:
| 字段 | 作用 | 定义处 |
|---|---|---|
name | agent 名,必须是合法 Python 标识符且树内唯一,不能叫 user | agents/base_agent.py:121、校验在 validate_name(base_agent.py:582) |
model | 模型名("gemini-2.5-flash")或 BaseLlm 实例;留空则向祖先继承 | agents/llm_agent.py:213 |
instruction | 系统指令,支持 {var} 占位符,运行时用 state 填充 | agents/llm_agent.py:228 |
tools | 工具列表:可以是裸函数、BaseTool、或 BaseToolset | agents/llm_agent.py:306 |
output_schema | 让模型产出结构化输出(pydantic 模型) | 继承自 BaseNode.output_schema(workflow/_base_node.py:102) |
sub_agents | 子 agent;影响「能转交给谁」 | agents/base_agent.py:146 |
mode | chat/task/single_turn,决定委派语义(见第 4 章) | agents/llm_agent.py:319 |