HelloAI
L4 第 4 篇 🐥 难度 🕒 15 分钟

Agent 构建详解:让 LLM 自己干活

从"问一句答一句的对话"到"能连续工作 4 小时的同事"——Agent 是 LLM 应用工程的下一步。

阿莱
2026/7/25

L4-01 你学了 LLM 怎么训。L4-02/03 学了 Prompt 和 RAG。 这一篇讲 LLM 应用工程的”最高形态”——Agent

Cursor 4.0 用 Agent 模式自主连续工作 4 小时;Claude 4.6 + Devin 已经能完整完成 PR;这些都基于 Agent 架构。

什么是 Agent

定义:一个能自主规划、调用工具、连续行动以完成多步任务的 AI 系统

不同于:

  • 普通 Chat:一问一答
  • RAG:检索 + 生成(一轮)
  • Agent:循环执行 + 决策 + 工具调用 + 反思
用户: "帮我把这个 Python 项目从 Vue 2 迁移到 Vue 3"

普通 LLM: "好的,要这么做..." (列出步骤但不执行)

Agent:
  → 读取项目结构
  → 识别所有 Vue 2 文件
  → 逐个文件修改
  → 运行测试
  → 修复错误
  → 重复...
  → 最后给出报告

Agent 真的在做事,不只是说话

Agent 的核心组件

一个完整 Agent 通常有 4 个组件:

1. LLM “大脑”

最强的 LLM(GPT-4o / Claude / Gemini Pro)—— 负责”思考”和”决策”。

2. Tools(工具)

Agent 能调用的外部能力:

  • 网页搜索
  • 代码执行
  • 文件读写
  • API 调用
  • 数据库查询
  • 任何你包装好的函数

3. Memory(记忆)

  • 短期:当前对话上下文
  • 长期:跨对话的状态(向量数据库、文件)

4. Planning(规划)

让 Agent 把大任务拆成小步骤—— 然后逐步执行 + 检查结果。

ReAct:最经典的 Agent 范式

2022 年提出的 ReAct(Reasoning + Acting)—— 几乎所有 Agent 都基于这个:

任务: "今年苹果公司的市值是多少?"

Thought: 我需要查询最新数据。
Action: web_search("Apple market cap 2026")
Observation: 搜索结果:"Apple 市值约 3.8 万亿美元..."

Thought: 我有了答案。
Action: respond("Apple 当前市值约 3.8 万亿美元")

Thought → Action → Observation → Thought … 的循环。

用 prompt 实现

PROMPT = """你是一个 ReAct Agent。可用工具:
- web_search(query): 搜网页
- calculator(expression): 算数学
- respond(text): 回答用户

按下面格式工作:
Thought: ...(思考)
Action: tool_name(args)
Observation: (工具返回)
Thought: ...
...
最后用 respond() 结束。

用户问题: {user_question}
"""

让 LLM 按这个格式输出——解析它的 Action,调用工具,把结果作为 Observation 喂回——循环。

Tool Calling(工具调用)

主流 LLM API 都内置了 Tool Calling 支持:

OpenAI Function Calling

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取某地的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "城市名"}
            }
        }
    }
}]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "北京今天天气怎样?"}],
    tools=tools
)

# 模型会输出 tool_call 信号
if response.choices[0].message.tool_calls:
    tool_call = response.choices[0].message.tool_calls[0]
    args = json.loads(tool_call.function.arguments)
    result = get_weather(args["location"])
    # 把结果送回 LLM 让它生成最终回复

MCP(Model Context Protocol)

2024 年 Anthropic 提出的标准——让任何工具都能接入任何 LLM

LLM (Claude / GPT / Llama)
   ↓ MCP 协议
工具服务器(任何人写)
   - Google Drive 工具
   - GitHub 工具
   - 数据库工具
   - 自己写的业务工具

MCP 类比:USB——任何外设都能插任何电脑。 MCP 让 Agent 生态可组合

主流 Agent 框架

框架特点
LangChain Agents最早、最大、生态广
LlamaIndex Agents聚焦 RAG + Agent
AutoGen(微软)多 Agent 协作
CrewAI”团队”式 Agent
Anthropic Computer UseClaude 操作电脑
OpenAI Swarm简洁的 Agent 编排
Cursor / Devin编程专用

用 LangChain 5 行写个 Agent

from langchain.agents import initialize_agent, AgentType
from langchain.llms import OpenAI
from langchain.tools import DuckDuckGoSearchRun, PythonREPLTool

llm = OpenAI(temperature=0)
tools = [DuckDuckGoSearchRun(), PythonREPLTool()]
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)

agent.run("Find Tesla's stock price today and tell me the % change vs last year.")

5 行启动一个能搜网 + 算账的 Agent——但要把它做到生产级还有很多工程细节。

Agent 工程的关键挑战

1. 错误传播

Agent 多步执行——一步错,可能影响整个流程

解决

  • 每步做”sanity check”
  • 关键决策让用户确认
  • 设置成本/时间上限

2. 死循环

LLM 可能陷入”思考-行动”死循环—— 比如反复尝试同一个失败的操作。

解决

  • 设置 max_steps(如 30 步)
  • 检测重复行为
  • 内置”我放弃了”机制

3. 工具选择困难

工具多了,LLM 选错也常见—— 特别是 30+ 工具的环境。

解决

  • 工具描述写得极清晰
  • 用 RAG 选最相关的 N 个工具喂给 LLM
  • 工具分层(先选”工具类别”再选”具体工具”)

4. 上下文爆炸

Agent 跑久了,上下文越来越长——

  • 显存压力
  • 推理慢
  • 注意力涣散

解决

  • 总结历史步骤(“中间状态摘要”)
  • 关键事实写入长期记忆
  • 关键时刻”重新开始”

5. 验证

每步操作的结果怎么知道对错

解决

  • 单元测试(如果是写代码)
  • 人工检查(关键步骤)
  • 用另一个 LLM 当 critic(Reflexion 风格)

一个 Agent 的真实架构

实战中的”生产级 Agent”:

                ┌─ Memory(向量 DB)

用户输入 ──────→ Agent Controller
                │   ↓
                │  Planner (LLM)
                │   ↓
                │  Tool Selector (RAG)
                │   ↓
                │  Executor (LLM + Tools)
                │   ↓
                │  Validator (另一个 LLM 或规则)
                │   ↓
                │  Memory 更新

              输出 + 解释

多组件 + 多次 LLM 调用 + 完整日志。 不是 1 行 prompt 能做出来的。

经典 Agent 应用

1. 编程 Agent

  • Cursor 4.0 Agent Mode: 跨多文件 refactor
  • Devin: “AI 软件工程师”
  • Claude Code: 在终端的编程 Agent
  • GitHub Copilot Workspace: 任务级编程

编程是 Agent 最成熟的领域——因为反馈快(编译/测试)。

2. 研究 Agent

  • Perplexity Pro: 深度搜索 + 综合
  • GPT-4 with web: 多轮检索
  • Anthropic Computer Use: 用浏览器看网页

3. 业务自动化

  • 客服 Agent: 自主处理客户工单
  • HR Agent: 简历筛选 + 初步面试
  • 数据分析 Agent: SQL 生成 + 可视化

4. 个人助理

  • Manus: 全栈个人 AI
  • Claude with Memory: 长期记忆 + 上下文
  • OpenAI Operator: 电脑操作

多 Agent 协作

更高级——让几个 Agent 互相合作

项目经理 Agent: 拆分任务

设计师 Agent: 设计方案

工程师 Agent: 写代码

测试员 Agent: 验证

项目经理 Agent: 汇总

每个 Agent 专精一个角色,集体能力 > 单 Agent

代表框架:AutoGen(Microsoft)、CrewAI

2026 年的趋势:从”Agent” → “Agent 团队”。

安全风险

Agent 比单纯 LLM 危险得多—— 因为它真的能做事

主要风险

  1. Prompt Injection: 网页内容里藏指令”删掉所有文件”——Agent 真的去删
  2. 越权调用: Agent 该不该有权访问你的银行账户?
  3. 成本失控: Agent 不停调用昂贵 API
  4. 数据泄露: Agent 把敏感信息发给外部服务

防御实践

  • 沙箱执行: 危险工具在隔离环境跑
  • 二次确认: 重要操作让用户点”确认”
  • 成本上限: 单次任务不超过 $X
  • 白名单工具: 只允许预定义动作
  • 审计日志: 全过程可追溯

Agent 的未来

预言:

  • 2026-2027:编程 Agent 接近完全替代初级工程师
  • 2027-2028:个人 AI 助理普及(“我的 Agent 管我的日程”)
  • 2028-2030:垂直行业的”专家 Agent”成熟
  • 2030+:通用 Agent 出现?(AGI 问题)

当前所有大公司的核心战略——从模型到 Agent

💡 想真正学 Agent
  • 用 LangChain / LlamaIndex 跑通几个 demo
  • 读 Anthropic 的 “Computer Use” 公告(2024)
  • 读 Lilian Weng 的 “Building LLM Agents” 系列博客
  • 自己做一个项目——Agent 比读论文更需要实战

L4 后续推荐:L4-05 LoRA 微调(你已经读过);L4-06 推理优化 等。

📬

读到这里说明你认真在学 🎯

订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。

💬

讨论区

· 用 GitHub 账号登录评论
⚠️ Giscus 评论未配置 —— 在 src/components/Comments.astro 顶部填入 仓库 ID 和分类 ID(见组件注释里的配置步骤)。