资讯详情

资讯详情

Duel-Agents单体仓库架构全景:一文读懂core、cli、sdk、integrations与python五大模块

【免费下载链接】Duel-AgentsCLI, SDK, and IDE plugins for Duel Agents项目地址https://gitcode.com/gh_mirrors/du/Duel-Agents点击查看免费下载Duel-Agents 是一个CLI、SDK 与 IDE 插件一体的单体仓库monorepo为 Claude Code、Cursor、Codex CLI、OpenClaw 等 AI 编程工具提供统一的模型路由层——每条提示词都会被送往多个模型最终只为你能赢的最便宜答案付费。这篇全景指南带你在 10 分钟里读懂 Duel-Agents 的五大模块packages/core、packages/cli、packages/sdk、integrations、python以及每个模块的职责边界、核心导出与源码入口看完即建立完整的架构地图 ️。 先看全局单体仓库目录地图packages/core duel-agents/core 校验、env 映射、连通性检查 packages/cli duel-agents/install 安装器 CLI packages/sdk duel-agents/sdk TypeScript API 客户端 integrations/ Claude 插件、Cursor 技能、OpenClaw 技能 python/ langchain-duel、llama-index-llms-duel templates/ 各工具 env 与配置示例根 package.json 声明了 npm workspacespackages/*。这意味着✅统一安装一次npm install装齐全部 TypeScript 包包之间直接互引用✅统一构建npm run build按依赖顺序core → sdk / cli编译✅统一测试npm test在全部 workspace 中执行各模块都配有单元测试。 模块一packages/core —— 地基层packages/core包名duel-agents/core是整个仓库的共享能力底座它不面向终端用户而是为 CLI 安装器和 SDK 提供通用逻辑。核心职责导出作用validateApiKey(key)校验duel_prefix_secret密钥格式getProxyUrl()解析代理 URL读取DUEL_PROXY_URL默认公共代理getEnvForTarget(target, key)为指定工具生成 env 变量映射buildOpenClawPatch(key)生成 OpenClaw 配置补丁且不覆盖已有默认模型checkConnectivity(key)实时连通性检查实现集中在 config.ts并通过 index.ts 对外统一导出。简单说凡是密钥怎么验、URL 怎么解析、每个工具该写哪些环境变量的问题答案都在 core。 模块二packages/cli —— 一条命令装完所有工具packages/cli包名duel-agents/install是面向用户的安装器一条命令即可把 AI 工具接入 Duel 代理export DUEL_API_KEYduel_yourprefix_yoursecret npx duel-agents/install all # 全部工具 npx duel-agents/install doctor # 自检密钥格式 实时鉴权各安装目标及其效果目标安装效果claude-code写入~/.claude/.envAnthropic 兼容cursor写入项目.env并复制 Duel 技能codex写入项目.envOpenAI 兼容openclaw补丁~/.openclaw/openclaw.json密钥写入~/.openclaw/.envall依次执行所有目标最后自动跑doctor几个值得注意的工程细节doctor子命令校验密钥格式并向真实 API 发起鉴权请求是排障第一站实现在 install.ts 的runDoctor()中资产自动打包构建时 copy-integrations.mjs 会把仓库根的integrations/复制进包内。这样用户npm install duel-agents/install后无需再 clone 本仓库技能文件随包分发多路径兼容resolveIntegrationPath()同时兼容 npm 发布版与 monorepo 开发版两种目录布局。 模块三packages/sdk —— 双协议 TypeScript 客户端packages/sdk包名duel-agents/sdk让任意 TS/JS 应用直接调用 Duel API。它的最大特点是一套客户端、两种协议——同时兼容 OpenAI 的chat/completions与 Anthropic 的messages端点import { DuelClient } from duel-agents/sdk; const duel new DuelClient({ apiKey: process.env.DUEL_API_KEY! }); // OpenAI 风格 const chat await duel.chat.completions.create({ model: duel-auto, messages: [{ role: user, content: 简述并发 Agent。 }], }); // Anthropic 风格 const msg await duel.messages.create({ model: duel-auto, max_tokens: 1024, messages: [{ role: user, content: Hello }], });配置项与错误处理约定见 client.tsapiKey必填baseUrl默认https://duelagents.com/v1可注入自定义fetch便于测试与代理timeoutMs默认 60000ms401/403 抛出DuelAuthError其余非 2xx 抛出携带status与body的DuelApiError错误类型定义在 errors.ts暂不支持流式stream请传false或省略。 模块四python/ —— LangChain 与 LlamaIndex 官方集成python/ 目录托管两个独立发布的 Python 包让主流 Agent 框架零改造接入 Duel包核心类一句话用法langchain-duelChatDuelllm ChatDuel(modelduel-auto)llama-index-llms-duelDuelLLMllm DuelLLM(modelduel-auto)共同点默认模型duel-auto由路由器自动挑模型也可传具体模型名如gpt-4o-mini定向路由默认代理https://duelagents.com/v1读取环境变量DUEL_API_KEYlangchain-duel基于langchain-openai构建并支持流式输出核心实现在 chat_models.pyLlamaIndex 侧实现见 base.py。 因为 Duel 代理完全兼容 OpenAI 协议其实不装这两个包直接用ChatOpenAI指向 Duel 代理也能工作——官方包只是帮你预置了合理默认值。 模块五integrations/ —— 三大 IDE/CLI 插件资产integrations/ 是各工具的人格化资产按工具分目录组织integrations/ ├── claude-plugin/ Claude Code 插件 ├── cursor/ Cursor 技能 └── openclaw/ OpenClaw 技能 provider 配置Claude Code 插件integrations/claude-plugin/包含引导式设置命令 setup.md在 Claude Code 中执行/duel-agents:setup与技能 SKILL.mdCursor 技能SKILL.md由安装器自动复制到.cursor/skills/duel-agents/OpenClaw 技能与配置SKILL.md 加上 provider 定义 duel-provider.json。这部分内容与packages/cli的关系是源与副本integrations/是唯一事实源CLI 打包时被复制进 npm 包见上节。️ 附赠templates/ 与各模块关系速览根目录 templates/ 是各工具的手动配置参考env.claude-code.example、env.cursor.example、env.codex.example、env.openclaw.example、openclaw.duel.json5 与 cursor-models.override.md。当安装器不适用、需要手动配置时对照这些模板填写即可。五大模块的协作关系一图看懂┌──────────────────────────────┐ │ packages/core │ 密钥校验 / URL 解析 / env 映射 └──────────┬─────────┬─────────┘ 依赖 │ │ 依赖 ┌──────────▼──┐ ┌───▼───────────────┐ │ packages/cli │ │ packages/sdk │ │ 安装器 CLI │ │ TS API 客户端 │ └──────┬──────┘ └───────────────────┘ 打包复制 │ ┌──────────────▼──────────────┐ │ integrations/ templates/ │ 插件资产 配置示例 └─────────────────────────────┘ python/独立生态langchain-duel llama-index-llms-duel模块npm / pip 包名一句话定位文档入口coreduel-agents/core共享地基校验与映射READMEcliduel-agents/install一键安装器 doctor 自检READMEsdkduel-agents/sdk双协议 TS 客户端READMEintegrations随 cli 分发Claude / Cursor / OpenClaw 资产Claude 插件 READMEpythonlangchain-duel、llama-index-llms-duelPython 框架官方集成LangChain README 小结3 句话记住 Duel-Agents 架构core 管规则校验、URL、env 映射cli 管安装一键接入各工具并自检sdk 管调用双协议客户端integrations 与 templates 是静态资产前者随 cli 打包分发后者供手动配置参考python 目录独立于 npm workspace覆盖 LangChain 与 LlamaIndex 两大框架生态。上手只需三步git clone https://gitcode.com/gh_mirrors/du/Duel-Agents→npm install→npx duel-agents/install doctor验证连通。开发贡献可参考 CONTRIBUTING.md版本演进记录见 CHANGELOG.md。赞分享【免费下载链接】Duel-AgentsCLI, SDK, and IDE plugins for Duel Agents项目地址https://gitcode.com/gh_mirrors/du/Duel-Agents点击查看免费下载相关推荐Base代码库全景图一文读懂Monorepo架构与10大核心crateBase代码库全景图一文读懂Monorepo架构与10大核心crate Base 代码库 base repo是一个用 Rust 编写的 MonorepoFlutter Cache Manager测试与调试确保缓存稳定性的完整指南Flutter Cache Manager测试与调试确保缓存稳定性的完整指南 Flutter Cache Manager是Flutter生态系统中功能强大的缓缓存抽象移动开发blessed-contrib Picture 组件教程如何将 PNG 图片转换为终端 ASCII 艺术blessed contrib Picture 组件教程如何将 PNG 图片转换为终端 ASCII 艺术 blessed contrib 的 PictureCLI数据可视化上一篇PyTorch Lightning 1.8 升级 2.0 迁移指南Regular User 篇API 变更与替换方案全解析下一篇Oh-My-OpenAgent 记忆压力预算契约解析Dream Worker 的 Token 预算注入与 budget_not_met 完成校验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →