Skip to content

runtime 重构:架构清晰化、去重复、AI SDK 能力收敛 #203

@minorcell

Description

@minorcell

背景

当前 runtime 存在以下改进诉求:

  1. 目录结构与代码架构不够清晰。
  2. 存在重复实现,维护成本高。
  3. 希望尽可能复用 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,并给出升级说明。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreCore runtime and session statearea:toolsBuilt-in tools and tool runtimearea:tuiTerminal UI and interaction layerneeds-triageIssue needs initial triage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions