agent-trajectory-analysis

star 1

Analyze Agent experiment trajectories from JSON/JSONL session logs. When given a case file or directory, record experiment background, Agent behavior, step-by-step trajectory, compare against expected results with verifiable evidence locations, identify problems, and suggest improvements.

letsgetai By letsgetai schedule Updated 6/2/2026

name: agent-trajectory-analysis description: Analyze Agent experiment trajectories from JSON/JSONL session logs. When given a case file or directory, record experiment background, Agent behavior, step-by-step trajectory, compare against expected results with verifiable evidence locations, identify problems, and suggest improvements. disable-model-invocation: true

Agent 实验轨迹分析

概述

当用户提供 Agent 实验的会话日志(JSON 文件)时,对其进行系统性的轨迹分析。 目标是:把 Agent 的完整行为拆成可追溯、可验证的阶段报告,防止幻觉—— 每个关键结论都必须能定位到具体轮次和原始消息。

何时使用

  • 用户给了一个 messages.json 文件或一个包含多个 case 的结果目录
  • 用户说"帮我分析这个 case" / "看看这个 Agent 跑得怎么样"
  • 用户想对比多个 case 的 Agent 表现

不要用于:代码 review、性能调优分析、架构讨论。

分析流程

0. 记录实验背景

拿到 case 后,先建立上下文。这部分是后续分析的锚点:

字段 说明 来源
实验背景/版本 这是什么实验?来自哪个分支/提交/时间? 目录名、git log、文件名
结果目录 完整的输出路径 文件路径
启动脚本 如果有的话,Agent 是怎么启动的 目录中的 .sh / .py 脚本
Case 名称/描述 这个 case 是什么内容 目录名、messages.json 第一条 user 消息
Case 来源 来自哪个 benchmark / 项目 / 手工编写 目录层级结构推断
期待结果 理想情况下 Agent 应该产出什么 user prompt、skill 文档、benchmark 要求

1. 提取关键指标

遍历 messages.json,统计以下指标:

指标 提取方式
耗时 从时间戳或外部记录
对话轮次 消息总数 - 1(去掉第一条 user)
Tool calls 总数 统计所有 assistant 消息中 tool_calls 的数量
Input tokens 如果有 token 统计字段
Output tokens 如果有 token 统计字段
使用的工具类型 统计每个工具被调用了多少次
工具失败次数 工具返回中 status 非 success 或报错的

2. Agent 行为轨迹分析(核心)

对每一轮对话按阶段分组,分段总结而不是逐条罗列。

2a. 阶段划分原则

不要把 50 轮对话一条条讲。按 Agent 在解决什么问题来分段:

阶段 1: [轮次 N-M] 在解决什么问题
  - 调了哪些工具,各做了什么
  - 关键节点是什么

阶段 2: [轮次 N-M] 在解决什么问题
  - ...

阶段划分线索:

  • Agent 显式说"现在我要做 X" → 新阶段
  • 工具类型发生明显切换 → 可能新阶段
  • 出现错误重试循环 → 记录为子阶段

2b. 每轮记录格式

在阶段内部,简要记录每一步:

[第 X 轮] agent: <意图摘要,不超过一句话>
  └ 调用: tool_name(args摘要)
  └ 返回: <结果摘要,不超过30字>
  └ 状态: ✅ / ❌ / ⚠️

2c. 关键节点标记

标记以下事件为关键节点:

  • 第一次成功调用核心工具
  • 工具调用失败及其修复方式
  • Agent 改变策略的时刻
  • 产生最终结果的那一步
  • Agent 表现出明显困惑或重复操作的区域

3. Case 结论

和预期结果对比,回答以下问题:

  1. Agent 最终产出 vs 期待:完成了什么,差了什么
  2. 关键结果溯源:如果产出了关键结果,指出是在哪一轮、哪个工具返回中产生的
  3. 完整性评估:✅ 完整 / ⚠️ 部分 / ❌ 未完成
  4. 是否出现幻觉:Agent 有没有把"期待的结果"当成"真实结果"来说

防止幻觉的检查清单

  • Agent 是否引用了实际 tool 返回中的数据?还是在说"我认为应该是 X"?
  • 对比 assistant.content 和对应 tool.return_content:两者一致吗?
  • Agent 有没有跳过失败的工具调用,直接宣布成功?
  • 最终结论中的数字/结果,能在 tool 返回中找到对应吗?

4. 问题与改进方向

总结这个 case 暴露的问题:

  • 结构性问题:Agent 是否走入了不必要的探索循环?
  • 工具使用问题:是否反复调用同一个工具失败?
  • 上下文问题:Agent 是否丢失了对初始目标的追踪?
  • 效率问题:哪些步骤可以合并或跳过?
  • 改进方向:具体的 skill 更新、prompt 调整、或工具增强建议

输出格式

分析报告按以下结构输出:

## 实验背景

| 字段 | 内容 |
|---|---|
| 实验背景/版本 | ... |
| 结果目录 | ... |
| 启动脚本 | ... |
| Case | ... |
| 来源 | ... |
| 期待结果 | ... |

## 关键指标

| 指标 | 值 |
|---|---|
| 耗时 | ... |
| 对话轮次 | ... |
| Tool calls | ... |
| Input tokens | ... |
| Output tokens | ... |
| 流程解析 | ✅/⚠️/❌ |
| 基准提取 | ✅/⚠️/❌ |
| 优化脚本 | ✅/⚠️/❌ |
| 优化结果 | ✅/⚠️/❌ |

## Agent 行为轨迹

### 阶段 1: [一句话描述这个阶段在做什么]

[第 N 轮] agent: ...
  └ ...

### 阶段 2: ...

### 关键节点总结

1. ...
2. ...

## Case 结论

### 与预期对比
...

### 关键结果溯源
...

### 完整性
...

### 幻觉检查
...

## 问题与改进方向

1. ...

多 Case 对比

如果用户给了一个包含多个 case 的目录:

  1. 先对每个 case 单独跑上面的分析
  2. 最后加一个横向对比表

常见陷阱

  1. 不要把 Agent 的 reasoning 当成事实 — reasoning_content 是 Agent 的想法,tool 返回才是结果
  2. 不要跳过失败的 tool 调用 — 这些往往是分析的重点
  3. 不要逐条罗列 50 轮对话 — 按阶段分组,保留关键节点
  4. 关键结论必须能溯源 — 给出具体轮次编号
  5. 不要忽略 token 消耗分布 — 哪一轮消耗最多,往往说明 Agent 在那里卡住了
Install via CLI
npx skills add https://github.com/letsgetai/agent-skills --skill agent-trajectory-analysis
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator