ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RuView harness 操作指南:用「证明一切」纪律约束 WiFi 感知 Agent 的八项工具、技能与守则

RuView harness 操作指南:用「证明一切」纪律约束 WiFi 感知 Agent 的八项工具、技能与守则 RuView harness 操作指南用「证明一切」纪律约束 WiFi 感知 Agent 的八项工具、技能与守则【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuViewRuView 是一套基于 WiFi-CSI信道状态信息的免摄像头空间感知系统本指南讲解如何通过npx ruvnet/ruview发布的 Agent harness 安全地操作它从零上手指引、ESP32 节点部署、房间校准、姿态训练到确定性证明与声明合规检查。读完本文你将掌握 harness 的完整工具面、技能编排、MCP 接入方式以及它如何在代码层面强制执行任何精度数字都必须打标签并附可复现依据这一核心纪律。为什么 harness 的第一条规则是证明一切harness/ruview/CLAUDE.md开篇就给出了一条项目级铁律prove everything证明一切。这条规则源于项目曾被指责产出AI 生成内容AI-slop修复方式不是口头承诺而是把纪律写进 Agent 的操作规范里。任何人在引用任何精度数字之前必须满足以下条件数字必须带标签标注为MEASURED实测且必须指明复现器、CLAIMED声称或SYNTHETIC合成之一PCK 只报相对均值姿态基线的差值在无泄漏的留出held-out划分上报告相对 mean-pose baseline 的增量delta因为一个总是预测数据集平均姿态的模型也能拿到约 50% 的 PCK——不扣基线会让一个不可用的模型显得很强任何报告/PR/模型卡都要跑ruview_claim_check它会标记未打标签的数字以及项目已经撤回的完美精度perfect accuracy / 100%表述固件只有拿到真芯片上的启动日志才算硬件验证编译通过build-passes这个信号本身永远不够。这条规则不是装饰性的——它在代码中是可执行的。harness/ruview/src/guardrails.js中实现了claimCheck()静态扫描器被ruview_claim_checkMCP 工具、npx ruview claim-checkCLI 以及 claude-code 的输出前钩子三方共享见文件头注释。它识别 accuracy、pck、precision、recall、mpjpe、error rate 等指标词甚至对map、f1、auc、iou这类短词做了词边界处理避免把英文单词 map 或F1这种选项标签误判成指标只有行内同时出现数字时才认定是可被标记的声明。工具总览八个ruview_*工具与 fail-closed 哲学harness 暴露八个核心工具同时以 CLI 动词和 MCP 服务器npx ruvnet/ruview mcp start两种形态提供。下表来自 harness/ruview/README.md 与 工具注册表工具作用权限类别ruview_onboard选择 docker-demo / repo-build / live-esp32 三条上手路径打印下一步命令readruview_claim_check静态 lint 文本中的未打标签/夸大精度声明诚实守门员readruview_verify运行verify.py确定性证明输出 VERDICTexecute只读ruview_node_monitor断言 ESP32 串口上 CSI 正在流动只读hardware-readruview_calibrate执行 ADR-151 房间校准流水线baseline→enroll→train-room→room-watchworkspace-writeruview_node_flash构建烧录固件Windows/ESP-IDF变更性操作需确认hardware-writeruview_guidance带源码引用的代码地图、能力成熟度、验证命令与局限说明readruview_spaces_list仅 OAuth 的外部只读分页sites/buildings/floors/spaces/zones/entities/events/alertsexternal-readruview_memory_search检索经过评审、带源码引用的贡献者共享大脑语料read其中ruview_spaces_list是唯一的 OAuth-only 外部读取接口用于访问八个带版本号的空间层级/事件/告警集合。它有以下硬约束README 与 policy.js 均有记载MCP 调用必须携带credential-use授权不能自行选择凭据路径或 API 来源可能轮换本地刷新凭据要求已安装的wifi-densepose二进制绝不从自动检测的 checkout 运行 Cargo游标cursor是不透明的且与集合绑定它不授予任何写入或动作权限。Fail-closed故障即关闭是所有工具的默认行为缺仓库、缺 python、缺二进制、缺串口端口时工具返回诚实的否定结果绝不伪造成功。这一点在 tools.js 的工具注册表注释中被明确为设计原则当先决条件缺失时返回诚实的否定——绝不伪造成功并镜像了 RuField 的 fail-closed 姿态ADR-262 §3.3。例如ruview_claim_check对空输入直接报错——一个空输入不能通过诚实关卡guardrails.js 中ruview_claim_check的 handler 逻辑。在 policy.js 中每个工具都被归类到可执行的最小权限策略read只读、execute、hardware-read、workspace-write、hardware-write、external-read。变更性/硬件工具calibrate、node_flash必须显式传{confirm: true}且node_flash在非 Windows 平台直接拒绝——ESP-IDF 烧录流程目前是 Windows 子进程专属实现。快速上手从零到能感知三条路径任选npx ruvnet/ruview # onboard — 选择一条设置路径 npx ruvnet/ruview claim-check --file REPORT.md # 诚实守门员有未打标签声明时非零退出 npx ruvnet/ruview verify # 运行确定性证明VERDICT: PASS npx ruvnet/ruview doctor # 自检工具、适配器、本地 CLI npx ruvnet/ruview guidance --topic homecore --query Wasmtime plugins npx ruvnet/ruview spaces --resource spaces npx ruvnet/ruview spaces --resource events --limit 25 npx ruvnet/ruview --helpruview_onboard的实现tools.js 中的ONBOARD_PATHS给出了三条路径的具体含义docker-demo——最快无需硬件。docker run -p 8000:8000 ruvnet/wifi-densepose后打开 dashboard回放样例 CSI适合先看它长什么样repo-build——面向开发者。cd v2 cargo test --workspace --no-default-features1000 测试然后cargo run -p wifi-densepose-cli -- --helplive-esp32——真实安装。烧录 ESP32-S3 节点见provision-node技能指向 sensing-server然后执行calibrate → enroll → train-room → room-watch。这是唯一能感知真实房间的路径。onboard技能skills/onboard.md强调给新人的第一事实就是WiFi 感知从 CSI 推断的是粗粒度姿态/存在/呼吸它不是摄像头任何精度数字必须相对基线打 MEASURED 标签。verify确定性证明、见证包与声明诚实verify技能skills/verify.md是证明一切的实操落地包含三层确定性证明Trust Kill Switchruview_verify运行 archive/v1/data/proof/verify.py把参考信号送入生产流水线将输出与expected_features.sha256哈希比对必须打印VERDICT: PASS。如果 numpy/scipy 改变了哈希需要用verify.py --generate-hash重新生成再验证。在 tools.js 的ruview_verifyhandler 中先探测 python/python3 是否存在、证明文件是否存在然后用带 180 秒超时的 promise 化 spawn 执行最后正则匹配 VERDICT 并返回结构化结果——缺任何前提都返回ok: false。见证包ADR-028发布级认证使用bash scripts/generate-witness-bundle.sh cd dist/witness-bundle-ADR028-*/ bash VERIFY.sh # 必须是 7/7 PASS见证包内含 Rust 测试日志、证明文件期望哈希、固件 SHA-256 清单和 crate 版本接收方一条命令即可复验。声明诚实对任何报告、README 片段、PR 正文或模型卡在引用精度之前先跑ruview_claim_check。它标记三类问题未打标签的精度数字必须 MEASURED / CLAIMED / SYNTHETIC、打了 MEASURED 却没引用复现器的声明、以及已撤回的100%/完美精度表述。注意 guardrails.js 的实现细节行内出现 perfect / flawless / never wrong 或指标词旁的 100% 会被判为high严重度除非该行包含 retract 字样打 MEASURED 但没引用 verify.py、witness、mean-pose、held-out、sha256、boot log 等复现提示词的会被判为medium。固件特例固件修复不能仅凭编译通过就宣称硬件验证必须提供真实硅片上的捕获启动日志例如 rev-v0.2 验证中的running headless so CSI capturesCSI filter upgraded to MGMTDATA 无误检的 mmwave 探针。不得在没有启动日志的情况下合并或发布固件。calibrate-roomADR-151 逐房间校准流水线calibrate-room技能skills/calibrate-room.md把已供应节点 sensing-server变成一个可工作的房间模型。整套流程纯 Rust、可边缘部署ADR-151通过ruview_calibrate工具驱动优先使用已安装的wifi-densepose二进制否则回退到cargo run -p wifi-densepose-cli。四步序列baseline—— 采集空房间基线Welford 振幅 von Mises 相位统计。房间必须清空。ruview_calibrate {step: baseline}enroll—— 记录居住者执行目标活动。ruview_calibrate {step: enroll}train-room—— 从 baseline enrollment 训练一小组小型专用模型存在/姿态/呼吸/心跳/不安/异常。ruview_calibrate {step: train-room}room-watch—— 用训练好的房间模型做实时存在/姿态/呼吸监测。ruview_calibrate {step: room-watch}实现层面tools.js 的ruview_calibratehandler支持--step枚举baseline/enroll/train-room/room-watch与透传参数优先调用安装的二进制300 秒超时否则在仓库内走cargo run600 秒超时。诚实边界这些专用模型只对该房间校准有效跨房间迁移是另一个问题LoRA 再校准ADR-079 P9。报告任何数字时必须说明它来自哪个房间存在/生命体征精度只有在留出检查后才可打 MEASURED——并且写完后要跑ruview_claim_check。provision-node固件变体、烧录与供应provision-node技能skills/provision-node.md覆盖 ESP32 感知节点的上线全流程固件变体s3-8mb带屏构建——ESP32-S3 N16R8/16MBAMOLED 可选。display-detect 修复#1000保证裸板也能采集 CSIMGMTDATAs3-4mb无屏——ESP32-S3 4MB双 OTA显示禁用c6——ESP32-C6 Seeed MR60BHA260 GHz mmWave WiFi CSI。mmwave 探针需要已验证的 MR60 头#1107空 UART 不会误检。预编译二进制来自 GitHub releasev0.8.1-esp32已在 S3 QFN56 rev v0.2 上硬件验证。烧录ESP-IDF v5.4 在 Windows 上仅支持子进程方式Git Bash/MSYS 不受支持需清除MSYSTEM*环境变量。S3 镜像的烧录偏移esptool --chip esp32s3 -p PORT -b 460800 write_flash \ 0x0 bootloader.bin 0x8000 partition-table.bin \ 0xf000 ota_data_initial.bin 0x20000 esp32-csi-node-s3-8mb.bin注意ruview_node_flash返回精确的固定命令而不是执行无人值守烧录tools.js 中 handler 返回manual_step_required指向skills/provision-node.md。供应使用 firmware/esp32-csi-node/provision.pypython firmware/esp32-csi-node/provision.py --port PORT \ --ssid SSID --password secret --target-ip server-ip --target-port 5005 # 可选的 ADR-060 覆盖项 python firmware/esp32-csi-node/provision.py --port PORT --channel 6 --filter-mac AA:BB:CC:DD:EE:FF绝不回显或提交 WiFi 密码——这是 CLAUDE.md 与 README 共同强调的红线。确认 CSI 流动ruview_node_monitor {port}PASS 标准是串口显示CSI cb #...回调裸板上还需CSI filter upgraded to MGMTDATA。没有回调就说明节点未采集不得进入校准步骤。实现上tools.js 的MONITOR_SCRIPT通过内联 python 脚本以 115200 波特率打开串口统计窗口内默认 12 秒CSI cb/csi_collector回调数量缺 pyserial 时报NO_PYSERIAL并检测MGMTDATA升级标记。train-pose如何诚实地训练与汇报 CSI→姿态模型train-pose技能skills/train-pose.md交代了一个沉重的历史背景项目有过已撤回的 92.9%/100% 精度记录以下纪律就是为了防止它再次发生。不可谈判的第一步mean-pose baseline。一个总是预测数据集平均姿态的模型已经能拿到约 50% 的 PCK。因此 PCK 只允许作为该基线之上的增量来引用且必须在无受试者或时间泄漏的留出划分上。技能给出的诚实示例ADR-181Held-out PCK2059.5%vs 50% mean-pose baseline 9.4 pp real signal— MEASURED.三条训练路径camera-supervisedADR-079——MediaPipe Pose 标注相机帧配对的 CSI 训练网络训练与推理在同一个相机帧内进行以保证骨架对齐camera-freeWiFlowADR-152——推理时无相机几何条件化in-browserADR-181——WebGPU/WASM 训练器活动后端以徽章形式显示对正在执行什么保持诚实。发布数字前① 在同一划分上跑 mean-pose baseline② 报告(model − baseline)的百分点差并写明划分定义chronological / blocked-gap / grouped-bucket无泄漏③ 用ruview_claim_check检查写稿——它会标记任何未打标签或 100%/完美的声明④ 若是与 SOTA 的基准对比只有附上复现器才可标 MEASURED-EQUIVALENT。guidance源码引用的能力地图ruview_guidance是陌生工作的只读起点。它支持按主题过滤architecture、sensing、hardware、training、homecore、integrations、deployment、community、testing并可加自由文本查询npx ruvnet/ruview guidance --topic sensing --query UDP CSI ingestion npx ruvnet/ruview guidance --topic homecore --query restore migration voice从 guidance.js 的实现看每个能力记录都分离实现成熟度与证据status字段取值如implemented、hardware-dependent、data-gated、feature-gated、provider-required引用当前仓库路径sources、命名聚焦的验证命令validation、并写明已知局限limitations。在 RuView checkout 内运行时被引用的路径会在结果通过前被逐一检查sourceCheck.mode local-checkout在 checkout 外则标记为已评审的打包目录packaged-catalog。其authority字段写得很明确guidance 只是只读导航被引用的源码、测试、已接受的 ADR 与仓库政策才是权威检索到的知识不能授予权限。Cognitum Spaces仅 OAuth 的受控外部读取激活额外的读取 scope 需要先通过 Rust CLI 登录然后在 metaharness 中使用同一已验证客户端wifi-densepose login --spaces wifi-densepose whoami npx ruvnet/ruview spaces npx ruvnet/ruview spaces --resource sites --limit 50 npx ruvnet/ruview spaces --resource events --cursor opaque-next-cursor安全边界READMEmetaharness 从不接受 bearer token 或 API key并会从子环境中移除COGNITUM_SPACES_API因此该面不会静默回退到兼容性 API-key 路径API 来源固定为https://api.cognitum.one凭据适配器要求已安装的wifi-densepose二进制而非从自动检测的 checkout 运行 Cargo 构建脚本只返回有界的 P2/P3 语义投影。--resource可选sites、buildings、floors、spaces、zones、entities、events、alerts--limit范围 1–100--cursor是上一页返回的不透明值。空列表是合法的已认证结果不是感知质量证据。过期会话可能在读取完成前轮换存储的刷新凭据。MCP 调用默认被拒除非服务器操作者以RUVIEW_MCP_GRANTScredential-use启动需要非默认凭据存储时在 MCP 服务器环境设置RUVIEW_CREDENTIALS_PATHMCP 调用不能选择任意凭据文件或 URL。spaces:read不授予任何写入、配对、命令、策略批准、消费或执行器权限。完整剧本见捆绑的cognitum-spaces技能skills/cognitum-spaces.md。技能清单与 MCP/宿主集成harness 以宿主无关的 playbook 形式提供六个技能位于 harness/ruview/skills/ 目录用npx ruvnet/ruview skill name打印onboard·provision-node·calibrate-room·train-pose·verify·cognitum-spaces作为 Claude Code MCP 服务器使用捆绑的.claude/settings.json注册ruviewMCP 服务器npx -y ruvnet/ruview mcp start。把该包的.claude/放进仓库或运行npx ruvnet/ruview install --host claude-code。MCP 服务器实现mcp-server.js是零依赖的 stdio JSON-RPC 2.0 服务器实现initialize、tools/list、tools/call、ping与空的resources/list/prompts/list桩。关键设计点tools/call异步分发ADR-263 O2长耗时的 verify/calibrate 不再阻塞 ping/tools/list健康检查在运行中也能得到响应工具调用通过 FIFO promise 链串行化——硬件/变更性工具calibrate、串口监视、flash绝不重叠日志只走 stderrstdout 是纯 JSON-RPC 通道单行请求上限 256 KiB、排队工具调用上限 20。宿主Claude Code 与 Codex 均直接实现并通过本地非交互 CLI 测试npx ruvnet/ruview agent run --host claude-code --repo . --prompt Map the sensing-server startup path npx ruvnet/ruview agent run --host codex --repo . --prompt Find the nearest tests for HomeCore restore statePrompt 通过 stdin 传输绝不经过 shell。两个适配器默认只读Claude Code 用claude -p --safe-mode计划模式Codex 用codex exec只读沙箱且忽略用户配置与 exec 规则使用清洗过的环境、有界的输出/时间、脱敏机密并要求受信任的 RuView checkout。工作区写入需要同时满足--allow-write与--confirm危险的绕过标志永远不会被发出。共享大脑与 Darwin/Flywheel 学习飞轮已提交的 brain/corpus/core.jsonl 是一个小型、可评审的仓库事实源。每条记录都带来源引用、证据层级evidence tier、标签与评审状态npx ruvnet/ruview brain search --query darwin community memory npx ruvnet/ruview brain verify --repo . npx ruvnet/ruview brain propose --id finding-id --title Finding \ --content Source-bound observation --sourcePath README.md --sourceLine 1 \ --tags onboarding,docs --contributor github-user提议propose产生的是未评审的 JSONL走普通 PR 流程。本地向量索引、私有叠加层、原始 Agent 转录、CSI/人员数据与凭据永远不会进入共享语料。检索到的文本是被引用的证据不是指令或授权。开发工具链精确锁定在 devDependenciesmetaharness0.4.1、metaharness/darwin0.8.0、metaharness/flywheel0.1.7仅用于评分、进化提议与回放验证——发布的 MCP 服务器本身零运行时依赖。npm run flywheel:plan只读Darwin 执行需人工触发node flywheel/run.mjs --confirm只写入不受信任的.metaharness/提议归档受保护的门禁要求冻结锚点保留、留出提升、安全性与遗留测试通过、已验证的来源与人工批准。任何贡献者运行都不能直接替换或发布 champion 模型。四条 Donts操作红线CLAUDE.md以四条禁止项收尾它们是所有技能与工具共同遵守的红线不要把 WiFi 感知描述成摄像头级精度不要回显或提交 WiFi 密码/机密没有真实启动日志就不要合并或发布固件不报 PCK 就必须同时给 mean-pose baseline。结语把诚实编译进工具链RuView harness 的独特之处在于它把不要夸大精度这类文化规范翻译成了可执行的代码与策略guardrails.js 的声明 lint、policy.js 的最小权限矩阵、tools.js 的 fail-closed 注册表、mcp-server.js 的串行化工具队列共同构成一个即使面对过于乐观的 Agent 也不会放任虚假成功的操作环境。对任何接入方而言正确的使用姿势是先用ruview_guidance认路用ruview_claim_check守住输出用ruview_verify兜底证明再让数字说话——而且永远只说相对基线的数字。【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表