版本变更记录
本页用于记录各版本发布说明(新增、修复与破坏性变更)。
同一版本的多次功能更新时,应以功能为单位进行更新,比如之前添加了 A 功能的更新,在后续的更新中修复了因 A 功能引入的 bug,那么这个修复说明应该和 A 功能描述放在一起,而不是新增一条修复记录,功能更新同理。
v0.7.0 (开发中)
破坏性变更
- Provider 与模型配置收敛:移除旧版 v1 模型配置与 Ollama 支持,运行时模型统一使用
provider_id:model_id与独立 provider 模块;自定义 provider 实现逻辑从文件移动到数据库,并从 config 文件迁移到 provider 模块。 - 智能体运行时语义收敛:用户可见的
AgentConfig收敛为数据库持久化的一级Agent,内置 Python Agent 改为智能体后端;聊天、运行任务、恢复审批和文件预览均从线程绑定的 Agent 解析运行时上下文,前端只提交agent_id。 - 知识库能力边界收敛:移除 Upload 与 LightRAG 知识库/图谱能力,知识库类型收敛为 Milvus 与只读连接器;知识库 API 统一使用
/databases/{kb_id}/xxx形式,并整合 mindmap / eval 等子接口。 - Agent 资源默认选择与权限过滤:未显式配置工具、知识库、MCP、Skills、子智能体时默认启用当前用户可访问/可用的全部资源,显式选择后按允许列表过滤;Agent 创建前统一完成最终资源权限过滤、知识库
kb_id可见范围派生和 Skill prompt/readable 依赖闭包派生。 - Skill 安装与权限模型收敛:Skill 元数据使用
source_type/share_config/enabled表达来源、生效范围与启用状态;内置 Skill 启动或同步时自动写入数据库并默认全局启用,上传和远程添加统一改为解析草稿后确认安装,不保留旧直接安装兼容路径。 - 历史兼容层精简:移除 sandbox provisioner
local后端别名、ask_user_question 单问题旧协议、JWT 历史默认密钥特殊判断、内置 SkillSKILLS.md文件名回退、运行事件数字 seq 兼容和前端旧字段回退。 - 用户身份命名收敛:原业务登录标识统一改为
uid,Agent/LangGraph runtime、conversation、agent_run、sandbox 路径和前端用户态均使用字符串uid;user_id仅保留给外部响应中的数值users.id或真实外键场景。
开发记录
- 发布版本号更新至
0.7.0.beta2,同步 package、Docker 镜像标签与快速开始分支引用。 - 新增内置「深度研究」多智能体:编排器 Agent(
deep-research,ChatbotAgent 后端)负责澄清、拆解、并行调度子智能体与综合成稿,配套两个子智能体research-explorer(围绕单个子问题多轮检索网页/知识库并返回带引用发现)和fact-verifier(对抗式核验关键论断、标注冲突与置信度);完整研究方法论沉淀为新增内置 Skilldeep-research(依赖tavily_search),编排器运行时读取并据此调度。三者随lifespan启动通过AgentRepository.ensure_deep_research_agents幂等落库(已存在不覆盖管理员修改)。 - 新增内置
general-purpose通用任务子智能体:使用SubAgentBackend与空运行配置,作为task工具的通用委派目标,由启动初始化自动写入数据库。 - 收敛 MCP 创建与编辑入口:前端移除整段配置文本入口和模式切换器,仅保留表单字段提交;后端 MCP 创建/更新请求拒绝额外配置字段,避免绕过表单约束。
- 调整内置 MCP 默认项:移除
sequentialthinking的系统内置同步,启动同步时清理历史系统内置记录,保留用户手动创建的同名 MCP。 - 图片生成能力迁移为 Skill:Qwen-Image 从内置 Python 生成工具迁移到内置 Skill
image-gen,模型调用与图片下载在 Agent 沙盒中完成,生成结果保存到 outputs 并通过present_artifacts展示,为多图片生成模型接入复用同一产物展示链路。 - 降低知识库路由与工具模块复杂度:示例问题生成迁移到知识库 utils,文件上传统一 100 MB 限制,URL 预处理入库路径与旧
content_type=url行为收敛,并修复 uid、导出 MIME 与异常透传等路由问题。 - 重构智能体配置语义:用户可见的
AgentConfig收敛为数据库持久化的一级Agent,内置 Python Agent 改为智能体后端;新增/api/agent管理与运行接口,聊天、运行任务、恢复审批和文件预览均从线程绑定的 Agent 解析运行时上下文,前端只提交agent_id,并在模型配置页新增“智能体”管理页签。 - 删除 Upload 与 LightRAG 图谱/知识库能力:知识库类型收敛为 Milvus 与 Dify,只保留 Milvus 知识库内图谱构建/展示/检索,移除独立
/graph页面和默认上传图谱工具。 - 收敛只读知识源连接器:新增
ReadOnlyConnectors基类,Dify 改为声明自身创建参数与校验规则,新增 Notion Data Source 只读知识库并支持 Search/Find/Open;知识库类型接口返回创建参数 schema,前端新建表单按类型动态渲染非 Milvus 配置并统一保存到additional_params。 - 新增知识库 Chunk 持久化:Milvus 知识库索引/更新流程会将 chunks 双写到 PostgreSQL
knowledge_chunks表与 Milvus,文件内容查看优先查询 PostgreSQL,并为位置信息、图谱实体关联、标签和抽取结果预留结构化字段。 - 完善 Milvus 知识库图谱构建:修复 Chunk 图谱写入返回值、Neo4j 同步写入阻塞事件循环、重复构建任务竞态、图谱查询提前终止、Neo4j 连接复用、LLM 抽取超时重试和前端错误详情展示等问题;图谱构建会将 entity/triple 本体与 chunk 引用写入 PostgreSQL,并为唯一 entity/triple 建立 Milvus 语义索引,单文件删除时同步清理图谱引用和孤儿向量。
- 优化图谱抽取器配置:未配置时在图谱中心展示配置入口,抽取方案收敛为 LLM,前端仅保留“更多拓展中”占位;LLM 抽取器使用固定 Prompt + 自定义 Schema,并支持模型参数与并发队列数;已配置后允许修改参数并提示重置重抽风险。修复上传并入库新文件时旧内存 metadata 覆盖数据库图谱配置的问题。
- 新增 Milvus 图谱检索链路:Query 可召回图谱实体和三元组,结合 Chunk 命中实体构造 seed entity,读取 Neo4j 2-hop 子图后用 igraph 执行 PPR,最终以 Chunk 为产物并通过 RRF 与原 Chunk 召回融合;检索配置改为 dataclass 元数据生成,支持
depend_on控制重排序和图检索参数展示。 - 收紧用户管理部门隔离:普通管理员创建用户时固定归属本部门,用户列表、访问选项、详情、更新和删除接口均限制在本部门范围内。
- 调整 Agent 资源默认选择与运行时上下文:未显式配置工具、知识库、MCP、Skills、子智能体时默认启用当前用户可访问/可用的全部资源,显式选择后按允许列表过滤;Agent 创建前统一完成最终资源权限过滤、知识库
kb_id可见范围派生和 Skill prompt/readable 依赖闭包派生,聊天运行时与文件系统预览复用同一结果。 - 重构 Skills 权限与安装流程:Skill 增加
source_type/share_config/enabled,内置 Skill 作为启动同步入库的全局资源,不再保留前端安装/更新状态,支持启停但不允许删除;上传和远程添加统一为解析草稿后确认生效范围,安装 slug 优先读取SKILL.md的slug字段并保留name展示名,压缩包名称不参与 slug 校验;管理端支持编辑生效范围与启停;Agent 运行时按当前用户可访问 Skills 派生 prompt/readable 依赖闭包并限制挂载/激活,Skills prompt 改为模型请求级注入以避免污染 runtime context;主智能体恢复install_skill工具,允许当前用户安装私有 Skill 并激活当前会话,子智能体配置和运行态均禁用该工具。 - 精简历史兼容层:移除 sandbox provisioner
local后端别名、ask_user_question 单问题旧协议、JWT 历史默认密钥特殊判断、内置 SkillSKILLS.md文件名回退、运行事件数字 seq 兼容和前端若干旧字段回退。 - 重构知识库共享权限:
share_config改为全局共享、部门共享、指定人可访问三档,部门共享必须包含当前用户部门,指定人可访问必须包含当前用户,并补充权限过滤测试。 - 移除知识库沙盒文件系统映射:不再通过
/home/gem/kbs暴露知识库文件树,Agent 继续使用query_kb与open_kb_document访问知识库内容。 - 规范 Agent 知识库 Search/Find/Open 工具协议:
resource_id统一表示知识库kb_id,Search 返回结构化resource_id/file_id/chunk结果,新增find_kb_document在已知文件内做关键词或正则定位,Open 默认窗口扩大到 1800 行。 - 收敛知识库分块配置:分块预设仅表达策略选择,通用分块参数统一通过
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 补全并持久化。 - 优化评估基准自动生成:生成任务支持配置队列并发数,默认 10,范围 1-20。
- 完善模型供应商类型:普通聊天模型运行时新增 Anthropic provider type 适配,并清理不再支持的旧 provider type 入口。
- 重梳理知识库评估存储:评估数据集、题目、评估运行和逐题结果统一入库,JSONL 仅作为导入/导出格式;后端和前端 API 统一使用 dataset/run 语义;评估运行支持用户命名,历史记录按名称展示,综合评分只聚合检索指标。
- 扩展知识库上传来源:添加“从工作区上传”模式,后端将当前用户工作区文件预处理上传到 MinIO,前端沿用现有
addDocuments入库链路提交 MinIO URL、内容哈希和文件大小。 - 重构知识库详情页布局:
DatabaseInfo改为顶部详情 header + 左侧功能 tab 侧边栏 + 右侧内容区,Milvus 默认进入文件管理,并将检索测试、知识图谱、知识导图、检索配置、RAG 评估和评估基准统一纳入侧边栏导航;只读连接器保留检索测试与检索配置。 - 整合知识导图接口:移除独立 mindmap router 与前端 API 模块,思维导图生成、查询和文件列表接口统一收敛到知识库 API 下。
- 收敛独立模型配置模块运行时:运行时 chat / embedding / rerank 均统一从 provider 模块与模型缓存读取
provider_id:model_id;旧版静态模型配置、v1 slash spec、旧模型列表接口和 Ollama 适配已移除;内置 provider 模板补充 XiaomiMiMo、XiaomiMiMo Token Plan CN 与 Kimi Code(kimi-for-coding)。 - 调整智能体配置归属与字段权限:
AgentConfig从部门共享改为按uid隔离,所有登录用户可管理自己的配置;BaseContext支持字段级auth元数据,后端按用户角色过滤可见与可保存的配置项。 - 新增用户级沙盒环境变量:增加
agent_envs表与/api/user/agent-env接口,设置面板支持当前用户维护 Agent 沙盒环境变量;创建新沙盒时与全局sandbox.env合并注入,用户变量优先。 - 收敛用户身份命名:原业务登录标识统一改为
uid,Agent/LangGraph runtime、conversation、agent_run、sandbox 路径和前端用户态均使用字符串uid;user_id仅保留给外部响应中的数值users.id或真实外键场景。 - 工作区知识库分类显示:知识库侧边栏按创建者分组为“我的知识库”和“共享知识库”,自己创建的知识库显示在“我的知识库”下,非自己创建的显示在“共享知识库”下;
knowledge_bases表新增created_by字段记录创建者 uid。 - 工作区文件上传支持多选:
/workspace/upload与 Viewer 工作区上传统一使用files多文件字段,一次最多上传 50 个文件,批量上传失败时清理本次已写入文件。 - 聊天附件新增 MinIO tmp 临时上传、可选 PDF/图片解析、确认后加入线程附件的流程;前端改为弹窗内上传、解析与确认。
- 优化智能体对话页细节:状态面板隐藏空 section,待办名称限制为 20 个中文汉字以内,模型选择器展示供应商名称,并收紧附件状态标签与文件编辑浮动操作样式。
- 标准化 Agent run/SSE 执行链路:run 创建时持久化输入消息并提交后入队,worker 统一写入 Redis Stream envelope,SSE 输出
event/data/id、心跳注释、Last-Event-ID回放和终止end事件;前端强制使用 run API 并支持 ask_user_question 中断后以 resume run 恢复;事件 envelope 构造收敛到统一 helper,前端优先使用 envelope 一级thread_id路由。 - Agent run SSE 新增
verbose=false精简模式:默认仍返回完整事件载荷;精简模式仅在 SSE 输出前重建最小 payload,跳过metadata和空yuxi.agent_state,将同一 data 内的request_id外提为单个字段,移除 chunk 中重复的meta、metadata、thread_id、response、空namespace和图片 base64 等调试字段,保留消息增量、工具调用、工具结果、非空 Agent state、终止状态和 SSE 游标,前端订阅默认使用精简模式。 - 修复 SiliconFlow MiniMax 工具调用流式兼容:MiniMax 在 OpenAI 兼容流中会在参数增量 chunk 返回空
function.name,LangGraph v3 event stream 会将空名称写入最终工具调用并导致工具执行失败;该模型默认对工具调用禁用流式模型响应,保留 LangGraph v3 运行事件并避免 agent-chat 中出现空工具名。 - 收敛后端模块边界:文档解析从
plugins.parser移动到knowledge.parser,内容审查从plugins.guard移动到services.guard。 - 收敛文件服务边界:文件预览判断抽为独立服务,Viewer 文件系统的 workspace 分支复用用户 workspace 服务,线程运行时上下文解析从泛化
filesystem_service拆出为 agent runtime helper。 - 升级 DeepAgents 到 0.6.7 并适配新版文件系统协议:SubAgentMiddleware 改为显式 subagent spec,Skills prompt 补齐新版占位符;sandbox/skills backend 复用新版
ReadResult、GlobResult、GrepResult等协议类型,文件权限在 backend 层明确区分 skills、uploads、outputs 与 workspace,保留最小CustomCompositeBackend以避免非 route glob 误扫其他 route;Agent 上下文压缩改为复用 DeepAgents SummarizationMiddleware,历史摘要与大工具结果统一 offload 到 outputs。 - 优化聊天输入 @ 文件提及:未创建 Thread 时可搜索用户 workspace,创建 Thread 后按当前对话文件优先、workspace 兜底的来源顺序搜索,并拆分 workspace/thread 缓存避免假 thread 与跨用户缓存污染;输入框与用户消息支持将 raw mention 渲染为带类型图标的引用单元,文件仅显示文件名且保留原始沙盒路径文本。
- 重构子智能体为 Agent-backed 形态:移除旧
subagents表与/api/system/subagents管理链路,子智能体改为agents.is_subagent=true且使用SubAgentBackend,创建/编辑统一走 Agent 管理入口;内置后端收敛为ChatbotAgent与SubAgentBackend,Context 分为BaseContext、ChatBotContext与SubAgentContext;主 Agent 通过 Yuxi task middleware 启动真实子 Agent graph,子智能体不再嵌套调用子智能体。沙盒挂载同步拆分为 child checkpoint thread、父对话 uploads/outputs、用户级 workspace 与子 Agent skills scope;主线程状态记录subagent_runs并在前端 task 工具中展示子智能体名称、执行状态、child thread 和产物,task 工具结果会暴露 child thread ID 且支持传回thread_id继续既有子智能体线程;子智能体执行复用agent_runs(run_type=subagent)记录父 run、child thread 与状态,child thread state 查询以agent_runs关系为准,不再解析 thread ID 反推父线程;真实流式 E2E 覆盖子智能体输出文件可由父线程文件/Viewer API 读取。流式链路参考 DeepAgents event streaming,后端将 LangGraph v3 raw event 归一化为 Yuxi semantic stream event,按父/子线程归属隔离 run SSE chunk,并支持通过 child thread state 拉取子智能体中间过程。 - 修正评估综合得分计算:
overall_score改为有答案准确率时取各题准确率平均,否则取各题recall@10平均,不再把 recall/f1/各 k 检索指标混合平均;历史已存运行不回填。
v0.6.2 (2026-05-22)
新增
- 新增个人工作区预览与管理:提供独立于对话 thread 的用户级 workspace API,并增加“工作区”页面,用于浏览、预览、编辑、上传、下载、删除个人 workspace 文件;默认创建
agents/AGENTS.md,并在 Agent 执行时将其内容追加到系统提示词。 - 新增独立模型配置模块:增加
model_providers表、独立管理接口和“模型配置”页面,支持 provider 基础信息、远端候选模型、enabled models 配置和手动添加模型能力。 - 新增远程 Skill 批量安装能力:后端新增
install_remote_skills_batch()与POST /remote/install-batch,前端补充批处理安装 API 和 UI 逻辑。
优化
- 下放扩展管理权限:普通管理员现在可进入扩展管理并完整管理 Tools、MCP、SubAgent、Skills;同步放开 Skill 管理接口权限并补充权限测试。
- 调整 Agent 知识库默认选择:未显式配置知识库时默认启用当前用户可访问的全部知识库,显式保存空列表仍表示不启用知识库。
- 优化评估基准自动生成:仅支持 commonrag/Milvus 知识库,默认参考 chunks 数量改为 1;多 chunk 场景复用知识库向量检索选择相似 chunks,不再对全量 chunks 重新计算 embedding。
- 优化 Agent 输入框文件 mention:用户级 workspace 文件候选改为从独立 workspace API 递归加载,不再依赖 active thread;插入时仍转换为
/home/gem/user-data/workspace/沙盒虚拟路径。 - 调整知识库思维导图后端结构:将思维导图路由文件重命名为知识库语义更明确的 router,并把文件列表整理、提示词构建、AI JSON 解析等纯逻辑下沉到知识库 utils。
- 收敛知识库评估后端结构:将评估指标、单题评估、答案生成提示词和自动基准生成算法下沉到
knowledge/eval,EvaluationService保留任务、文件和持久化编排职责。 - 扩展管理界面交互逻辑重构:MCP / Subagents / Skills 从“左侧边栏 + 右侧详情面板”调整为“卡片式网格布局 + 路由跳转二级页面”,工具标签页改为卡片网格布局 + 弹窗详情。
- 统一卡片样式:
ExtensionCard新增tagsprop 并复用于知识库列表页,知识库列表改用ExtensionCard+ExtensionCardGrid替代原有自定义卡片。 - 调整应用主导航:
AppLayout升级为默认展开的侧边栏,保留折叠态图标导航,并统一导航项、任务中心、GitHub、用户信息的图标与文字对齐。 - 合并智能体对话导航:移除
AgentChatComponent内部聊天侧边栏,将新建对话入口和对话历史移动到AppLayout主侧边栏,并通过共享线程 store 统一管理。 - 统一前端 Markdown 预览渲染:新增共享
MarkdownPreview组件与markdown_preview渲染工具,替换 Agent 消息、文件预览、知识库 chunk、任务工具结果、聊天导出等场景中的旧预览实现。
修复
- 修复聊天中普通用户
@提及出不来技能和 MCP 列表的问题:放宽技能列表与 MCP 服务器列表读取接口至已登录用户,并对普通用户请求的 MCP 列表进行敏感连接参数脱敏。 - 修复知识库文档入库状态回退:当已解析文件缺失
markdown_file解析产物时,索引流程会将文件状态恢复为未解析,便于重新解析。 - 修复附件上传后未立即刷新 mention 候选的问题。
- 加固 JWT 鉴权安全:移除历史默认密钥回退,初始化脚本支持生成并持久化
JWT_SECRET_KEY与YUXI_INSTANCE_ID,签发和验证令牌时校验iss/aud,并拒绝已删除或登录锁定用户继续使用旧令牌访问系统。 - 修复模型配置路由请求模型未接收
embedding_base_url/rerank_base_url导致前端已填写仍被后端校验拦截的问题。
v0.6.1 (2026-04-24)
新增
- 合并知识库导航入口:左侧导航仅保留"知识库",文档知识库与图知识库在页面 header 中通过同一组轻量切换入口切换
- 抽象页面轻量切换 header:知识库与扩展管理页直接共用
ViewSwitchHeader,收敛文档知识库、知识图谱、Tools、MCP、Subagents、Skills 等入口的信息层级 - 调整任务中心交互:入口移动到 GitHub 按钮下方,并将右侧抽屉展示改为居中弹窗
- 将
yuxi从 uv workspace 成员调整为backend/package下可独立构建的本地 Python 包,backend 通过 path dependency 以已安装包形式发现依赖 - 新增 Skills 远程安装能力:Skills 管理页支持填写
owner/repo或 GitHub URL,后端通过隔离的临时HOME调用npx skills add下载指定 skill - 调整部门删除语义:删除部门时不再要求用户数为 0,而是将部门下用户迁移到默认部门
- 扩展 viewer 工作区文件操作:
/home/gem/user-data/workspace支持从文件系统面板新建文件夹和上传文件 - 为历史线程补充前端本地配置变更提示:当已有历史消息的对话中切换 Agent、切换配置或编辑配置项时,插入非持久化的信息提示
- 调整 Worker run 模式下的消息首屏反馈:前端发送消息时先乐观渲染用户消息,再将前端生成的
request_id透传给/api/chat/runs与服务端init对账 - 调整聊天首页的智能体切换入口:当智能体数量
>= 4或内容区宽度小于380px时自动收敛为"当前智能体 + 下拉按钮"形式 - 调整智能体对话中的工具调用展示:连续工具调用默认折叠为"调用了 N 个工具"的轻量摘要
- 调整输入框配置入口与侧边栏头尾交互:输入区配置按钮改为轻量 dropdown 触发器
修复
- 修复沙盒
workspace隔离粒度:宿主机目录从共享saves/threads/shared/workspace收敛为用户级saves/threads/shared/<user_id>/workspace - 收紧文件系统安全边界:viewer/chat 下载与删除路径统一基于解析后的真实路径做允许目录校验,阻止通过软链接逃逸工作区/线程目录
- 修复 OIDC 原始用户名绑定中的占位用户解析:解析目标用户 ID 时改为从右侧拆分,避免
sub中包含冒号时把已绑定账号误判成冲突账号 - 修复 DOCX 解析中的图片回插顺序:Docling 导出的多个
<!-- image -->占位符现在按文档图片顺序替换 - 修复前端依赖安全告警:通过
pnpm.overrides将传递依赖flatted锁定到3.4.2、lodash-es锁定到4.18.1 - 修复对话摘要中间件的工具结果卸载链路:摘要触发时改为将大体积
ToolMessage写入当前 agent 可见的 sandbox outputs 路径 - 修复 agents 页对话侧边栏在
keep-alive路由切换后的误关闭问题 - 调整 Milvus 混合检索实现:集合 schema 增加 BM25 稀疏向量字段、BM25 函数和中文 analyzer 配置
- 重构 MCP 运行时配置加载模型:移除
MCP_SERVERS作为运行正确性前提的设计,改为每次直接从数据库读取最新 MCP 配置 - 为知识库检索工具补充
metadata.filepath注入:在query_kb统一出口基于会话可见知识库构建file_id -> /home/gem/kbs/...映射并回填 Milvus 检索结果 - 移除知识库沙盒文件系统映射:Agent 不再通过
/home/gem/kbs遍历知识库文件,继续通过query_kb和open_kb_document检索与打开文档。
v0.6.0 (2026-04-01)
新增
- 重构后端代码 src -> backend/package/yuxi
- 重构文档解析,统一文档解析体验,并新增 Parser 类
- 新增 LITE 模式启动,启动时不加载知识库、知识图谱相关模块,可以使用 make up-lite 快捷启动
- 新增沙盒环境,详见后续文档更新,统一沙盒虚拟路径前缀默认值为
/home/gem/user-data - 新增基于沙盒的文件系统,前端工作台可以查看文件系统,支持预览(文本、图片、PDF、HTML)、下载文件
- 新增
present_artifacts内置工具:Agent 可将/home/gem/user-data/outputs/下的结果文件显式写入 LangGraph state 的artifacts字段,前端支持在输入框顶部以默认折叠的堆叠卡片展示本轮交付物文件,并保持可下载、可预览能力 - 交付物卡片新增“保存到工作区”能力:支持将单个交付物复制到共享目录
workspace/saved_artifacts/,并复用现有文件树/预览/mention 体系立即可见 - 新增基于沙盒的知识库只读映射,按“用户可访问知识库 ∩ 当前 Agent 已启用知识库”暴露原始文件与解析后的 Markdown
- 重构附件系统,直接集成在了沙盒文件系统中,附件上传后直接落盘到沙盒挂载目录
- 优化前端流式消息体验:新增通用
useStreamSmoother调度层,统一平滑 Agent runs SSE、普通聊天流与审批恢复流中的loadingchunk - 优化项目文档说明,并添加贡献指南
- 重构前端 Agent 路由结构,体验更加顺畅,切换更加自然(类 chatgpt 体验)
- 新增 API Key 认证功能,支持外部系统通过 API Key 调用系统服务
- 新增 subagents 的支持,支持在 web 中添加 subagents,以及两个内置的子智能体
- 新增内置Skills reporter,并移除内置 Agent reporter,数据库报表将由 Skills 完成
- 新增内置 Skills
deep-reporter,用于指导生成科研报告、行业调研和其他深度分析类长报告 - 重构内置 Skills/MCP/Subagents 安装/添加/移除机制:内置 skill 支持按需安装、基于
version + content_hash的更新提示与覆盖确认,不再使用服务器级开关切换 - 新增知识库 PDF、图片的预览功能
- 重构后端测试目录结构:按
unit / integration / e2e分层迁移现有测试,拆分全局conftest.py,统一测试入口为uv run --group test pytest,并新增独立测试规范文档docs/develop-guides/testing-guidelines.md - 新增工具元数据
config_guide字段:后端工具列表接口现在可返回“给人看的配置说明”,前端工具详情页会展示该说明,用于提示工具使用前需要配置的环境变量或入口;首批为 MySQL 工具和Qwen-Image补充了配置指引 - 补充 Langfuse 集成方案文档:明确采用“云端优先、先 tracing 后 feedback”的接入路径,并约定 Yuxi 的
user/thread到 Langfuseuser_id/session_id的映射关系 - 新增面向用户的 Langfuse 集成文档:在“智能体开发”分组中说明 Langfuse 的定位、能力、配置方式与查看路径,并与当前
LANGFUSE_BASE_URL配置保持一致
修复
- 调整聊天首页的智能体切换入口:在无历史对话时,智能体数量
<= 3且chat-main宽度不小于380px时继续使用横向 segmented;当智能体数量>= 4或内容区宽度小于380px时自动收敛为“当前智能体 + 下拉按钮”形式,避免多智能体或窄屏场景下入口被截断 - 发布前一致性修复:统一 0.6.0 版本号(backend/package/web)、更新 dev/prod 镜像标签语义(
0.6.0.dev/0.6.0),并为/api/system/health补充version字段,提升部署可观测性与发版追溯能力 - 收敛“状态工作台”自动弹出规则:前端不再因为共享
workspace或文件系统天然存在内容而默认展开,改为仅在/home/gem/user-data/uploads或/home/gem/user-data/outputs下检测到实际文件时自动弹出;手动打开、关闭、刷新和伸缩交互保持不变 - 调整智能体 todo 展示语义:待办状态不再作为
capabilities前端开关,而是直接根据运行态agent_state.todos渲染;同时将 todo 入口从 Agent Panel 移到输入框内的轻量浮层,并让右侧“状态工作台”收敛为文件系统视图,输入框按钮文案同步由“状态”调整为“文件” - 优化 Agent 输入框 mention 行为:在保留附件 mention 的同时,将共享
workspace文件纳入候选范围;并将@空查询时的候选列表改为空,仅在继续输入后再执行筛选,避免工作区文件过多时直接铺满下拉面板 - 为前端工作台文件树补齐文件删除能力:
/api/viewer/filesystem/file新增删除接口,AgentPanel文件节点新增删除按钮与确认交互,删除后会同步刷新树与预览状态 - 扩展 Agent Panel 状态工作台删除能力:继续复用
DELETE /api/viewer/filesystem/file,在保持接口不变的前提下支持删除文件夹;空目录与非空目录现在都会递归删除,workspace下目录也可直接清理,前端目录节点同步新增删除入口与对应确认文案 - 调整前端工作台文件预览交互:恢复默认侧边/弹窗预览,并新增显式“全屏预览”入口;全屏模式下由预览内容直接覆盖整页,仅保留右上角悬浮关闭按钮;同时修复 HTML 文件首次在弹窗中预览偶现白屏的问题,改为在内容更新后强制重建
iframe - 统一 Agent Panel 文件预览与消息区交付物预览组件:两处改为复用同一套
AgentFilePreview预览实现,并为交付物预览补齐与工作台一致的“全屏预览”入口 - 修复交付物卡片展开后的长列表展示:当单轮交付物文件超过面板可见高度时,卡片内容区改为显示纵向滚动条,避免超过约 10 项后底部文件与操作按钮被裁切
- 兼容旧版已安装的内置
reporter技能记录:update_builtin_skill现在会识别由system或builtin-system管理的历史记录,避免更新时误报“技能reporter不是内置 skill” - 调整沙盒 user-data 目录隔离策略:
workspace改为共享目录saves/threads/shared/workspace,uploads/outputs继续保持 thread 级隔离;同时更新 thread artifact 权限校验、viewer 文件系统列举逻辑,以及对应的 router/E2E 测试 - 重构聊天接口请求模型:流式与非流式聊天统一使用
query + agent_config_id请求体,并移除路径中的agent_id;同时修复非流式接口实际误走流式执行链路的问题,改为调用invoke_messages一次性执行,并补充对应测试 - 修复对话线程与 Agent 配置错位的问题:发送消息时将当前
agent_config_id绑定到 thread 的extra_metadata,线程列表接口返回该绑定值,前端切换历史 thread 时会自动恢复对应配置 - 为沙盒与 viewer 文件系统补齐知识库只读映射:新增
/home/gem/kbs命名空间,按“用户可访问知识库 ∩ 当前 Agent 已启用知识库”暴露原始文件与解析后的 Markdown,并补充对应后端与 viewer 路由测试 - 优化 viewer 文件系统目录树加载:根目录与
/home/gem/user-data改为直接读取本地线程挂载目录,不再为只读树视图触发 sandbox 冷启动,并补充对应后端测试 - 修复
/home/gem/user-data根目录文件不可见的问题:根目录现在会同时展示 thread 目录下的真实文件和workspace入口,不再只保留固定命名空间目录 - 修复前端工具图标与渲染匹配不准确的问题:工具管理列表与工具调用结果统一改为基于工具
id的精确映射,避免模糊匹配导致的误渲染,未命中的工具不再显示默认扳手图标 - 修复 GitHub Pages 文档部署工作流失败:移除
actions/setup-node@v4对不存在docs/package-lock.json的缓存依赖,并将docs目录安装命令从npm ci调整为npm install,避免因未提交锁文件导致 CI 在依赖缓存和安装阶段直接失败 - 修正沙盒 provisioner backend 命名与配置说明:统一对外使用
docker/kubernetes,保留local作为兼容别名;同步清理 compose 中未生效的 provisioner 环境变量、补齐 K8s 相关变量注释,并更新沙盒架构文档中的默认模式与 backend 描述 - 修复智能体配置列表接口在“无配置自动创建默认配置”路径下的参数缺失:补齐
get_or_create_default的agent_id入参,避免/api/chat/agent/{agent_id}/configs返回 500 - 修复 LightRAG 同库写入并发导致的入库失败:为
index_file/update_content增加按知识库维度的串行锁,并补齐documents接口auto_index阶段对最新解析状态的回写与回归测试,避免长时间入库任务进行中再次选择同库文件时直接并发写入报错
v0.5
新增
- 优化 OCR 体验并新增对 Deepseek OCR 的支持
- 优化 RAG 检索,支持根据文件 pattern 来检索(Agentic Mode)
- 重构智能体对于“工具变更/模型变更”的处理逻辑,无需导入更复杂的中间件
- 重构知识库的 Agentic 配置逻辑,与 Tools 解耦
- 将工具与知识库解耦,在 context 中就完成解耦,虽然最终都是在 Agent 中的 get_tools 中获取
- 优化chunk逻辑,移除 QA 分割,集成到普通分块中,并优化可视化逻辑
- 重构知识库处理逻辑,分为 上传—解析—入库 三个阶段
- 重构 MCP 相关配置,使用数据库来控制 #469
- 使用 docling 解析 office 文件(docx/xlsx/pptx)
- 优化后端的依赖,减少镜像体积 #428
- 优化 liaghtrag 的知识库调用结果,提供 content/graph/both 多个选项
- 优化数据库查询工具,可通过设计环境变量添加描述,让模型更好的调用
- 优化任务组件,改用 postgresql 存储,并新增删除任务的接口
- 支持更多类型的文档源的导入功能(支持后端配置的白名单的 URL 导入)
修复
- 修复文件上传弹窗中 OCR 下拉选项展开时不会自动检查服务状态的问题
- 修复知识图谱上传的向量配置错误,并新增模型选择以及 batch size 选择
- 修复部分场景下获取工具列表报错 #470
- 修改方法备注信息 #478
- 修复多次 human-in-the-loop 的渲染解析问题 #453 #475
- 修复沙盒后端接入回归:补齐 composite backend 的
sandbox_backend参数、限制/api/sandbox/prepare仅允许访问当前用户线程、确保release()之后的destroy()会真正停止热池容器,并恢复 docker-compose 的完整模式默认值 - 重构沙盒为 deer-flow 风格的 AIO provider:切换为 thread-local sandbox、统一
/home/gem/user-data/{workspace,uploads,outputs}固定路径、移除公开/api/sandbox/*生命周期接口,并补充 lite 模式下的 provider 生命周期、filesystem API 与 sandbox 复用/隔离 E2E 验证 - 调整聊天附件存储链路:线程附件改为直接落盘到
saves/threads/<thread_id>/user-data/uploads,解析成功后额外生成uploads/attachments/*.md,不再依赖 MinIO 或显式上传到 sandbox - 修复知识库文件列表包体异常膨胀:上传阶段不再把批次级
content_hashes写入每个文件的processing_params,并从数据库详情列表接口中移除该字段,改为按需读取单文件详情
v0.4
新增
- 新增对于上传附件的智能体中间件,详见文档
- 新增多模态模型支持(当前仅支持图片),详见文档
- 新建 DeepAgents 智能体(深度分析智能体),支持 todo,files 等渲染,支持文件的下载。
- 新增基于知识库文件生成思维导图功能(#335)
- 新增基于知识库文件生成示例问题功能(#335)
- 新增知识库支持文件夹/压缩包上传的功能(#335)
- 新增自定义模型支持、新增 dashscope rerank/embeddings 模型的支持
- 新增文档解析的图片支持,已支持 MinerU Officical、Docs、Markdown Zip格式
- 新增暗色模式支持并调整整体 UI(#343)
- 新增知识库评估功能,支持导入评估基准或者自动构建评估基准(目前仅支持Milvus类型知识库)详见文档
- 新增同名文件处理逻辑:遇到同名文件则在上传区域提示,是否删除旧文件
- 新增生产环境部署脚本,固定 python 依赖版本,提升部署稳定性
- 优化图谱可视化方式,统一图谱数据结构,统一使用基于 G6 的可视化方式,同时支持上传带属性的图谱文件,详见文档
- 优化 DBManager / ConversationManager,支持异步操作
- 优化 知识库详情页面,更加简洁清晰,增强文件下载功能
修复
- 修复 GitHub Actions 的 Ruff CI 在仓库根目录执行
uv sync导致找不到backend/pyproject.toml的问题,同时统一检查路径为backend/package - 修复重排序模型实际未生效的问题
- 修复消息中断后消息消失的问题,并改善异常效果
- 修复当前版本如果调用结果为空的时候,工具调用状态会一直处于调用状态,尽管调用是成功的
- 修复检索配置实际未生效的问题
- 修复 sandbox 文件系统
ls在异常输出下触发KeyError: 'path'的问题,并将工具调用异常降级为错误消息,避免直接中断聊天 stream - 修复智能体状态面板中文件树仍依赖
agent_state.files的问题,改为通过真实/api/filesystem/*接口按层懒加载后端可见文件系统,并让输入框下方状态按钮常态化打开工作区视图 - 为工作台新增 viewer-oriented filesystem service 与
/api/viewer/filesystem/*接口,解耦 agent backend 语义,支持真实目录浏览、原始文件读取与下载 - 重写沙盒技术文档,明确 thread-local sandbox、viewer-oriented filesystem service、
/mnt命名空间、skills 可见性与当前实现边界,替换过时的/api/sandbox/*与 user-level 设计描述 - 收紧沙盒遗留代码:修复未注册
sandbox_router中残留的 user/thread 参数错位,改进宿主机挂载路径映射逻辑,并为 remote sandbox provisioner 增加基础 URL 校验与销毁失败日志 - 修复 builtin skill 内容哈希计算对单文件使用
read_bytes()的无上限内存读取问题,改为分块计算并补充回归测试
破坏性更新
- 移除 Chroma 的支持,当前版本标记为移除
- 移除模型配置预设的 TogetherAI
v0.3
Added
- 添加测试脚本,覆盖最常见的功能(已覆盖API)
- 新建 tasker 模块,用来管理所有的后台任务,UI 上使用侧边栏管理。Tasker 中获取历史任务的时候,仅获取 top100 个 task。
- 优化对文档信息的检索展示(检索结果页、详情页)
- 优化全局配置的管理模型,优化配置管理
- 支持 MinerU 2.5 的解析方法 0.3.5
- 修改现有的智能体Demo,并尽量将默认助手的特性兼容到 LangGraph 的
create_agent中 - 基于 create_agent 创建 SQL Viewer 智能体 0.3.5
- 优化 MCP 逻辑,支持 common + special 创建方式 0.3.5
- LightRAG 知识库应该可以支持修改 LLM
Fixed
- 修复本地知识库的 metadata 和 向量数据库中不一致的情况。
- v1 版本的 LangGraph 的工具渲染有问题
- upload 接口会阻塞主进程
- LightRAG 知识库查看不了解析后的文本,偶然出现,未复现
- 智能体的加载状态有问题:(1)智能体加载没有动画;(2)切换对话和加载中,使用同一个loading状态。
- 前端工具调用渲染出现问题
- 当前 ReAct 智能体有消息顺序错乱的 bug,且不会默认调用工具
- 修复文件管理:(1)文件选择的时候会跨数据库;(2)文件校验会算上失败的文件;