-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
area:coreCore runtime and session stateCore runtime and session statearea:toolsBuilt-in tools and tool runtimeBuilt-in tools and tool runtimearea:tuiTerminal UI and interaction layerTerminal UI and interaction layerneeds-triageIssue needs initial triageIssue needs initial triage
Description
背景
当前 runtime 存在以下改进诉求:
- 目录结构与代码架构不够清晰。
- 存在重复实现,维护成本高。
- 希望尽可能复用 Vercel AI SDK 能力,而不是继续手搓。
重构原则(强约束)
- 彻底重构,一次性切换,不做 API 兼容层。
- 允许 breaking changes。
- 删除 legacy 路径与冗余抽象,不保留双轨实现。
目标
围绕 runtime 完成一次破坏式重构,达成:
- 职责分层清晰(会话协调、LLM 调用、工具调度、事件分发彻底解耦)。
- 删除重复逻辑(尤其协议转换、事件解析与状态归一化的多份实现)。
- 将多步 tool loop、step 回调、usage 统计等能力迁移为 AI SDK 主路径。
实施范围
1) 架构重组
- 拆分 runtime 单体实现为可独立测试模块。
- 直接调整/替换现有接口,不保留旧接口兼容适配。
2) 重复代码清理
- 抽取统一 SSE 解析与事件编解码模块,统一被 TUI/Web 消费。
- 合并消息/工具调用转换链路,删除重复 normalize 逻辑与中间层。
3) AI SDK 接管
- 用 AI SDK 的多步工具调用流程替代手写主循环。
- 对齐 AI SDK 的工具审批/工具结果语义,移除自定义协议分叉。
- usage/token 统计优先使用 AI SDK 数据,并删除旧统计分支。
明确不做
- 不做旧 API 兼容。
- 不做渐进迁移双轨并存。
- 不做“先兼容后删除”的过渡方案。
验收标准
- runtime 不再由单体文件承载核心逻辑,模块边界清晰。
- 重复实现被删除,SSE/事件链路只保留一套。
- AI SDK 成为工具循环与 usage 统计的唯一主实现路径。
- 关键回归场景通过:并发工具调用、审批拒绝、取消、自动 compact、final 输出稳定。
- 文档明确标注本次为 breaking change,并给出升级说明。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:coreCore runtime and session stateCore runtime and session statearea:toolsBuilt-in tools and tool runtimeBuilt-in tools and tool runtimearea:tuiTerminal UI and interaction layerTerminal UI and interaction layerneeds-triageIssue needs initial triageIssue needs initial triage