同样的能力,两种数据源(临时聊天文件 vs 持久知识库):新建工具,还是扩展现有工具?

Reddit r/AI_Agents 新闻

摘要

一位从业者权衡了三种为聊天智能体的现有工具添加持久知识库电子表格的方案,倾向于新建一个专门的 analyze_knowledge_spreadsheet 工具,配合清晰的路由说明和路由测试,同时向社区征集是否有遗漏的方案。

我们的聊天智能体有两个工具: analyze_spreadsheet:模型针对当前聊天中附加的电子表格编写 pandas 代码。在写代码之前,我们会给它展示一个简短的布局概要(工作表、范围、首行和末行),以便它能找到表头并跳过标题行和合计行。 search_knowledge:对组织上传的 PDF、PPTX 和 DOCX 文件进行 RAG 搜索。这些文件在所有聊天中共享。 现在用户可以上传电子表格作为持久知识。智能体需要用代码回答关于这些表格的问题(求和、分组等),而不是段落搜索。 约束条件: 每个问题只允许一次工具调用。 不允许「先获取布局,再运行代码」这样的序列。模型会跳过步骤。 UI 卡片必须标明它在使用知识库。在两个月前上传的文件上显示「正在分析电子表格」会让人困惑。 RAG 的行为必须与现在完全一致。 我考虑过的方案: A. 新建工具 analyze_knowledge_spreadsheet(file, question)。一个小型内部智能体获取布局、编写并运行代码(最多运行 3 次),然后返回数据。拥有独立的卡片标签,RAG 不受影响。代价:这是第三个与聊天工具功能重叠的工具,因此描述中必须说明何时使用哪个。 B. 给 search_knowledge 添加一种模式。搜索和代码执行是不同的任务,而且它的参数也不匹配。另外,「这个方案」可能会子串匹配到一个名为「方案」的 PDF,并从错误的文件中作答。 C. 给 analyze_spreadsheet 添加一个知识源参数。工具数量最少。但模型在写代码之前需要知道文件的布局。这意味着要么每一轮都在提示词中放入所有布局(token 太多),要么增加一个必需的布局步骤(破坏了一次调用的约束)。卡片标签也是错的。 我们倾向于 A,加上在每个工具描述中写明「何时使用 / 何时不用」,以及一个约 20 条提示词的路由测试。 问题: 有没有我遗漏的方案?对于「同样的能力、不同的数据源」,你们会使用独立的工具、数据源参数、文件注册表,还是其他方式? 对于方案 C,有没有一种简洁的方式可以在不需要前置步骤的情况下把文件布局提供给模型? 谢谢!!
查看原文

相似文章

你们团队目前用什么作为智能体原生的共享知识库?

Reddit r/AI_Agents

一位从业者调研了多种智能体记忆与共享知识库工具(Mem0、Engram、Memori、ByteRover、Basic Memory),并深入介绍了开源项目 OpenLore——该项目通过 SSH 或 MCP 将 Markdown 文件作为人类与智能体共享的知识库对外提供,具备 RBAC 权限控制且无需向量数据库,同时也在权衡这类智能体原生知识基础设施是否真的必要。