Nexting设备协议SPEC详解:9大BLE GATT Profile如何精确控制AI Agent的批准、状态与旋钮

发布时间:2026/10/11 11:12:17
Nexting设备协议SPEC详解:9大BLE GATT Profile如何精确控制AI Agent的批准、状态与旋钮
【免费下载链接】nextingRemote control for Claude Code, Codex, Grok, and Cursor on Mac or PC. View sessions, send tasks, and drive them remotely from your phone, PIN, or Ring. OpenClaw supported.项目地址https://gitcode.com/gh_mirrors/ne/nexting点击查看免费下载Nextingnexting是一个把物理设备变成AI Agent 遥控器的开源项目核心是 devices/SPEC.md 中定义的 Nexting 设备协议设备端通过一条加密蓝牙 BLE GATT 链路用9 大 BLE GATT Profile精确控制 Claude Code、Codex 等 AI Agent 的批准approval、状态status与旋钮rotary。下文带你从零读懂这套协议。什么是 Nexting 设备协议一句话理解蓝牙遥控 AI Agent一句话设备不直接连 Agent而是通过可信的 Nexting AppHost作为中转。Nexting 把整条链路拆成三个角色各自职责清晰、边界明确角色职责绝不出现在它身上设备DeviceBLE 外围 / GATT 服务端报告物理意图、渲染状态Agent 凭据、账号、会话路由可信 HostNexting AppBLE 中心 / GATT 客户端授权、校验、映射动作未声明 / 未认证的命令Agent 集成继续 Claude Code / Codex 会话来自配件固件的直连这种设备只管物理输入、App 管凭据与策略、Agent 管执行的分层让同一套公开协议既能跑在按钮、手环上也能跑在宏键盘、桌面面板上——固件里永远不落下 Agent 的私密逻辑。 想快速建立连接并跑通第一次交互直接看 devices/QUICKSTART.md。连接架构一个 GATT 服务、四个特征值Nexting 协议只暴露一个蓝牙 LE GATT 服务下挂四个特征值方向固定、职责明确规范见 devices/SPEC.md角色UUID属性方向Service6EADC0DE-0001-4A21-9C5E-1B7F3D9E42A0Primary Service—Downlink下行6EADC0DE-0002-4A21-9C5E-1B7F3D9E42A0WriteHost → 设备Uplink上行6EADC0DE-0003-4A21-9C5E-1B7F3D9E42A0Notify设备 → HostDevice Info6EADC0DE-0004-4A21-9C5E-1B7F3D9E42A0Read设备 → Host完整规范见 devices/docs/interfaces.md。Device Info是整条链路的名片设备连接后先读出这段 UTF-8 JSON声明自己支持的profiles、model、fw、容量上限以及statusSlots等能力字段。Host只向声明了某个 Profile 的设备发送对应流量未声明的 Profile 一律拒绝。数据帧Framing规则每条逻辑消息 一个紧凑 UTF-8 JSON 对象 一个换行字节0x0A一帧上限4096 字节任何兼容实现至少支持512 字节接收端快速失败fail closedUTF-8 非法、超限、断连都会清空当前帧绝不执行半截消息9 大 Profile 逐个拆解这是 Nexting 设备协议的精髓9 个独立协商的 BLE GATT Profile设备只声明自己实现的那些。下面按使用频率从高到低拆解。1. approval/1 —— 一键批准 / 拒绝核心整个协议的第一产品Agent 请求一次授权设备亮灯用户按下 Allow 或 Deny全程不用掏手机。{v:1,t:present,id:3bb7,sum:Allow git push?,opt:[allow,deny],ttl:30000}opt固定为[allow, deny]且顺序不变Allow 映射源选项 0、Deny 映射源选项 1ttl为相对毫秒1–300000过期自动作废一次只允许一个活跃请求新请求会先把旧请求标记为replaced 完整字段与合法/非法示例devices/protocol/vectors/approval-v1.json2. status/1 —— 最多 8 格 Agent 状态灯一条状态消息携带全部槽位的完整当前态整体替换、幂等、后写覆盖最多 8 格可带 64 字节短标签{v:1,t:status,agents:[{slot:0,state:thinking,label:fix login bug}]}六种状态idle、thinking、working、complete、needs_input、error。状态是易失的——断连、重启或新配对会清空所有已渲染槽位且畸形帧会被整帧丢弃保留上一次显示。向量示例见 devices/protocol/vectors/status-v1.json。3. navigation/1 —— 有界菜单导航呈现 2–8 个有界选项不暴露源 Agent 提示词支持nav_present/nav_move上下左右/nav_select/nav_resolved。游标移动是建议性的Host 始终是权威方选择最多被消费一次。4. keys/1 —— 物理按键映射keymap下发主机的按键标签与灯效off/dim/solid/pulse 可选 RGBkey_event上报press/release/hold/double。关键点设备从不自己决定按键语义Host 才把某个 slot 映射成fork、approve等授权动作。5. rotary/1 —— 旋钮相对旋转重点旋钮上报有界的相对旋转与按压手势绝不泄露模型 / 会话 ID{v:1,t:rotary_map,rev:8,controls:[{slot:0,label:Model,value:2,min:0,max:3,wrap:true}]}delta为非零整数-127~127表示转了多少Host 应用 delta 后回发一张新的替换 map设备从不自己推断权威值——这就是精确控制的关键rotary_press复用按键手势枚举6. voice/1 —— 免提语音控制只承载按键触发push-to-talk控制start/stop/cancel与状态idle/listening/transcribing/submitted/error。永远不传音频字节、转录或凭据——采集与转写都留在 Host 麦克风上。7. text/1 —— 纯文本显示8 个显示通道channel0–7content最多 1024 字节纯文本永不包含可执行标记、链接或动作空内容清空该通道。Host 在传输前做隐私过滤。8. usage/1 —— Token 用量计数器下发模型标签与有界计数input_tokens/output_tokens/cached_tokens/context_used/context_limit。计数是展示数据不是计费权威不含账单、价格、账号等字段。9. config/1 —— 原子配置config提议一套完整的设备侧配置config_result返回applied或rejected。原子提交任一非法条目就拒绝整包并保留旧配置拒绝时必须给出原因码unknown_key/invalid_value/storage_error/unsupported。九类 Profile 的字段、枚举与字节上限规范定义在 devices/SPEC.md。从批准到旋钮一次完整交互如何精确落地Nexting 设备用一个三态状态机保证每一步都可预期规范见 devices/SPEC.mdIdle ──present──▶ Pending ──有效本地输入──▶ Waiting Resolution ──resolved──▶ Idle │ TTL 到期 → Idle │ └ 新 present → 替换 → Pending 任意状态 断连 → Idle 并清空帧缓冲精确控制的四道闸门Host 权威只有设备已授权 请求 ID 有效 未过期 选择合法 无其他在途尝试时Host 才接受 answer硬件选择上锁一次请求中硬件的首次选择会被锁定重试不能改选择幂等 序列号rev/seq为 32 位整数重复序列幂等、更低序列判为过期丢弃快速失败迟到的、畸形的、未授权的输入永远不会批准任何东西安全设计默认拒绝、快速失败批准流量必须走加密 已绑定的 BLE 链路BLE Secure Connections bonding 加密 GATTDeny by default设备在用户在 Host App 明确授权前什么都不做可随时撤销易失状态批准与状态都只在 RAM断连 / 重启 / 新配对即清空绝不持久化授权完整安全模型见 devices/SECURITY.md如何验证协议向量 双语言 SDKNexting 用共享向量 参考实现保证所有 SDK 行为一致测试向量devices/protocol/vectors/下每个 Profile 一份合法 非法样例如 approval-v1.json官方实现必须对全部向量产生一致行为C99 设备 SDKdevices/sdk/c/src/nexting_device.c固定缓冲、零动态分配覆盖编解码 / 流 / 状态机JavaScript 协议参考devices/reference/js/src/protocol.mjs用于一致性校验与工具开发Zephyr 参考固件devices/firmware/zephyr/src/main.c四块参考板共用快速上手从文档到参考固件通读规范与接口目录devices/SPEC.md、devices/docs/interfaces.md跑通第一块参考板的首个批准devices/docs/first-approval.md找到适合自己的产品形态状态灯条 / 桌面面板 / 可穿戴徽章等devices/docs/use-cases.md选定实现路径跑参考板 / 移植新 MCU / 扩展协议工具devices/docs/implementation-tracks.md想本地克隆仓库跑协议与固件检查git clone https://gitcode.com/gh_mirrors/ne/nexting.git cd nexting npm run test:reference总结Nexting 设备协议用一个 GATT 服务 9 个独立协商 Profile 三态状态机 快速失败的组合让一颗按钮、一条灯带或一个旋钮都能安全、精确地遥控任意位置的 AI Agent——批准、状态、旋钮尽在掌控。️赞分享【免费下载链接】nextingRemote control for Claude Code, Codex, Grok, and Cursor on Mac or PC. View sessions, send tasks, and drive them remotely from your phone, PIN, or Ring. OpenClaw supported.项目地址https://gitcode.com/gh_mirrors/ne/nexting点击查看免费下载相关推荐Flutter Easy Refresh控制器详解如何精确控制刷新与加载状态Flutter Easy Refresh控制器详解如何精确控制刷新与加载状态 Flutter Easy Refresh是一个功能强大的Flutter插件专门GHelper 指南5 分钟调好华硕笔记本的性能模式与风扇曲线GHelper 指南5 分钟调好华硕笔记本的性能模式与风扇曲线 华硕笔记本自带的 Armoury Crate奥创功能不少但代价同样明显十几个后台服务常桌面应用系统编程30分钟打通深度学习数学基础跟着李宏毅教程走一遍30分钟打通深度学习数学基础跟着李宏毅教程走一遍 第一次翻开李宏毅机器学习课程leedl tutorial这类深度学习课程时你大概率会被四个字母卡住g示例工程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考