提升 Agent 本质是数据挖掘问题,大多数人第一步就搞错了
提升 Agent 本质是数据挖掘问题,大多数人第一步就搞错了
导语
你有没有这种感觉:明明换了更强的模型、加了更复杂的提示词,Agent 的表现却没什么明显提升?最近 Simon Willison 发了一篇短文,标题直接点破了一个被大多数人忽略的事实:提升 Agent 的关键不是模型,是数据。 这篇文章如果你正在用 Cursor、Claude Code、Manus 这类工具,或者自己在搭 Agent 工作流,值得花 5 分钟看完。
正文
问题:为什么你的 Agent 越优化越笨?
很多人优化 Agent 的路径是这样的:模型不好用 → 换更强模型 → 提示词不够好 → 加 CoT、加 few-shot → 还是不行 → blamed on “模型上限”。
但 Simon Willison 在今年的一篇博客里直接反驳了这个思路。他说:Agent 的瓶颈往往不在模型能力,而在你喂给它的数据质量。 这有点像 2010 年代机器学习界的争论——同样的算法,垃圾数据进,垃圾结果出。
具体来说,常见的三个误区:
误区一:把 prompt 当万能药
很多人花几个小时调 prompt,期望模型”突然开窍”。但实际上,prompt 调优的收益有天花板。如果你的任务数据本身有噪声、缺失、重复,再好的 prompt 也救不了。
误区二:迷信上下文窗口越大越好
2025-2026 年,主流 Agent 框架都在卷长上下文。但 Willison 指出:上下文膨胀不是问题根源,是数据没被结构化。 堆更多 token 进去,反而会让模型注意力分散。
误区三:换模型就能解决问题
从 GPT-4 换到 Claude、再到本地模型,收益往往不如优化数据管道明显。这和你花大价钱升级 GPU 来训练一个数据集很小的模型是一个道理。
方案:把 Agent 优化当成数据挖掘问题
那么”当成数据挖掘问题”到底是什么意思?核心思路有三层:
第一层:清理你的 prompt 轨迹
把 Agent 每次运行的输入、输出、工具调用记录当成数据集。分析哪些 prompt 导致了好结果,哪些导致了失败。这就像做 A/B 测试,但对象是 prompt 而不是 UI。
import json
from datetime import datetime
class AgentTrajectoryLogger:
def __init__(self, log_path="agent_trajectories.jsonl"):
self.log_path = log_path
def log(self, task_id, prompt, tools_used, result, success):
entry = {
"timestamp": datetime.utcnow().isoformat(),
"task_id": task_id,
"prompt_length": len(prompt),
"tools_used": tools_used,
"result_summary": result[:200] if result else "",
"success": success
}
with open(self.log_path, "a") as f:
f.write(json.dumps(entry, ensure_ascii=False) + "n")
def analyze(self):
# 统计哪些工具组合成功率最高
# 哪些 prompt 长度区间的成功率最高
# 哪些任务类型最经常失败
pass
第二层:对失败案例做根因分类
不要只看到 Agent 失败了。要问:是工具调用错了?还是 prompt 歧义?还是数据缺失?把失败案例按根因分类,然后针对性优化数据,而不是盲目调参。
一个实用的分类框架:
| 失败类型 | 典型表现 | 优化方向 |
|---|---|---|
| 工具误用 | 调用了错误的 API 参数 | 补充工具使用示例 |
| 上下文丢失 | 多轮后忘记初始目标 | 压缩中间结果,保留关键信息 |
| 数据缺失 | 缺少必要的文件或配置 | 预检查清单 + 自检 prompt |
| 歧义理解 | 对模糊指令产生幻觉 | 拆解任务为子任务,逐步验证 |
| 超时/卡死 | 单步操作耗时过长 | 设置超时 + fallback 策略 |
第三层:构建可复用的 Skill 和模板
LangChain 最近发布的 Deep Agents 框架,其实就是在朝这个方向走。它的核心设计是:把常见任务的数据和流程打包成可复用的 Skills,而不是每次都靠 prompt 硬描述。
Deep Agents 的三个关键机制:
1. Subagents(子智能体):上下文隔离。让专门的子 Agent 处理搜索、解析等脏活,只返回结论给主 Agent,避免上下文被垃圾信息塞满。
2. Filesystem(文件系统):Agent 可以把中间结果写到文件系统,而不是全部堆在上下文里。这相当于给 Agent 一个”外脑”。
3. Skills(技能包):把高频任务的 prompt 模板、工具配置、输出格式打包成可复用的 Skills,类似给 Agent 配了一套标准操作手册。
结论:你现在的 Agent 工作流,数据质量过关了吗?
如果你正在用 AI 编程工具或者搭 Agent,问自己三个问题:
1. 你有没有记录 Agent 的运行轨迹,并定期分析失败案例?
2. 你有没有把高频任务沉淀成模板/Skill,而不是每次都写新 prompt?
3. 你最近一次显著提升 Agent 表现,是靠换模型,还是靠优化数据?
如果答案是”换模型”,那你可能真的在走弯路。
收尾
下一次你想让 Agent 表现得更好时,别急着加 prompt 或换模型。先看看你的数据——prompt 轨迹、工具调用记录、失败案例。把这些当成数据集来治理,比任何 prompt engineering 都有效。
评论区
登录后可评论。












