从零搭建 Agent Harness 系列(二十五)剧本回放评测与 Trace 尺子
阶段十二第一刀:根目录 eval 用剧本 Provider 回放固定任务;Agent.Run 根 span 记下首 Token、Token 累计和工具墙钟。不打真模型。
阶段十二第一刀:根目录 eval 用剧本 Provider 回放固定任务;Agent.Run 根 span 记下首 Token、Token 累计和工具墙钟。不打真模型。
阶段十一:外部工具走 MCP(stdio 与 Streamable HTTP),远程任务走 A2A。模型只看见本地 ToolDefinition,审批和取消不绕开。
阶段十:把历史和 Token 写到 .claw/sessions,读盘后为孤儿 ToolCall 插入未完成 Observation。不重放有副作用的工具。
阶段九后半段:Session 与单次 Run 两道 Token 闸、Subagent 派出次数、工具墙钟预算,以及 Retry 的指数退避、两层超时和不可重试的半响应。
为 go-tiny-claw 的模型调用加上可重试错误分类和 Retry 装饰器:只重试 HTTP,已吐字的流式不再重放,并在入口把 OpenAI 错误收成 HTTPError。
为 go-tiny-claw 的路径沙箱补上符号链接跟随,用启发式规则把 bash 关进工作区,并在持久化 Grant 中记下审批请求与时间。
把 go-tiny-claw 的 AllowSession 从工具名收窄到工作区与参数摘要,补上路径沙箱和破坏性 bash 拒绝,并把授权持久化到 .claw/grants.json。
为 JSONEventSink 增加有界队列与关闭等待,并把 Reporter 错误传回 Engine,收口 go-tiny-claw 阶段七的资源生命周期与可靠取消。
修复 TerminalApproval 在 Ctrl-C 后残留 ReadString goroutine 的问题,将终端审批改为 Approve/Respond 模型,并引入 TerminalSession 与 ChannelSession 对齐装配边界。
在 Task、Runtime 和 TCP 多 Session 之后,为 go-tiny-claw 增加 JSON Protocol、结构化事件、WebSocket 接入和可视化多 Session 控制台。