# WorkBuddy-AI-实现分析报告 > 历史静态分析报告。SDK 依赖、环境变量或字符串的存在不能单独证明主循环来源、血统或运行时调用。相关架构结论需 REA 调用追踪与运行时证据复核;现行可行性判断见 `1比1复刻重新评估-2026-10-15.md`。 # WorkBuddy AI 实现分析报告 **分析对象**:本机安装的腾讯 WorkBuddy 桌面版(`C:\Users\Administrator\AppData\Local\Programs\WorkBuddy`) **分析方法**:纯静态逆向(REA MCP `analyze_javascript_application` + 字符串证据提取 + 配置/依赖解析),未运行、未 hook、未联网抓包 **分析日期**:2026-10-14 --- ## 0. TL;DR WorkBuddy 的 AI 能力 = **一个本地 agent 引擎(**`@genie/agent-cli`**,Claude Code / CodeBuddy 血统)** + **Electron 桌面壳经 ACP 协议驱动它** + **云端多模型网关(OpenAI 兼容 **`/chat/completions`** + SSE 流式)** + **双层沙盒(Anthropic 开源 runtime + 腾讯自研 tsbx 驱动)** + **MCP / Skills / A2A 扩展体系**。 --- ## 1. 总体架构 ``` ┌─────────────────────────────────────────────────────┐ │ Electron 桌面壳(app.asar,主进程 + 渲染进程 + 原生插件) │ │ · workbuddy-editor-sdk(Office 文档编辑) │ │ · workbuddy-baas-v2(BaaS 扩展,esbuild) │ └──────────────────┬──────────────────────────────────┘ │ ACP (Agent Client Protocol) │ 本地 HTTP: /api/v1/acp, /api/v1/acp/connect ▼ ┌─────────────────────────────────────────────────────┐ │ Agent 引擎 @genie/agent-cli(cli/dist/,9.4MB 主 bundle │ │ codebuddy-lite-wb.mjs + 66 个懒加载分块) │ │ · bin: codebuddy / cbc / codebuddy-lowmem │ │ · daemon-supervisor(守护进程)+ windows-job(作业对象) │ │ ├─ Agent 循环 + 工具系统(约 30 种内置工具) │ │ ├─ 沙盒层(见 §5) │ │ ├─ 多模型适配层 @genie/model-compatibility │ │ └─ 团队协作 /api/v1/team/messages/send|read │ └──────────────────┬──────────────────────────────────┘ │ HTTPS Bearer Token + X-User-Id,路径前缀 /plugin ▼ ┌─────────────────────────────────────────────────────┐ │ 云端网关 www.workbuddy.cn(其余官方端点: │ │ wb.tencentbuddy.com / copilot.tencent.com / │ │ www.codebuddy.ai —— 同一引擎服务双品牌) │ │ · /chat/completions(OpenAI 兼容)+ text/event-stream │ │ · 模型路由在服务端:GLM / 混元 / DeepSeek / Qwen / │ │ Kimi / MiniMax / GPT / Gemini / Claude │ └─────────────────────────────────────────────────────┘ ``` --- ## 2. Agent 引擎:Claude Code 血统(硬证据) 引擎包名 `@genie/agent-cli`(内部代号 **genie**),但 bundle 里的字符串直接暴露了来源: | 证据 | 含义 | | --- | --- | | `CLAUDE_SESSION_ID`、`CLAUDE_PROJECT_DIR` | Claude Code 的标准环境变量原样保留 | | `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`、`CLAUDE_CODE_HOST_HTTP_PROXY_PORT`、`CLAUDE_CODE_HOST_SOCKS_PROXY_PORT` | hooks 与代理机制沿用 Claude Code 实现 | | `claude-sonnet-4-20250514`、`ANTHROPIC_API_KEY`、`anthropic-ratelimit-unified-reset` | Anthropic API 兼容层与限流头 | | `Claude-Code-Ide-Authorization` | IDE 集成握手协议同名 | | `anthropics/claude-plugins-official`、`CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA` | 插件体系直接兼容 Anthropic 官方插件市场格式 | | `@anthropic-ai/sandbox-runtime@0.0.17`、`AnthropicSandboxManager.initialize` | 沙盒直接采用 Anthropic 开源实现 | | bin 名:`codebuddy-code` / `codebuddy` / `cbc`;主 bundle 名 `codebuddy-lite-wb.mjs` | 腾讯 CodeBuddy 同源内核,WorkBuddy 是其 lite-wb 变体 | **结论**:WorkBuddy AI 的 agent 内核 = Claude Code 架构的腾讯分支(CodeBuddy CLI),叠加腾讯自有协议栈(galileo 遥测、agentdr SDK、ACC 产品配置体系)。 ## 3. Agent 循环与工具系统 - **循环原语**:依赖 `@openai/agents` + `@openai/agents-core` 0.5.2(OpenAI Agents SDK 提供 Runner/循环调度),上层是自研 genie 工作区包(`@genie/core` / `runtime` / `prompts` / `agent-provider` / `cbc-worker`)。 - **内置工具**(bundle 中出现的与对外暴露完全一致):`AskUserQuestion`(15)、`Grep`(12)、`Skill`(11)、`Glob`(10)、`DeferExecuteTool`(9)、`WebFetch`(9)、`WebSearch`(9)、`SendMessage`(8)、`NotebookEdit`(6)、`ToolSearch`(5)、`TaskCreate/Update/List/Get/Output`、`EnterPlanMode/ExitPlanMode`、`ImageGen/VideoGen/AudioTranscribe`、`show_widget`、`present_files`、`BrowserUse`、`BashOutput/KillShell`、`TodoWrite` 等。 - **循环防护**:`CBC_LOOP_GUARD_CONSECUTIVE_THRESHOLD`、`CBC_LOOP_GUARD_SEQUENCE_REPEATS`、`CBC_LOOP_GUARD_DISABLED` —— 检测 agent 连续重复动作的死循环保护。 - **多 agent 团队**:`CBC_TEAM_IMMEDIATE_DISPATCH` + `/api/v1/team/messages/send|read` —— Task 工具派发子 agent、消息互通。 - **进程模型**:`daemon-supervisor.cjs` 守护进程管理、`windows-job.cjs` 用 Windows Job Object 绑定子进程树(防孤儿进程)、`cbc-prewarm` 启动预热、`preload-lazy-chunks` 懒加载预热、`codebuddy-lowmem` 低内存模式(RSS 阈值触发 heap snapshot)。 ## 4. 模型层 - **本地不推理**。`@genie/model-compatibility` 只做多家 API 适配;实际模型选择/路由在云端网关按账号套餐决定。 - **调用协议**:OpenAI 兼容 `chat/completions`(17 处)+ `text/event-stream` SSE 流式(56 处)+ JSONL 本地流式记录(62 处)。 - **bundle 中可见的模型标识**:`hunyuan`(混元)、`deepseek`(含 `deepseek_flash_unavailable` 降级标记)、`qwen-token-plan(-cn/-individual)`、`kimi-k2.5`、`kimi-coding`、`minimax(-cn)`、`gpt-4.1`、`gpt-5`、`gemini`、`claude-sonnet-4-20250514`;多模态:`wb-asr` + `gpt-4o-mini-transcribe`(语音转写)、`hunyuan-image-v2.0-general-edit` / `hunyuan-image-v3.0`(图像生成/编辑)。 - 本会话由 GLM 驱动(服务端路由),与上述适配层结论一致。 ## 5. 沙盒与安全(双层) 1. **策略层**:`@anthropic-ai/sandbox-runtime`(Anthropic 开源),负责权限策略与审批流(`CBC_SANDBOX_APPROVAL_TIMEOUT_MS`),权限提升经本地 `/api/v1/permission-bridge/request`。 2. **执行层(腾讯自研,Windows)**:`cli/vendor/sandbox/5.8.5/` —— `tsbx.dll` + `tsbx_rules.json`(规则)+ `tsbxldr.dll`(加载器)+ `sandbox_ffi.dll` + `sandbox-center.exe`(中心进程)+ `betterleaks.exe`(泄漏检测)+ `sandbox-cli*.exe`。 3. **Shim 层**:`cli/vendor/shim/` —— agent 子进程的 fs/exec/python 全部经过 shim 代理:`node-brokered-fs-shim`(文件系统走 broker IPC)、`node-language-shim`、`sitecustomize.py`(Python 运行时注入)、`safe-delete` 体系(删除进回收站 `GENIE_TRASH_DIR`,含 bulk-guard 防批量误删)、`brokered-bin/safe-bin` 白名单命令目录。 ## 6. 扩展体系 - **MCP**:`@modelcontextprotocol/sdk@1.29.0`,配置在 `~/.workbuddy/mcp.json`(本次分析的 REA 即通过此机制接入)。 - **Skills**:`Skill` 工具 + A2A 扩展 `codebuddy.ai/a2a/extensions/skill-routing`;技能目录约定 `SKILL.md`(兼容 Anthropic Agent Skills 格式)。 - **A2A**:`@a2a-js/sdk`(agent-to-agent 协作);**ACP**:`@agentclientprotocol/sdk`(桌面 UI ↔ 引擎通信)。 - **消息通道**:`/api/v1/channels/wechat|wecom` + `qyapi.weixin.qq.com` 全套客服/群机器人 API(微信侧接入)。 - **插件**:`/api/v1/plugins/uninstall` 等本地 API + Anthropic 插件市场兼容。 ## 7. 部署与治理 - **部署变体**:`product.json` 一套引擎四份配置 —— `cloudhosted`(公有云)/ `selfhosted`(自托管)/ `ioa`(私有化)/ `internal`(内部),由 `ACC_PRODUCT_CONFIG_V2/V3` 环境变量切换。 - **认证**:腾讯云账号体系,Bearer Token + `X-User-Id` 头,`account-scoped-external-link` 类型,桌面端 id 为 `workbuddy-desktop`。 - **可观测**:`@tencent/galileo-node-sdk`(腾讯内部遥测)+ OpenTelemetry `/v1/traces`。 - **资源治理**:COS 加速桶 `acc-*.cos.accelerate.myqcloud.com`(资源分发)。 ## 8. REA 分析记录(诚实声明) - 第一次运行:worker 堆(1GB 默认)耗尽,失败。 - 第二次运行(6GB 堆 / 5 分钟超时):成功解析主 bundle —— 遍历 **2,238,569 个 AST 节点**、产出 **248 个 findings**、0 解析失败;语义图超出父级结果预算被截断,仅保留静态与模块级事实。 - 其余 66 个懒加载分块未逐一分析;`.mjs` 为压缩产物,原始模块名已丢失。 ## 9. 分析局限性 1. 静态分析不等于运行时行为——提示词全文、服务端模型路由策略、鉴权细节均在云端,本地不可见。 2. 无法从字节码确定引擎 fork 的确切基线版本。 3. app.asar 内的渲染进程 UI 逻辑未纳入本次范围(与"AI 如何实现"关系较小)。 --- ## 一句话总结 **WorkBuddy AI = Claude Code 架构的本地 agent 引擎(腾讯 genie/codebuddy 内核)+ 腾讯云多模型网关 + 自研 Windows 沙盒 + MCP/Skill/A2A 扩展生态;桌面 App 本身只是这个引擎的一个 ACP 客户端。**