# Roadmap

## North star

**ResearchAgent Service** — 一家 AI-native research service company：用本地 Desktop 获取资料信任，用 AgentPack 自动化科研服务流程，用专家 QA 控制方差，向教授、博士、课题组交付可追溯的论文预审、文献地图、基金打磨等结果。

战略路径（[`docs/requirements-change-personal-desktop.md`](docs/requirements-change-personal-desktop.md)）：

```
service  → 论文预审 / 文献地图 / 基金打磨三类结果型 SKU  (M0-M3, pilot)
   ↑
desktop  → 本地资料入口 + 报告交付界面 + 隐私信任层        (M0-M3, 已在建)
   ↓ 同一份代码，改一行 config
retainer → 课题组月度服务 + Desktop Pro / Lab 承接自助需求  (M4-M5, 付费验证)
   ↓ 同一份代码，改一行 config
paas     → 私有化 / 多租户平台化                             (v2+, 服务跑通后)
```

核心商业假设：

- 客户不为 "一个 AI 工具" 付高价，客户为 **可交付科研结果** 付费。
- Desktop 是入口，不是收入上限；AgentPack 是生产线，不是 marketplace 起点。
- 专家 QA、SOP、COGS、返工率和低方差交付，是比下载量更重要的早期指标。

## 现状（截至 2026-06-07）

- `v1.1.0-rc1` 已发布，CI 全绿，**189 测试**通过 Python 3.10/3.11/3.12
- audit 84 finding 关闭 28 个（critical 7/7、high 22/33）
- 仓库 private，PaaS / Desktop / AgentPack 软件叙事完整；商业叙事已切换为 **AI-native research service**
- CR rev.2 + 12 个开放问题决策已 commit
- **M1 完成**：`deployment_mode` 三档落地（desktop 默认），webui mode-aware，
  FR-001 一键登录 + FR-002 数据目录，dogfood 三档 UI 验收通过
- **M2 完成**：AgentPack format（manifest + 安装 + 权限）+ 3 个内置科研 pack
  （reviewer / literature-mapper / grant-planner）+ citation-aware ingestion
  （PDF 页码 + Obsidian + `[Source N | file p.12]`）
- **下一步 = M0 的 3 个非软件项**（Apple Developer / Windows EV / 服务 pilot 客户）
  + **M2 收尾集成**（agentpack 接入 KB 管线带页码 + dogfood）
  + **服务生产线**（三类 SKU、QA checklist、COGS tracker、样例报告）
  + **M3**（macOS installer + 3-5 个结果型服务 pilot）

---

## Now (本周 — 2026-06-07 至 2026-06-14)

**主题**: M0 服务收敛 + 解锁 Apple Developer / Windows EV 长流程

| 任务 | Owner | 验收 | 状态 |
|---|---|---|---|
| 答 CR §13.1 + §13.2 共 12 个开放问题，记录到 CR doc | Kenny | CR rev.2-decisions commit ✓ | ✅ 完成 |
| 起草 `ROADMAP.md` | Kenny | 本文档 ✓ | ✅ 完成 |
| spike: `deployment_mode` flag 200 LOC 估算 | Claude | 88bdddb: 143 LOC + 11 test; 132 老 test 全绿 ✓ | ✅ 完成 |
| 申请 Apple Developer 账号 ($99/年) | Kenny | 收到 Apple ID 启用确认邮件 | 🔲 待办 (M0) |
| 启动 Windows EV 代码签名证书申请（需 ≥3 个月） | Kenny | DigiCert/Sectigo 申请单提交 | 🔲 待办 (M0) |
| 决定第一批服务 pilot 客户名单（3-5 位教授/博士/PI） | Kenny | 名单 + 真实论文/方向/基金材料 + 反馈承诺 | 🔲 待办 (M0) |
| 定义 3 个结果型 SKU 与报价 | Kenny | 论文预审 / 文献地图 / 基金打磨的交付物、SLA、价格假设 | 🔲 待办 (M0) |
| 建立服务 QA checklist + COGS tracker | Kenny | 预审报告 QA 表、人工分钟数/模型成本/返工原因表格 | 🔲 待办 (M0) |
| 准备 1 份样例服务报告 | Kenny | 可公开脱敏的 Top Journal Readiness Report 样例 | 🔲 待办 (M0) |

> **M0 备注**: 软件侧（spike）已完成并直接滚入 M1。当前阻塞不在代码，
> 而在账号/证书、人脉、服务 SKU、QA/SOP/COGS 这四类商业化准备。

---

## ✅ M1 完成 (2026-06-07, 至 2026-07-21 计划 → 提前完成)

**主题**: Desktop runtime + 单 mode 改造 — **全部交付，CI 全绿，dogfood 验收通过**

实测成本: CR rev.2 估算 ~200 LOC，实际生产代码约 480 LOC（含 FR-002 +
FR-001 + dogfood 修复），新增 24 个 test（132 → 156 root tests）。

### Phase B — Desktop runtime ✅ (88bdddb + 56eebc7)

- [x] `config.py` 加 `deployment_mode = desktop|lab|paas`（默认 desktop）+ 非法值 fail-fast
- [x] `setup.py` `auto_bootstrap_desktop()`：首启建 `tenant_id="tn_local_{hex}"`（Q11 匿名）+ `tenants.name="{hostname}/{user}"` alias + admin key 写 `~/.agentpaas/config.json`；幂等
- [x] `app.py` mode-aware 路由 gating：desktop 下 `/admin/*` `/billing/*` 强制 404（Q9 oracle 防御）
- [x] mode-transition smoke test（Q10）：desktop→lab→paas→desktop 四档全跑通 + tenant scope assert
- [x] Network bind 默认值：desktop/lab `127.0.0.1`、paas `0.0.0.0`（Q12），`AGENTPAAS_HOST` 可覆盖
- [x] data_dir mode 分流（FR-002）：desktop `~/LambdAgentDesktop`、lab/paas `~/.agentpaas/data`
- [x] `GET /setup/mode` 端点（Q8 webui 接口）

### Phase C — Webui Desktop 工作台改造 ✅ (ff61e59 + 9e933e4 + 891775f + 904c876)

- [x] 顶栏 mode chip（Q8）：🖥️ Desktop / 👥 Lab · {tenant} / ☁️ PaaS · {tenant}（teal/amber/indigo）
- [x] 文案重命名：Dashboard→今日工作、Knowledge→资料库、Providers→模型与隐私、Chat→研究任务工作台（desktop）
- [x] 首次启动向导 mode-aware brand（ResearchAgent Desktop）+ 数据目录展示（FR-002）+ Claude Code 推荐（Q4）
- [x] SR-002 隐私 modal：会发送/不会发送两列对照，desktop 首次强制弹窗（持久化 ack）
- [x] FR-001 一键登录：desktop + bootstrapped → `/setup/desktop-key` 自动取 key 跳 dashboard，教授双击即用

### dogfood 验收 (904c876) — 真实服务 + 浏览器走通三档

抓到并修复 2 个单元测试查不出的真 bug：
- **webui-dist 静态服务回归**（src-layout 迁移后 `../../webui-dist` 失效 → 整个 desktop app 不出 UI）→ `_resolve_webui_dist()` 多候选路径探测
- **FR-001 向导死路**（auto-bootstrap 写了 key 但向导让用户贴 key）→ `/setup/desktop-key` + 向导自动登录

### 已知小瑕疵（非阻塞，留 M2 打磨）

- 向导 step3 panel 内文案 "初始化平台" 未 mode-aware（pill 已是 "完成设置"；desktop 一键登录后看不到此步）
- Dashboard PageHeader "仪表盘" 未 mode-aware（sidebar 已是 "今日工作"）

### 验证的核心假设

✅ **CR rev.2 战略成立**：`319 处 tenant_id 引用` 完全没动，Q10 mode-transition smoke 全绿 — 多租户能力 100% 保留，desktop 只是默认隐藏。从 desktop 升 lab/paas = 改一行 `AGENTPAAS_DEPLOYMENT_MODE` + 重启。

---

## ✅ M2 完成 (2026-06-07, 至 2026-09-07 计划 → 大幅提前)

**主题**: AgentPack format + 3 个内置 pack + PDF 引用追踪 + Pack↔Agent 集成 + webui 管理页 + e2e dogfood — **软件全部交付，CI 全绿，189 test**

### Phase D — AgentPack format ✅ (c550f15)

- [x] `docs/AGENTPACK_SPEC.md`: manifest schema (id/name/version/domain/entrypoint/permissions/model) + 权限模型 + 安全 (zip-slip/yaml.safe_load)
- [x] kernel `lambdagent/agentpack.py`: AgentPackManifest + PackPermissions(SR-003 deny-by-default) + load_manifest（semver/id/entrypoint 校验 + escape 防御）
- [x] agentpaas 端点: `GET /agentpacks` `GET /{id}` `POST /install`(loopback) `DELETE /{id}`
- [x] `engine/agentpack_store.py`: 安全 unzip + 第三方 shell 拒绝(SR-003) + install/list/uninstall
- [x] config 加 `agentpacks_dir`；19 test
- 注：permission 运行时 tool-registry gating 是增量项（v0.1 校验+声明+install 拒绝；完整 gating 留后续）

### Phase F — 3 个内置 agent pack ✅ (0db8d9a)

- [x] `research.top-journal-reviewer` — 论文 → 审稿报告 + 中稿概率 + 修改清单
- [x] `research.literature-mapper` — 方向 + 本地论文 → 文献地图 + 方法谱系 + open problems
- [x] `research.grant-planner` — 方向 + 材料 → 立项依据 + 创新点 + 技术路线 + 风险
- [x] 设计决策：**独立 agent 而非 symlink 流水线 sub-agent**（physics67 reviewer 是读 {workspace}/02_sim/.. 的子节点，不能独立跑）。改造成 standalone 输入契约，local-first（无 shell/network），全部 from_config 编译通过
- [x] 4 test（bundled-pack regression guard）

### Phase E — citation-aware ingestion ✅ (0abbd47)

- [x] `lambdagent/ingest.py`: extract_pdf_pages（pdfplumber→PyPDF2 兜底）+ chunk_pages（页码保留，chunk 不跨页）+ CitedChunk
- [x] `import_obsidian_vault`（Q7）: walk .md + `[[wiki]]` alias 展开 + target 进 link graph
- [x] `rag.RAGTool` 引用格式: `[Source N | paper.pdf p.12]`（FR-005）
- [x] pdfplumber 加进 knowledge extra；9 test
- 集成边界：lambdagent 层 citation 原语已测；接进 agentpaas KB index 构建管线（pickle subprocess 子系统，audit #17）是后续集成步骤

### Phase G2 — Pack↔Agent 集成 ✅ (1299d22)

- [x] `POST /agentpacks/{id}/create-agent` — 从已安装 pack 一键创建 agent（agent_dir=pack.path, _config_dir=pack.path）
- [x] 2 test（E2E + 404 guard）

### Phase H — webui AgentPack 管理页 ✅ (e010efa)

- [x] `webui/src/api/agentpacks.ts` — API client（list/get/install/uninstall/create-agent）
- [x] `webui/src/pages/AgentPacks.tsx` — 安装/列表/卸载/创建智能体，安全提示 banner
- [x] App.tsx 路由 + Sidebar "智能体包"导航项（Package 图标）
- [x] tsc + vite build 全通过

### Phase I — AgentPack 端到端 dogfood ✅ (67beab7)

- [x] `tests/test_agentpack_e2e.py`：11 test（install→list→get→create-agent→GET agent→from_config 编译→uninstall pack 不级联删 agent）
- [x] `scripts/dogfood_agentpack.py`：手动 E2E 脚本（需运行 server + API key）
- [x] 全套 189 passed，1 skipped（LLM run，设计如此）

### 仍待做（M2 软件范围外的同期任务，需 Kenny / 真实用户）

- [ ] 服务 pilot 访谈（3-5 位），锁定真实论文 / 研究方向 / 基金材料
- [ ] 内部 dogfood: Kenny 用 ResearchAgent Service 完成一篇真实论文预审，交付 `Top Journal Readiness Report`
- [ ] 对 dogfood 记录 COGS: 模型成本、人工 QA 分钟数、总 cycle time、返工原因
- [ ] 形成 3 个服务 SKU 的 SOP:
  - `paper-readiness-review`
  - `literature-map`
  - `grant-polish`
- [ ] agentpack 接入 agentpaas KB index 管线（让 KBSearch 结果带页码）
- [ ] permission 运行时 tool-registry 完整 gating

---

## M3 (4 个月内 — 至 2026-10-07)

**主题**: macOS Beta 可下载 + 3-5 个结果型服务 pilot

### Phase G — macOS Installer（≈3-6 周）

- [ ] PyInstaller spike: 嵌入 Python 3.12 + uvicorn + 全部依赖 + webui-dist 静态文件
- [ ] 启动器: 双击 .app → 后台启 uvicorn → 自动 `open http://127.0.0.1:8000`
- [ ] notarization 走通: Apple Developer ID + xcrun altool / notarytool
- [ ] .dmg 安装包: 拖到 Applications 即装
- [ ] 自动更新: 检测 GitHub Releases latest，提示用户

### 用户验证（Desktop 入口指标）

| 指标 | M3 目标 |
|---|---|
| 首次安装到完成第一个任务 | < 10 分钟 |
| PDF 导入成功率 | > 90% |
| 审稿报告生成成功率 | > 80% |
| 报告包含引用比例 | > 80% |
| 真实试用用户 | 10-20 人 |
| 一周后再次使用 | > 40% |

### 服务验证（AI-native service 指标）

| 指标 | M3 目标 |
|---|---|
| 结果型服务 pilot | 3-5 单 |
| 首批服务 SKU | 论文预审 / 文献地图 / 基金打磨 |
| 论文预审交付时长 | 24-48 小时 |
| 专家 QA 时间 | 30-60 分钟 / 单 |
| 每单 COGS 记录率 | 100% |
| 客户愿意付费/复购反馈 | 至少 2 个明确 yes |
| 返工原因记录 | 100% |

### Release 动作

- [ ] tag `v1.1.0-beta1`
- [ ] GitHub Release（prerelease）含 .dmg / .zip
- [ ] 写 `docs/USER_GUIDE.md` 面向非技术用户（教授友好语言）
- [ ] 写 `docs/SERVICE_SKU.md`：三类结果型服务、样例交付物、SLA、报价假设
- [ ] 写 `docs/SAMPLE_REPORTS/`：至少 1 份脱敏论文预审样例报告
- [ ] 官网/下载页增加 "提交服务 pilot" 入口，而不是只追求下载量

---

## Later (5-7 个月 — M4 + M5)

### M4 — Windows Beta（≈4-6 周）

- [ ] Windows EV 证书到位 → PyInstaller + signtool
- [ ] .msi / .exe 安装包，无 SmartScreen 警告
- [ ] Microsoft Store 评估（独立工作流）
- [ ] 与 macOS Beta 同步功能矩阵，跑同样的成功率指标

### M5 — Outcome Pricing + Retainer + Desktop Pro（≈3-4 周）

- [ ] 结果型服务报价验证
  - 论文预审: 499-1999 RMB / 篇
  - 文献地图: 1999-9999 RMB / 方向
  - 基金打磨: 3000-20000 RMB / 项
- [ ] 课题组 Retainer 报价验证
  - 每月 N 份论文预审 / 文献地图 / 基金打磨
  - 加急通道 + 专家 QA + Desktop 资料入口
  - 3000-20000 RMB / 月价格带访谈
- [ ] 每单 COGS dashboard
  - 模型成本
  - 专家 QA 分钟数
  - 交付/沟通分钟数
  - 返工率
  - gross margin
- [ ] Desktop Pro 作为辅助入口，而非收入上限
  - Free: 1 个 agent pack, 知识库 100 文件, Markdown 报告
  - Pro: 全部 agent pack, 无限制知识库, 批量审稿, PDF/DOCX 导出
- [ ] 首批 5-10 位付费客户跟踪（按服务单 / Retainer，而不是只按 Pro 订阅）

---

## Beyond (v1.2+)

不在 v1.x scope, 但已经在 CR 里 mark 为路径终点的：

- **Service Retainer → Lab** — `deployment_mode=lab` UI/营销已就绪；等 3-5 个课题组愿意持续购买结果型服务后，再把 Lab 版作为团队入口交付
- **Zotero 集成** — Q7 推迟到这里
- **医学场景重启** — Q5 推迟到这里，配合医院法务一起立项 ResearchAgent Medical
- **Agent Pack Registry 自建** — 等 AgentPack 在内部服务生产中稳定、且自助需求明确后再做
- **私有化部署 / paas mode 商业化** — 等 Lab/Retainer 有 ≥5 个课题组实际跑通后

---

## Roadmap 里没有的事情（不做清单）

明确不做（与 CR §4.3 + §5.4 一致）：

- 多租户云端 SaaS 公开发布（v2 之前不做）
- 医疗诊断 / 处方 / 治疗决策（永远不做，CR FR-013）
- App Store / Microsoft Store 首发（M5+ 看情况）
- 团队协作 + 组织级权限（v1.x 不做）
- Agent Pack marketplace 交易系统（v1.x 不做；AgentPack 先用于内部服务生产）
- 大规模下载量 / DAU 增长（v1.x 不追；服务 pilot 和付费意愿优先）
- 纯软件订阅作为主收入（Desktop Pro 是入口和辅助，不是商业化上限）
- 偏离三类 SKU 的定制外包（论文预审 / 文献地图 / 基金打磨之外的杂活不接）
- 面向普通大众的聊天助手（不做，定位偏离）
- 通用 Agent 编排 SDK 作为主产品（lambdagent 仍开源但不再是产品门面）

---

## Open risks（持续跟踪）

| 风险 | 概率 | 影响 | 缓解 |
|---|---|---|---|
| Apple Developer 账号审核 > 2 周 | 中 | M3 阻塞 | 立刻申请，准备备用账号 |
| Windows EV 证书 > 3 个月到货 | 高 | M4 阻塞但不阻塞 M3 | 提前 M0 当天申请 |
| PDF 引用追踪准确率 < 80% | 中 | M3 验收指标失守 | Phase E 期间用 5 篇 SOTA 论文跑 ground truth |
| 服务 pilot 客户找不齐 3-5 位 | 中 | M3 服务验证不足 | M0 期间通过个人网络锁定，并要求真实材料 + 反馈承诺 |
| 服务质量方差过高 | 中 | 客户不信任，无法复购 | 每单专家 QA + QA checklist + 返工原因记录，回灌 AgentPack |
| COGS 过高 / 毛利不成立 | 中 | AI-native service 经济模型失败 | 每单记录模型成本、专家分钟数、交付分钟数；优先优化高频 SKU |
| 专家 QA 供给不足 | 中 | throughput 上不去 | 从兼职领域顾问开始，目标让专家只复核关键判断而非从零写报告 |
| `deployment_mode` flag 改动 break 现有 189 test | 低 | M1/M2 回归 | mode-transition smoke + 全套测试持续跑 |
| 医学场景外部压力（用户主动要） | 中 | 偏离 roadmap | 坚持 Q5 决策，给出 "不做" rationale |
| BUSL ≤10 user 与 Lab 多设备认定冲突 | 低 | 法律风险 | Lab 版上线前请律师 review 一次 BUSL 文本 |

---

## How this roadmap maps to existing audit work

[`docs/AUDIT_2026-06-05.md`](docs/AUDIT_2026-06-05.md) 的 84 个 finding 中：

- **28 已关闭**（截至 rc2）— 5 critical + 22 high + 1 medium + 1 low
- **56 待办**，按 mode 影响分类：
  - **Desktop 模式下仍需要修**（10 个）: #11 #13 并发 race, #22 #23 webui 稳定性, #17 pickle RCE, #16 qaagent67lambda 硬编码路径
  - **只在 lab/paas 模式生效**（46 个）: tenant scoping 加固类、多用户 admin 类、RBAC 细化类、SPEC 漂移类。这些在 M1 完成后自动复用，**不需要重新修**。

**Service-first + Desktop 优先级 + 多租户保留** 这条战略选择，让 audit 修过的工作成为 lab/paas 升级时的 free win；同时把 v1.x 的商业验证从 "卖软件" 调整为 "卖可追溯科研结果"。

---

最后更新: 2026-06-07
本 roadmap 与 [`docs/requirements-change-personal-desktop.md`](docs/requirements-change-personal-desktop.md) 和 `01-Research/Agent/LambdAgent Desktop 商业计划书.md` 同步。需求决策记录见 CR §十三；商业叙事以 AI-native research service company 为准。
