ForcePilot/REFACTOR.md
2026-06-06 19:08:57 +08:00

5.0 KiB
Raw Blame History

兼容性报告

无法兼容历史的数据库、知识库、配置项,只能重新创建项目

功能性报告

  1. 将 LightRAG 从调用 package 修改为手动实现,不依赖原本仓库,更好管理。
  2. 移除 legacy 参数,简化代码逻辑,减少维护成本。
  3. 权限结构重构

待办事项

基础重构与配置

  • 移除所有对于 v1 的模型的代码的支持、移除所有对于 legacy 参数的支持
  • 移除 lightrag
  • allow user config envs
  • add model retry times to agent context config

权限与数据模型

  • Agent 的 user_id 使用的有歧义,从数据库表到代码中都修改为统一使用 yuxi_id 来代替
  • department 的 id 也不能使用那个索引的 id 来使用了,应该是一个独立的 dept_id需要确认
  • 知识库的权限调整,修改为三个等级,全局共享、部门共享、指定人可访问
  • 权限新增一个 guest 的预设字段,暂无任何权限
  • rename database table name, such as skills -> agent_skills, subagents -> agent_subagents, mcp, tool_call, 等等

Agent / MCP / 工具

  • MCP 部分,未添加情况下无法获取工具
  • 添加 MCP 移除 JSON 模式
  • default enable all build in tools / kbs / skills / mcps / subagents
  • 智能体调用的时候模型支持单独配置

Skill

  • 添加用户级别的 Skills 的安装
  • Skill 卡片优化
  • 拓展 Skill 安装方法
  • install skill 这个工具需要在主智能体启用,子智能体无法使用
  • 将 Qwen-Image 修改为 Skill
  • 添加推荐 Skill 的列表,点击可以直接安装,实际上是替代了填入搜索的名称,并触发拉取,这个似乎只需要在前端修改就可以了

知识库 / RAG / 图谱

  • 新增图谱构建,支持自定义 Schema、支持自定义并发数知识库与向量检索解耦
  • 知识图谱抽取要求支持并发处理
  • 工作区允许上传多个文件
  • 附件上传能够支持转换为 PDF待办查看 OCR 模型的状态,样式优化,保存的文件名不对
  • 参考 PR实现内置 Dashscope 的 Embedding 和 rerank 的方法
  • 优化知识库的 API 接口设计,使用 /{db_id}/xxx 的形式,整合 mindmap / eval 接口
  • allow multi-hop qa generate
  • 链接 Notion 和 feishu 目前来看,都是支持的
  • parser 从plugins 移动到 knowledge 里面guard 移动到services 里面
  • neo4j 相关的服务,可以移动到 storage 里面
  • 节点的颜色按照 label 的分类来
  • 考虑如何将知识库更好的挂载到沙盒,是不是可以使用一个别的后端,但是使用别的后端是否还能读取到数据?应该不能
  • RAG 中的文件的 metadata 包含那些内容?然后 Find 和 Read 的时候要支持展示
  • 优化思维导图构建的接口设计,支持增量构建和更新

评估

  • 优化评估结构
  • 评估要支持填写评估的名称,默认是时间戳加 hash 类似于 eval-20240918-xxxxxx
  • 优化评估综合评分
  • 添加 Agent 独立调用接口,方便后续评估使用
  • RAG 评估支持 Agent 模式

前端交互

  • 前端新增基于 ID 的随机像素头像生成机制(类似 GitHub 方块头像),用于替代默认图片
  • 在工作区的文件编辑的时候,保存和取消的按钮应该是悬浮在编辑框的右上角,而不是在 header 上面
  • 检查前端的这些 store 的使用,是否有需要调整优化收敛的地方
  • 现在输入区域对于不同 mention 的渲染的 ICON 和 human-message 里面的渲染的 ICON;
  • 点开对话的时候要能够自动定位到尾部,而不是最开始。
  • office 组件预览docx/pptx 可以转PDF然后前端预览

子智能体设计

  • 智能体体系改进。改进子智能体,我觉得子智能体并不是一个子级的智能体,应该是
  • 添加通用任务的子智能体
  • 子智能体的消息渲染与可视化
  • 流式输出混排修复ongoing 流式返回时按 thread ID 区分主/子智能体内容,子智能体内容单独可视化渲染
  • 子智能体的优化,参考 PR 的方案。
  • 子智能体中间过程可查看:流式结束后,通过子智能体自身 thread ID 获取并渲染中间调用过程
  • 子智能体右上角功能增强任务按钮常驻展开后展示已激活子智能体、附件、state 等信息
  • 添加深度研究智能体
  • 缺少异步的机制
  • 缺少 steer 机制
  • 双向通信,缺少 ask_for_main_agent 的机制
  • 子智能体与子智能体的通信机制
  • 如何停掉一个子智能体、查看智能体的进度

远期 / 待归类

  • UV 的版本
  • 如何将 PWD 修改为 user-data

Bug

  • 知识库、知识图谱、评估基准的空状态是不一样的,需要统一
  • 当用户不在前台时,如果触发了 interrupt无法渲染
  • 现在的切分方法依然会出现大量的小 Chunk只有几个字