# FFAI Agent 模块 PRD（顶层总览）

> **状态**：🟡 v0.3 — 架构反推已填；产品侧 6 项待用户决策（见 §11）
>
> **代码实施进度**（2026-05-16 EOD，slot-5 session 7）：Phase 1 **16 个 PR 全部端到端跑通**（PR0.5/1/2/3/3.5/3.6/4a/4b/4c/4.5/5/6/7/8/9/10.5/10.6），含真 Qwen LLM + 真 multi-turn TAOR tool_use + SSE 流式 + 5 个真 backend service 接通。合并成 **1 个 335 行 prisma 迁移**（13 张表 + 6 enum，干净 PG 重放验证）。未做：PR0.6 / PR4c 真锚定 / PR10 Cron / PR12.5 ai-assistant 收编（均需外部基础设施或团队协调）。详见 [`01-prd-phase1.md` §10.5 实现快照](./01-prd-phase1.md#105-实现快照implementation-snapshot) — 含「如何在新 session 接手」清单。
>
> **本文档定位**：FFAI Agent 模块的**顶层产品需求总览**——回答「做什么 / 给谁 / 为什么 / 阶段地图 / 跨阶段不变量」。具体到每个阶段的用户故事 / 场景 / 验收标准 / 优先级，见对应阶段 PRD：
>
> - [`01-prd-phase1.md`](./01-prd-phase1.md) — Phase 1：Web 工作台首页 + ModelRouter + 工具四轨 day-1
> - [`01-prd-phase2.md`](./01-prd-phase2.md) — Phase 2：Electron Desktop + Teams Inbox + Client Executor + StorageBackend Local
> - [`01-prd-phase3.md`](./01-prd-phase3.md) — Phase 3：iOS / Android 原生 App
>
> **架构与实施细节**（非 PRD 范围）：
>
> - [`02-architecture.md`](./02-architecture.md) — v0.2 final 架构（G1-G10 + Q9-Q34 决策）
> - [`03-implementation-comparison.md`](./03-implementation-comparison.md) — 三家源码级对比 + FFAI 选型

---

## 1. Vision

**FFAI Agent 是 FFAI 工作台的总入口**——员工打开 FFAI 看到的不是导航菜单，而是一个能听懂业务语言的 agent；它编排公司所有业务工作流（项目 / 审批 / 知识 / ADP / 外发 / 后续接入的更多模块），跨组织/跨工具/跨端拉通。

它**不是**通用对话框，**不是**ChatGPT/Copilot 的内部克隆，**不是**给开发者用的 IDE 助手。它是一个**深度对接公司内部业务系统的工作流编排引擎**，差异化在于：

- **业务感知**：直接调 NestJS 业务 Service（不是封装 REST），继承登录用户身份 + RBAC + DataScope
- **多组织内部部署**（不是对外 SaaS 多租户）：威胁模型是"员工误操作 / prompt injection"，不是"恶意租户 kernel 提权"
- **四轨工具**（service / mcp / cli / client）：业务/生态/运维 CLI/本地端能力都能编排
- **ModelRouter（G10）**：业界唯一把"业务任务感知模型路由"做成产品级能力的 agent
- **多端统一协议**：Web / Desktop / Mobile / Teams / CLI 共享同一份 SDKMessage + A2UI 协议

跟现有 `ai-assistant` 模块的关系：`ai-assistant`（LangChain Q&A bot + 升单）是 agent 能力的一个**狭义场景子集**，未来作为 agent 的一个 skill 收编；新功能不再加进 `ai-assistant`。详见 [`02-architecture.md`](./02-architecture.md) Q5。

---

## 2. 用户画像与核心场景

### 2.1 Persona（公司内部员工，按 day-1 介入价值排序）

> ✅ **P1 已决（2026-05-15）**：day-1 P0 内测 persona = **项目经理 + 业务员工**。理由：高价值（项目经理跨项目报表痛）+ 高频（业务员工天天提审批），完美覆盖 US-101/US-102/US-107。

| Persona | 优先级 | 日常工作 | 当前痛点 | Agent 介入价值 | 涉及工具 |
|---|---|---|---|---|---|
| **项目经理 (PMO)** | **P0 内测** | 项目状态汇总 / 跨项目排期 / 风险识别 | 跨多个项目手动跑报表慢且易漏 | "上季度延期项目按延期天数排"、"X 项目本周风险" 一句话出 Display Panel 表格 | `Project.*` / `Display.render` |
| **业务员工（行政/财务/HR/出差）** | **P0 内测** | 提交各种审批单 | 不熟悉审批流 / 找不到正确表单 / 字段填错被驳回 | "提个去上海三天的差旅审批" → agent 帮填好，用户确认提交 | `Approval.*` / `AskUserQuestion` |
| **新员工 / 跨部门员工** | P1（GA 前）| 找规章制度 / 报销流程 / 部门联系人 | 翻知识库散乱、问同事打扰 | 自然语言问答，agent 从知识库给准确答案 + 引用源 | `Knowledge.search` |
| **管理者** | P1（GA 后）| 看下属团队/项目状态汇总 | 报表多、上下文碎片化 | "我团队本周做了什么 / 下周要做什么 / 阻塞在哪" 自动汇总 | 跨 `Project.*` / `Approval.*` / `Task.*` 聚合 |
| **IT 管理员** | P2（PR15 后）| 用户/权限/审计 | 命令行运维 + Web 后台跳转多 | "查 X 用户上周访问了哪些项目"、"按规则迁移 Y 数据" | `Psql.query` (只读) / `cli:` 工具家族 |

### 2.2 核心场景（按场景频次 + 价值密度初排）

> ✅ **P2 已决（2026-05-15）**：day-1 P0 = **项目状态查询 + 审批提交 + 知识问答**（三件套）。覆盖读+写+检索三种能力形态，差异化最强；架构 §3.1 必备工具天然命中。

| # | 场景 | 优先级 | 示例输入 |
|---|---|---|---|
| 1 | **项目状态查询** | **P0 day-1** | "上季度哪些项目延期" / "X 项目本周风险" / "我负责的项目下周里程碑" |
| 2 | **审批提交** | **P0 day-1** | "提个去上海三天的差旅审批" / "帮我提报销" / "看我待批的审批" |
| 3 | **知识问答** | **P0 day-1** | "公司报销流程是什么" / "Y 政策的最新版本" / "X 设备怎么申请" |
| 4 | **任务管理** | P1（PR9 后）| "我本周待办" / "把这个任务转给 X 同事" / "标记完成" |
| 5 | **文件归档与检索** | P2（PR10.5 OneDrive 后）| "把这份 PDF 入知识库" / "找上次跟 X 客户的合同" / "把会议纪要发到 OneDrive" |
| 6 | **跨系统聚合** | P1（PR8 sub-agent 后）| "我本月差旅审批总额"、"我团队本周新建了几个项目" |
| 7 | **后台数据查询**（IT 管理员）| P2（PR15 cli 工具后）| "最近 7 天活跃用户数" / "X 表脏数据" |

### 2.3 多组织上下文切换

按 G2，FFAI 用户可能跨多组织（公司内多个事业部/子公司/合资项目）。Agent 上下文切换规则：

- 每个 session 锁定一个 `organizationId`，agent 调业务工具自动带 org 过滤
- 用户切组织 = 新建 session（旧 session 不丢，左栏可切回）
- 工件库（AgentArtifact）可选「用户维度」或「组织维度」——默认按当前 session org 隔离

---

## 3. 价值主张与差异化

跟外部对标产品的对比（产品层差异化）：

| 维度 | ChatGPT Enterprise | Microsoft Copilot | Claude for Work | 现有 `ai-assistant` | **FFAI Agent** |
|---|---|---|---|---|---|
| 业务系统对接深度 | 浅（API/插件）| 深（M365 内）| 浅 | 仅 Q&A + 升单 | **直接调 NestJS Service，继承 RBAC** |
| 多组织/多业务模块编排 | ❌ | M365 内 | ❌ | ❌ | **✅ 跨 Project/Approval/Knowledge/ADP** |
| 模型选择 | 固定（用户手切）| 黑盒 | 固定 | 单模型 | **ModelRouter 5 信号源自动+三层覆盖** |
| 端覆盖 | Web/Desktop/Mobile/API | Office 内 + Web | Web/Desktop | Web | **Web→Desktop→Mobile→Teams→CLI 五端统一协议** |
| 数据归属 | 第三方 | M365 | 第三方 | 自家 | **用户文件存自家 OneDrive/Local，FFAI 只存元数据** |
| 工具扩展形态 | Plugin（GPTs）| Connector | MCP | 内置 | **四轨：service / mcp / cli / client（涵盖业务/生态/运维/本地）** |
| 透明可解释 | 黑盒 | 黑盒 | 黑盒 | 黑盒 | **Routing/Cost/Audit Dashboard 给 admin** |

**范围裁剪触发条件**（review 反馈：fast-follower vs differentiator 矛盾——同时跟 Copilot 正面对打 + 5 端 + 自研 ModelRouter + 多组织合规 = 团队规模错配）：

| 触发条件 | 范围调整 |
|---|---|
| Phase 1 GA 后公司 IT 评估或采购 Microsoft Copilot 企业版 | 立即裁掉与 Copilot 重叠功能（M365 内 Q&A），FFAI 收敛到「非 M365 业务模块编排 + 多组织 + ModelRouter」三件核心差异化 |
| Phase 1 GA 北极星未达标（任务完成率 < ❓%） | 暂停 Phase 2 启动，回退到三件套优化 |
| Phase 2 GA 后移动端 push 转化率 < ❓% | Phase 3 移动原生改为 PWA 兜底（不双端原生）|
| 团队规模 < 4 全职 dev | Phase 2/3 必须延后；只做 Phase 1 |

**核心非可替代价值**（外部产品做不到的）：
1. **跟公司业务系统的 service 层对接**——不是调 REST API，是直接调 NestJS Service + 复用事务/审计/权限链路
2. **多组织 + 跨组织员工数据隔离**——公司多事业部一份代码 N 套数据，外部产品做不到
3. **本地能力 + 业务能力同 agent 编排**——读用户本地 Excel + 写到公司 Knowledge + 推审批到 Teams 是一个 turn 完成
4. **管理员可控的成本/合规/路由**——不是黑盒，IT/数据治理可配规则

---

## 4. North Star Metric（成功定义）

> ✅ **P3 已决（2026-05-15）**：
> - **Phase 1 north star = 任务完成率**（用户问的问题里 agent 给出有效解的占比）。抓质量优先于规模，避免「活跃高但没解决问题」陷阱。
> - **Phase 1 GA 后**：切到 **每会话业务动作数**（活跃度 × 价值密度）。
> - **Phase 2**：补 **主动触达转化率**（Teams 推审批/任务的转化率）。

**任务完成率的测量方法**（落地到 dashboard）：

| 阶段 | 方法 | 成本 |
|---|---|---|
| **MVP 内测期（M1）** | 每周抽样 100 个会话人工标注（"agent 是否解决了用户问题"），算占比 | 人力 ~4 工时/周 |
| **GA 期（M2）** | LLM-as-judge：用 strong model 自动判定每个 session outcome，按周聚合；定期人工抽样校准 | 自动化 |
| **GA 后** | 补显式信号：会话结尾 thumbs up/down + 用户主动 close session 标 "已解决/未解决" | 自动化 |

**支撑指标（无论 north star 选哪个都监控）**：
- LLM 月度成本 / DAU（成本控制）
- p50 / p95 首字延迟（体感）
- ModelRouter 决策准确率（Routing Decision Dashboard）
- 跨组织数据泄漏事件数（必须 = 0，安全 SLO）

**其他候选指标的去留**（备查）：
- DAU/MAU：**只作为支撑指标**，不当 north star（活跃 ≠ 解决问题）
- 节省人工时长：**GA 后做 ROI 报告时引入**，Phase 1 阶段难量化

**MVP 期人工标注成本修正**（review 反馈）：100 sessions × 平均 8-15 turn × 跨场景 ≈ **16+ 工时/周（不是 4 工时）**；M1 标注 SOP + IAA（标注者间一致性）≥ 0.7 是数据可信前置；GA 切 LLM-as-judge 后**每月人工抽样 50 条复核**作为 judge 模型校准锚。

**标注治理机制**（review 反馈：标注者 = agent 团队 = 利益相关方，数据可被操纵到失真）：
- **标注者**：**外包标注团队**（不是 agent PM 自己），合同写明 IAA ≥ 0.7 否则不付款
- **第三方校准**：每季度让外部审计员（公司内审或第三方）独立标 100 个相同 session，IAA < 0.6 触发标注 SOP 重训
- **轮换**：每 3 个月轮换至少 30% 标注者，防止"老标注员摸到 PM 偏好"
- **不可操纵性测试**：北极星 dashboard 公开 IAA + 标注者一致性矩阵，任何指标"突然冲高 ≥ 10%"自动告警

---

## 5. 阶段地图

> 本节是顶层 PRD 与架构路线图的接缝。每个阶段的**业务边界**写在这里，**技术 PR 拆分**见 [`02-architecture.md` §8](./02-architecture.md)。

### 5.1 Phase 1 — Web 工作台首页（MVP → GA）

| 维度 | 内容 |
|---|---|
| **业务范围** | 项目管理 + 审批 + 知识 + 文件（OneDrive）四件套 + 协作模式两轴（Plan + Permission）+ ModelRouter |
| **入口** | Web 浏览器 `/agent`（最终目标替代 `/` 首页） |
| **用户范围** | 内测部门（待定，见 §11 产品决策 P4）→ 全员可用 |
| **技术 PR** | `02-architecture.md` §8 PR1 → PR15.7 |
| **不在范围** | Desktop / Mobile / Teams / Client Executor / Cron Isolated Agent / Local StorageBackend |
| **MVP 退出** | PR1-PR7 跑通三件套（项目查询 / 审批提交 / 知识问答）+ ModelRouter day-1 + Plan/Permission 模式 |
| **GA 退出** | + PR8-PR15.7（sub-agent / cron / Routing Dashboard / OneDrive 全量）+ §11 P5 退出标准达标 |

详细 → [`01-prd-phase1.md`](./01-prd-phase1.md)

### 5.2 Phase 2 — Electron Desktop + Teams + Client Executor

| 维度 | 内容 |
|---|---|
| **业务范围** | Desktop 本地文件读写 / 剪贴板 / 通知 / 沙盒 shell + Teams @机器人审批 / 推送 + Local StorageBackend + 管理员后台预配置 |
| **触发条件** | Phase 1 GA + north star 指标达 §11 P5 标准 ≥ 30 天 |
| **技术 PR** | `02-architecture.md` §8 PR11 → PR15 |

详细 → [`01-prd-phase2.md`](./01-prd-phase2.md)

### 5.3 Phase 3 — iOS / Android 原生

| 维度 | 内容 |
|---|---|
| **业务范围** | 移动端原生 App：审批 push / 通勤问答 / 现场拍照 OCR / Live Activity / Siri Shortcut |
| **触发条件** | Phase 2 GA + 移动端刚需信号充分（如审批 push 转化率 > X%）|
| **技术 PR** | `02-architecture.md` §8 PR16+（待补） |

详细 → [`01-prd-phase3.md`](./01-prd-phase3.md)

---

## 6. 跨阶段不变量（任何阶段都不能违反）

这些是 PRD 层的"宪法"——技术实现可以演进，下面这些产品承诺不能变。每条都对应架构里的硬约束。

| # | 不变量 | 架构出处 |
|---|---|---|
| **INV-1** | **多组织数据严格隔离**：跨组织任何数据访问需显式授权；agent session 锁定单一 organizationId（**session 生命周期内 immutable**，切组织 = 新建 session）。**Memory 跨 session 例外**：per-user 全局 memory 注入跨 org session 时**自动剥离 org 业务上下文**（NER + 正则 sanitize：项目名 / 客户名 / 财务数字 / 部门代号），仅保留个人偏好类（"用户偏好 SQL 查询"）；per-org memory 严禁跨 org 注入。**SLO（生产指标）**：< 1 事故/季度 + 5 分钟内可检测 + 30 分钟内可清除。**上线前分层 gate**（替代单一"100% 拦截"不可达指标）：① **runtime DataScope violation 检测器拦截率 = 100%**（确定性，schema 字段级强制）② **红队 NLP 注入样本拦截率 ≥ 95%**（季度滚动样本池 ≥ 1000，引入 PromptBench / Garak benchmark；样本由独立安全团队出题，agent 团队互盲）③ **PII detector FN 触发即告警**（不是"≤ 5% 可接受"——FN 即合规事件，强制路由到境内 provider + 季度回溯审计 + ModelRoutingDecision 落库前强制脱敏 + admin dashboard 走 column-level RBAC，prompt/response 字段管理员只看脱敏 + hash） ④ **OOB 抽样 replay**（独立路径每日重建 audit 跟主链对比，防 superuser 事前拦截不写）。**误报率 SLO 分层**（避免"100% 拦截 + < 1% 误报"不可能三角）：写操作 < 1% / 读操作 < 5% / 误报 30 秒内可一键 override（admin 审计） | G2 + RBAC/DataScope |
| **INV-2** | **用户身份继承**：agent 调业务工具时**继承登录用户身份**，受 RBAC + DataScope 约束；不存在"agent 系统账号"绕权 | §1.9 / §9 L9 |
| **INV-3** | **可审计**：所有 agent 行为可追溯到 user + 时间 + 工具调用链（TrajectoryEvent 不可篡改）。**工程化保险（防事后篡改）**：① 应用层 PG REVOKE UPDATE/DELETE（防代码 bug）② 哈希链 `event.hash = sha256(prev_hash + event_payload)`（防 DBA / superuser / 备份篡改）③ **两路异质外部锚定**：每日 Merkle root 同时落 (a) S3 Object Lock **Compliance 模式**（不是 Governance；root user 也不可删）+ (b) 第三方 TSA 时间戳服务（**注**：FreeTSA 是公益服务无 SLA，生产环境必须接入企业 TSA vendor，候选：DigiCert TimeStamp / 国内 CFCA 时间戳）。**防事前不写（防 superuser 拦截 + service hook 跳过）**：④ **turn-level reconciliation**：API 入口 turn 计数器 vs TrajectoryEvent turn 计数器每小时对账，差值 ≥ 1 即告警 ⑤ **OOB 抽样 replay**：独立服务从原始 LLM provider log 抽样 1% turn 重建 audit chain 跟主链对比。**day-1 必备**：哈希链验证脚本 + L1c 断链检测测试用例 + 归档 job 设计（PG REVOKE 表如何 DELETE 老数据走单独 admin DBA 通道，含 PIPL "被遗忘权"清理流程：删除 = 加密销毁 user-derived key + 写 deletion event 进哈希链而非真删 row）+ Compliance 模式误锚定恢复剧本（错填保留期 = 接受沉没成本不是技术问题，必须法务签字才能锁）。**容量分区方案 day-1 锁**：按时间 + organizationId 二级分区（建议 active 90d in PG + 归档 2y to S3 + ≥ 100GB 自动新建分区）| §1.10.1 |
| **INV-4** | **用户保留数据主权**：用户文件存用户绑定的 OneDrive / Local，**FFAI 不持有用户原始文件**，只存元数据（AgentArtifact）+ 小工件 inline (<256KB) | §1.11 / §10 |
| **INV-5** | **透明可解释**：管理员可查 ModelRouter 路由决策、cost 报告、所有工具调用日志；用户可查 hover 简版 reasoning | §1.10 / §1.12.7 |
| **INV-6** | **中文优先 + 双语支持**：所有用户可见文案默认中文（zh-CN），i18n 支持英文（en-US）；用户可改 per-user 默认语言（跨国合资项目 / 外籍高管场景）。**注**：「控制台 missing key warning = 0」是 CI/测试 SLO，详见 phase1 §8（不算 vision 不变量）| CLAUDE.md 测试 §i18n 双语 |
| **INV-7** | **生态兼容预留**：SDKMessage 协议字段设计同构 Anthropic Messages，inbound 适配器预留位（让外部 Claude Code/Cursor 客户端能接 FFAI） | G6 / Q18 |
| **INV-8** | **API-first 多 surface 平行**：Backend API + SDKMessage 协议是唯一基础，任何新 surface 必须基于此协议（不允许 surface 私自旁路）| G8 |
| **INV-9** | **协作模式可控**：用户和管理员可控制 agent 自治程度（Plan/Execute toggle + Permission mode 5 态），admin 可禁某些 mode | §1.14 |
| **INV-10** | **第三方 plugin 默认不开放**：多组织审计成本高，Phase 1-2 不开放第三方 plugin 市场 | §10 |

---

## 7. 非目标（明确不做）

跟 `02-architecture.md` §10「不做清单」对应，本节是**业务层不做**：

| 不做 | 理由 |
|---|---|
| 面向消费者（C 端）市场 | FFAI 是企业内部工具 |
| 开发者 IDE 助手（替代 CC/Cursor/Copilot） | 已有成熟方案；FFAI 是业务工作流编排器，不是编程助手 |
| 跨企业 SaaS 多租户对外售卖 | G2：仅服务公司内部多组织 |
| 通用 AIGC 工具（图片/视频/音乐生成） | YAGNI，Phase 1-3 不上 |
| 个人订阅类 LLM 接入（让 agent 跑用户的个人 ChatGPT/Claude）| 合规风险，违反 ToS |
| Realtime 语音 / TTS | YAGNI |
| Discord / WhatsApp / Slack 等社交 IM 集成 | 公司用 Teams，Phase 2 仅 Teams |
| CLI / TUI 主入口 | Web 主入口，CLI 仅 Phase 2 thin surface |

---

## 8. 风险与缓解

| 风险 | 影响 | 触发 | 缓解 |
|---|---|---|---|
| 用户预期被 ChatGPT/Copilot 拉高，对响应速度/准确度容忍度低 | 上线即被弃用 | Phase 1 上线 | day-1 选高价值场景（不是全场景）+ 速度 SLA + onboarding 引导 |
| LLM 月度成本失控 | 财务超预算 | 任意阶段 | day-1 ModelRouter cost 信号 + 管理员配额 + 月度预算告警（INV-5）|
| **LLM provider 数据出境合规（PIPL/CAC/数据安全法）**| 法务/监管阻断上线 | **PR3 启动前**| **强前置依赖**：法务/合规评估 OpenAI/Anthropic 直连方案（实际链路 4-12 周，可能否决）；候选 fallback：① 国内 LLM（豆包/通义/Kimi 等，需重做 ModelRouter 适配）② Azure OpenAI / Bedrock 中转（**注意：Azure China / Bedrock 都不在国内合规清单，需走 CAC 数据出境安评 6-12 月**）③ 企业版 zero-retention DPA（不解决出境本身）④ ModelRouter 加"PII/敏感 → 强制走境内 provider"（依赖 PII detector FN 率 ≤ 5%）。**Plan B 占位**：若评估失败，新增 "PR3-alt 国内 LLM 适配" 占位 PR，避免关键路径塌方 |
| **fast-follower vs differentiator 团队规模错配** | 项目被砍 | 任意阶段 | 见 §3 范围裁剪触发条件；team capacity ≥ 4 全职 dev 才同时推 P1/P2/P3，否则只做 Phase 1 |
| **Persona 样本量不足** | north star 无统计显著性 | M1 内测期 | 内测部门必须 PMO + 业务员工合计 ≥ 100 人（按周触发率 80% 才能凑齐 500 sessions/周） |
| 跨组织数据泄漏 | **P0 安全事故** | 任意阶段 | INV-1 + L1 集成测试覆盖跨组织场景 + RBAC/DataScope 强制 |
| 任一 LLM provider 停服影响整体 | 全产品不可用 | 任意阶段 | ProviderChain failover + day-1 接 OpenAI + Anthropic 两家（Q13） |
| Prompt injection 让 agent 执行恶意工具 | 数据泄漏 / 误操作 | 任意阶段 | Permission mode default = ask 写操作；CLI/Client 沙盒 + 命令白名单（§1.9） |
| Service 层契约破坏（业务模块改 API）| Agent 工具失效 | 业务模块演进 | Tool 通过 NestJS Service 调用，业务方改 API 时跑 L1 集成测试自然兜底 |
| Memory / Compaction bug 导致旧 session 串号 | 数据混乱 | Phase 1 PR4 上线后 | TrajectoryEvent 全量回放能力 + sessionId 强校验 + L1 跨 session 测试 |
| Teams Bot Framework 国内可达性 | Phase 2 Teams 不通 | PR14 启动 | 启动前 IT 评估公司网络放通 / 有 fallback 走 Web |

---

## 9. PRD review 卡点（按 docs/standards/14）

按 `docs/standards/14-feature-request-workflow.md` PRD review 卡点要求，本 PRD 必须经以下角色 review 后方可启动 Phase 1 PR1：

- [ ] **产品负责人**：业务范围 / 用户画像 / north star 选择 / Persona 优先级
- [ ] **架构 owner**：与 `02-architecture.md` 决策一致性 / INV-1~10 跟架构对齐
- [ ] **安全 / 合规**：多组织隔离 / 数据归属 / TrajectoryEvent 审计 / Permission 控制
- [ ] **Phase 1 工程负责人**：PR 路线图可行性 / 工作量评估 / 内测部门资源协调

review 完成后在本文件 footer 写明日期 + 签字人。

---

## 10. 文档关系导图

```
01-prd.md (本文件)             —— 顶层产品 vision / 阶段地图 / 不变量
   ├─ 01-prd-phase1.md         —— Phase 1 详细需求（用户故事 / 功能清单 / 验收）
   ├─ 01-prd-phase2.md         —— Phase 2 占位 + 已知方向
   └─ 01-prd-phase3.md         —— Phase 3 占位 + 已知方向

02-architecture.md             —— v0.2 final 架构（决策 + layering）
03-implementation-comparison.md —— 三家源码对比 + FFAI 选型
provider-strategy.md           —— LLM provider 选型 + MCP + Anthropic 兼容
{cc,oc,ocw,codex}-reference.md  —— 四家开源 agent 源码解构（事实源）
agent-implementations-comparison.md —— 横向决策矩阵
```

---

## 11. 产品决策状态

### 11.1 已决（2026-05-15）

| # | 问题 | 决策 |
|---|---|---|
| **P1** ✅ | day-1 内测优先 persona | **项目经理 + 业务员工** |
| **P2** ✅ | day-1 优先场景 | **项目查询 + 审批提交 + 知识问答**（三件套）|
| **P3** ✅ | Phase 1 North Star | **任务完成率** |

### 11.2 仍待决策（启动 PR1 前不卡，但 M1 内测前必须定）

| # | 问题 | 阻塞 | 何时回答 |
|---|---|---|---|
| **P4** | MVP 内测部门：哪个部门 / 多少人 day-1 接入？ | M1 上线前必须定 | M0 内部 Alpha 验证后 |
| **P5** | MVP/GA 退出标准的具体数字（任务完成率阈值 / DAU 人数 / NPS 等）| M1 启动前必须定 | M0 数据出来后参照实际范围设置 |
| **P6** | 现有 ai-assistant 退役节奏：Q5 已锁"逐步弃用 + 不再加新功能"，但何时正式下线？ | PR1 启动只需 ai-assistant owner 团队"知情确认"（不阻塞启动，避免政治阻塞 MVP）；正式退役走 P1 GA 后 6 个月窗口期（同 phase1 PR12.5 措辞）| **PR1 启动**：owner 知情确认 + 流量画像（1 周采样：Q&A vs 升单 vs IDE-style 子集）→ **GA 后窗口期**：PR12.5 收编为 `legacy-qa` skill |

---

## 12. 文档版本

| 版本 | 日期 | 变更 | 作者 |
|---|---|---|---|
| v0.1 (骨架) | 2026-05-15 | 初始章节大纲 + 关键问题清单 | (slot-2 session) |
| v0.2 (架构反推) | 2026-05-15 | 从 02-architecture.md 反推填充 §1/§3/§5/§6/§7/§8；§11 集中列产品侧待定问题 | (slot-2 session) |
| v0.3 (P1-P3 已决) | 2026-05-15 | P1 persona / P2 场景 / P3 north star 用户已确认，固化到 §2.1/§2.2/§4；P4-P6 留待 M0 后定 | (slot-2 session + user) |
| v0.4 (8 角色 review 应用) | 2026-05-15 | 应用 prd-multi-role-review 8 角色 finding：INV-1 SLO 量化（< 1 事故/季度 + 5 分钟检测 + 30 分钟清除）+ runtime DataScope 检测器 / INV-3 哈希链 + 容量留存 / INV-6 missing key 降级 / north star 标注成本修正（4→16+ 工时） / 新增 LLM 数据出境合规风险 / P6 ai-assistant 退役提前到 PR1 启动前 + 新增 Phase 1 PR12.5 收编 | (slot-2 session + 8 角色 review) |
| v0.5 (Round 2 review 应用) | 2026-05-16 | dogfood 重跑实验找出 80+ 新 finding（重复率仅 8%，反驳"信号增量 ≈ 0"假设）。应用：INV-1 加红队代理指标（100 样本拦截率 = 100% 上线 gate）+ session organizationId immutable 显式声明 / INV-3 改两路异质锚定（S3 Object Lock Compliance + 第三方 TSA）+ 二级分区 day-1 / §3 加范围裁剪触发条件（fast-follower vs differentiator 矛盾）/ §4 北极星标注治理（外包 + 第三方校准 + 轮换 + 不可操纵性）/ 风险表加 LLM 出境 plan B PR3-alt + 团队规模错配 + Persona 样本量 | (slot-2 session + 8 角色 round 2 review) |
| v0.6 (Round 3+4 review 应用) | 2026-05-16 | dogfood 跑到 4 轮（R3 真新 50 / R4 真新 50，反驳"3 轮收敛"假设；R4 出现 meta-finding = 元层信号 = 该停）。应用 R3+R4 PRD 缺漏类：INV-1 改分层 gate（runtime 100% + 红队 ≥ 95% + PII detector FN 即告警 + 误报率分层）+ Memory 跨 session 例外（per-user sanitize org 业务上下文）/ INV-3 加 turn-level reconciliation + OOB 抽样 replay（防事前不写）+ PIPL "被遗忘权"清理流程 + TSA vendor 选型 / §11 P6 改"GA 后窗口期 + PR1 启动只需 owner 知情确认"（解政治阻塞 MVP）| (slot-2 session + 8 角色 round 3+4 review) |
