- 后端新增 /files/import-workspace 接口,将工作区文件上传至 MinIO 并返回预处理结果 - 后端新增 resolve_workspace_file_path 工具函数,校验文件存在性与类型 - 前端 FileUploadModal 新增工作区文件选择模式,支持目录浏览与多选文件 - 前端 knowledge_api 新增 importWorkspaceFiles API - 图谱抽取器并发上限从 20 提升至 1000 - 图谱配置面板浮动层级与样式微调(阴影、边框、告警文案精简) - 知识库类型 milvus 标签颜色从 red 改为 blue - 新增工作区导入后端单元测试
11 KiB
11 KiB
开发路线图
路线图可能会经常变更,如果有强烈的建议,可以在 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_kb与open_kb_document访问知识库内容。 - 收敛知识库分块配置:分块预设仅表达策略选择,通用分块参数统一通过
chunk_parser_config传递;移除chunk_size、chunk_overlap、qa_separator等旧 root 字段兼容。 - 收敛知识库文件解析参数:文件级
processing_params统一保存ocr_engine与ocr_engine_config,解析阶段直接使用该结构并保留分块参数快照。 - 修复知识库文件大小显示为 0 的问题:文件上传时
file_sizes参数未正确传播或历史数据缺失导致 DB 中file_size为None;新增MinIOClient.stat_file/astat_file获取文件大小方法,add_file_record在size缺失时从 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/eval,EvaluationService保留任务、文件和持久化编排职责。 - 新增个人工作区预览与管理:提供独立于对话 thread 的用户级 workspace API,并增加“工作区”页面,用于浏览个人 workspace 文件、预览 Markdown/文本/代码/图片/PDF;支持新建文件夹、上传文件、下载文件、删除文件/文件夹和多选删除;工作区预览支持 Markdown/TXT 在右侧预览框内切换编辑并保存,其他格式和非工作区预览默认只读;知识库与团队空间入口先展示到占位层级;默认创建
agents/AGENTS.md,并在 Agent 执行时将其内容追加到系统提示词。 - 扩展知识库上传来源:添加“从工作区上传”模式,后端将当前用户工作区文件预处理上传到 MinIO,前端沿用现有
addDocuments入库链路提交 MinIO URL、内容哈希和文件大小。 - 加固 JWT 鉴权安全:移除历史默认密钥回退,初始化脚本支持生成并持久化
JWT_SECRET_KEY与YUXI_INSTANCE_ID,签发和验证令牌时校验iss/aud,并在鉴权阶段拒绝已删除或登录锁定用户继续使用旧令牌访问系统。 - 扩展管理界面交互逻辑重构:将 MCP / Subagents / Skills 三个标签页从「左侧边栏 + 右侧详情面板」布局重构为「卡片式网格布局 + 路由跳转二级页面」布局,工具标签页改为卡片网格布局 + 弹窗详情(保持弹窗内容不变)。新增共享组件
ExtensionCard、ExtensionCardGrid、ExtensionToolbar、ExtensionDetailLayout,详情页(McpDetailView、SubagentDetailView、SkillDetailView)使用居中宽度限制,路由规划为/extensions/mcp/:name、/extensions/subagent/:name、/extensions/skill/:slug。 - 统一卡片样式:
ExtensionCard新增tagsprop 支持传入[{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_payload与update_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。