Repository navigation
V1.4 — 深度搜索 + Agent 基座重构
V1.4 — 深度搜索 + Agent 基座重构
Agent 基座重构(自建 Loop)
彻底重构 Agent 基座,完全吸收 Claude Code 架构:
- 自建 ReAct Loop(替代 Eino react.Agent)—— 真异步恢复(fire-and-forget + completion-notification)
- 统一工具接口(SyncTool/AsyncTool)—— 消除 StreamableTool 中间态,Loop 用 type assertion 派发
- SubAgent 真异步派发(dispatch_subagent AsyncTool)—— 主 Agent 给任务描述 → 子 Agent 后台跑 → 事件透传 → 完成恢复注入结果
- EventSink 替代 PipelineEmitter 跨层 ctx 注入 hack
- TaskID 事件隔离 —— 子 Agent 事件归入 dispatch_subagent 卡片,不混入主 Agent 文本
深度搜索工具链
web_search—— Exa→Tavily→DuckDuckGo 搜索降级链web_fetch—— Firecrawl→本地 http.Get 提取降级链(含 SSRF 防护)generate_article—— 结构化 Markdown + frontmatter 写入知识库 Draftdeep_researchSubAgent —— 提示词驱动(8 条研究原则),替代代码 pipeline
流式渲染优化
- 背压消除事件丢弃(runner 阻塞发送 + buffer 1024)
- 结构事件即时 flush + 文本 rAF 单帧平滑
- 卡片默认折叠(reasoning/tool_call),纯净执行
- 流式滚动跟随(100ms ticker)
SQLite 增量写入
- 每次事件增量写入 parts(status=generating),中断可恢复
- 所有退出路径落库:generating/completed/cancelled/failed
删除(纯净重构)
- Eino agent 层依赖(react/adk/compose/tool)
- research/ 代码 pipeline(deep_research 改提示词驱动)
- task/ 死代码 TaskManager + 4 个死端点
- async_bash + ToolFactory + PipelineEmitter hack
内置 SubAgent
| SubAgent | 工具集 |
|---|---|
| research | read_file / glob / grep / list_dir(只读) |
| coder | bash / read_file / write_file / edit_file / mkdir(读写) |
| deep_research | web_search / web_fetch / generate_article(网络调研) |
完整变更: see commits on v1.4 branch.