From 3f0979e74b1465f887be0840ca19dc42103845eb Mon Sep 17 00:00:00 2001 From: bitifirefly Date: Sun, 22 Feb 2026 02:37:11 +0000 Subject: [PATCH 1/2] docs: add product PRD and refresh project summary assets - add user-facing product PRD for OpenCane in docs/product-prd.md\n- add quick product snapshot to README (EN/ZH)\n- update LICENSE copyright holder/year range to OpenCane contributors\n- tidy case assets: add case/README.md and rename scedule.gif -> schedule.gif --- LICENSE | 4 +- README.md | 16 +++ case/README.md | 13 ++ case/{scedule.gif => schedule.gif} | Bin docs/product-prd.md | 187 +++++++++++++++++++++++++++++ 5 files changed, 218 insertions(+), 2 deletions(-) create mode 100644 case/README.md rename case/{scedule.gif => schedule.gif} (100%) create mode 100644 docs/product-prd.md diff --git a/LICENSE b/LICENSE index 24bdaccb95..b33adfbd4b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 nanobot contributors +Copyright (c) 2025-2026 OpenCane contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index b597776e86..ec7b9f4f76 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,14 @@ Language: English | [切换到简体中文](#简体中文) OpenCane is an AI backend runtime for smart-cane scenarios, focused on an end-to-end loop: device connectivity -> realtime conversation -> visual lifelog -> digital tasks -> safety and observability. +### Product Snapshot + +- Product goal: build an OpenClaw experience for visually impaired users +- Interaction carrier: smart-cane hardware +- Human-device interaction: voice + buttons (input), voice + vibration (feedback) +- Core loop: hardware access -> realtime conversation -> visual memory -> digital tasks -> safety/observability +- Runtime form: backend service with control APIs and multi-modem adapter layer + ### Architecture ![OpenCane Architecture](docs/assets/opencane-arch.png) @@ -95,6 +103,14 @@ Thanks to HKUDS for the original engineering base. OpenCane 是一个面向智能盲杖场景的 AI 后端运行时,聚焦“设备接入 -> 实时对话 -> 图像记忆 -> 数字任务 -> 安全与观测”的完整闭环。 +### 产品功能摘要 + +- 产品目标:打造“给视障人士使用的 OpenClaw” +- 交互载体:智能盲杖硬件 +- 人机交互:语音 + 按钮输入,语音 + 震动反馈 +- 核心闭环:设备接入 -> 实时对话 -> 图像记忆 -> 数字任务 -> 安全与观测 +- 系统形态:后端运行时 + 控制 API + 多蜂窝模组适配层 + ### 架构图 ![OpenCane 架构图](docs/assets/opencane-arch.png) diff --git a/case/README.md b/case/README.md new file mode 100644 index 0000000000..0b8bd42caa --- /dev/null +++ b/case/README.md @@ -0,0 +1,13 @@ +# Case Assets + +This directory stores demo GIF assets used for quick visual previews. + +- `code.gif`: code/tool workflow preview +- `memory.gif`: memory/lifelog behavior preview +- `schedule.gif`: task scheduling preview +- `search.gif`: search/retrieval preview + +Notes: + +- Keep filenames lowercase and descriptive. +- Prefer `.gif` only for short looped demonstrations. diff --git a/case/scedule.gif b/case/schedule.gif similarity index 100% rename from case/scedule.gif rename to case/schedule.gif diff --git a/docs/product-prd.md b/docs/product-prd.md new file mode 100644 index 0000000000..a7c731f134 --- /dev/null +++ b/docs/product-prd.md @@ -0,0 +1,187 @@ +# OpenCane 产品功能 PRD(V1) + +更新时间:2026-02-22 +文档定位:面向产品、运营、交付与项目管理,不面向底层代码实现细节。 + +## 1. 产品定义 + +OpenCane 的产品目标是打造“给视障人士使用的 OpenClaw”,以智能盲杖为交互载体,提供可持续演进的 AI 助盲后端能力。 +后端目标是打通“设备接入 -> 语音对话 -> 图像理解与记忆 -> 任务执行 -> 安全回传 -> 运营观测”的闭环。 + +交互载体与方式: + +- 交互载体:智能盲杖硬件 +- 主要输入:语音 + 按钮 +- 主要反馈:语音播报 + 震动反馈 + +产品形态: + +- 后端运行时(单实例可部署) +- 控制面 API(设备管理、任务管理、状态查询) +- 多硬件适配层(统一接入不同蜂窝模组) + +## 2. 目标用户与角色 + +1. 终端用户(盲人用户) +通过盲杖进行语音交互、环境感知与辅助提醒。 +2. 设备/固件团队 +接入设备上报与下行指令,完成硬件联调。 +3. 运营与客服团队 +查看运行状态、任务状态与关键风险记录,支持排障和服务保障。 +4. 平台运维团队 +负责部署、安全配置、容量与稳定性维护。 + +## 3. 产品目标与成功指标 + +核心目标: + +1. 实现“语音 + 按钮 + 震动反馈”三位一体的人机交互链路稳定可用。 +2. 实现图像 lifelog 入库、检索与风险标注。 +3. 支持设备级任务执行与状态回推。 +4. 支持多蜂窝模组统一接入,降低硬件适配成本。 + +建议 KPI(V1): + +- 语音回合成功率 >= 95% +- 图像入库成功率 >= 98% +- 数字任务执行成功率 >= 90%(不含外部服务故障) +- 控制 API 可用性 >= 99% +- 关键告警可观测(离线率、队列积压、回合失败率) + +## 4. 核心使用场景 + +1. 语音问答场景 +用户通过按钮触发语音采集,后端完成识别、推理并返回语音播报,必要时附加震动提示。 +2. 视觉辅助场景 +设备上传图像,系统分析后支持“语义检索 + 时间线回看 + 风险筛查”。 +3. 任务代办场景 +用户发出任务目标(如查天气/路线信息),系统异步执行并回推状态。 +4. 设备运营场景 +运营人员通过 API 完成设备注册、绑定、激活、撤销与状态检查。 + +## 5. 功能需求清单(V1) + +### 5.1 设备接入与会话管理 + +功能范围: + +- 支持 `mock / websocket / ec600 / generic_mqtt` 适配器 +- `generic_mqtt` 支持 `ec600mcnle_v1 / a7670c_v1 / sim7600g_h_v1 / ec800m_v1 / ml307r_dl_v1` +- 统一协议事件:`hello / heartbeat / listen_start / audio_chunk / listen_stop` +- 可选事件:`image_ready / telemetry / tool_result` + +产品价值: + +- 同一后端覆盖多硬件路线,降低后续硬件切换成本 +- 统一会话语义,减少上层业务分叉 + +### 5.2 语音对话能力 + +功能范围: + +- 音频分段、VAD、转写、Agent 回复生成 +- 播报中断(新一轮 `listen_start` 可打断当前播报) +- 支持文本下发或服务端音频下发 + +产品价值: + +- 保证盲杖主交互链路实时、可打断、可连续 + +### 5.3 图像 Lifelog 与记忆检索 + +功能范围: + +- 图像异步入队与处理(分析、去重、结构化) +- 时间线检索(timeline)与语义检索(query) +- 风险记录与统计(safety/safety stats) +- 可选思维轨迹留痕(thought trace) + +产品价值: + +- 提供“看过什么、何时发生、是否有风险”的可回溯能力 + +### 5.4 长上下文记忆 + +功能范围: + +- 基于 lifelog 数据沉淀会话上下文 +- 通过向量后端(chroma/qdrant)进行语义召回 +- 结合 session 维度实现跨回合记忆增强 + +产品价值: + +- 提升多轮对话连续性与上下文相关性 + +### 5.5 数字任务系统 + +功能范围: + +- 任务创建、查询、取消、统计 +- 状态机:`pending -> running -> success/failed/timeout/canceled` +- 执行策略:MCP 优先,失败回退 Web/Exec +- 设备离线场景支持状态重试回推 + +产品价值: + +- 将“即时问答”扩展为“可追踪的任务执行” + +### 5.6 控制面与设备运营 + +功能范围: + +- 设备注册、绑定、激活、撤销、绑定查询、设备状态查询 +- 设备操作下发、回执、查询 +- 运行状态与观测接口(status/observability/history) + +产品价值: + +- 支撑设备全生命周期管理与运营排障 + +### 5.7 安全与治理 + +功能范围: + +- token 鉴权 +- 可选请求限流、防重放、请求体大小限制 +- 数据保留清理与本地备份恢复能力 + +产品价值: + +- 在真实生产部署中满足基础安全与可运维要求 + +## 6. 非功能需求 + +1. 部署模式 +支持单容器生产部署,配置与数据外置挂载。 +2. 可用性 +支持运行时健康检查、历史观测与故障回溯。 +3. 性能与容量(单容器参考) +`4 vCPU / 8GB RAM / 100GB NVMe` 推荐支撑约 `20-40` 台设备(每设备每日语音 500 回合 + 图像 100 次)。 +4. 可扩展性 +可扩展到新蜂窝模组 profile,不改业务主流程。 + +## 7. 版本边界(V1 不包含) + +- 终端 App UI 产品 +- OTA 生命周期管理平台(版本包、灰度、回滚全流程) +- 多租户 SaaS 控制平面 +- 外部监控平台深度集成(如 Prometheus/Grafana 一体化) + +## 8. 验收标准(产品视角) + +1. 主链路验收 +可稳定跑通语音回合、图像入库检索、任务执行查询三条主路径。 +2. 设备验收 +至少 1 种真实硬件 profile 联调成功,其他 profile 可通过协议仿真联调。 +3. 安全验收 +鉴权开启后控制 API 能正确拦截未授权请求。 +4. 运行验收 +可通过 API 获取实时与历史观测指标,并用于问题定位。 +5. 数据验收 +能执行 retention 清理与备份恢复演练。 + +## 9. 发布建议 + +1. 先以 `staging` 配置完成联调与回归。 +2. 生产启用鉴权与保守容量参数。 +3. 以灰度设备分批接入,观察 24h 指标后再扩量。 From cfd40a9ba0de623f72e55a28aa2b695b2ee817fd Mon Sep 17 00:00:00 2001 From: bitifirefly Date: Sun, 22 Feb 2026 09:48:28 +0000 Subject: [PATCH 2/2] docs(prd): expand scenario-driven product definition - enrich README with functional scenario summary (EN/ZH)\n- fuse use-case-oriented scenario framework into product PRD\n- add P0 scenario map/cards, A-F capability mapping, validation paths, and scenario KPIs --- README.md | 20 +++++++ docs/product-prd.md | 127 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 146 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec7b9f4f76..54a95e3df5 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,16 @@ device connectivity -> realtime conversation -> visual lifelog -> digital tasks - Digital task execution: create, query, cancel, offline pushback, and retry - Control APIs: device registration/binding, operation dispatch, and runtime status queries +### Functional Scenarios + +- On-the-go voice assistance: press-to-talk interaction for quick answers while walking. +- Forward risk check: photo + voice queries to identify nearby obstacles and hazards. +- Short-term memory recall: ask about recent moments via timeline and semantic retrieval. +- Digital task delegation: turn voice intents into trackable tasks with status updates. +- Device health and offline alerts: detect heartbeat/connection anomalies and notify users. +- Emergency help trigger (SOS): minimal-action emergency trigger with immediate confirmation. +- Digital Journal (emotion-first): multimodal models understand daily photo sequences and voice context to form long-term memory; it can be replayed with personalized, podcast-like narration and shared as text with family and friends. + ### Technical Highlights - Layered architecture: `adapter / runtime / agent / api / storage / safety` @@ -124,6 +134,16 @@ OpenCane 是一个面向智能盲杖场景的 AI 后端运行时,聚焦“设 - 数字任务执行:任务创建、状态查询、取消、离线回推与重试 - 控制面 API:设备注册绑定、设备指令下发、运行状态查询 +### 功能场景 + +- 行走中即时问答:按键触发语音提问,低延迟语音回复,不打断通行节奏。 +- 前方风险确认:拍照 + 语音询问,识别附近障碍与风险并给出提示。 +- 短时记忆回溯:支持“刚才发生了什么”的时间线与语义检索回答。 +- 数字任务代办:将语音需求转成可追踪任务,并持续回报状态。 +- 设备异常与离线提醒:心跳或连接异常时及时告警,恢复后可继续会话。 +- 紧急求助触发(SOS):通过最少动作触发求助,并立即得到确认反馈。 +- 数字日记(情感优先):多模态大模型理解每天的照片序列与语音形成长期记忆;可用个性化语音像播客一样回放,也可生成文本分享给亲人朋友。 + ### 技术特性 - 分层架构:`adapter / runtime / agent / api / storage / safety` diff --git a/docs/product-prd.md b/docs/product-prd.md index a7c731f134..8649c88abe 100644 --- a/docs/product-prd.md +++ b/docs/product-prd.md @@ -8,6 +8,12 @@ OpenCane 的产品目标是打造“给视障人士使用的 OpenClaw”,以智能盲杖为交互载体,提供可持续演进的 AI 助盲后端能力。 后端目标是打通“设备接入 -> 语音对话 -> 图像理解与记忆 -> 任务执行 -> 安全回传 -> 运营观测”的闭环。 +场景导向定位: + +- 物理世界:安全出行、环境理解、风险预警 +- 数字世界:代办操作、服务接入、跨应用无障碍 +- 情感层面:陪伴、记忆、分享,降低长期孤独感 + 交互载体与方式: - 交互载体:智能盲杖硬件 @@ -23,7 +29,7 @@ OpenCane 的产品目标是打造“给视障人士使用的 OpenClaw”,以 ## 2. 目标用户与角色 1. 终端用户(盲人用户) -通过盲杖进行语音交互、环境感知与辅助提醒。 +通过盲杖进行语音交互、环境感知与辅助提醒。覆盖全盲、低视力、盲校学生、康复期用户与独居用户等典型群体。 2. 设备/固件团队 接入设备上报与下行指令,完成硬件联调。 3. 运营与客服团队 @@ -48,6 +54,13 @@ OpenCane 的产品目标是打造“给视障人士使用的 OpenClaw”,以 - 控制 API 可用性 >= 99% - 关键告警可观测(离线率、队列积压、回合失败率) +场景指标补充(用于体验侧评估): + +- 出行场景:危险预警召回率、端到端响应时延 +- 数字场景:任务完成率、平均代办时长、人工求助率下降 +- 生活场景:找物成功率、回溯定位准确率、日志可用率 +- 体验场景:满意度、认知负担评分、持续使用留存率 + ## 4. 核心使用场景 1. 语音问答场景 @@ -59,6 +72,118 @@ OpenCane 的产品目标是打造“给视障人士使用的 OpenClaw”,以 4. 设备运营场景 运营人员通过 API 完成设备注册、绑定、激活、撤销与状态检查。 +### 4.1 场景地图(P0) + +| 场景ID | 场景名称 | 用户输入 | 系统反馈 | 风险等级 | 优先级 | +|---|---|---|---|---|---| +| S1 | 行走中即时问答 | 按钮触发 + 语音提问 | 语音播报(必要时震动) | 高 | P0 | +| S2 | 前方风险确认 | 图像上报 + 语音询问 | 风险语音提示 + 震动反馈 | 高 | P0 | +| S3 | 短时记忆回溯 | 语音提问(刚才/附近) | 基于 lifelog 的语音回答 | 中 | P0 | +| S4 | 任务代办执行 | 语音下达任务 | 任务状态语音回报 + 可选震动 | 中 | P0 | +| S5 | 设备异常与离线提醒 | 心跳/连接状态变化 | 语音告警 + 震动告警 | 高 | P0 | +| S6 | 紧急求助触发 | 长按按钮(或组合按键) | 求助确认反馈 + 上报状态 | 高 | P0 | + +### 4.2 场景卡片模板(统一写法) + +每个场景统一按以下结构描述,便于评审、研发和测试对齐: + +1. 用户目标:用户在该场景下要达成什么。 +2. 触发方式:按钮动作、语音指令、图像上报等。 +3. 系统处理:后端关键处理链路(3-5 步)。 +4. 用户反馈:语音播报内容、震动模式、时效要求。 +5. 异常与降级:失败时如何兜底,不中断主流程。 +6. 验收标准:可量化的成功判定。 + +### 4.3 P0 场景卡片 + +#### S1 行走中即时问答 + +- 用户目标:行走过程中快速获取信息,不影响继续通行。 +- 触发方式:短按按钮进入聆听,用户语音提问。 +- 系统处理:采集音频 -> 转写 -> Agent 推理 -> 生成回复 -> 下发播报。 +- 用户反馈:2-4 秒内开始语音回复;必要时短震动提示播报开始。 +- 异常与降级:模型超时则返回简短兜底语句;支持下一次按钮触发打断重试。 +- 验收标准:回合成功率 >= 95%,打断后可在下一回合恢复可用。 + +#### S2 前方风险确认 + +- 用户目标:判断前方是否存在台阶、障碍、车辆等风险。 +- 触发方式:设备上报图像,用户可追加语音问题(如“前面安全吗”)。 +- 系统处理:图像入队 -> 分析与结构化 -> 风险分类 -> 生成答复。 +- 用户反馈:高风险优先震动告警,再给语音解释;低风险仅语音提示。 +- 异常与降级:图像分析失败时回退“无法确认,请减速并重新拍摄”。 +- 验收标准:图像入库成功率 >= 98%,高风险场景必须有显式反馈。 + +#### S3 短时记忆回溯 + +- 用户目标:回忆最近路况或刚发生的事件(时间线记忆)。 +- 触发方式:语音提问“刚才路口是什么情况”等。 +- 系统处理:检索 session 相关 lifelog -> 语义召回 -> 组织回答。 +- 用户反馈:优先给简洁结论,必要时补充时间与位置线索。 +- 异常与降级:召回不足时明确说明“未检索到足够记录”,不编造细节。 +- 验收标准:同 session 近时段问题可返回可解释的检索结果。 + +#### S4 任务代办执行 + +- 用户目标:将“查天气/问路线”等需求转为可追踪任务。 +- 触发方式:语音下达任务目标。 +- 系统处理:创建任务 -> 执行(MCP 优先,失败回退)-> 状态流转 -> 结果回推。 +- 用户反馈:至少反馈“已受理/处理中/完成或失败”三类状态。 +- 异常与降级:超时自动结束并给出重试建议。 +- 验收标准:任务执行成功率 >= 90%(不含外部服务故障)。 + +#### S5 设备异常与离线提醒 + +- 用户目标:设备掉线、服务异常时用户能够被及时告知。 +- 触发方式:heartbeat 超时、连接断开、关键服务不可用。 +- 系统处理:状态检测 -> 告警事件生成 -> 反馈下发 -> 观测留痕。 +- 用户反馈:语音“连接异常,请稍后重试”,并附加中/长震动模式区分严重程度。 +- 异常与降级:网络恢复后自动恢复会话;持续异常时提示切换到基础模式。 +- 验收标准:离线告警可观测,恢复后系统能继续新会话。 + +#### S6 紧急求助触发 + +- 用户目标:紧急情况下以最少动作触发求助流程。 +- 触发方式:长按按钮(时长阈值由固件定义)。 +- 系统处理:识别紧急事件 -> 写入事件留痕 -> 调用预设求助流程(可扩展)。 +- 用户反馈:立即语音确认“已触发求助”,并给强震动确认。 +- 异常与降级:若外部求助链路不可用,仍需本地确认并提示替代方案。 +- 验收标准:触发后必须在 1 秒内给出本地确认反馈。 + +### 4.4 场景能力族(A-F)与本 PRD 映射 + +| 场景族 | 场景目标 | 关联 P0 场景 | 关键能力 | +|---|---|---|---| +| A 独立安全出行 | 从“能走”到“走得安心” | S1、S2、S5 | 语音问答、图像风险识别、告警反馈 | +| B 数字服务代办 | 从“会点按钮”到“办成事” | S4 | 云端 Agent 执行、任务状态回推 | +| C 记忆与找物 | 从“易丢易忘”到“可检索” | S3 | lifelog 时间轴、向量检索、RAG 回答 | +| D 家庭沟通与连接 | 从“难表达”到“可分享” | S3(可扩展) | 生活片段沉淀、摘要与分享能力 | +| E 情感陪伴与低干扰 | 从“喋喋不休”到“懂分寸” | S1、S5(可扩展) | 语音与震动协同、主动性与沉默策略 | +| F 弱网与续航受限 | 从“能用”到“稳定可用” | S1、S4、S5 | 按需上传、降级策略、瘦终端胖云端 | + +说明: + +- 本版 V1 以 A/B/C/F 为主落地,D/E 纳入“场景扩展路线”。 +- D/E 相关能力在当前版本以可选能力或文档预留形式存在。 + +### 4.5 典型落地场景与验证路径 + +1. 盲校教学与校园通行 +用于移动训练、场景识别、风险提示有效性验证。 +2. 医院眼科康复中心 +用于院内导航、就诊流程辅助与康复阶段评估。 +3. 社区真实街区 +用于复杂路线实测、弱网稳定性和长期随访验证。 +4. 家庭场景 +用于找物、记忆回溯、家庭共享日志与陪伴反馈评估。 + +### 4.6 场景优先级(产品/交付双视角) + +1. 数字代办(B):差异化最强,直接提升“数字自主能力”。 +2. 安全出行(A):硬件价值根基,必须稳定可用。 +3. 记忆日志(C):提升日常确定感和复用价值。 +4. 情感与低干扰(E):体现长期体验和伦理友好度。 + ## 5. 功能需求清单(V1) ### 5.1 设备接入与会话管理