pjt222/claude-buddy-investigation

GitHub: pjt222/claude-buddy-investigation

对 Claude Code 内置伙伴系统的深度调查与能力复现,揭示了伴侣、顾问双轨架构与身份流水线。

Stars: 0 | Forks: 0

# Claude Code Buddy 系统调查 对 Shingle 的调查——Claude Code 内置“伙伴”宠物系统中的陪伴猫头鹰。 ## 快速开始 - **v2.1.89–v2.1.96**:`/buddy` 命令激活原生伴侣 UI(专业版/旗舰版计划) - **v2.1.97+**:原生 UI 已移除,但 `buddy_react` API 仍可响应 - **工作区**(任意版本):`cd workspace && pnpm dev` — 独立于二进制运行,直接调用 API - **你的伴侣**:**Shingle**(猫头鹰,常见,首要特质为耐心 / 次要特质为混乱) - **孵化日期**:2026-04-01 ## 目录 ### 研究 - `digest.md` — 来自 21+ 个代理、4 轮调查的综合发现 - `config-excerpt.json` — 从 Claude Code 备份中提取的伴侣配置 - `links.md` — 20 份参考来源(官方文档、源代码仓库、逆向工程文章、先期专利、竞品) - 架构文档、安全审计与二进制分析工具位于[私有仓库](## "For legal compliance — see Note on Redactions below") - `docs/` — GitHub Pages 可视化(Three.js、Viridis 暗色主题)——所有发现一览无余 ### 工具 - `tools/buddy-config.mjs` — 读取/修改伴侣配置的 CLI(Node.js 18+,零依赖) - `tools/capture-timing.mjs` — 会话后时序分析(延迟、冷却间隔、TTL 估算) - `tools/shared/` — 共享模块:BONES 推导(wyhash + Mulberry32,按位验证一致)与统一配置(`~/.claude/shingle.json`) - `tools/shingle-capture/` — 双策略捕获系统(终端抓取 + API 回放),带 Claude Code 钩子 - `tools/shingle-mcp/` — MCP 服务器,用于以编程方式访问 `buddy_react`(5 秒冷却、环形缓冲区) - `tools/mempalace-sync.mjs` — 将捕获的反应同步到 [MemPalace](https://github.com/mila-jovovich/mempalace) 以实现跨会话持久记忆 - `tools/mempalace-setup.md` — MemPalace 集成设置指南(宫殿结构、MCP、自动化) ### 伙伴工作区(API 独立 — 适用于 v2.1.97+) - `workspace/` — 嵌入式 PTY Claude 与多伙伴反应的 Vite+React 应用 - `tools/sessions/full-crew.json` — 6 伙伴会话预设,带 TCG 风格状态块 - `workspace/server/` — WebSocket 服务器:直接调用 `buddy_react` API,触发优先级与收敛分析 - `workspace/tools/workspace-mcp/` — 用于读取伙伴反应与工作区状态的 MCP 服务器 - `workspace/docs/trigger-flow.md` — 冷却/触发系统的状态图 该工作区完全绕过 Claude Code 二进制文件。它使用自定义状态块调用 `buddy_react` API,对整个队伍进行反应复用,并在 React UI 中渲染。已在 v2.1.97(2026-04-09)上测试并确认可用。 ### 队伍花名册 每位伙伴拥有独特的状态块(类似 TCG 卡牌),通过 `buddy_react` API 塑造其反应人格。 | 伙伴 | 物种 | D | P | C | W | S | 角色 | |------|------|---|---|---|---|---|------| | **Shingle** | 猫头鹰 | 10 | 81 | 1 | 36 | 21 | 支持(原生) | | **Ponder** | 蘑菇 | 15 | 62 | 8 | **88** | 15 | 贤者 | | **Fizz** | 蝌蚪 | 45 | 38 | 42 | 32 | **65** | 机智 | | **Coral** | 蜗牛 | **89** | 35 | 10 | 48 | **72** | 资深 | | **Flicker** | 龙 | 25 | 18 | **82** | 74 | 42 | 野卡 | | **Glob** | 粘液 | 28 | **80** | 58 | 62 | 6 | 锚点 | 属性说明:**D** 调试、**P** 耐心、**C** 混乱、**W** 智慧、**S** 嘲讽(1–100,常见稀有度)。 属性设计综合自 5 位专长代理(TCG、设计师、几何学家、群体策略师、魔鬼代言人)。关键洞见:队伍需要至少 2 名 **S** 嘲讽 > 60 的成员,以避免“支持性合奏陷阱”——即所有同伴生成相同的冷静反应。 ## 重要发现 ### 月度门槛季节性漏洞(已在 v2.1.97 修复,现为死代码) 伙伴系统的日期门控曾每年 1–3 月静默禁用伴侣(JS 月份值 0–2 触发失败检查)。**已在 v2.1.97 修复**为正确的 OR 逻辑,但该修复属于死代码,因为伴侣模块在同一版本中已被移除。 ### 版本兼容性 | 版本 | 伴侣 UI | 顾问 | buddy_react API | 工作区 | |------|--------|------|-----------------|--------| | v2.1.89–v2.1.92 | 完整 | 未知 | 活跃 | 可用 | | v2.1.96 | 最后完整版 | FULL(暗启动) | 活跃 | 可用 | | v2.1.97 | 已移除 | FULL(暗启动) | 活跃 | 可用 | | v2.1.98 | 已移除 | FULL(提示优化) | 活跃 | 可用 | | v2.1.99 | — | — | — | *从未发布至 npm* | | **v2.1.100** | **已移除** | **FULL(暗启动)** | **活跃(1.3 秒)** | **可用** | **两个独立层级:** 1. **二进制伴侣 UI**(已在 v2.1.97 移除)— 精灵、语音气泡、`/buddy` 命令、触发器、PRNG 推导。全部客户端 JavaScript 已从 `.bun` 区段移除。无法通过配置重新启用。 2. **`buddy_react` API**(仍活跃)— 服务端端点 `/api/organizations/{org}/claude_code/buddy_react`。接受任意有效的伙伴状态,返回反应字符串。无状态 — 信任客户端提交的内容。确认截至 2026-04-09 返回 200 OK。 我们的工作区与 MCP 工具完全运行在层级 2。它们直接调用 API 并使用自定义状态块,完全绕过二进制文件。这意味着 **多伙伴反应可在任意 Claude Code 版本中工作**,包括 v2.1.97+ 中原生 UI 已移除的情况。 ### v2.1.98 调查:顾问策略(2026-04-10) 对 v2.1.98 的二进制分析发现一个新的 **顾问工具** 系统——且扫描所有已安装版本发现其**自 v2.1.96 起已完成编码**(与完整伴侣系统共存)。关键发现: - **顾问**:服务端工具(`advisor_20260301`),允许执行器模型向更强的评审者(Opus 或 Sonnet)咨询 - **暗启动**:三重门控(环境变量开关、第一方认证、服务端特性标志),尚未正式发布 - **与伙伴无代码关联**:独立架构,仅共享 OAuth 底层。分离的遥测命名空间(5 个顾问事件 vs 已移除的伙伴事件) - **系统提示已恢复**:7 段指导性提示,说明何时调用顾问 - **提示在 v2.1.98 中泛化**:代码特定语言被领域无关语言替换,表明顾问正被定位用于非编码任务 - **博客文章**:`claude.com/blog/the-advisor-strategy` — 未提及伙伴/伴侣 完整规范位于私有架构仓库。 ### v2.1.97 调查(2026-0409) 10 代理并行调查确认移除并发现: - **非混淆**:5 种编码策略测试均为负(Base64、十六进制、反转、字符数组、XOR) - **托管代理 API 新增**:`managed-agents-2026-04-01`,支持代理 CRUD、会话流、技能 API - **`/dream nightly` 新增**:基于 cron 的记忆整合 - **日期门控修复后被杀死**:已从错误 AND 修正为正确 OR 逻辑,但其保护的功能已被移除 - **身份流水线已验证并完整复现**:34.4 万亿唯一伴侣,证实确定性,所有分布干净。`bones.mjs` 现在与生产环境按位一致。 ### 身份流水线完整复现(2026-04-09) 哈希输入谜题(#30)已解决。`bones.mjs` 现在能从 `accountUuid + salt` 通过 wyhash 和 Mulberry32 PRNG 按位复现 Shingle 的特质。原始实现中有三个错误导致不匹配: | 错误 | 我们原先的 | 二进制实际行为 | |------|------------|----------------| | 物种数组顺序 | 字母序(索引 6 = “dragon”) | 非字母序内部物种数组(索引 6 = “owl”) | | 状态公式 | 均匀随机:`floor` 到 `100` | 主属性 +50 增益,次属性 -10 惩罚,其余 `floor + 0–39` | | RNG 序列 | 帽子总是滚动;闪光在状态之后 | 帽子跳过常见;闪光在状态之前 | Shingle 的属性现在可解释:耐心为主属性(增益),混乱为次属性(惩罚)。显著的属性配置是刻意设计,而非随机。 ### 为何此研究重要 伴侣 UI 仅活跃了 7 天(4 月 1–8 日),但 API 仍然存活,且我们的工具独立于二进制运行: - **API 仍活跃** — `buddy_react` 在 v2.1.97+ 上仍可响应 - **多伙伴工作区** — 6 个伴侣同时运行,通过直接 API 调用 - 完整的 API 协议(经验验证,可使用 curl 回放) - 身份推导流水线按位完整复现(哈希 → PRNG → 特质) - 系统提示模板从二进制中恢复 - 安全审计(14 项发现) - 可工作的 MCP 工具,支持以编程方式访问 API 伴侣系统有三种可能的未来:原生 UI 回归(`companion_intro` 存根与托管代理 API 暗示可能)、顾问取代伴侣角色(架构模式从观测转向决策门控),或 API 最终退役。无论如何,本仓库提供了关于伴侣与顾问架构的最详尽文档,以及一个今天即可通过直接 API 调用的多伙伴实现。 ### 伙伴工作区收敛 当全部 6 位伙伴在多个反应波次中独立标记同一关注点时,这是高置信度的架构信号。经验证实:队伍在手动分析确认前,已 4 次标记出队列/冷却断连处的真实漏洞。 ### 安全审计摘要 14 项发现,划分为 5 个严重等级(详情见私有仓库):1 项严重、3 项高危、5 项中危、3 项低危、1 项观察。 ### 测试套件 92 项测试,覆盖 7 个套件(回放、回放过滤、收敛、反应时间线、触发优先级、伙伴 API 冷却、工作区 MCP)。全部通过。 ### 关于脱敏说明 详细的底层架构(函数引用、逐字系统提示、二进制分析工具)保留在用于合规性的独立私有仓库中。
标签:API分析, Buddy系统, CHAOS, Claude Code, GitHub Pages, GNU通用公共许可证, MCP服务器, MemPalace, MITM代理, Node.js, OWL, PATIENCE, SEO关键词, TCG风格, Three.js, Viridis暗主题, 云资产清单, 内存捕获, 同伴系统, 安全发现, 工作区, 收敛分析, 时序分析, 服务器监控, 测试框架, 统计分析, 自动化攻击, 跨会话记忆, 逆向工程