|
|
@@ -16,14 +16,17 @@ paas → 云端/私有化 (N tenant) (v2+, 已有完整能力)
|
|
|
|
|
|
## 现状(截至 2026-06-07)
|
|
|
|
|
|
-- `v1.0.0-rc2` 已发布,CI 全绿,**156 测试**通过 Python 3.10/3.11/3.12
|
|
|
+- `v1.0.0-rc2` 已发布,CI 全绿,**184 测试**通过 Python 3.10/3.11/3.12
|
|
|
- audit 84 finding 关闭 28 个(critical 7/7、high 22/33)
|
|
|
- 仓库 private,PaaS 叙事完整
|
|
|
- CR rev.2 + 12 个开放问题决策已 commit
|
|
|
- **M1 完成**:`deployment_mode` 三档落地(desktop 默认),webui mode-aware,
|
|
|
- FR-001 一键登录 + FR-002 数据目录就位,dogfood 三档 UI 验收通过
|
|
|
+ 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 / alpha 用户)
|
|
|
- + **M2 软件**(AgentPack format + PDF 引用 + 3 个内置 pack)
|
|
|
+ + **M2 收尾集成**(agentpack 接入 KB 管线带页码 + dogfood)+ **M3**(macOS installer)
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -87,42 +90,41 @@ FR-001 + dogfood 修复),新增 24 个 test(132 → 156 root tests)。
|
|
|
|
|
|
---
|
|
|
|
|
|
-## Then (3 个月内 — M2 至 2026-09-07)
|
|
|
+## ✅ M2 完成 (2026-06-07, 至 2026-09-07 计划 → 大幅提前)
|
|
|
|
|
|
-**主题**: AgentPack format + 3 个内置 pack + PDF 引用追踪
|
|
|
+**主题**: AgentPack format + 3 个内置 pack + PDF 引用追踪 — **软件全部交付,CI 全绿,184 test**
|
|
|
|
|
|
-### Phase D — AgentPack format(≈2-3 周)
|
|
|
+### Phase D — AgentPack format ✅ (c550f15)
|
|
|
|
|
|
-- [ ] `docs/AGENTPACK_SPEC.md` 起草: manifest.yml schema + permission model
|
|
|
- - 必填: `id` `name` `version` `domain` `audience` `entrypoint` `permissions` `model.recommended`
|
|
|
- - permission 字段: `read_knowledge` / `write_workspace` / `network` / `shell` / `read_filesystem`(CR §SR-003)
|
|
|
-- [ ] 后端端点: `POST /agentpack/install` `GET /agentpack/list` `DELETE /agentpack/{id}`
|
|
|
- - 安装源(Q6): local zip / GitHub Releases URL(`gh release download` 模式)
|
|
|
- - 解压目标: `~/LambdAgentDesktop/agentpacks/{id}/{version}/`
|
|
|
- - 装前权限摘要弹窗(CR FR-007)
|
|
|
-- [ ] permission 运行时 enforcement: lambdagent 内核里读 manifest, 不允许的工具直接 reject
|
|
|
+- [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 E — PDF 引用追踪(≈2-3 周)
|
|
|
+### Phase F — 3 个内置 agent pack ✅ (0db8d9a)
|
|
|
|
|
|
-- [ ] 升级 `lambdagent/builtin_tools/qa_tools.py` 的 PyPDF2 路径到 `pdfplumber`(page-number-aware)
|
|
|
-- [ ] 引入 page-number-preserving chunker: 每 chunk 携带 `{file, page, char_offset, len}`
|
|
|
-- [ ] `lambdagent.rag.RAGTool` 输出格式扩展: `[Source N | filename.pdf p.12]` 而非现在的 `[Source N]`
|
|
|
-- [ ] Obsidian vault 导入(Q7): 把 vault 路径当 root_dir,markdown 文件遍历 + 双向链 `[[wiki]]` 解析
|
|
|
+- [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 F — 3 个内置 agent pack(≈4-6 周,并行 D/E)
|
|
|
+### Phase E — citation-aware ingestion ✅ (0abbd47)
|
|
|
|
|
|
-- [ ] `research.literature-mapper` — 输入 PDF 集 + 研究问题 → 文献地图 + 方法谱系 + BibTeX
|
|
|
- - 基于 `agentexample/research67` 改造
|
|
|
-- [ ] `research.top-journal-reviewer` — 输入论文 → 顶刊审稿意见 + 接收概率 + 修改清单
|
|
|
- - 基于 `agentexample/physics67/agents/reviewer.yml` 改造
|
|
|
-- [ ] `research.grant-planner` — 输入方向 + 已有材料 → 立项依据 + 创新点 + 技术路线 + 风险
|
|
|
- - 基于 `agentexample/research67` 改造
|
|
|
-- [ ] agentexample 整体升级为 agentpack 来源(CR §10.4 映射表)
|
|
|
+- [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)是后续集成步骤
|
|
|
|
|
|
-### 同期任务
|
|
|
+### 仍待做(M2 范围外的同期任务,需 Kenny / 真实用户)
|
|
|
|
|
|
- [ ] alpha 用户访谈(3-5 位),录三个真实 use case 视频
|
|
|
-- [ ] 内部 dogfood: 让 Kenny 自己用 ResearchAgent Desktop 完成一篇论文审稿,记录痛点
|
|
|
+- [ ] 内部 dogfood: Kenny 用 ResearchAgent Desktop 完成一篇真实论文审稿
|
|
|
+- [ ] agentpack 接入 agentpaas KB index 管线(让 KBSearch 结果带页码)
|
|
|
+- [ ] permission 运行时 tool-registry 完整 gating
|
|
|
|
|
|
---
|
|
|
|