42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# Agent 步骤表:agent_step
|
||
|
||
**状态**:当前表
|
||
**来源**:`V005__create_session_storage.sql`、`V006__fix_agent_step_json_to_text.sql`、`AgentStep`
|
||
|
||
## 定位
|
||
|
||
`agent_step` 记录一次诊断过程中每个 Agent 步骤的模型输入、输出、耗时和 Token 消耗。页面展示执行链路时应优先按 `step_index` 排序。
|
||
|
||
## 字段
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|---|---|---|---|
|
||
| `id` | BIGINT | 是 | 自增主键 |
|
||
| `session_id` | VARCHAR(64) | 是 | 关联 `diagnosis_session.session_id` |
|
||
| `step_index` | INT | 是 | 步骤序号,从 0 开始 |
|
||
| `agent_name` | VARCHAR(32) | 是 | Agent 名称,例如 planner、executor、verifier、composer |
|
||
| `model_input` | TEXT | 否 | 模型输入摘要;`V006` 已从 JSON 改为 TEXT |
|
||
| `model_output` | TEXT | 否 | 模型输出摘要;`V006` 已从 JSON 改为 TEXT |
|
||
| `thought` | TEXT | 否 | Agent 思考过程或调试摘要 |
|
||
| `has_tool_call` | BOOLEAN | 否 | 本步骤是否触发工具调用 |
|
||
| `duration_ms` | INT | 否 | 本步骤耗时 |
|
||
| `token_count` | INT | 否 | 本步骤 Token 消耗 |
|
||
| `created_at` | DATETIME | 是 | 创建时间 |
|
||
|
||
## 索引
|
||
|
||
| 索引 | 字段 | 用途 |
|
||
|---|---|---|
|
||
| `idx_session_step` | `session_id, step_index` | Trace 页面按会话和步骤顺序查询 |
|
||
| `idx_agent_name` | `agent_name` | 按 Agent 类型筛选 |
|
||
|
||
## 关系
|
||
|
||
- `agent_step.session_id` 逻辑关联 `diagnosis_session.session_id`。
|
||
- `tool_invocation.step_id` 可关联 `agent_step.id`,但当前允许为空且不强制外键。
|
||
|
||
## 注意点
|
||
|
||
- 前端展示步骤时应按 `step_index` 排序,而不是按 `created_at` 或数据库返回顺序。
|
||
- Verifier 应在 Executor 循环完成后出现;如果 `step_index` 中 Verifier 提前,通常意味着编排或记录顺序有问题。
|