Skip to content

AI 工具兼容

本文关注 Claude Code、Codex、OpenCode 一类现有 AI 工具如何接到 AaaS,而不是要求它们使用同一套内部代理循环。工具映射相关规范见 MCP MappingRuntime Session ProtocolRun

为什么要兼容现有工具

很多团队已经在使用成熟的 AI coding tool 或终端代理工具。平台如果要求“先重写、再接入”,迁移成本会非常高,也会破坏工具本身已经验证过的人机协作体验。

因此,AaaS 更合理的方向是:

  • 兼容现有工具的交互模型
  • 托管现有工具的执行环境
  • 收敛其运行事实、审计事实和治理能力

四种兼容模式

工具作为客户端

适合 CLI、IDE 扩展或 Web 前端直接触发任务的场景。

  • 工具负责采集用户输入
  • 平台负责创建 Run
  • 流式输出回到工具 UI
  • 工具本身不需要成为平台 runtime

工具作为托管 runtime

适合 Claude Code、Codex、OpenCode 一类终端原生、文件系统原生、长会话原生的工具。

  • 平台准备 Sandbox 或其他执行环境
  • 工具进程在受控环境中运行
  • 工具通过 Session 协议收输入、发输出、上报心跳
  • 平台负责权限、网络、Secret、Checkpoint 和回收

工具作为 Tool Adapter

适合已有独立能力服务或 MCP Server 的场景。

  • 平台 Agent 把某个外部 AI 工具当成一个 Tool
  • Tool 调用结果回写到同一条 Run 事件流
  • 外部工具不需要直接理解 Run 生命周期

工具作为 Session Peer

适合需要双向流式、长期连接、可恢复会话的高级集成。

  • 工具实现平台 runtime session 能力
  • 平台和工具共享心跳、恢复、KV、Config、Secrets 等语义
  • 最终输出统一进入平台事件与 Trace 平面

常见 AI 工具的接入判断

不要先按品牌名判断,而应先按运行形态判断:

工具形态典型例子推荐模式平台要重点补的能力
终端原生 coding toolClaude Code、Codex、OpenCode托管 runtime 或 Session PeerSandbox、文件系统、PTY、Checkpoint、审计
IDE / Web 交互工具IDE 扩展、聊天前端工具作为客户端Run 创建、事件流、身份鉴权、会话继续
MCP Server 或独立能力服务搜索、浏览器、检索、代码分析服务Tool AdapterTool 治理、调用留痕、限流、权限边界

品牌只是入口,真正决定接入方式的是工具是否需要长期会话、是否直接操作本地工作区、以及是否需要被平台托管运行。

Claude Code、Codex、OpenCode 这类工具的共同特点

这类工具通常具备下面的运行特征:

  • 强依赖终端、文件系统和进程执行
  • 需要较长的交互会话,而不是一次无状态调用
  • 常常会操作 Git、包管理器、测试框架和本地项目目录
  • 既有自然语言输出,也有结构化动作,例如命令执行、文件修改和测试结果

这正是 AaaS 适合作为托管层的原因。平台可以在不改变工具核心交互体验的前提下,补齐这些工具本来欠缺的平台能力。

平台需要补上的能力

运行环境托管

  • 为每次任务创建工作区或复用会话工作区
  • 统一镜像、依赖缓存、网络边界和工具白名单
  • 给运行进程分配 TTL、心跳和受控释放策略

事件归一化

  • 把自然语言输出映射成消息事件
  • 把命令执行、文件操作、测试结果映射成工具调用、Artifact 或活动消息
  • 把关键状态变化映射到标准运行状态和 Span

安全与治理

  • 统一 Secret 注入与最小权限控制
  • 统一模型供应商访问策略和审计记录
  • 统一输出留痕和内容捕获策略

继续执行与恢复

  • 同一个 coding task 可以继续会话,而不是每次都冷启动
  • 工具异常退出后,平台仍然保留 Run、Artifact、Checkpoint 和 Trace 事实

推荐的适配边界

不要试图把每个工具的内部动作完全重写为平台私有 API。更稳妥的方式是:

  • 保留工具自己的 agent loop
  • 只把平台需要治理的边界适配出来
  • 让工具继续以它最擅长的交互方式工作
  • 让平台统一负责生命周期、隔离、观测和审计

一个 coding agent 的典型接入形态

  1. 控制面选择某个 Agent 及其 execution profile
  2. Provider 创建 Sandbox,会话准备好工作区和依赖
  3. Claude Code、Codex 或 OpenCode 进程在其中启动
  4. runtime attach 到 Session,领取用户输入和上下文
  5. 工具运行期间持续输出消息、活动、Artifact 和 Trace
  6. 平台根据策略保留会话、生成 Checkpoint 或释放环境

兼容性边界

平台并不要求这些工具:

  • 使用同一个模型供应商
  • 使用同一种 Prompt 模板
  • 使用同一种规划策略
  • 使用同一套内部工具协议

平台真正要求的是:

  • 能被纳入统一的 Run 生命周期
  • 能提供可恢复的会话和可观测的执行事实
  • 能接受受控的 Secret、Config、网络和工具边界

相关规范

Informative whitepaper. Normative contracts live under /spec/.