学习笔记:Agent 项目到底应该测什么?
# 学习笔记:Agent 项目到底应该测什么?
今天梳理自己的 Agent / RAG 项目时,发现一个很重要的点:
Agent 项目不能只看“它能不能回答”,更要看“它为什么这样做、每一步是否可控、失败时有没有兜底”。
传统后端测试更多关注接口、函数、数据库读写是否正确;但 Agent 项目多了 LLM 决策、工具调用、长期记忆、检索证据和多轮状态,所以测试目标也会变化。
## 1. 工具调用是否选对
Agent 不只是生成文本,而是会在多个工具中做选择。
例如搜索资源、打开节点、查询上下文、查看 trace、提交记忆等。
要测的是:
当用户提出一个任务时,Agent 是否选择了正确工具,而不是乱调用或漏调用。
## 2. 工具参数是否正确
即使工具选对了,参数错了也会导致任务失败。
例如:
- `resource_id` 是否传对
- `query` 是否保留了用户真正意图
- 排除条件是否被错误删除
- 用户身份、session id 是否正确传递
这类问题很隐蔽,但会直接影响最终结果。
## 3. 工具失败后是否重试或 fallback
真实系统里,工具调用可能超时、失败、返回空结果。
Agent 不能一失败就崩,也不能假装成功。
需要测试:
- 是否有重试机制
- 是否有 fallback 路径
- 是否能告诉用户证据不足或工具不可用
- 是否避免在失败后编造答案
## 4. 多轮状态是否正确延续
Agent 往往不是单轮问答,而是连续任务。
所以要测试 session summary、当前目标、历史 turn 是否能正确延续。
关键不是“记住所有内容”,而是保留和当前目标相关的信息,同时丢掉闲聊和无关内容。
## 5. 长期记忆是否该写才写,不该写不写
长期记忆很重要,但也很危险。
需要测试:
- 用户明确偏好是否被写入
- 一次性的临时表达是否不被写入
- 成功资源路径是否能沉淀为 task experience
- 用户画像和任务经验是否分开
- 是否避免记忆污染
好的记忆系统不是“什么都记”,而是“有选择地记”。
## 6. 检索是否命中正确证据
对于 RAG / Agent Context 项目,检索质量是基础。
要测试:
- 是否命中正确章节
- 是否避开 metadata、无关段落
- 是否支持当前资源范围限制
- 是否能理解“不要讲 X”这类排除意图
- 长文总结是否覆盖多个关键章节,而不是只看开头
## 7. 证据不足是否拒答
Agent 最容易出问题的地方不是答不出来,而是没证据还硬答。
所以要专门设计拒答用例:
- 当前文档没有相关信息时,是否拒答
- 检索结果为空时,是否说明证据不足
- 是否避免用相邻但错误的知识强行回答
拒答不是能力弱,而是可靠性的体现。
## 8. Trace 是否能解释每一步
Agent 系统必须可观察。
只给最终答案不够,还要知道它用了什么上下文、为什么选这些证据、每一步是否可回查。
一个好的 trace 至少应该包含:
- 调用了哪些工具
- 命中了哪些资源
- 每个资源的分数和命中词
- 节点路径和 drill-down trail
- 记忆命中情况
- 压缩前后的上下文大小
- 失败和 fallback 记录
Trace 的价值是让系统从“黑盒生成”变成“可调试工程”。
## 9. 成本、Token、延迟是否受控
Agent 项目很容易因为多轮调用和长上下文导致成本失控。
需要关注:
- 单次任务调用了几次模型
- prompt 和 context 有多长
- 每轮 token 消耗
- 工具调用耗时
- 总响应延迟
- 是否有最大步数和上下文预算
一个 Agent 不只是能完成任务,还要能稳定、可控地完成任务。
## 10. 端到端任务成功率
最后还是要回到任务本身:用户的问题有没有被解决。
端到端成功率不是单元测试,而是用一批真实任务评估系统整体表现。
例如:
- 是否完成了用户目标
- 是否使用了正确证据
- 是否没有违反约束
- 是否在失败时给出合理解释
- 多轮任务是否保持一致
这也是 eval harness 的意义:用固定任务集持续验证系统行为,而不是只看一次 demo。
## 总结
今天最大的收获是:Agent 项目的测试重点,不只是代码对不对,而是行为是否可靠。
可以把 Agent 测试分成三层:
1. **工具层**:工具是否选对、参数是否正确、失败是否兜底。
2. **状态层**:多轮状态、长期记忆、上下文压缩是否正确。
3. **任务层**:检索证据、拒答策略、trace、成本和端到端成功率是否可控。
对我自己的 KnowledgeContextEngine 来说,当前已经覆盖了 RAG 检索、长期记忆、拒答、trace 和 eval harness。
后续如果要从 Context Engine 进一步走向完整 Agent,还需要补上 Tool Registry、LLM Function Calling、Plan-Act-Reflect 和工具调用 trace。
一句话总结:
**Agent 工程的核心不是让模型“看起来聪明”,而是让它的每一步都可验证、可解释、可回滚、可优化。**
对了,有人帮我看一下简历吗

更多推荐
所有评论(0)