什么是 AI Agent
「Agent」这个词在 2025 年被用得很宽泛。有的产品把一个带联网搜索的对话框也叫 Agent,有的把一段调用 API 的脚本也叫 Agent。要判断一个系统是不是 Agent,看它有没有闭环:能不能根据执行结果决定下一步做什么。
三个组成部分
一个 Agent 通常包含三块:
- 模型:负责理解当前状态和决定下一步。
- 工具:能被模型调用的能力,比如搜索、读写文件、执行代码、调用业务 API。
- 循环:把「执行结果」回喂给模型,让它继续决策,直到任务完成或达到停止条件。
缺了第三点,就不是 Agent,而是一次「模型调用 + 固定后处理」。
目标 → 观察当前状态 → 模型决策 → 调用工具 → 得到结果 → 回到观察
↑______________|
与聊天、与脚本的区别
| 普通聊天 | 脚本自动化 | Agent | |
|---|---|---|---|
| 步骤由谁决定 | 用户逐轮提问 | 代码写死 | 模型根据结果决定 |
| 能否使用外部工具 | 通常不能 | 能 | 能 |
| 遇到意外情况 | 需要用户补充 | 直接失败 | 可能自己换路径 |
| 结果可预测性 | 中 | 高 | 低 |
一句话概括:脚本是「人想清楚步骤」,Agent 是「模型边做边想」。步骤明确且要反复执行的任务,脚本更可靠;步骤无法预先穷举的任务,才轮到 Agent。
工具调用是怎么发生的
主流实现是 function calling(不同厂商叫法不同,机制一致):把可用工具的名称、参数结构、说明一起交给模型,模型输出「我要调用哪个工具、参数是什么」,由程序真正执行,再把返回值作为新消息放回上下文。
{
"name": "search_docs",
"arguments": { "query": "Astro content collections glob loader" }
}
关键点在于:模型不直接执行工具,它只输出意图。真正执行的是你的代码,所以权限、超时、重试、审计都在你的控制范围内。
记忆与规划
- 短期记忆:就是当前的对话上下文,受上下文窗口限制。
- 长期记忆:把关键信息写到外部存储(文件、数据库、向量库),需要时检索回来。
- 规划:把大目标拆成子任务。常见模式有边想边做(ReAct 风格)和先规划再执行两种,前者更灵活,后者更可控。
上下文窗口是硬约束。任务越长,历史信息越容易被压缩或丢弃,这也是 Agent 跑长任务时“忘记前面做过什么”的原因。
局限
- 错误会累积:每一步都有失败概率,二十步之后整体成功率可能低到不可接受。
- 成本与延迟不可控:循环次数取决于任务难度,难以预估。
- 可控性差:同一个任务两次运行结果可能不同,关键业务必须加人工确认环节。
- 安全边界:能执行代码或写文件的 Agent,必须跑在沙箱里,并限制权限。
什么时候不该用 Agent
- 步骤固定、每天跑几千次的任务:写脚本,稳定且便宜。
- 结果要求 100% 一致:用确定性程序,不要靠模型。
- 涉及资金、权限变更、对外发布:可以让 Agent 起草,必须人工确认后执行。
小结
Agent = 模型 + 工具 + 循环。判断是否值得用 Agent,看任务步骤能否预先穷举:能穷举就写脚本,不能穷举才让模型边做边想,并且给它明确的停止条件和权限边界。