基于更新后的 context-management.md 设计,移除 branch 概念,采用独立 Trace 架构
将当前基于 branch 的实现重构为统一的 Trace 模型,每个 Sub-Agent 都是独立的 Trace。
agent/execution/trace_id.py
generate_sub_trace_id(parent_id, mode) 函数parse_parent_trace_id(trace_id) 函数agent/execution/models.py:Trace
parent_trace_id: Optional[str] 字段parent_goal_id: Optional[str] 字段context: Dict[str, Any] 字段存在to_dict() 和 from_dict() 方法agent/execution/models.py:Message
branch_id 字段duration_ms 字段存在to_dict() 方法create() 方法agent/goal/models.py:Goal
branch_id 字段branch_ids 字段sub_trace_ids 字段存在to_dict() 和 from_dict() 方法agent/goal/models.py:BranchContext 类
agent/execution/fs_store.py
_get_branches_dir() 方法_get_branch_dir() 方法_get_branch_meta_file() 方法_get_branch_goal_file() 方法_get_branch_messages_dir() 方法create_branch() 方法get_branch() 方法get_branch_goal_tree() 方法update_branch_goal_tree() 方法update_branch() 方法list_branches() 方法create_trace() - 不再创建 branches/ 目录add_message() - 移除 branch_id 逻辑get_trace_messages() - 移除 branch_id 参数get_messages_by_goal() - 移除 branch_id 参数_update_goal_stats() - 移除 branch_id 逻辑_get_affected_goals() - 移除 branch_id 逻辑agent/execution/protocols.py:TraceStore
scripts/migrate_traces.py
.trace/*/branches/ 结构agent/goal/explore.py
explore_tool(branches, background) 函数generate_sub_trace_id() 生成 Sub-Trace IDagent/goal/delegate.py
delegate_tool(task) 函数generate_sub_trace_id() 生成 Sub-Trace IDagent/goal/tool.py
agent/execution/api.py
GET /api/traces/{trace_id} - 支持新的 trace_id 格式agent/execution/websocket.py
sub_trace_started 事件sub_trace_completed 事件.trace/*/branches/ 目录(旧数据)generate_sub_trace_id 的序号生成器需要线程安全