运行时对比
了解不同 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 插件
- 灵活的扩展能力
运行时切换
切换方式
在对话界面的运行时选择器中切换:
- 点击当前运行时名称
- 从下拉列表选择目标运行时
- 新会话将使用选定的运行时
切换影响
- 切换运行时会开始新会话
- 历史会话保持原运行时
- 可用模型列表可能不同
功能对比
核心功能
| 功能 | Claude Code | Cortexa | OpenCode |
|---|---|---|---|
| 文本对话 | ✅ | ✅ | ✅ |
| 代码生成 | ✅ | ✅ | ✅ |
| 文件操作 | ✅ | ✅ | ✅ |
| 工具调用 | ✅ | ✅ | ✅ |
| 会话恢复 | ✅ | ✅ | ✅ |
| 流式响应 | ✅ | ✅ | ✅ |
| 权限模式 | ✅ | ❌ | ✅ |
| 斜杠命令 | ✅ | ❌ | ✅ |
| 交互式问答 | ✅ | ✅ | ✅ |
插件支持
| 组件类型 | Claude Code | Cortexa | OpenCode |
|---|---|---|---|
| Agent | ✅ 原生 | ✅ | ✅ (转换) |
| Skill | ✅ 原生 | ✅ | ✅ (共用) |
| Command | ✅ 原生 | ❌ | ✅ (软链接) |
| MCP Server | ✅ 原生 | ✅ | ✅ (转换) |
| Hook | ✅ 原生 | ✅ | ❌ |
详细的插件兼容性说明请参考:插件管理 - 运行时兼容性
模型支持
| 模型来源 | Claude Code | Cortexa | OpenCode |
|---|---|---|---|
| 系统模型 | ✅ | ✅ | ✅ |
| 组织配置模型 | ✅ | ✅ | ✅ |
选择建议
推荐 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 运行时生效。