案例分析二:Data Analysis Agent 为什么查着查着又回到已经排除的方向?

场景背景

用户问,“为什么昨天收入下降?”

Agent 前几轮已经得到:

总收入下降 20%
媒体 B 降幅最大
请求量基本稳定
eCPM 下降 35%

其实已经基本排除:

流量下降

但后面又查了很多日志。

Context 里塞进大量 SQL 结果。

模型突然再次:

按请求量拆媒体

重复调查已排除方向。

问题根因

当前 Context 只有:

Conversation
+
Raw Tool Results

没有:

Current Focus
Working Memory

所以模型只能从大量历史里重新推断。

而最关键的事实:

请求基本稳定

已经被淹没。

改造

ContextBuilder 每轮加入:

Current Task:
定位 media_B eCPM 下降原因。

Relevant Memory:
- 总收入下降 20%
- media_B 是主要异常来源
- 请求量稳定,暂不优先调查流量

同时 Tool Result 只保留最近 5 个关键结果。

新行为

模型自然更容易:

按广告位拆 media_B 的 eCPM

而不是回头重查请求。

结果

Step 更少。

Token 更低。

分析路径更稳定。

复盘

这就是为什么我们后面马上会进入,Working Memory。

因为 Agent 不应该完全依赖 Conversation History 来维持“当前认知”。

ContextBuilder 需要一个更结构化的“当前任务摘要”。

常见误区

误解: Agent Prompt 就是一段很长的 System Prompt,把所有规则都写进去就行。
正解: 真实 Agent 的上下文来源很多,而且生命周期不同。System Prompt 适合稳定身份与原则,AGENTS.md 属于项目规则,Skills 按任务动态加载,Memory 保存可复用事实,Tool Results 属于当前运行反馈,Current Task 表示当前焦点。把所有内容永久堆在一个 System Prompt 里,会导致难维护、难裁剪、难更新,也无法按任务动态变化。

误解: Context 越多,模型知道得越多,Agent 一定越聪明。
正解: 过多上下文会产生噪声、重复、冲突和 Token 成本。尤其 Tool Result 很容易把真正重要的规则和当前任务淹没。Context Engineering 的核心不是“塞满”,而是选择最相关、最高优先级、最新且可信的信息。好的 ContextBuilder 更像筛选器,而不是搬运工。

误解: Conversation History 已经包含所有过去信息,所以不需要 Memory 和 Current Task。
正解: Conversation 是原始历史,随着 Agent 运行会越来越长。真正关键的信息可能埋在几十轮 Tool Result 里,模型每轮都重新推断既浪费 Token,也容易遗忘。Working Memory 和 Current Task 是对当前认知与焦点的结构化提炼,后续还可以跨 Session 使用 Long-term Memory。它们和 Conversation 的职责不同。

误解: Tool Result 是真实环境数据,所以优先级应该比 System Rule 更高。
正解: Tool Result 的“真实性”只代表它是环境反馈,不代表它能修改 Agent 的上层行为边界。文件内容、网页内容、数据库文本里都可能出现恶意或误导指令。它们属于数据层,不能覆盖 System / Safety / Agent Rules。这种上下文层级是抵御 Prompt Injection 和行为漂移的重要基础。

误解: ContextBuilder 就是一个 Prompt Template,把几个变量格式化成字符串。
正解: Template 只是格式化,而 ContextBuilder 还要处理来源收集、优先级、动态 Skill 选择、Memory 筛选、Tool Result 截断、Conversation 裁剪、冲突与预算。对于短 Demo 两者看起来差不多,但长期运行 Agent 中,ContextBuilder 是运行基础设施,而不是文案模板。

误解: 只要最终模型输出正确,就没必要记录 ContextBuilder 到底选了什么。
正解: Agent 行为高度依赖输入上下文。没有 Build Report,出现错误时只能猜模型为什么走偏。记录每轮加入哪些 Section、裁掉哪些内容、长度多少,可以快速定位 AGENTS.md 未加载、Memory 过期、Tool Result 太长等问题。Context 本身也应该成为 Tracing 的一部分。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容