v0.2.2
Changelog
v0.2.2 (2026-06-16)
新增 goal evaluation 闭环机制——独立 LLM 评估 agent 任务完成度并自动注入反馈驱动重试;内嵌 katana 爬虫引擎支持 headless 浏览器;新增多 provider 容错降级链;重构 TUI/REPL 为统一 pkg/tui 模块;大幅整理包结构,aiscan 专用包从 pkg/ 移入 core/。
New Features
goal evaluation — 独立评估 + 反馈重试闭环(核心)
- 新增
-e/--eval指定目标评估标准,--eval-model可选独立评估模型,--eval-retries控制最大评估轮数(默认 3) - 评估机制:agent 完成一轮执行后,独立 evaluator LLM 接收压缩后的 execution trace(tool call 序列 + assistant 摘要 + final output),通过强制 tool call(verdict tool)返回结构化判定(pass/reason/feedback)
- 闭环重试:verdict.pass=false 时,evaluator 的 feedback 作为新 prompt 注入 agent 继续执行,直到 pass=true 或达到最大评估轮数
- evaluator 调用失败时降级为通用反馈("请检查你的工作并继续"),不中断主流程
- trace 压缩策略:仅保留 tool call 序列和 assistant 摘要,不传完整 tool result,最大 16KB 防止 context 膨胀
- 全程通过 eventbus 发射
GoalEvalStart/GoalEvalEnd/GoalEvalError事件,TUI 实时展示评估进度和结果
katana — 进程内爬虫 + headless 引擎
- 将 katana 从外部二进制调用重构为进程内 SDK 集成,通过 goflags 解析参数保持完整 CLI 兼容性,OnResult 回调收集结果
- 新增 headless/hybrid 引擎支持,根据
-hl/-hh/-cwu标志自动选择引擎
multi-provider — 容错降级链
- 当主 provider 重试耗尽后,agent loop 自动切换到降级链中的下一个 provider 并重放当前 turn
- 配置文件
llm.providers数组定义降级链,启动时并行初始化(失败跳过) - 新增 REPL
/provider命令展示 provider 链的 active/standby 状态
agent — finish tool / thinking block / web search
- 新增 finish tool:通过
ToolResult.Terminate显式终止 agent loop - 非流式响应支持解析 Anthropic thinking block 为
ReasoningContent - 新增
WebSearchProvider接口,Anthropic 走web_search_20250305server tool,OpenAI 走 Responses API;provider 原生搜索失败时回退 Tavily/DDG
heartbeat + tmux 增量监控
--heartbeat接入 LoopScheduler 作为通用周期唤醒- tmux 后台命令自动推送增量输出到 agent inbox(每 10s per-session goroutine)
capture-pane新增-n(末尾 N 行)和-c(末尾 N 字节)参数
信号处理 — 两阶段 Ctrl+C
- 第一次 Ctrl+C 停止当前任务,第二次退出 REPL,第三次强制退出
Bug Fixes
- scanner CLI:
aiscan scan/aiscan gogo等直接命令模式因引擎异步加载导致 "unknown subcommand" 失败。新增WaitEngines(ctx)同步等待引擎就绪
Refactoring
pkg/app合并进core/runner,删除pkg/appeventbus、pidlock、resources、output、harness从pkg/移入core/- TUI/REPL 提取到
pkg/tui,合并pkg/repl - evaluator 使用 tool call 结构化输出替代 JSON text fallback
- cyberhub 基于 SDK association index 重建,新增结构化查询 flag
- provider 层简化:移除中间结构体,提取共享 HTTP 工具
Dependencies
- SDK
v0.2.4→v0.3.2 - 新增 SDK panic recovery
- 42 个 e2e 测试