三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Agent 工具调用谁都会,但记忆和规划没做好,项目照样翻车

Agent 工具调用谁都会,但记忆和规划没做好,项目照样翻车

聊《Agent到底能不能干活?别只看 Demo 和跑分》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。

摘要

最近团队试了几个 AI 编程工具,从个人试用到想推广到整个组。Demo 跑起来挺顺,一到真实项目就卡住。我跟着复盘了几次,发现大家讨论最多的不是"模型能不能调用工具",而是"为什么工具调了、记忆有了,任务还是跑偏"。

这期不聊概念,聊边界。工具调用、记忆、规划,这三个能力哪个才是真正的门槛?什么情况下该优先补哪个?验收标准怎么定?

目录

  • Agent 的本质:不是聊天机器人,是执行系统
  • 规划能力:从"一步到位"到"试错迭代"
  • 工具调用:能调不等于会用
  • 记忆系统:Agent 的"工作经验"
  • 失败恢复:Agent 的韧性测试
  • 总结:三项能力的优先级

Agent 的本质:不是聊天机器人,是执行系统

很多人对 Agent 的理解还停留在"能对话的机器人"。这没错,但不够。Agent 的本质是在约束条件下自主执行任务的系统。

关键在"约束条件"和"自主执行"。

  • 约束条件:权限、工具边界、可用记忆、时间预算
  • 自主执行:规划、调用工具、观察结果、调整策略

ChatGPT 能回答"怎么写登录功能",但不会主动去读代码库、不会调用 git、不会根据反馈调整实现。Agent 要做的,是在这些约束下完成端到端的任务。

边界判断标准:一个系统能不能叫 Agent,看它是否能在没有人工介入的情况下,完成从"理解需求"到"交付结果"的完整链路。断在哪一步,哪一步就是瓶颈。

规划能力:从"一步到位"到"试错迭代"

规划是 Agent 最容易踩坑的地方。

很多人以为规划就是"把任务拆成子步骤"。这是错的。真实项目的规划是动态的、可回退的、带验证点的。

举个实际例子。团队想让 Agent 完成一个需求:接入第三方支付 SDK。

初级规划:

1. 搜索 SDK 文档 2. 读取现有支付模块代码 3. 修改支付入口 4. 运行测试 5. 提交 PR

问题在哪?第 3 步"修改支付入口"太模糊。改什么?怎么改?改了之后要不要改测试?

高级规划会带验证点:

1. 搜索 SDK 文档 → 验证:找到 API 签名和回调机制 2. 读取现有支付模块 → 验证:定位接口抽象层 3. 设计适配层方案 → 验证:方案通过 Code Review 4. 实现适配层 → 验证:单元测试通过 5. 集成测试 → 验证:支付流程端到端跑通 6. 提交 PR → 验证:CI 全绿

规划的核心不是"拆得多细",而是每个节点有没有明确的验收标准。没有验收标准的规划,执行到一半就会迷失。

实战建议:规划能力差的 Agent,常见表现是"执行到第三步就开始跑偏"。这时候别急着换模型,先检查规划节点有没有可验证的中间产物。

工具调用:能调不等于会用

工具调用是 Agent 最直观的能力,也是最容易产生幻觉的地方。

工具调用的三个层次

第一层:能调
Agent 知道有哪些工具,能生成正确的调用格式。这大部分模型都能做到。

第二层:会调
Agent 知道什么时候该调哪个工具,调完知道怎么解析结果。这需要理解工具语义。

第三层:善用
Agent 知道工具组合的策略,知道什么时候该串行、什么时候该并行、什么时候该放弃工具直接推理。

常见坑:工具依赖循环

团队项目里遇到过这种问题:Agent 需要读取配置,但配置生成依赖另一个工具的输出,而那个工具又需要当前 Agent 的上下文。

# 伪代码:工具依赖循环 def generate_config(agent_context): # 需要 Agent 的决策结果 pass def read_config(): # 读取生成好的配置 pass # Agent 需要 read_config 来决定下一步 # 但 read_config 的结果依赖 generate_config # generate_config 又需要 Agent 的上下文

解法不是"换个更好的工具",而是在规划阶段识别依赖关系,把循环拆开。

工具调用的验收标准

一个工具调用能力合格的 Agent,应该满足:

1. 调用成功率:工具格式错误率低于 5%
2. 结果解析率:工具返回后能正确提取关键信息
3. 错误恢复率:工具调用失败后能尝试替代方案或上报

实测数据:团队内部测试,Claude Code 工具调用成功率约 92%,但结果解析率只有 78%。问题不在模型,在于工具返回格式不统一。

记忆系统:Agent 的"工作经验"

记忆是 Agent 最容易被忽视的能力。

很多人以为记忆就是"记住对话历史"。这是最浅层的记忆。真实项目需要三种记忆:

三种记忆层次

短期记忆(Working Memory)
当前任务上下文,通常是最近 N 轮对话。大部分 Agent 都依赖这个,但问题在于:上下文窗口有限,任务复杂时早期信息会被挤出。

持久记忆(Persistent Memory)
跨会话存储的知识。比如:

  • 项目架构文档
  • 团队编码规范
  • 历史决策记录
  • Bug 修复经验

程序化记忆(Procedural Memory)
"怎么做"的经验。比如:

  • 这个项目的部署流程
  • 常用工具的组合模式
  • 常见错误的排查路径

记忆系统的实战问题

团队项目里最常见的记忆问题是信息过载。

Agent 把所有历史对话都塞进上下文,导致关键信息被稀释。解法是:

1. 记忆分级:重要信息存入持久记忆,临时信息用短期记忆
2. 记忆检索:需要时按需加载,不要全量塞入
3. 记忆摘要:定期生成记忆摘要,替代原始对话历史

代码示例:记忆检索的基本模式

class MemoryRetriever: def __init__(self, persistent_store, embedding_model): self.store = persistent_store self.model = embedding_model def retrieve(self, query, top_k=3): # 1. 生成查询向量 query_vec = self.model.encode(query) # 2. 相似度检索 candidates = self.store.similarity_search( query_vec, k=top_k * 2 ) # 3. 重排序:结合时效性和重要性 ranked = self.rerank(candidates, query) # 4. 返回摘要 return [self.summarize(c) for c in ranked[:top_k]]

验收标准:记忆系统的合格线是"Agent 能在第三次会话时,还记得上次项目的主要决策"。低于这个标准,Agent 就是在重复造轮子。

失败恢复:Agent 的韧性测试

一个 Agent 能不能用,不看它成功的时候多顺,看它失败的时候怎么恢复。

失败的三种类型

可恢复失败
工具调用超时、网络抖动、格式错误。这类失败应该自动重试。

策略失败
规划方向错了、工具选择错了。这类失败需要调整策略。

不可恢复失败
权限不足、资源不存在、需求本身有问题。这类失败应该上报。

失败恢复的实战模式

团队项目里总结出的失败恢复模式:

class AgentRunner: def __init__(self, planner, tool_executor, memory): self.planner = planner self.executor = tool_executor self.memory = memory self.max_retries = 3 def execute(self, task): plan = self.planner.create(task) for step in plan: try: result = self.executor.run(step) self.memory.record(step, result, status="success") except ToolError as e: # 可恢复:重试 if e.retryable and self.retry_count < self.max_retries: self.retry_count += 1 continue # 策略失败:调整规划 else: plan = self.planner.replan(task, failed_step=step) continue except PermissionError: # 不可恢复:上报 self.notify_admin(f"权限不足: {step}") return False return True

关键判断:什么时候该重试,什么时候该放弃。

团队的经验是:同一类错误连续出现 3 次,就该换策略而不是继续重试。盲目重试只会浪费 token。

总结:三项能力的优先级

回到开头的问题:工具调用、记忆、规划,哪个才是真正门槛?

我的判断是:

1. 工具调用是入场券:不能调工具的 Agent 没法用,但能调工具的 Agent 一大把
2. 规划能力是分水岭:规划差的 Agent 执行到一半就乱,这是大多数 Demo 能跑、项目翻车的原因
3. 记忆系统是放大器:记忆好的 Agent 越用越顺,记忆差的 Agent 每次都是新手

验收标准建议:

  • 工具调用:成功率 > 90%,错误可恢复
  • 规划能力:复杂任务(5 步以上)完成率 > 70%
  • 记忆系统:跨会话关键信息保留率 > 80%

团队从个人试用到协作推广,真正卡住的往往不是模型能力,而是这三项的边界没厘清、验收标准没定死。

Agent 不是魔法,是工程。工程问题,用工程方法解。

资料展示

下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。

如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。

← 返回列表