🏠 home › journal › 2026-04-30

2026-04-30 变更日志

摄取 claude-desktop-buddy vs sentino-iot-sample 架构对比

来源raw/notes/2026-04-30-claude-desktop-buddy-vs-sentino-iot-sample-architecture.md(基于本地两份代码的逐文件对比;buddy = Anthropic 2026-04-20 开源 anthropics/claude-desktop-buddy,公开;sentino-iot-sample = sentino-jp/sentino-iot-sample,private,本地路径 ~/local/Conversational-AI-IOT-Sample/ 保留旧名因 fork 自 Shengwang-Community/Conversational-AI-IOT-Sample

新建页面

关键知识提取

  1. Anthropic 两次执行"协议优先"路线,buddy 是第二次复刻 — 第一次是 mcp-protocol 软件协议层(开放协议 + 自家 Claude Code 是最佳实现),buddy 是硬件协议层的同一套路(开放 BLE 协议 + M5StickC Plus 是参考固件)。这升级了 mcp-protocol "标准开放,最佳实现封闭"判断的证据级——从单一案例升到两次独立执行的同一方法论,是结构性而非个案性的 Anthropic 策略 → 与 mcp-protocol 的连接:在"与 Harness Engineering 的关系"段后新增"buddy 是同一方法论在硬件场景的复刻(2026-04-30)"段(含 MCP / buddy 套路对照表 + Anthropic 协议优先派双案例证据 + 与 platform-layer-collapse 模型公司吞应用层趋势的关系)

  2. buddy 用 Nordic UART Service 是"反发明 UUID"姿态的具体形态 — 代码注释明说:"every BLE serial example uses these, so existing tools (nRF Connect, bluefy, Web Bluetooth examples) can talk to us without custom UUIDs"。这是"用别人已用的名字而不是发明新名字"的反向应用——很多硬件厂商出于"差异化 / 平台锁定"会发明新 UUID(比如 sentino-iot-sample 用 0x1910 + 0xA101),buddy 选业界事实标准是明确的反向选择,让 maker 用业界工具能直接 talk → 与 naming-shapes-thinking 的连接:是"命名塑造思维"的反面应用——选别人已用的名字降低认知负担也降低生态门槛;buddy 是该原则在硬件 UUID 选型上的具体形态

  3. buddy 加密委托 OS BLE 协议栈是工程上更省力的方案LE Secure Connections + MITM + Bond 模式让 OS 协议栈帮做了所有事(密钥协商 / 防重放 / 抗 MITM / Bond 持久化 / AES-CCM 链路加密),应用层只需 mark 特征 ENCRYPTED + 选 SC_MITM_BOND 模式 + 显示 6 位 passkey。对比之下 sentino-iot-sample 的"应用层声称 AES-ECB 但实际工具走 plaintext"反而更复杂且实际不安全——web-app/js/app.js:370 注释明说 "Skip encryption, send plaintext"。Sentino 生产固件如果要启用 BLE 加密,应当评估直接走 LE Secure Connections + Bond 路线 → 与 ble-provisioning 的连接:在"相关概念"前新增"另一种 BLE 协议设计参考"整段(含 5 行维度对比表 + NUS vs V1 帧的适用场景判断 + 加密姿态对照);为 Sentino 生产固件加密路线决策提供工程上的反向参照

  4. 设备身份的有/无是云存在性的直接函数 — buddy 没云所以不需要身份(OS BLE bond 即够),sentino-iot-sample 有云所以必须三元组 + HMAC(云端要鉴权设备)。这不是工程选择对错,是云存在性的结构性后果。任何想做"开放硬件协议但又有云能力"的厂商需要回答的关键问题:身份系统怎么设计才不绑死客户。Anthropic 的答案是"不做云,所以不用回答"——回避问题;Sentino 必须回答(三元组 / HMAC / 自家账号体系全打 Sentino 烙印),平台中立性弱 → 与 sentino-iot 的连接:本判断的具体含义放在新增的"对照样本"小节里(不在 sentino-iot 主架构段插入);与 iot-platform-fundamentals 的连接:buddy 因为没云所以不在该体系内,是"反例对照"——可以作为 IoT 平台 vs 无平台 BLE 设备的边界判断

  5. buddy 的 CONTRIBUTING.md "反贡献"姿态降低 maintenance 成本 — 31 行明说"best contribution is a fork",明确拒收新功能 / 新板移植 / refactor / 依赖升级。开源项目最大的成本通常不是写代码,是审 PR + 拒绝功能 + 兼容老用户。buddy 直接说"fork it",把这部分成本完全推开。Anthropic 知道自己不想长期维护一个固件项目的清醒判断 → 这是 Anthropic 的 maintenance 成本管理策略,单独不构成 wiki 节点(是工程 ops 经验),但放在 buddy 概念页 take-away 中

  6. 两种"BLE + 设备"哲学没有谁对谁错——商业模式决定 — 协议优先派(buddy / MCP)省固件复杂度但需要协议本身有商业价值(Anthropic 模型才是赚钱来源);平台优先派(sentino-iot / Tuya)省客户决策但必然需要厂商持续维护整链路(FAE / 售后 / 多客户配置)。Sentino 选平台优先并非反 best-practice——是商业模式决定的。但 web-app 配网工具可以学 buddy "REFERENCE.md 是契约"姿态,把 BLE V1 帧明确写成对外协议文档(已部分做到 raw/snippets/iot-docs/ref-ble.md),让客户能自己 fork 配网工具 → 与 sentino-iot 的连接:在"经验教训"段后新增"对照样本:claude-desktop-buddy(协议优先派)"整段(含 7 行维度对照表 + 商业模式决定哲学的判断 + 对 Sentino web-app 配网文档对外开放的具体启示)

更新页面

事实核查记录

与同期 wiki 的时点关系

元观察

待办