2026/5/17
AI Agent 是如何工作的?
最近开发 Agent 过程中的一些思考:Agent 本质上是 LLM + 工具 + 状态 + 循环的约束系统。本期从工程视角拆解核心逻辑与踩坑经验。
AI agent 是一种程序:它使用 AI 模型来决定下一步做什么,然后通过工具执行操作,观察结果,重复这个过程直到完成目标。
与普通聊天机器人的区别
普通的聊天机器人大致是这样的流程:
而 agent 更像是这样:
核心区别在于自主性(agency):AI 不只是在生成文本;它控制着一个循环,可以调用函数、检查输出、更新状态,并朝着任务目标持续推进。
AI Agent 的基本构成
对开发者来说,最简单的思维模型是:
AI agent = LLM + 工具 + 状态 + 循环其中:
LLM = 推理/决策引擎
工具 = 它可以调用的函数
状态 = 它目前所知的信息
循环 = 反复执行:观察 -> 决策 -> 行动实际场景对比
假设用户说:
"帮我找到下周五去上海的最便宜航班,把最优结果发邮件给我。"
"这里有一些寻找便宜机票的建议。"
仅生成文本建议,无法执行任何实际操作。
- 搜索航班 API
- 比较价格
- 检查日期
- 选出最佳结果
- 写一封邮件
- 发送邮件(假设已有权限)
自主规划并执行多步骤任务,直到完成目标。
核心循环原理
Agent 并不是什么魔法。它通常就是这样的代码:
这就是核心思想。
工具与调用
AI 模型并不直接"做"事情。你的程序会暴露一些工具,比如:
function searchDocs(query: string): any[] { ... }
function createTicket(title: string, body: string): string { ... }
function runSql(query: string): any[] { ... }
function sendEmail(to: string, subject: string, body: string): void { ... }然后,模型决定何时以及如何调用它们。
一个完整的 Agent 有哪些组成部分?
一个实际的 agent 通常包含以下组成部分:
- 目标 — agent 要完成什么任务?
- 工具 — 它被允许执行哪些操作?
- 指令 — 它应该如何行动?应该避免什么?
- 记忆 / 状态 — 目前发生了什么?
- 控制循环 — 它应该继续、停止、重试、请求帮助,还是调用另一个工具?
- 安全护栏 — 什么操作需要确认?什么是禁止的?什么需要验证?
关键
模型处于一个反馈循环之中。它做出决策,获得新信息,然后再做决策。
极简 Agent 实战
一个极简的 agent 可能是这样:
脚本 vs Agent
一种有用的思维方式:
脚本遵循你预先写好的指令。
agent 自己判断下一步该执行哪条指令。但你仍然掌控边界。agent 不应该拥有无限自由。好的 agent 通常是有约束的:
对比
糟糕的指令:
"不惜一切代价修复生产环境问题。"
更好的指令:
"你可以查看日志、查询指标、建议修复方案。未经审批,你不能部署代码或重启服务。"
如何开始构建 Agent
想开始构建一个 agent,遵循以下步骤:
选择一个简单而明确的目标。
不要试图让 agent 做所有事情。从单一、清晰的任务开始。
给 agent 2–5 个工具。
工具不要太多,否则 agent 会难以选择合适的工具。
在工具调用时维持状态。
记录每个步骤的结果,让 agent 有"记忆"。
让模型选择下一步行动。
不要硬编码流程,让 LLM 自主决定调用哪个工具。
当模型返回最终答案时停止。
设定清晰的终止条件。
对有风险的操作添加验证和权限检查。
这是安全护栏的关键部分。
结论
一个真正实用的 AI agent,并非科幻世界里拥有自主意识的实体。它其实是一个围绕 LLM 构建的执行循环,赋予了模型调用外部函数来解决实际问题的能力。