简介

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 与认证层都实现为具有结构与处理函数的工具。掌握这一心智模型是本课程其他所有内容的前提。

课后练习

课程检查点

巩固所学知识,获取作业反馈。

0/8
01本课介绍的 AI 代理循环有哪些四个阶段?
02在代理系统中,数据库查询的实际执行发生在哪里?
03为什么开发者要注册带有描述和参数架构的工具?
04在一个工具调用返回结果后,代理接下来会做什么?
05从代理的角度来看,查询数据库和调用外部 API(如 Stripe)之间有什么区别?
06以下哪项是在运行代理循环时的推荐安全措施?
07课程中提到的关于人工智能代理的一个常见误解是什么?
08在代理循环的“Action”阶段会发生什么?
已回答 · 0/8