ForcePilot/docs/develop-guides/roadmap.md
Wenjie Zhang 78acc19a88 feat(kb): 新增从工作区导入文件功能,优化图谱配置面板与并发上限
- 后端新增 /files/import-workspace 接口,将工作区文件上传至 MinIO 并返回预处理结果
- 后端新增 resolve_workspace_file_path 工具函数,校验文件存在性与类型
- 前端 FileUploadModal 新增工作区文件选择模式,支持目录浏览与多选文件
- 前端 knowledge_api 新增 importWorkspaceFiles API
- 图谱抽取器并发上限从 20 提升至 1000
- 图谱配置面板浮动层级与样式微调(阴影、边框、告警文案精简)
- 知识库类型 milvus 标签颜色从 red 改为 blue
- 新增工作区导入后端单元测试
2026-05-26 17:39:12 +08:00

11 KiB
Raw Blame History

开发路线图

路线图可能会经常变更,如果有强烈的建议,可以在 issue 中提。

日志添加规范For Agent:

  • 同一版本的多次功能更新时,应以功能为单位进行更新,比如之前添加了 A 功能的更新,在后续的更新中修复了因 A 功能引入的 bug那么这个修复说明应该和 A 功能描述放在一起,而不是新增一条修复记录,功能更新同理。

看板

  • Langfuse 增加 self-host 模式支持,补齐私有化部署与配置说明(已支持 cloud待调试
  • 检索测试中,添加问答
  • 集成 Memory基于 deepagents 的文件后端实现,需要考虑定位
  • Yuxi-cli 相关的功能,放在后续版本中实现(不是类似于编程助手,而是管理平台的工,等各个 router 接口优化之后)
  • 完善测试基准自动生成功能,目前的实现过于简单,无法覆盖实际需求
  • 完善 Skills 的环境变量注入
  • 拓宽检索的知识源统一多知识源channel目前已知知识库/知识图谱/网页,可拓展:个人知识库、数据库、历史对话等
    • 前置任务,多知识库并行检索(扩展 query_kb
    • 新增 query_keywords 工具,专门用于基于关键词命中的排序,也结合词频(和 BM25 的区别?)
  • 参考 AgenticRAG 方案扩展当前 Search 工具:基于知识库工具返回的 resource_id/file_id 改进 Search 返回递增文件序列 ID完善 Find 与 Open 能力Summary 暂缓
  • 评估,基于 Agent 的评估,这里应该是结合 Langfuse 实现

Bugs

  • 目前的知识库的图片存在公开访问风险

BREAKING CHANGE不兼容变更0.7 版本再实现)

  • 将自定义provider 的实现逻辑,从文件移动到数据库中,并将相关处理代码,移出 config 文件,放到 provider 模块中
  • 已补充方案文档:docs/vibe/2026-04-18-custom-provider-db-refactor-plan.md明确采用“provider 一行、models 放 JSON、移除 provider 默认模型”的落地方案
  • 优化知识库的 API 接口设计,使用 /{db_id}/xxx 的形式,整合 mindmap / eval 接口
  • 移除 v1 版本的 provider 统一接口,改为 v2 版本的 provider 模块接口

版本记录

0.6.3 开发记录

<<<<<<< HEAD

=======

  • 删除 Upload 与 LightRAG 图谱/知识库能力:知识库类型收敛为 Milvus 与 Dify只保留 Milvus 知识库内图谱构建/展示/检索,移除独立 /graph 页面和默认上传图谱工具。
  • 新增知识库 Chunk 持久化Milvus 知识库索引/更新流程会将 chunks 双写到 PostgreSQL knowledge_chunks 表与 Milvus文件内容查看优先查询 PostgreSQL并为位置信息、图谱实体关联、标签和抽取结果预留结构化字段。
  • 完善 Milvus 知识库图谱构建:修复 Chunk 图谱写入返回值、Neo4j 同步写入阻塞事件循环、重复构建任务竞态、图谱查询提前终止、Neo4j 连接复用、LLM 抽取超时重试和前端错误详情展示等问题;图谱构建会将 entity/triple 本体与 chunk 引用写入 PostgreSQL并为唯一 entity/triple 建立 Milvus 语义索引,单文件删除时同步清理图谱引用和孤儿向量。
  • 优化图谱抽取器配置未配置时在图谱中心展示配置入口抽取器类型改为卡片式选择LLM 抽取器收敛为固定 Prompt + 自定义 Schema并支持模型参数与并发队列数已配置后允许修改同类型参数并提示重置重抽风险类型本身保持锁定。修复上传并入库新文件时旧内存 metadata 覆盖数据库图谱配置的问题。
  • 新增 Milvus 图谱检索链路Query 可召回图谱实体和三元组,结合 Chunk 命中实体构造 seed entity读取 Neo4j 2-hop 子图后用 igraph 执行 PPR最终以 Chunk 为产物并通过 RRF 与原 Chunk 召回融合;检索配置改为 dataclass 元数据生成,支持 depend_on 控制重排序和图检索参数展示。
  • 下放扩展管理权限:普通管理员现在可进入扩展管理并完整管理 Tools、MCP、SubAgent、Skills同步放开 Skill 管理接口权限并补充权限测试。
  • 调整 Agent 知识库默认选择:未显式配置知识库时默认启用当前用户可访问的全部知识库,显式保存空列表仍表示不启用知识库。
  • 移除知识库沙盒文件系统映射:不再通过 /home/gem/kbs 暴露知识库文件树Agent 继续使用 query_kbopen_kb_document 访问知识库内容。
  • 收敛知识库分块配置:分块预设仅表达策略选择,通用分块参数统一通过 chunk_parser_config 传递;移除 chunk_sizechunk_overlapqa_separator 等旧 root 字段兼容。
  • 收敛知识库文件解析参数:文件级 processing_params 统一保存 ocr_engineocr_engine_config,解析阶段直接使用该结构并保留分块参数快照。
  • 修复知识库文件大小显示为 0 的问题:文件上传时 file_sizes 参数未正确传播或历史数据缺失导致 DB 中 file_sizeNone;新增 MinIOClient.stat_file/astat_file 获取文件大小方法,add_file_recordsize 缺失时从 MinIO 回补,_load_metadata 加载元数据后自动为缺少 size 的文件从 MinIO 补全并持久化。
  • 优化评估基准自动生成:仅支持 commonrag/Milvus 知识库,默认参考 chunks 数量改为 1多 chunk 场景复用知识库向量检索选择相似 chunks不再对全量 chunks 重新计算 embedding并移除前端 Embedding 模型选择。
  • 修复知识库文档入库状态回退:当已解析文件缺失 markdown_file 解析产物时,索引流程会将文件状态恢复为未解析,便于重新解析而不是停留在索引失败。
  • 优化 Agent 输入框文件 mention用户级 workspace 文件候选改为从独立 workspace API 递归加载,不再依赖 active thread插入时仍转换为 /home/gem/user-data/workspace/ 沙盒虚拟路径,并修复附件上传后未立即刷新 mention 候选的问题。
  • 调整知识库思维导图后端结构:将思维导图路由文件重命名为知识库语义更明确的 router并把文件列表整理、提示词构建、AI JSON 解析等纯逻辑下沉到知识库 utils。
  • 收敛知识库评估后端结构:将评估指标、单题评估、答案生成提示词和自动基准生成算法下沉到 knowledge/evalEvaluationService 保留任务、文件和持久化编排职责。
  • 新增个人工作区预览与管理:提供独立于对话 thread 的用户级 workspace API并增加“工作区”页面用于浏览个人 workspace 文件、预览 Markdown/文本/代码/图片/PDF支持新建文件夹、上传文件、下载文件、删除文件/文件夹和多选删除;工作区预览支持 Markdown/TXT 在右侧预览框内切换编辑并保存,其他格式和非工作区预览默认只读;知识库与团队空间入口先展示到占位层级;默认创建 agents/AGENTS.md,并在 Agent 执行时将其内容追加到系统提示词。
  • 扩展知识库上传来源:添加“从工作区上传”模式,后端将当前用户工作区文件预处理上传到 MinIO前端沿用现有 addDocuments 入库链路提交 MinIO URL、内容哈希和文件大小。
  • 加固 JWT 鉴权安全:移除历史默认密钥回退,初始化脚本支持生成并持久化 JWT_SECRET_KEYYUXI_INSTANCE_ID,签发和验证令牌时校验 iss/aud,并在鉴权阶段拒绝已删除或登录锁定用户继续使用旧令牌访问系统。
  • 扩展管理界面交互逻辑重构:将 MCP / Subagents / Skills 三个标签页从「左侧边栏 + 右侧详情面板」布局重构为「卡片式网格布局 + 路由跳转二级页面」布局,工具标签页改为卡片网格布局 + 弹窗详情(保持弹窗内容不变)。新增共享组件 ExtensionCardExtensionCardGridExtensionToolbarExtensionDetailLayout,详情页(McpDetailViewSubagentDetailViewSkillDetailView)使用居中宽度限制,路由规划为 /extensions/mcp/:name/extensions/subagent/:name/extensions/skill/:slug
  • 统一卡片样式:ExtensionCard 新增 tags prop 支持传入 [{label, color}] 数组,内部使用 <a-tag bordered=false size=small> 渲染,与知识库卡片标签风格统一;知识库列表页 DataBaseView 改用 ExtensionCard + ExtensionCardGrid 替代原有自定义卡片,移除冗余 card 样式。
  • 调整应用主导航:AppLayout 从默认窄栏升级为默认展开的侧边栏,保留折叠态图标导航;侧边栏样式收敛为 14px 文本 + 18px 图标的标准紧凑密度并统一导航项、任务中心、GitHub、用户信息的图标与文字对齐。折叠态改为仅通过显式按钮展开避免空白区域误触发。
  • 合并智能体对话导航:移除 AgentChatComponent 内部聊天侧边栏,将新建对话入口和对话历史移动到 AppLayout 主侧边栏,并通过共享线程 store 统一管理历史列表、当前线程、重命名、删除、置顶和分页加载。
  • 新增并收敛独立模型配置模块:增加 model_providers 表、独立管理接口和”模型配置”页面,运行时 chat / embedding / rerank 均统一从 provider 模块与模型缓存读取 provider_id:model_id旧版静态模型配置、v1 slash spec、旧模型列表接口和 Ollama 适配已移除。远端模型加载默认使用 /models 获取 chat/通用模型provider 声明 embedding 能力时使用 /embeddings/models 获取 embedding 候选rerank 模型列表端点按供应商文档显式配置后加载;修复路由请求模型未接收 embedding_base_url/rerank_base_url 导致前端已填写仍被后端校验拦截的问题。补充手动添加模型能力:enabled_models[i] 新增可选 source: "manual"|"remote" 字段(默认 remote),管理员可通过”+ 手动添加”入口录入远端清单未覆盖的模型(典型:自部署 embedding/rerank手动模型在前端跳过”远端不存在”的 stale 警告并显示「手动」标签type 选项受 provider.capabilities 约束,后端在 _normalize_payloadupdate_provider_config 双层一致性校验中拦截越权写入。
  • 统一前端 Markdown 预览渲染:新增共享 MarkdownPreview 组件与 markdown_preview 渲染工具,替换 Agent 消息、文件预览、知识库 chunk、任务工具结果、聊天导出等场景中的旧 md-editor-v3/marked 预览;支持 KaTeX、任务列表、frontmatter 卡片、Shiki 代码高亮、DOMPurify 清洗和浅层渲染缓存,并抽取 HTML 转义与代码语言归一化工具。Skill 详情页复用 AgentFilePreview,统一文件预览、编辑、保存和全屏交互。
  • 优化远程 Skill 批量安装:remote_skill_install_service.py 新增 install_remote_skills_batch(),利用 npx skills add --skill A --skill B --skill C 原生多 skill 支持,将安装 N 个 skill 的仓库克隆次数从 2N 降至 1配套新增路由 POST /remote/install-batch、前端 installRemoteSkillsBatch() API 方法和批处理 UI 逻辑

cc0b2186 (feat(kb): 新增从工作区导入文件功能,优化图谱配置面板与并发上限)


历史版本发布记录已迁移到 版本变更记录

维护说明:

  • roadmap 仅保留未来规划(看板/Bugs/里程碑方向)。
  • 具体版本发布内容统一维护在 changelog。