什么是 AI Agent

从工具到自主执行者

你大概已经用过 ChatGPT 或 Claude——输入一个问题,得到一个回答。这是 LLM 最基础的使用方式:人类提问,模型回答,一问一答。

但如果你想让 AI 帮你完成一个真实任务呢?比如:

"帮我查一下这个 bug 的原因,找到相关代码,写一个修复方案,跑一遍测试确认没问题。"

这不是一个问题,而是一系列需要自主决策的步骤。模型需要自己判断该做什么、使用什么工具、根据结果决定下一步。

这就是 Agent——一个能自主规划和执行任务的 AI 系统。

Agent 的核心循环

Agent 的工作方式可以概括为一个循环:

感知 → 推理 → 行动 → 观察 → 推理 → 行动 → ... → 完成

用一个具体例子来说明。假设你对一个编程 Agent 说:"帮我找到项目中所有未使用的依赖并删除。"

  1. 推理:我需要先看看 package.json 里有哪些依赖
  2. 行动:读取 package.json 文件
  3. 观察:文件中列出了 15 个依赖
  4. 推理:我需要在代码中搜索每个依赖的引用情况
  5. 行动:在 src/ 目录中搜索 "lodash" 的引用
  6. 观察:没有找到任何引用
  7. 推理:lodash 是未使用的依赖,继续检查下一个...
  8. ...(重复多轮)
  9. 行动:执行 npm uninstall lodash moment 删除未使用的依赖
  10. 行动:运行测试确认没有破坏任何功能

关键在于:每一步的决策都是模型自己做出的。 你没有写代码告诉它"先读文件,再搜索"——它自己规划了这个流程。

Agent vs Chatbot vs Workflow

这三个概念经常被混淆,但它们有本质区别:

Chatbot(对话机器人)

用户: 这段代码有什么问题?
AI:   这里有一个空指针异常,建议加一个判空检查。
用户: 帮我改一下
AI:   这是修改后的代码...

人类驱动每一步。 没有你的输入,它什么也不做。

Workflow(工作流)

触发: 收到新的 Pull Request
步骤1: 运行代码风格检查 → 通过
步骤2: 运行单元测试 → 通过
步骤3: 生成代码审查意见
步骤4: 发送通知

预定义的固定流程。 每一步做什么是人事先写好的代码,不涉及动态决策。

Agent(智能体)

用户: 帮我修复这个 CI 失败
Agent 思考: 先看看 CI 的错误日志
Agent 行动: 获取 CI 日志 → 发现是测试失败
Agent 思考: 看看失败的测试用例
Agent 行动: 读取测试文件 → 发现是 API 返回格式变了
Agent 思考: 需要看看 API 的变更
Agent 行动: 查看最近的 API 提交记录
Agent 思考: 找到了,API 返回多了一层嵌套,测试需要更新
Agent 行动: 修改测试代码
Agent 行动: 重新运行测试 → 全部通过

AI 自主决策每一步。 它根据观察到的结果动态调整行为,而不是按照预写的脚本执行。

三者的核心区别:

ChatbotWorkflowAgent
谁做决策人类预定义代码AI 模型
灵活性高(但需要人参与)低(固定流程)高(自主应变)
可处理的任务单轮问答固定流程任务开放式复杂任务
可预测性取决于模型

是什么让 Agent 成为可能

Agent 不是凭空出现的,它依赖几个关键能力的成熟:

1. 工具调用(Tool Use)

LLM 本身只能生成文本。但如果你告诉它"你可以调用这些工具",它就能:

  • 读写文件
  • 执行代码
  • 搜索网页
  • 调用 API
  • 操作数据库

工具让 LLM 从"只能说"变成"能做"。 这是 Agent 的基础能力,我们会在下一章详细展开。

2. 足够强的推理能力

Agent 需要模型能够:

  • 把复杂任务分解为子步骤
  • 根据工具的返回结果调整计划
  • 判断什么时候任务完成了
  • 识别自己的错误并修正

这需要较强的推理能力,这也是为什么 Agent 在 GPT-4 级别的模型出现后才真正变得实用。小模型可能在多步推理中迷失方向。

3. 足够长的上下文窗口

一个复杂任务可能需要十几轮工具调用,每次调用都会产生结果。这些中间信息都需要保留在上下文中,以便模型做出正确的下一步决策。

早期模型只有 4K-8K 的上下文窗口,Agent 能做的事情非常有限。现在 100K-1M 的窗口让 Agent 能处理复杂得多的任务。

真实世界的 Agent

Agent 已经不是概念,而是真实的产品:

编程 Agent

  • Claude Code:在终端中自主读代码、写代码、跑测试、修 bug
  • Cursor / Windsurf:在 IDE 中理解整个项目,自主完成代码修改
  • GitHub Copilot Agent:自动处理 Issue,提交 Pull Request

通用 Agent

  • Computer Use:直接操作电脑屏幕——点击、输入、截图,像人类一样使用软件
  • Deep Research:接到一个研究课题后,自主搜索、阅读、整合信息,输出完整报告

专业 Agent

  • 客服 Agent:理解用户问题,查询知识库,必要时转接人工
  • 数据分析 Agent:接到分析需求后,自主写 SQL、生成图表、得出结论

这些产品的共同特点是:你给出一个目标,Agent 自己想办法完成,中间不需要你一步步指导。

Agent 的局限性

Agent 很强大,但远非完美:

不可预测性:同样的任务,Agent 可能走完全不同的路径。这对需要一致性的场景是个问题。

错误累积:每一步都有出错的可能,步骤越多,整体出错的概率越高。一个 10 步任务中每步 95% 的准确率,最终成功率只有 60%。

成本:Agent 需要多次调用模型、多次使用工具,token 消耗远超单轮对话。一个复杂任务可能花费几美元甚至更多。

安全性:让 AI 自主执行操作意味着它可能做出你意料之外的事——删除文件、发送请求、修改数据。控制 Agent 的权限边界是工程上的关键挑战。

要点总结

  1. Agent = LLM + 工具 + 自主决策循环。 它不只是回答问题,而是自主规划并执行任务。
  2. Agent 和 Chatbot/Workflow 的根本区别在于谁做决策。 Agent 由 AI 模型动态决策,而不是人类或预定义代码。
  3. 三个关键技术使 Agent 可行:工具调用、强推理能力、长上下文窗口。
  4. Agent 已经在编程、研究、客服等领域落地,但仍面临可预测性、错误累积、成本和安全等挑战。
  5. 这是 AI 应用的方向性转变——从"AI 作为工具"到"AI 作为执行者"。理解 Agent 是理解下一代 AI 应用的关键。