🚀 DB-GPT V0.8.2 — 更完整的 Agentic 数据工作流:多文件分析、知识检索与并行子 Agent
在复杂的数据分析任务中,业务信息往往分散在多份文件和知识库中;分析过程既包含可以并行推进的工作,也包含必须由业务人员确认的关键条件。当文件处理、知识检索、任务执行与人工确认彼此割裂时,Agent 难以保持完整上下文,分析流程容易被反复中断。
V0.8.2 围绕这类端到端任务,完善了从输入、检索、执行到确认的工作链路:多文件 Agentic 分析统一管理关联输入,Agentic 知识库检索支持在任务过程中持续查找所需信息,并行子 Agent 委派同时推进彼此独立的工作,人在回路(Human-in-the-Loop)交互式追问补齐必须由用户判断的关键条件。
关键特性速览
- 📎 多文件上传数据分析 — 在一个会话中上传、预览多个文件,并作为同一个任务上下文使用
- 🔎 Agentic 知识库检索 — Agent 可以迭代浏览、搜索和读取知识来源,而不是依赖单轮召回
- 🧩 并行子 Agent 委派 — 并发执行彼此独立的分析,并展示每个子任务的进度与产物
- 🙋 人在回路交互式追问 — 当需求或选项不明确时,Agent 可以暂停并请求结构化输入
- 🛡️ 安全与稳定性加固 — 在沙箱环境中渲染 Jinja2 模板、限制上传路径、消除 macOS TTS 的 Shell 注入风险,并提升客户端、存储和 RAG 稳定性
核心特性
📎 多文件分析:把一组文件作为同一个任务上下文
数据任务往往从一组相关文件开始,而不是一张孤立的表格:订单表与客户表、连续几个月的导出数据,或一份报告及其支撑材料。V0.8.2 支持在同一个对话 中附加多个文件,并在后续执行中持续将它们作为任务上下文使用。
在输入区上传、预览和管理文件
- 一次添加多个文件:通过文件选择器批量选择,或直接拖拽到输入区。
- 独立跟踪每个文件:分别展示上传、检查、就绪和失败状态。
- 执行前预览:在限定范围内预览表格或文档;如果只展示部分内容,界面会明确标识。
- 在对话过程中增删附件:无需重新上传其余文件。
- 遵循服务端下发的限制配置:文件数量、大小、并发数、超时与扩展名均可由部署方调整。
默认支持的文件类型包括 CSV、TSV、Excel、JSON/JSONL、Parquet、PDF、Word、PowerPoint、Markdown 和纯文本文件。能否预览某个文件,取决于部署环境是否安装了对应的可选解析依赖。
联合分析多个文件
Agent 接收的是稳定的文件 ID,而不是服务端存储路径。文件归属于当前用户和对话,仅在执行工具 需要时才会写入执行工作区。这样,load_file、Code Interpreter 和分析工具可以共同处理所选文件,同时不暴露实际存储位置。
当包含附件的对话被保存为定时任务时,DB-GPT 会冻结一份任务级文件副本。每次定时运行都基于同一份文件快照重放,不依赖可能已变化的会话上传文件。
🔎 Agentic 知识库检索:把检索变成可迭代的过程
传统 RAG 通常只执行一次检索,随后组装 Prompt 生成答案。这种方式适合简单问题,但当首轮查询不够准确,或证据分散在多个来源时,模型缺少继续查找和修正的空间。
V0.8.2 将知识库对话调整为 Agentic 循环:Agent 可以先查看知识空间,改写或缩小查询范围,多次检索,打开相关文件,并在证据充分时停止。知识库专用对话配备一组更聚焦的工具,包括语义检索、文件列表、glob、grep 和文件读取,减少无关工具的干扰。
索引方式与结构视图
| 能力 | 使用方式 |
|---|---|
| 向量检索 | 基于 Embedding Chunk 的语义相似度检索 |
| 文件与精确检索 | 在所选知识空间内匹配文件、检索关键词并按范围读取文件 |
| 知识图谱 | 在图谱已完成构建时提供实体与结构关系 |
| 结构视图 | 在查询阶段重建标题层级与父子上下文 |
| 代码图谱 | 构建完成后,为代码检索建立仓库、文件和符号定义索引 |
知识空间配置提供 VectorStore、FullText 和 KnowledgeGraph 三种索引方式选项。Git 仓库作为知识来源时支持全量与增量同步;当 Git 仓库或代码文件完成 Code Graph 构建后,可以按仓库、文件、类和函数等结构检索代码。
当检索结果超出上下文容量时,Agent 可以先将结果持久化,再按需分段读取。引用信息与最终答案分离,以结构化数据传递给前端展示,便于核对来源。
🧩 并行子 Agent:让独立任务并发执行
复杂任务经常包含若干彼此独立的分支,例如分别分析多份数据集、比较多种候选方案,或分别 排查若干相互独立的原因,再汇总为一个结论。V0.8.2 支持主 Agent 将这些分支委派给子 Agent 并发执行。
主 Agent 会先记录任务计划,再将独立工作项下发给子 Agent。每个子 Agent 都有自己的上下文、记忆、对话和工作目录;它可以继承主任务的数据库、知识库和只读工具访问权限,但不能递归委派任务。
| 能力 | 说明 |
|---|---|
| 有界并发 | 默认单次委派最多运行 3 个子 Agent,限制可以配置 |
| 实时进度 | 向前端持续传递运行中、已完成、失败和超时状态 |
| 过程可检查 | 展示每个子 Agent 的目标、已验证步骤、输出和产物 |
| 统一汇总 | 将结构化结果返回主 Agent,生成一个综合回答 |
| 执行约束 | 保持有依赖关系的任务串行执行,并禁止子 Agent 递归委派 |
单次委派上限可以通过 service.web.agent_context.max_parallel_subagents 或 DBGPT_MAX_PARALLEL_SUBAGENTS 配置。提高该数值也会增加并发模型调用和 Token 消耗。
当工作项真正独立时,并行委派可以减少不必要的串行等待;它不会改变存在前后依赖的步骤顺序。