R4: add the global native-deployment constraint

Details (original message):
R4: add the global native-deployment constraint (single static binary first, split native binaries only when necessary, no containers); storage becomes dual-profile (embedded SQLite default / optional native PostgreSQL); embed frontend via go:embed; native dev environment and release artifacts.
This commit is contained in:
weichen
2026-09-29 17:26:34 +00:00
parent 28278cd735
commit e13eb5c38e
@@ -1,11 +1,12 @@
# Agent-System 对话系统骨架:设计、方案与实施计划
状态:**待审(r3,按 2026-09-29 用户两轮指示修订)**;owner:weichen;主任务:本文档自身(批准后拆分为各阶段主任务记录)。
状态:**待审(r4,按 2026-09-29 用户三轮指示修订)**;owner:weichen;主任务:本文档自身(批准后拆分为各阶段主任务记录)。
授权与交付终点:本文档为设计 + 方案 + 计划,**不含实现**。批准后按第 7 节阶段逐项开工。
规范基线:Development-Guidelines(`development/guidelines` submodule,Dev 仓固定版本)。
撰写日期:2026-09-29。
r2 修订:领域插件(CDMO、法规知识库)移出本计划进远期路线,届时按新系统特性全新设计(不兼容、不迁移老系统);扩充扩展性与定制性章节。
r3 修订:新增文档摄取与解析管线(4.11,MinerU 定位为备选/交叉验证)、RAG 检索管线(4.12)、记忆系统(4.13)设计;上下文管理扩充为预算化分层管线(4.10);模型路由增加 embedding/rerank 类别(4.7)。
r4 修订:新增全局部署约束(4.1 原则 8):非容器化优先,单二进制最优先,必要时拆分多个原生二进制;存储改双档(嵌入式 SQLite 默认 / PostgreSQL 可选,D16);前端嵌入二进制;Dev 开发环境与 Releases 分发物改为原生方案。
---
@@ -26,6 +27,8 @@ r3 修订:新增文档摄取与解析管线(4.11,MinerU 定位为备选/
**2026-09-29 修订指示(r3)**:老系统使用了 MinerU、Embedding、Reranker,新系统可以考虑使用。但 **MinerU 要尤其注意**——用户在老系统实际测试过,确实能解析文档但能力有限;现在很多智能体直接编写代码解析 docx/pdf/ppt,可借鉴该思路,MinerU 作为备选或交叉验证,或考虑弃用。系统还需考虑之后的 **RAG、记忆系统、上下文管理**等机制功能,考虑全面。以上为思路,按系统设计与需求实际情况落实。
**2026-09-29 修订指示(r4)**:为系统和所有模块加入部署约束——**尽可能不使用 Docker 容器化部署;最优先考虑单二进制文件的服务;必要时才拆分成多个二进制服务,但仍最优先非容器化方案**。
核心诉求:**充分的可扩展性、可定制性**;新功能以插件接入,不破坏已有功能、不需要大规模重新开发、不与核心过度耦合。
### 1.2 现状与已证实事实
@@ -59,6 +62,7 @@ r3 修订:新增文档摄取与解析管线(4.11,MinerU 定位为备选/
### 2.2 非目标
- **非容器化部署(全局约束,适用于系统与所有模块)**:不依赖 Docker/容器编排;不发布容器镜像(远期确有需要再单独议);默认形态为单二进制,必要时拆分多个原生二进制(拆分原则见 4.1 原则 8)。外部可选服务(MinerU、Embedding/Reranker 等)以原生服务形态接入(URL 配置),其自身部署方式由使用者自定,系统不假定容器。
- **本计划不实现领域插件**:CDMO 工作流、法规知识库进入远期路线(7.2 节);届时按新系统插件契约**全新设计**——不迁移老系统代码、不兼容老系统接口、不复用其数据格式;老系统仅作领域业务知识参考。
- **重能力子系统只落契约与最小实现**:向量 RAG 管线、跨会话记忆、代码执行工具、历史滚动压缩进远期路线(7.2);本计划交付其契约与数据位预留,保证届时接入不改核心。
- 骨架期不做多租户、计费、公开注册;单用户(个人部署)起步,但数据模型预留 owner 字段。
@@ -81,11 +85,11 @@ r3 修订:新增文档摄取与解析管线(4.11,MinerU 定位为备选/
| 仓库 | 角色 | 职责一句话 | Gitea 描述(P0 写入) |
|---|---|---|---|
| **Agent-System-Core** | 契约仓(build-required) | 系统核心契约:领域模型、流式事件协议、HITL 卡片协议、插件 API 与 manifest、设置 schema、UI 扩展词汇、文档解析与检索与记忆契约(JSON Schema / TS 类型) | 系统核心契约:领域模型、流式事件与 HITL 卡片协议、插件 API、设置与 UI 扩展词汇、文档解析/检索/记忆契约,供前后端与插件共同依赖;不含实现。 |
| **Agent-System-Backend** | 后端仓(build-required) | Go 模块化单体:会话/项目域、流式管道、Run 管理、sub-agent 管理、工具注册、智能体画像、上下文管理、文档摄取解析、检索管线、设置、工件存储、插件宿主、持久化;组合 Agent-Native/Squad/Intent | 对话系统后端:会话与流式管道、智能体运行时与画像、工具/上下文/文档解析/检索/设置管理、插件宿主(组合 Agent-Native/Squad/Intent);依赖 Agent-System-Core 契约。 |
| **Agent-System-Backend** | 后端仓(build-required) | Go 模块化单体:会话/项目域、流式管道、Run 管理、sub-agent 管理、工具注册、智能体画像、上下文管理、文档摄取解析、检索管线、设置、工件存储、插件宿主、持久化;组合 Agent-Native/Squad/Intent;**默认构建为单二进制(go:embed 内嵌前端与嵌入式存储)** | 对话系统后端:会话与流式管道、智能体运行时与画像、工具/上下文/文档解析/检索/设置管理、插件宿主(组合 Agent-Native/Squad/Intent);依赖 Agent-System-Core 契约,默认单二进制非容器部署。 |
| **Agent-System-Frontend** | 前端仓(build-required) | React 19 + Vite + TS:三栏布局、流式渲染、消息成分折叠、HITL 卡片、右栏面板、sub-agent 弹窗、schema 驱动的设置与扩展渲染器 | 对话系统前端:三栏工作台(项目会话 / 流式对话 / 计划与工件面板),含 HITL 卡片、sub-agent 追踪弹窗与 schema 驱动的设置/插件 UI 渲染;渲染协议由 Agent-System-Core 定义。 |
| **Agent-System-Documents** | 文档/过程仓(development-only) | 系统级文档:架构、ADR、插件开发指南、跨仓过程记录(方案/验证/交接);本方案文档即首篇 | 系统文档与过程记录仓:架构决策、方案与验证记录、插件开发指南;不含产品代码。 |
| **Agent-System-Dev** | 开发集成父仓(development-only) | submodule 集成全部模块;顶层构建/测试编排、开发环境(compose)、跨仓任务记录入口;**非分发单元** | 开发集成仓:以 submodule 固定全部模块组合,承载跨仓构建、测试编排与开发环境;发布物在 Agent-System-Releases。 |
| **Agent-System-Releases** | 发布仓(可选分发) | 版本 manifest(pin 全组合 SHA)+ 不可变制品 + 部署编排;只打包分发,不开发源码 | 发布仓:每个版本固定组件组合与不可变制品、部署编排;只做打包与分发,不做源码开发。 |
| **Agent-System-Dev** | 开发集成父仓(development-only) | submodule 集成全部模块;顶层构建/测试编排、**原生开发环境脚本**(make dev 直接本地起服务,不依赖容器)、跨仓任务记录入口;**非分发单元** | 开发集成仓:以 submodule 固定全部模块组合,承载跨仓构建、测试编排与原生(非容器)开发环境;发布物在 Agent-System-Releases。 |
| **Agent-System-Releases** | 发布仓(可选分发) | 版本 manifest(pin 全组合 SHA)+ 不可变制品(**单二进制 + 校验和**)+ **原生部署物料**(systemd 单元、安装/升级/回退脚本);只打包分发,不开发源码 | 发布仓:每个版本固定组件组合,分发单二进制制品与原生部署物料(systemd、安装回退脚本);只做打包与分发,不做源码开发,不提供容器镜像。 |
| Agent-Native / Agent-Squad / Agent-Intent | 生态 submodule(build-required) | 执行内核 / 编排底座(含 HITL)/ 意图闸门与能力目录 | 已有描述,不变 |
| Error-Code-System / Logging-System | 基础设施 submodule | 错误码 / 日志 | 已有描述,不变 |
| Development-Guidelines | 规范 submodule(development-only) | 开发规范,路径 `development/guidelines` | 已有描述,不变 |
@@ -118,7 +122,7 @@ Releases ──(版本 manifest 引用)──→ Dev 固定组合的制品
## 4. 系统架构
### 4.1 设计总则:七条扩展性原则
### 4.1 设计总则:八条扩展性原则
本系统的可扩展性不是事后补丁,而是由以下机制原则保证(每条都对应下文具体设计):
@@ -129,13 +133,15 @@ Releases ──(版本 manifest 引用)──→ Dev 固定组合的制品
5. **一切可禁用,T0 永远可用**:工具可禁用、面板可隐藏、插件可卸载、意图目录可清空、记忆默认关闭。全部扩展关闭后系统退化为纯通用对话骨架,作为永恒的回归对照基线。
6. **契约版本化与前向兼容**:事件协议、插件 API、UI schema、**解析与检索与记忆契约**各带版本;消费方对未知 `type`/词汇静默忽略;扩展走「新增字段/新增类型 → 双端兼容窗口 → 弃用」流程(5 节)。
7. **契约先行、增量落地**:每个重能力子系统(文档解析、RAG、记忆、上下文管理)都先定契约与数据位,骨架期落**最小可用实现**(能支撑端到端价值流),增强能力按远期路线落地——扩展需求不等待设计,落地不破坏契约。
8. **原生部署、单二进制优先(全局部署约束)**:默认产物是**一个静态链接的二进制**(`agent-system`:HTTP/SSE 服务 + go:embed 内嵌前端 + 嵌入式存储 + 全部内置模块),拷贝即运行,无容器、无外部依赖(模型 API 除外)。**拆分多个二进制仅在必要时**(判据:故障域隔离、资源预算冲突、异构技术栈,如 module-contracts L2/L3 场景——远期 sidecar 插件、重索引 worker 等),拆出的仍是原生二进制,同机以 Unix socket / localhost 通信。**不使用 Docker/容器编排,不发布容器镜像**;外部可选服务(MinerU、Embedding/Reranker)以原生服务形态部署、URL 配置接入(如 ollama 式本地推理服务),系统对其部署方式不做容器假定。
**总体形态**:
- **后端**:Go 模块化单体(module-contracts L1 逻辑隔离起步),进程内模块以公开契约互调;重负载模块(MinerU 深度解析、向量索引等)预留 L2 sidecar 升级位。
- **前端**:React 19 + Vite + TypeScript SPA(沿用老系统技术栈经验:虚拟滚动、docx 预览、mermaid、katex)。
- **部署形态**:默认**单二进制** `agent-system`(子命令 `serve` / `migrate` / `version` 等),内嵌前端(go:embed dist)与嵌入式存储,一个进程一个端口对外提供全部 API 与 UI;CLI 子命令兼作运维入口(与 API-first 不冲突:CLI 走同一 API 或直接调用同库用例)。开发期前端走 Vite dev server + 代理,构建期才 embed。
- **后端**:Go 模块化单体(module-contracts L1 逻辑隔离起步),进程内模块以公开契约互调;重负载模块(MinerU 深度解析、向量索引 worker 等)预留 L2 独立二进制拆分位(仍是原生进程)。
- **前端**:React 19 + Vite + TypeScript SPA(沿用老系统技术栈经验:虚拟滚动、docx 预览、mermaid、katex);Node 仅为构建期工具链,运行期不需要。
- **传输**:REST(Query/Command)+ SSE(Stream)。SSE 事件 = Core 定义的统一事件信封。
- **持久化**:PostgreSQL(会话、消息、Run、HITL、画像、设置、注册表、用量、记忆与索引 schema 预留)+ 本地对象目录(上传文件与工件,预留 S3 适配位)。向量检索默认 pgvector(D13),复用同一 PG 实例。
- **持久化(双档,D16)**:**默认嵌入式档**——SQLite(单文件数据库,配合本地对象目录存文件与工件,零外部服务);**可选 PostgreSQL 档**——原生安装的 PG(非容器),DSN 配置接入,面向更大规模或多实例。迁移脚本双方言同源、两档都在 CI 验证;全文检索(SQLite FTS5 / PG tsvector)与向量索引(见 4.12)均在存储档接口后实现,业务模块不感知方言。
### 4.2 核心抽象:一切运行皆 Run、一切增量皆事件
@@ -260,7 +266,7 @@ Agent-System-Plugin-<Name>/
**代码类插件的隔离档位演进**:
- v1:**进程内**(构建期组装,Dev 仓组合构建)——单用户部署、插件同生态(Go),L1 足够;崩溃风险由工具调用超时/预算兜底。
- v2(需要时):**sidecar 进程**(HTTP,L2)——插件按同一 port 协议实现,pluginhost 加 transport 适配器即可升级,插件代码不变。契约从 v1 就按跨进程语义定义(四类通信契约),使该升级只是换传输。
- v2(需要时):**sidecar 独立进程**(HTTP,L2;原生二进制,非容器)——插件按同一 port 协议实现,pluginhost 加 transport 适配器即可升级,插件代码不变。契约从 v1 就按跨进程语义定义(四类通信契约),使该升级只是换传输。
**fail-closed 与回退**:manifest 校验失败整批拒绝(沿用 agent-intent 纪律);卸载插件 = 注销其注册项,在途 run 引用的工具/工作流按「定义缺失」稳定错误码失败并提示,不静默。**本计划以最小示例插件验证机制**(见 P4),领域插件远期另立项。
@@ -269,7 +275,7 @@ Agent-System-Plugin-<Name>/
**模型接入(复用 Agent-Native,不自研)**:
- Provider 配置:API 端点与密钥(openai 兼容 / anthropic / 本地模型,按 Agent-Native 所支持);密钥存服务端(加密落库或本地文件,不进 git、不回显、设置页掩码显示)。
- **模型路由按用途分类(kind)**:`chat`(主对话)、`lightweight`(轻量任务:标题生成、澄清改写、记忆候选提取)、`embedding`(向量化,RAG/记忆检索用)、`rerank`(重排,RAG 用)。每类可各自指定模型与参数——不同用途不同模型是常态定制点。Embedding/Reranker 的服务部署经验直接来自老系统实测(compose 编排放 Dev/Releases 环境,按需启用)。
- **模型路由按用途分类(kind)**:`chat`(主对话)、`lightweight`(轻量任务:标题生成、澄清改写、记忆候选提取)、`embedding`(向量化,RAG/记忆检索用)、`rerank`(重排,RAG 用)。每类可各自指定模型与参数——不同用途不同模型是常态定制点。Embedding/Reranker 的服务部署经验直接来自老系统实测;新系统中它们是**外部原生服务**(URL 配置接入,如 ollama 式本地推理服务),按需启用,系统不假定其部署方式。
- 运行参数:temperature、max tokens、超时、重试预算;按「系统默认 → 画像 → 会话」三层覆盖(4.9)。
- 预算与配额:per-run token/时长/工具调用次数上限(Guidelines 故障影响控制),超限按稳定错误码终止并在 UI 呈现原因。
@@ -338,7 +344,7 @@ ModelInput = SystemPrompt(画像)
**解析器三档**(ParserProvider 注册表,与工具注册表同纪律、带来源标记):
1. **内置代码解析器(主路线)**:确定性库解析——md/txt 直读;docx/pptx 解 OOXML;pdf 提取文本层。成本低、无外部依赖、可独立测试;这与「现代智能体直接写代码解析」思路一致:解析是**普通代码能力**,不是神秘服务。
2. **MinerU 服务适配器(可选,备选与交叉验证)**:独立服务部署(L2 sidecar,compose 编排,**默认不部署**,设置启用)。定位依据用户老系统实测结论——能解析但能力有限:用于扫描件/图片型 PDF/复杂版式的**深度解析备选**;**交叉验证模式**:与内置解析结果逐块 diff,差异块标记低置信度并在工件视图提示,不静默取信单一来源。
2. **MinerU 服务适配器(可选,备选与交叉验证)**:**独立原生服务**(L2,进程隔离;系统侧只以 URL 配置接入,**默认不部署**,设置启用)。定位依据用户老系统实测结论——能解析但能力有限:用于扫描件/图片型 PDF/复杂版式的**深度解析备选**;**交叉验证模式**:与内置解析结果逐块 diff,差异块标记低置信度并在工件视图提示,不静默取信单一来源。
3. **Agent 驱动解析(远期,依赖代码执行工具 D14)**:对疑难文档由智能体现场写代码解析(现代智能体主流做法),产物回写 ParsedDocument 并可沉淀为新的解析器声明(资产化:一次解析、复用为模板)。
**解析策略**(数据可配,per project):默认档位与回退链(如 `pdf: builtin → mineru`)、交叉验证开关、大文档分块解析预算、失败呈递(解析失败不是错误吞掉,而是生成「无法解析」占位与原因,Agent 与用户可见)。
@@ -353,15 +359,15 @@ ModelInput = SystemPrompt(画像)
```
Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模型路由)
→ 混合检索(pgvector 向量 + PG 全文) → Rerank(可选,kind=rerank 模型路由)
→ 混合检索(向量索引 + 全文,均按存储档) → Rerank(可选,kind=rerank 模型路由)
→ TopK 组装 → 注入(工具结果 或 ctxasm knowledge 槽位)
```
**组件契约**(Core):`Chunker`(切分策略:大小/重叠/结构感知,按 ParsedDocument blocks 切,表格不拦腰断)、`EmbeddingProvider`(模型路由)、`VectorIndex`(默认 pgvector——复用 PG、运维简单、个人部署规模内够用;接口可换独立向量库,D13)、`Retriever`(组合器与策略)。**Embedding/Reranker 复用老系统已验证的服务部署经验**,作为模型 provider 配置接入(4.7),不绑定特定实现。
**组件契约**(Core):`Chunker`(切分策略:大小/重叠/结构感知,按 ParsedDocument blocks 切,表格不拦腰断)、`EmbeddingProvider`(模型路由)、`VectorIndex`(**按存储档双实现**:嵌入式档用 sqlite-vec 扩展或进程内向量扫描——个人部署规模(数万级 chunk)内暴力扫描延迟可接受;PG 档用 pgvector。接口不绑定实现,可换独立向量库,D13)、`Retriever`(组合器与策略)。全文检索同样按档实现(SQLite FTS5 / PG tsvector),藏在 retrieval 模块接口后。**Embedding/Reranker 复用老系统已验证的服务部署经验**,以原生服务形态部署(URL 配置接入,非容器假定),作为模型 provider 配置(4.7),不绑定特定实现。
**索引对象与知识库管理**:项目内文档(上传/工件,ingest 产物直接进索引)、插件知识库(法规等,来源标记);设置中心展示每库索引状态(进度/失败重试/重建)。
**分期**:P4 契约定稿 + **全文检索最小实现**(PG tsvector,支撑 `@knowledge` 基础引用与命中);向量管线(embedding + pgvector + rerank)远期,由法规插件立项牵引——骨架不背重负载,但插件落地时零核心改动。
**分期**:P4 契约定稿 + **全文检索最小实现**(按存储档:FTS5 / tsvector,支撑 `@knowledge` 基础引用与命中);向量管线(embedding + 向量索引 + rerank)远期,由法规插件立项牵引——骨架不背重负载,但插件落地时零核心改动。
### 4.13 记忆系统(r3 新增)
@@ -417,7 +423,7 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
| 工具 | ToolProvider + 声明式 HTTP + MCP 适配位 | 声明/代码 | P2 内置最小集;P4 插件注册;MCP 远期 |
| 工作流 | 声明定义 + 意图绑定 | 声明 | P4 机制(示例插件演示) |
| 意图 | intent overlay,slots→HITL | 声明 | P3 接入,P4 插件注册 |
| 知识/RAG | KnowledgeProvider + Retrieval 管线 + pgvector | 基础设施+数据 | P4 契约+全文最小;向量远期 |
| 知识/RAG | KnowledgeProvider + Retrieval 管线 + 向量索引双档 | 基础设施+数据 | P4 契约+全文最小;向量远期 |
| 解析器 | ParserProvider + ParsedDocument IR | 代码/服务 | P2 内置档;P4 契约;MinerU/agent 档远期 |
| 记忆 | MemoryStore + HITL 确认写入 | 数据+策略 | P4 契约预留;实现远期 |
| 上下文管理 | ContextPolicy + 预算管理器 | 数据 | P2 基础;压缩/精细预算远期 |
@@ -472,13 +478,13 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
**P0 仓网引导(半天–1 天)**
- 六个空仓初始化:README、AGENTS.md/PROJECT.md(按模板)、`policy/`、`.gitignore`、gitea 描述(按 3.2 表)、默认分支 main。
- Dev 仓建 submodule 骨架(Core/Backend/Frontend/Documents + Guidelines + 生态五仓),顶层 Makefile(组合构建/测试入口)与 compose 骨架。
- Dev 仓建 submodule 骨架(Core/Backend/Frontend/Documents + Guidelines + 生态五仓),顶层 Makefile(组合构建/测试入口)与**原生开发环境**(`make dev`:本地直接构建运行单二进制 + 嵌入式存储,前端 Vite dev server 代理;不依赖容器。PG 档测试用本机原生 PG 或 CI 服务,不作为默认路径)。
- 本方案文档入库并推送;老系统仓补「冻结参考」描述。
- 出口:全新 clone Dev 仓 → 子模块物化 + 空构建通过;各仓描述齐全。
**P1 契约与骨架闭环(4–6 天)**
- Core:领域模型 + 事件信封 + HITL 卡片协议 + UI schema 词汇 + 设置 schema 框架(Go 类型 + JSON Schema + TS 类型三态一致,代码生成防漂移)+ OpenAPI 基线。
- Backend:project/session、runmgr、streamhub、**mock runner**(按脚本回放事件序列,不接 LLM)、SSE 端点、settings 骨架、PostgreSQL schema v1。
- Backend:project/session、runmgr、streamhub、**mock runner**(按脚本回放事件序列,不接 LLM)、SSE 端点、settings 骨架、**存储层双档(SQLite 默认 / PostgreSQL 可选)schema v1**。
- Frontend:三栏布局 + 左栏交互(调宽/超调收起)+ 主题令牌基座 + 中栏流式渲染与折叠 + 右栏 tab 骨架 + SSE 客户端(游标/重连/对账)+ schema 渲染器基座。
- 出口:浏览器端到端走通一轮 mock 对话,覆盖流式、折叠、断线重连;布局偏好持久化。
@@ -504,8 +510,8 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
- 出口:装卸示例插件核心零回归;插件开发指南可照做;重能力契约评审通过(后续远期实现按契约零核心改动接入)。
**P5 发布链路(1–2 天)**
- Releases 仓:版本 manifest 生成(从 Dev 固定提交导出)、制品构建(后端二进制 + 前端 dist + 示例插件包)、compose 部署编排(含可选 MinerU/Embedding/Reranker 服务 profile)、回退演练。
- 出口:全新环境按 Releases 一键部署成功;manifest↔gitlink 对应校验过。
- Releases 仓:版本 manifest 生成(从 Dev 固定提交导出)、**单二进制制品**(linux amd64/arm64 优先,静态链接 + go:embed 前端 + 校验和)、**原生部署物料**(systemd 单元示例、安装/升级/回退脚本、备份恢复说明、可选外部服务 MinerU/Embedding/Reranker 的原生接入文档)、回退演练。
- 出口:全新裸机环境「下载二进制 → systemd 启动 → 浏览器可用」;manifest↔gitlink 对应校验过。
里程碑:P1 = 可演示骨架;P2 = 可真实对话的定制基座;P3 = 可日常使用的通用智能体系统;P4 = 扩展与重能力契约验证完成;P5 = 可分发产品。
@@ -515,7 +521,7 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
|---|---|
| **CDMO 工作流插件** | 医疗器械 CDMO 工作流、意图、文档模板与面板,**基于新系统插件契约全新设计**:工作流即数据、意图 slots 驱动 HITL、文档产出走 artifacts、面板走 UI schema。老系统仅作领域业务知识参考(流程、术语、文档体系),不迁移代码、不兼容接口、不复用数据格式。立项时先写该插件的设计方案。 |
| **法规知识库插件** | KnowledgeProvider 契约实现 + 向量 RAG 管线落地(本插件为牵引方)+ 知识面板与检索工具;素材基于 `08-Regulations`。 |
| 向量 RAG 管线 | embedding + pgvector + rerank 全链路;MinerU 深度解析适配器与交叉验证(D12 保留时)。 |
| 向量 RAG 管线 | embedding + 向量索引(按存储档:sqlite-vec/进程内扫描 或 pgvector)+ rerank 全链路;MinerU 深度解析适配器与交叉验证(D12 保留时,原生服务形态接入)。 |
| 代码执行工具 | 通用沙箱执行;解锁 agent 驱动解析(4.11 第三档)与更多自动化;单独立项(安全设计)。 |
| 跨会话记忆实现 | 4.13 契约的实现:提取、确认、注入、管理 UI。 |
| 上下文压缩增强 | 历史滚动摘要、精细预算管理器。 |
@@ -535,7 +541,7 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
| D2 | 插件代码形态 v1 | 进程内 + 构建期组装;契约按跨进程定义,v2 可升 sidecar(4.6) | ☐ |
| D3 | 前端栈 | React 19 + Vite + TS(复用老系统经验与依赖) | ☐ |
| D4 | 传输 | REST + SSE(v1);WebSocket 备选 | ☐ |
| D5 | 持久化 | PostgreSQL + 本地对象目录(预留 S3) | ☐ |
| D5 | 持久化 | 双档存储:默认嵌入式 SQLite + 可选 PostgreSQL(详见 D16);对象目录本地起步、预留 S3 适配位 | ☐ |
| D6 | `SMDF-Agent-System` 空仓用途 | 暂不使用,待澄清后决定(弃用 / 改名纳入) | ☐ |
| D7 | 本地 `Agent-System-Ensemble/` 空目录 | 用作 Agent-System-Dev 的本地工作副本(clone 目标) | ☐ |
| D8 | 骨架期 HITL 自由输入路由复杂度 | v1 三分支(选中→回填 / 澄清→回填 / 其他意图或命令→转轨),不引入完整 DST(沿用 agent-intent 边界结论) | ☐ |
@@ -543,8 +549,9 @@ Query → 改写(可选,lightweight 模型) → Embedding(kind=embedding 模
| D10 | 声明式 HTTP 工具进骨架期 | 进(P4,体量小、是「无代码扩展」主张的最有力证明) | ☐ |
| D11 | MCP 适配时机 | 远期(v1 只做接口语义预留,4.8) | ☐ |
| D12 | MinerU 定位 | **备选 + 交叉验证**:主路线为内置代码解析器;MinerU 作为独立可选服务(默认不部署),用于扫描件/复杂版式与交叉验证;保留适配位(4.11)。若你倾向彻底弃用,则删除适配位仅留 ParserProvider 接口 | ☐ |
| D13 | 向量存储选型 | pgvector(复用 PG、个人部署规模内够用、VectorIndex 接口可换独立向量库) | ☐ |
| D13 | 向量索引实现 | 按存储档双实现:嵌入式档 sqlite-vec 或进程内向量扫描(个人规模数万 chunk 内可接受)、PG 档 pgvector;VectorIndex 接口不绑定实现,可换独立向量库 | ☐ |
| D14 | 代码执行工具(agent 驱动解析的前提) | 远期单独立项(沙箱安全设计复杂度高),v1 不做 | ☐ |
| D15 | 记忆默认状态 | 默认关闭,用户显式开启;写入必须 HITL 确认(4.13) | ☐ |
| D16 | 默认存储档(r4 部署约束的推论) | **默认嵌入式 SQLite**(单文件,零外部服务,支撑单二进制开箱即用);**PostgreSQL 为可选档**(原生安装、DSN 接入,面向更大规模),迁移双方言同源、CI 双档验证。若你倾向默认 PG(接受运行前置一个原生 PG),请批注 | ☐ |
批准本方案(含 D1–D15 或批注修改)后,从 P0 开始执行。