Agent 是什么?
Agent (智能体) 的定义与业界共识
Section titled “Agent (智能体) 的定义与业界共识”在人工智能(特别是目前的大模型应用)领域,关于 Agent(智能体) 业界最广泛接受、且对开发者最具有指导意义的定义,可以用一句话概括:
Agent 是一个能够感知环境、进行推理(Reasoning)、自主决策并采取行动(Action)以实现特定目标的智能系统。
如果把大模型(LLM)比作“大脑”,那么 Agent 就是一个拥有大脑、双手(工具)和任务清单的完整“数字员工”。
1. 业界公认的“公式”
Section titled “1. 业界公认的“公式””目前在 LLM 应用开发领域(如 LangChain, AutoGPT, Dify 社区),大家普遍引用 OpenAI 应用研究主管 Lilian Weng 的定义: Agent=LLM(大脑)+Planning(规划)+Memory(记忆)+Tools(工具使用) 这个公式之所以经典,是因为它指出了 Agent 区别于普通 ChatGPT 对话框的核心:它不再只是单纯的“生成文本”,而是具备了“解决问题”的能力。
2. Agent 与传统程序/普通 AI 的区别
Section titled “2. Agent 与传统程序/普通 AI 的区别”为了区分你的程序是只是一个“工作流(Workflow)”还是一个真正的“智能体(Agent)”,可以看它是否具备以下 3 个核心特征:
A. 主动性与自主性 (Autonomy)
Section titled “A. 主动性与自主性 (Autonomy)”- 普通 Chatbot: 用户问一句,它答一句。它是被动的。
- 工作流 (Workflow): 按照你写死的代码
if A then B执行。路径是固定的。 - Agent: 你给它一个模糊的目标(例如:“帮我整理这周所有的数学错题”),它会自己决定先去哪里查数据、怎么分类、如果数据缺失该怎么办。
- 判据: 遇到意料之外的错误,它能自我修正重试吗?如果能,它就是 Agent。
B. 感知-行动循环 (Perception-Action Loop)
Section titled “B. 感知-行动循环 (Perception-Action Loop)”这是计算机科学中 Agent 的经典定义(源自 Russell & Norvig 的《人工智能:一种现代方法》)。Agent 不是线性的(Input -> Output),而是循环的:
- 感知 (Perceive): 看看现在情况咋样?
- 思考 (Think): 决定下一步做什么。
- 行动 (Act): 调用工具(搜索、代码解释器)。
- 观察 (Observe): 看看行动的结果(比如报错了,或者拿到数据了)。
- 再思考 (Think Again): 基于观察结果,决定下一步…(循环直到目标达成)。
C. 工具使用能力 (Tool Use / Function Calling)
Section titled “C. 工具使用能力 (Tool Use / Function Calling)”- 大模型本身是封闭的“缸中之脑”。
- Agent 的标志性能力是打破第四面墙,它能根据意图,自主选择调用外部 API(比如你的试题库 API)、操作数据库或浏览网页。
3. 举个通俗的例子:出数学卷子
Section titled “3. 举个通俗的例子:出数学卷子”假设场景:你要给学生出一套数学卷子。
| 类型 | 行为模式 | 典型表现 |
|---|---|---|
| LLM (ChatGPT) | 纯文本生成 | 你问:“给我出5道初一数学题。” 它答:凭记忆生成文本。可能会算错,可能题目数据不严谨。 (它是百科全书) |
| Workflow | 自动化脚本 | 代码逻辑:第一步去数据库随机取5题 -> 第二步拼成 Word -> 第三步发邮件。 (它是流水线机器,如果数据库挂了,它就报错停止) |
| Agent | 自主决策 | 你指令:“帮我出一套涵盖‘一元一次方程’难点的卷子。” 它的内心戏: 1. “先去检索‘易错点’。” (规划) 2. “查到了,现在去题库搜对应标签。” (工具) 3. “搜到10道,我自己做一遍,挑出最难的5道。” (反思 & 循环) 4. “调用 Python 排版并输出。” (行动) (它是专业的教务助理) |
4. 总结:开发者的视角
Section titled “4. 总结:开发者的视角”在开发者的语境下:
Agent 的本质 = 循环执行的大模型逻辑 (Looping LLM)
它不再是一次性的文本生成,而是一个运行环境,在这个环境中,大模型作为控制器,不断地与外部世界交互,直到解决问题。
- Workflow (工作流): 适合确定性高、流程固定的任务(如:输入题目 -> 翻译 -> 存库)。
- Agent (智能体): 适合模糊性高、需要动态决策的任务(如:分析这道题,如果算不出来就去搜索,搜索不到就尝试自己推导)。
- Lilian Weng (OpenAI) 的博文 “LLM Powered Autonomous Agents” (2023)
- 《人工智能:一种现代方法》(Artificial Intelligence: A Modern Approach)