简介

AI代理不是一个能神奇知道所有答案的单一对话机器人。其底层其实在运行一个重复循环:它观察某事,思考接下来该做什么,选择一个工具,并采取行动。随后它再观察该行动的结果并再次循环。理解这个循环是本课程后续一切内容的基础——连接数据库、调用API、处理认证都属于这个循环中的“行动”步骤。

感知–计划–行动循环

代理循环包含四个阶段,循环不断,直到代理的任务完成。

感知是代理可以读取或感知的一切:用户的提示、对话历史、上一次工具调用的输出,或从数据库获取的数据。规划是LLM的推理步骤,决定接下来应该发生什么。工具选择是在模型选择具体函数(如 query_database、send_email)并为其生成参数时的瞬间。行动是指该工具实际运行并返回结果。

环形流程图:感知 -> 计划 -> 工具选择 -> 行动 -> 返回感知

行动返回后,结果成为新的感知输入。代理随后重新规划。这就是为什么代理能够串联调用——一个工具的输出会影响下一步决策。

模型如何决定使用哪种工具

现代代理会获得一个结构化的可用工具清单,每个工具有名称、描述和参数模式。LLM会读取这些描述,决定哪一个最符合当前需求。它不会自己“知道”如何调用API——它选择你,开发者,注册的那个工具。

python
tools = [
{
"name": "query_database",
"description": "Run a read-only SQL query against the users database.",
"parameters": {
"type": "object",
"properties": {
"sql": {"type": "string", "description": "SELECT statement only"}
},
"required": ["sql"]
}
},
{
"name": "get_weather",
"description": "Fetch current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
]

当用户问“上周有多少用户注册?”时,模型将请求与 query_database 匹配,生成 SQL 参数,运行时执行它。请注意代理并没有凭空发明能力——它是从你定义的菜单中选择。

外部集成的位置

每个数据库查询、API 调用或身份验证检查只是该菜单中的另一个工具。对代理而言,没有区分“在 Postgres 中查找一个订单”和“调用 Stripe 退款端点”——两者都是具有模式和处理函数的工具。本课程将一个一个地构建这些处理程序:先是只读的数据库查询,然后是写操作、再到外部 API、再到已认证的流程。

python
def handle_tool_call(tool_name, arguments):
if tool_name == "query_database":
return db.execute(arguments["sql"])
if tool_name == "get_weather":
return requests.get("https://api.weather.example/current",
params={"city": arguments["city"]}).json()
raise ValueError(f"Unknown tool: {tool_name}")

该处理程序是实际工作发生的地方。LLM 只是提出要做什么——你的代码决定什么是安全可执行的。

常见陷阱

把 LLM 当作无所不知的——它不能调用你尚未注册的工具,也不能访问你未提供工具的数据。把规划与执行混淆——模型只提出;你的运行时必须验证并执行。让代理无限循环——始终设置最大迭代次数限制,以免出错的工具困住代理。最后,切勿在未验证的情况下直接把原始模型输出当作数据库或 API 调用;SQL 注入和错误的 API 载荷往往来自跳过这一步。

摘要

AI 代理是一个循环:感知、计划、选择工具、行动、观察结果、重复。工具是 LLM 推理与外部世界之间的桥梁。数据库、API 和身份验证层都以具有模式和处理程序的工具形式实现。掌握这一认知模型是本课程其他一切内容的前提。

课程检查点

1. 本课引入的AI代理循环的四个阶段是什么?

2. 在代理系统中,数据库查询的实际执行发生在哪里?

3. 为什么开发者要注册带有描述和参数模式的工具?

4. 在工具调用返回结果后,代理接下来该怎么做?

5. 从代理的角度看,查询数据库和调用像 Stripe 这样的外部 API 之间有什么区别?

6. 以下哪项是在运行代理循环时的推荐防护措施?

7. 课程中提到的关于AI代理的常见误解是什么?

8. 在代理循环的“行动”阶段会发生什么?