ᕕ( ᐛ )ᕗ Jimyag's Blog

Agent 是什么,能干什么

Last modified:

先给结论:

Agent(智能体/代理)不是一种新的模型类型,而是一种围绕 LLM(大语言模型)搭出来的执行架构。它的核心是:给定目标后,模型可以在边界内选择步骤、调用工具、观察结果,再继续调整下一步。

所以,直接调用大模型返回一段内容,一般不算 Agent。它更像普通 LLM 调用、chatbot(聊天机器人)或 completion wrapper(补全封装)。只有当系统具备「目标、工具、状态、循环控制」时,才更接近 Agent。

一句话可以写成:

1
Agent = LLM + Tools(工具) + State(状态) + Loop(循环控制)

这两年很多产品都在说自己是 Agent,但这个词经常被用得很松。把大模型接到一个聊天框里,用户问一句,它答一句,这当然是 AI 应用,但通常还不能算 Agent。下面按来源、执行循环、组成部分和使用场景展开。

这些定义从哪里来

我这里不是把某个产品文案直接当定义,而是把几份更接近原始材料的文档放在一起看:

来源 文档 对 Agent 的关键描述
OpenAI Agents SDK - Agents Agent 是配置了 instructions(指令)、tools(工具),并可选配置 handoffs(交接/委派)、guardrails(护栏/安全约束)、structured outputs(结构化输出)等运行时能力的 LLM。
OpenAI Agents SDK - Tools Tools(工具)让 Agent 可以获取数据、运行代码、调用外部 API,甚至使用计算机。
OpenAI Agents SDK - Handoffs Handoff(交接/委派)允许一个 Agent 把任务委派给另一个 Agent,适合理解 multi-agent(多智能体)不是多个 prompt(提示词)简单拼接。
Anthropic Building Effective Agents Workflow(工作流)是预定义代码路径;Agent 是 LLM 动态指导自身流程和工具使用,并控制任务完成方式的系统。
Anthropic Writing effective tools for agents Agent 的效果很大程度取决于工具设计;这说明 Agent 的核心不只是聊天,而是借助工具完成真实任务。
LangChain Agents Agent 是让模型循环调用工具,直到任务完成的系统。
LangChain Context engineering in agents Agent 会运行 model/tool calling loop(模型/工具调用循环),直到模型不再调用工具,然后生成最终响应。
Yao et al. ReAct: Synergizing Reasoning and Acting in Language Models ReAct(Reasoning and Acting,推理与行动)把 reasoning traces(推理轨迹)和 task-specific actions(面向任务的动作)交替生成,让模型在推理时也能与外部环境交互。

这些材料的侧重点不完全一样。OpenAI 更强调「LLM + instructions(指令)+ tools(工具)+ runtime behavior(运行时行为)」;Anthropic 更强调「workflow(工作流)和 agent 的控制流区别」;LangChain 更强调「model calls tools in a loop(模型在循环中调用工具)」;ReAct 则给出了「推理和行动交替」这一类 Agent 执行循环的经典形式。

如果再看云厂商和企业平台的定义,也基本是同一条线:

来源 文档 侧重点
OpenAI New tools for building agents Agent 是能代表用户独立完成任务的系统,重点是复杂、多步骤任务。
Google Cloud What are AI agents? Agent 使用 AI 代表用户追求目标、完成任务,具备推理、规划、记忆和一定自主性。
AWS What are AI agents? Agent 是能与环境交互、收集数据,并用这些数据执行自导向任务的软件程序。
IBM What are AI agents? Agent 会用可用工具设计 workflow,并自主执行任务。
Microsoft AI agents: what they are Agent 是语言模型之上的一层,会观察、收集信息、形成行动计划,并在允许时自己行动。

这些定义的共同点依然是:目标、环境、工具、状态、行动。差别主要在抽象层级:经典 AI 讲「感知环境并行动」,LLM Agent(大模型智能体)讲「模型调用工具并循环推进任务」,企业平台讲「代表用户或组织完成可审计的业务流程」。

把这些说法合起来,可以得到一个比较稳的边界:

1
2
3
4
5
6
普通 LLM 调用:
user -> LLM -> text

Agent:
user -> runtime(运行时) -> LLM decides -> tool call(工具调用) -> observation(观察结果)
     -> LLM decides next step -> ... -> final result

所以「直接调用大模型返回内容」一般不算 Agent。它更像 chatbot、completion wrapper 或 LLM app。只有当系统允许模型围绕目标选择动作、调用外部工具,并根据执行结果继续推进时,才更符合 Agent 的定义。

ReAct 循环

很多人理解 Agent,会从 ReAct 开始。它不是唯一的 Agent 架构,但很适合解释「为什么 Agent 不是单次回答」。

典型过程像这样:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Goal: 帮我分析这个 CSV 文件并画图

Thought: 我需要先读取文件,看看数据结构
Action: read_file("data.csv")
Observation: 文件有 3 列,分别是 date、user_count、error_count

Thought: 适合画两条时间序列
Action: run_code("import pandas as pd ...")
Observation: 图表已生成

Thought: 还需要解释趋势和异常点
Answer: 这是图表和分析结论

这里的重点不是把 Thought 展示给用户,而是这个执行模型:先根据目标决定动作,动作产生观察结果,再根据新结果继续决定下一步。现代产品通常不会把内部推理完整暴露出来,但「工具调用 - 观察 - 继续行动」这个结构仍然是 Agent 的核心。

Agent 通常由哪些部分组成

一个可用的 Agent 不只是一个 prompt,通常至少有这几块:

  1. 目标:用户要它完成什么,而不是只回答什么。
  2. Planner(规划器):判断下一步做什么,可以是显式计划,也可以是每轮动态决策。
  3. Tools(工具):搜索、读写文件、调用 API、运行命令、访问数据库、操作浏览器等。
  4. Memory / State(记忆/状态):当前任务进展、已观察到的结果、失败原因、上下文和历史记录。
  5. Executor(执行器):真正执行工具调用,并把结果反馈给模型。
  6. Critic / Verifier(评审器/验证器):检查结果是否满足目标,失败时决定重试、改路径或停止。
  7. 停止条件:任务完成、失败不可恢复、达到预算、需要人确认。
  8. 安全边界:权限、审批、回滚、日志、敏感操作限制。

这些组件里,最关键的是工具和循环。没有工具,Agent 只能建议;没有循环,Agent 只能回答一次。工具让它能接触外部世界,循环让它能根据反馈修正路径。

还有哪些分类方式

如果从经典 AI 的角度看,Agent 不一定都以 LLM 为核心。AWS 的定义里仍然保留了几类更传统的 Agent 类型:

  • Reflex agent(反射型智能体):根据当前输入和规则直接反应,例如关键字触发的自动回复。
  • Model-based agent(基于模型的智能体):维护一个内部状态或环境模型,再根据模型做决策。
  • Goal-based agent(目标型智能体):围绕目标比较不同路径,选择能达成目标的动作。
  • Utility-based agent(效用型智能体):不只追求完成目标,还会比较收益、成本、风险,选择效用更高的方案。
  • Learning agent(学习型智能体):从历史反馈中调整策略。
  • Hierarchical agent(层级型智能体):上层 Agent 拆任务,下层 Agent 执行子任务。
  • Multi-agent system(多智能体系统):多个 Agent 协作、协调,甚至竞争。

现代 LLM Agent 更常见的是另一种分类:

  • Chat agent(对话型智能体):以对话为入口,能查资料、调用工具、完成轻量任务。
  • Coding agent(代码智能体):读代码、改文件、跑测试、生成 patch(补丁)或 PR(Pull Request,合并请求)。
  • Browser agent(浏览器智能体):打开网页、点击、填写表单、下载资料。
  • Data agent(数据智能体):查数据库、写 SQL、做分析、生成图表。
  • DevOps / SRE agent(运维/站点可靠性智能体):查日志、看监控、执行诊断命令、生成修复建议。
  • Security agent(安全智能体):分析告警、关联日志、生成调查结论或响应动作。
  • Business workflow agent(业务工作流智能体):处理报销、合同、客服、采购、销售线索等流程。
  • Background agent(后台智能体):不一定和人实时聊天,而是在队列、事件或定时任务里持续处理工作。

这里要注意一点:这些分类不是互斥的。一个代码 Agent 也可能是 browser agent;一个 SRE Agent 也可能同时用 SQL、shell、监控 API 和工单系统。

Agent 能干什么

Agent 适合处理「目标明确,但步骤需要根据中间结果调整」的任务。比如:

  • 排查问题:读取日志、查询监控、复现错误、定位原因、给出修复建议。
  • 写代码:理解需求、修改文件、运行测试、根据失败结果继续修。
  • 信息整理:搜索资料、交叉验证来源、提炼结论、生成报告。
  • 运维操作:检查服务状态、执行诊断命令、做有限范围的修复。
  • 办公自动化:整理邮件、创建日程、更新表格、生成文档草稿。
  • 数据分析:读取数据、写查询、画图、解释异常点。
  • 客服:查询订单、判断政策、补充信息、必要时转人工。
  • 安全运营:收集告警上下文、查资产、关联 IOC、生成处置建议。
  • 采购和财务:比价、核对发票、补齐报销材料、更新 ERP。
  • 研究和情报:跨网页、论文、内部文档收集证据,最后生成带来源的结论。
  • 个人助理:订票、排日程、整理待办,但高风险动作要有人确认。

普通聊天模型也能告诉你「应该怎么排查数据库连不上」。Agent 则可能真的去执行:

1
2
3
4
5
6
7
8
1. SSH 到服务器
2. 查看服务状态
3. 检查端口监听
4. 查看防火墙规则
5. 读取应用日志
6. 尝试连接数据库
7. 根据错误继续排查
8. 给出结论,或在授权后执行修复

这就是 Agent 和建议型助手的区别:一个主要生成答案,一个会围绕目标推进任务。

放到基础设施场景里,可以这样类比:

1
2
普通 LLM ~= 一个会回答问题的 runbook(运行手册)
Agent    ~= 一个能自己 kubectl get、分析日志、执行修复、验证结果的 SRE(站点可靠性工程)自动化执行体

例如「VM pod 一直 Terminating,帮我修复」这个任务,普通模型可能列出排查步骤;Agent 则可能先 kubectl describe pod,发现存储卷还被锁住,再检查 CSI 或 RBD 状态,最后在权限允许时执行修复并再次 kubectl get pod 验证。

Workflow(工作流)和 Agent 的区别

不是所有自动化都需要 Agent。

如果路径固定,用普通 workflow 更好。例如「每天 9 点拉取报表,转成 PDF,发到群里」这种任务,规则明确、分支很少,写脚本或工作流更稳定。

Agent 更适合路径不固定的场景。例如「这次 CI 为什么失败,帮我修一下」。它可能需要先看失败 job,再看日志,再判断是测试问题、依赖问题还是代码问题,然后选择不同动作。这里提前写死所有路径很难,让模型参与决策才有价值。

可以这样划分:

  • workflow:人把步骤写死,模型只是其中一个节点。
  • agent:人给目标和边界,模型参与决定下一步。

Multi-agent(多智能体)是什么

Multi-agent 不是简单开多个聊天窗口。更合理的理解是:把一个大任务拆给多个有不同职责的 Agent,并让它们通过明确的交接机制协作。

例如一个代码变更可以拆成:

  • 实现 Agent:负责修改代码。
  • Review Agent:只看 bug、回归风险和测试缺口。
  • CI Agent:跟踪失败日志并定位原因。
  • 文档 Agent:补充变更说明。

这里的关键不是「数量多」,而是职责边界清楚、上下文交接清楚、最终有一个收敛点。否则 multi-agent 很容易变成多个模型各说各话。

使用 Agent 时要小心什么

Agent 的能力来自工具和权限,也意味着风险来自工具和权限。

如果一个 Agent 能读文件、执行命令、访问生产环境、发送邮件、修改数据库,那它就不只是聊天助手,而是一个会影响外部世界的软件执行体。设计时至少要考虑:

  • 哪些工具可以自动调用,哪些必须人工确认。
  • 修改类操作有没有日志、diff、回滚方式。
  • 敏感数据会不会被带进不该去的上下文。
  • 任务失败时是停止、重试,还是升级给人处理。
  • 成本、耗时和调用次数有没有预算限制。

不要因为它叫 Agent,就默认应该拥有所有权限。一个生产可用的 Agent,边界通常比能力更重要。

总结

Agent 可以简单理解为「带工具、状态和执行循环的大模型应用」。它不是单纯更聪明的聊天机器人,而是一个能围绕目标采取行动的软件系统。

判断一个系统是不是 Agent,可以问四个问题:

  1. 它有没有明确目标,而不只是回答问题?
  2. 它能不能调用外部工具?
  3. 它会不会根据工具结果调整下一步?
  4. 它有没有停止条件和安全边界?

四个问题都成立,就比较像 Agent。只成立第一个,通常只是普通 AI 助手。只成立工具调用但没有循环,也更像固定 workflow。真正有价值的 Agent,不在于名字,而在于它能不能在清楚边界内,把一个需要多步判断和执行的任务推进到可验证结果。

#AI Agent #LLM #OpenAI #Anthropic #LangChain #工程实践