运行时对比

了解不同 AgentOS 运行时的特点和差异

运行时对比

Knodo 支持多种 AgentOS 运行时,每种运行时有不同的特点和适用场景。本文档介绍各运行时的差异和选择建议。

什么是运行时?

运行时(Runtime)是 AI Agent 的执行引擎,负责:

  • 解析和执行 AI 指令
  • 管理工具调用
  • 处理文件操作
  • 维护会话状态

不同运行时在功能、性能、兼容性上有所差异。

支持的运行时

Claude Code

官方 Claude Code SDK 运行时,本地 Agent 执行。

特性说明
架构Claude Code SDK
会话恢复支持
部署方式本地执行
适用场景标准开发、完整功能体验

优势:

  • 官方 SDK,功能最完整
  • 支持权限模式和斜杠命令
  • 支持交互式问答

Cortexa

企业级 Agent 运行时,基于 HTTP API 架构。

特性说明
架构HTTP API + SSE 流式响应
会话恢复支持
部署方式远程服务
适用场景生产环境、企业部署

优势:

  • 稳定可靠的企业级服务
  • 支持会话断点恢复
  • 集中化管理和监控

OpenCode

开源 Agent 运行时,兼容 Claude Code 插件生态。

特性说明
架构CLI + ACP 协议
会话恢复支持
部署方式容器化沙箱
适用场景免费模型体验、自定义扩展

优势:

  • 支持免费模型(如 GLM 等)
  • 开源可定制
  • 兼容 Claude Code 插件
  • 灵活的扩展能力

运行时切换

切换方式

在对话界面的运行时选择器中切换:

  1. 点击当前运行时名称
  2. 从下拉列表选择目标运行时
  3. 新会话将使用选定的运行时

切换影响

  • 切换运行时会开始新会话
  • 历史会话保持原运行时
  • 可用模型列表可能不同

功能对比

核心功能

功能Claude CodeCortexaOpenCode
文本对话
代码生成
文件操作
工具调用
会话恢复
流式响应
权限模式
斜杠命令
交互式问答

插件支持

组件类型Claude CodeCortexaOpenCode
Agent✅ 原生✅ (转换)
Skill✅ 原生✅ (共用)
Command✅ 原生✅ (软链接)
MCP Server✅ 原生✅ (转换)
Hook✅ 原生

详细的插件兼容性说明请参考:插件管理 - 运行时兼容性

模型支持

模型来源Claude CodeCortexaOpenCode
系统模型
组织配置模型

选择建议

推荐 Claude Code

  • 需要完整功能体验
  • 使用斜杠命令
  • 需要交互式问答
  • 标准开发场景

推荐 Cortexa

  • 生产环境使用
  • 需要稳定可靠的服务
  • 企业级部署需求
  • 需要完整的 Hook 支持

推荐 OpenCode

  • 开发测试环境
  • 需要自定义扩展
  • 熟悉 Claude Code 生态
  • 需要容器化隔离

技术细节

插件转换机制

当使用 OpenCode 运行时时,Claude Code 格式的插件会自动转换:

Agent 转换:

  • frontmatter 字段映射(name, description → OpenCode 格式)
  • capabilities、skills、tools 转为 Markdown 文本
  • 添加 mode: primary 标记

Skill 共用:

  • 两种运行时使用相同的 SKILL.md 格式
  • 无需转换,直接扫描 /plugins 目录

Command 软链接:

  • 创建软链接指向原始 commands 目录
  • OpenCode 通过 followSymlinks 扫描

MCP 转换:

  • Claude Code 格式:{ "mcpServers": { "name": { "command": "...", "args": [...] } } }
  • OpenCode 格式:{ "type": "local", "command": ["...", "..."] }

Hook 不支持:

  • OpenCode 不支持 Hook 机制
  • 包含 Hook 的插件会跳过 Hook 组件并记录警告

配置文件生成

OpenCode 运行时启动时会生成配置目录:

opencode-config/ ├── opencode.json # 合并配置(providers, mcp, permission) ├── AGENTS.md # 系统提示词 + Workspace guideline + Agent prompts ├── agents/ # 转换后的 Agent 文件 └── commands/ # Command 软链接

常见问题

Q:切换运行时会丢失历史对话吗?

A:不会。历史对话保持不变,只是新会话使用新运行时。

Q:不同运行时的模型列表为什么不同?

A:每种运行时有独立的模型配置,系统模型在所有运行时可用。

Q:插件在不同运行时表现一致吗?

A:核心功能一致,但 Hook 仅在 Claude Code 运行时生效。

相关文档

运行时对比 | Knodo 文档