资讯动态

多 Runtime 协同设计:Denova 如何统一 Native、Codex 与 Claude Code 三大 AI Agent Runtime

发布时间:2026/10/23 1:56:57 来源:尧图企业网站定制
【免费下载链接】denovaAn AI creative platform for novel writing and AI generated RPG, with built-in support for AI agents, Skills, subagent workflows, automations, image generation, and version control.项目地址https://gitcode.com/gh_mirrors/den/denova点击查看免费下载Denova 是一个面向小说写作与 AI 角色扮演游戏的一体化 AI 创作平台内置 AI Agents、Skills、SubAgent 协作与图像生成。它最特别的设计之一是同时支持Native 内置引擎、OpenAI Codex、Claude Code 三种 Runtime并让它们像同一个 Agent一样在同一个会话里无缝切换。本文带你拆解这套多 Runtime 适配之道。为什么需要多 Runtime 协同单引擎方案有一个天然局限模型能力、工具生态、权限模型都被绑定在某一家的实现上。Denova 的思路是——把执行引擎从业务 Agent 中彻底解耦让创作 Agent 不关心背后是谁在跑NativeDenova 自研内置引擎能力最完整支持 SubAgent 委派、目标模式等CodexOpenAI 的命令行智能体适合代码级任务Claude CodeAnthropic 的命令行智能体适合长文档创作。三种引擎共用同一套会话历史、同一套项目资料库、同一套版本管理切换引擎不会丢失任何上下文。三层架构配置层、适配层、宿主层整个适配体系可以清晰地分成三层这也是它易懂的关键。1️⃣ 配置层一次选择全程锁定Runtime 选择被建模为一个不可变的执行分支。在 config/agent_runtimes.go 中RuntimeSelection代表某个会话解析后固定的引擎配置而RuntimePreferences会保留未选中引擎的设置——你今天用 Codex 调好的模型参数明天切回 Native 再切回来配置都还在。更细致的是按角色分层的默认值IDE 模式、通用模式、互动故事模式各自独立保存偏好见AgentRuntimeSettings互不干扰。2️⃣ 适配层一个接口装下所有引擎所有外部引擎必须实现同一个Adapter接口定义在 internal/agents/runtime/external/adapter.gotype Adapter interface { Version() string Run(context.Context, Input, Host) (Result, error) }设计上有两个值得学习的点Input只带公开对话内容历史从规范会话日志重建工具调用参数、私有推理链一律不跨引擎泄露Host回调执行工具引擎想调工具必须回到 Denova 侧由宿主记录、落盘、执行产品验收权始终在宿主手里引擎只是候选响应方。两个引擎走不同的底层协议但被统一翻译成了这个接口Codex 适配器通过 App Server 的 JSON-RPC 协议与codex进程通信一个进程内多路复用多个一次性线程实现见 internal/agents/runtime/external/codex/client.goClaude 适配器在本地起一个带随机令牌保护的 MCP 工具桥接服务把 Denova 的工具暴露给 Claude Code 调用实现见 internal/agents/runtime/external/claude/bridge.go。3️⃣ 宿主层跨平台的找得到、跑得起来外部 CLI 工具的安装形态千奇百怪internal/hostruntime包专门解决发现与启动问题可执行文件发现internal/hostruntime/codex.go 和 internal/hostruntime/claude.go 不依赖 shell 包装脚本。例如在 Windows 上npm 安装的.cmdshim 无法直接交给进程启动器Denova 会深入node_modules解析出真实的平台二进制甚至兼容被跳过的 postinstall 场景登录 Shell 环境快照GUI 程序启动时的 PATH 往往和你终端里不一样。internal/hostruntime/environment.go 会在启动时一次性捕获登录 Shell 的导出环境带随机标记防注入、4MB 上限、过滤BASH_ENV等危险变量让 Agent 进程拿到和用户终端一致的环境系统代理感知internal/hostruntime/proxy.go 自动读取操作系统代理设置并合并进引擎进程环境同时保留localhost直连日志中永不打印含凭据的代理 URL。引擎切换如何做到安全无冲突切换引擎听起来简单实则是并发问题旧引擎可能还在跑新引擎的会话还没准备好。Denova 的答案在 internal/agents/runtime/engine_switch.go准入锁admission lock所有引擎选择变更与执行最终提交共用同一把读写锁。变更持写锁执行提交持读锁——准备阶段可以并行但最后一步要么看到旧选择、要么看到新选择绝不会看到半切换状态切换前必须空闲目标引擎的所有操作状态必须是IdleNative 侧也要先释放空闲资源否则返回操作进行中错误可用性预检切换前对目标引擎做一次Acquire试连接验证可执行文件存在、登录状态正常、所选模型与 effort 真实可用任何一步失败都不会产生配置写入。引擎的健康状态not_installed/incompatible/unavailable/ready统一收敛到Engines注册表的Catalog()投影中前端只消费投影不直接理解任何一家 CLI 的细节——相关实现见 internal/agents/runtime/engines.go 与 internal/agents/runtime/engine_catalog.go。能力差异的透明化Capability 投影不同引擎能力天然不对等Denova 选择不藏着掖着而是把差异声明成一份能力清单。在engine_catalog.go中EngineCapabilities声明了各引擎是否支持询问用户、取消、委派 SubAgent、目标模式、排队、中途转向、暂停等操作能力NativeCodex / Claude询问用户 / 取消 / 暂停✅✅SubAgent 委派✅❌目标模式IDE / 通用✅✅互动故事除外上层 UI 直接消费ForAgent(kind)的投影结果某个能力在当前引擎下不可用时自动置灰而不是在运行时报错。安全边界沙箱与最小持久化外部引擎能跑命令就意味着安全面扩大Denova 从两端收口Codex 沙箱三档read-only、workspace-write默认、danger-full-access见 config/agent_runtimes.go。沙箱属于会话而非主机路径主机绝对路径永远不会写进这份设置最小持久化Codex 的~/.codex凭据目录、Claude 的本地令牌、引擎会话 ID 全部属于主机本地状态绝不复制进项目数据或可移植配置文件Denova 自己的规范日志才是唯一的事实来源外部引擎状态是可随时丢弃的缓存断线后按日志恢复即可。给开发者的启示 Denova 的多 Runtime 协同设计浓缩成三条可复用的经验稳定内核可插拔引擎业务逻辑会话、日志、验收、恢复永不依赖具体引擎引擎只实现一个小接口不可变选择 准入锁把配置变更和执行提交放进同一临界区并发下不会互相撕裂能力声明而非运行时试错用 Capability 投影让 UI 和调用方提前知道这里做不到什么。如果你正在构建自己的 AI Agent 产品或者想体验写小说时随时换引擎的完整流程Denova 的这套源码config/、internal/agents/runtime/、internal/hostruntime/是很好的参考起点。赞分享【免费下载链接】denovaAn AI creative platform for novel writing and AI generated RPG, with built-in support for AI agents, Skills, subagent workflows, automations, image generation, and version control.项目地址https://gitcode.com/gh_mirrors/den/denova点击查看免费下载相关推荐CodePilot 多 Runtime 兼容过滤Claude Code / Native / Codex 三层路由契约全解CodePilot 多 Runtime 兼容过滤Claude Code / Native / Codex 三层路由契约全解 本文基于 CodePilot 仓库人工智能AI 应用AI Agent交互助手MCP Clients本地部署同一份skill跨runtime实测website-rebuild-skill如何在Claude Code与Codex跑通全管线同一份skill跨runtime实测website rebuild skill如何在Claude Code与Codex跑通全管线 website rebuil架构深剖Denova 如何用可嵌入的 Native Agent Runtime 驱动创作全场景架构深剖Denova 如何用可嵌入的 Native Agent Runtime 驱动创作全场景 Denova 是一个面向小说写作与 AI 角色扮演游戏的 AI上一篇让React-Bootstrap应用飞起来Lighthouse与React DevTools性能调优指南下一篇终极TruffleHog性能分析从基准测试看百万行代码扫描效率优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑