项目使用了哪些工具,分别承担什么任务?

未标记

询问 AI

考查重点:工具职责与结果汇总。按一次任务说明工具输入和输出,例如搜索补公开信息、数据库取内部指标、知识库查文档,再讲结果如何汇总

本题目录

参考答案

核心回答

以企业研搜助手为参考示例,项目把业务工具按公开搜索、内部数据、内部文档和文件交付分组,由三个业务专家和主 Agent 分别使用。

  • 网络搜索工具交给网络专家:输入搜索问题和检索参数,调用 Tavily,返回包含标题、链接和内容等字段的搜索结果,用来补充公开资料。
  • 数据库工具交给数据库专家:先获取表名,再查看列名与样例数据,最后输入 SQL 执行查询,返回带列头的数据文本,用来回答库存、销售等具体业务问题。
  • 知识库工具交给 RAGFlow 专家:先列出可用助手及知识库信息,再输入助手名称和问题,返回内部文档问答结果。
  • 文件工具由主 Agent 使用:读取上传材料,把整理好的内容写成 Markdown,再按需要转换成 PDF,完成用户要求的文件交付。

框架还提供 task 委派和 write_todos 计划管理:前者把子任务交给专家,后者记录计划状态。它们属于通用编排能力;搜索、查库和生成报告等业务能力则由项目工具接入。

展开说明

1. 每组工具的输入、输出和职责

公开搜索只有一个业务工具:internet_search。 输入包括 query、搜索主题、最大结果数和是否返回网页原文。工具调用 Tavily,返回结构化搜索结果,网络专家再阅读、筛选和汇总。它适合查公开政策、新闻和行业背景;企业内部销量、库存和私有制度应查询相应内部来源。

数据库专家有三个工具。 list_sql_tables 不需要业务参数,返回真实表名;get_table_data(table_name) 返回指定表的列名与前 100 行数据,帮助理解字段和取值;execute_sql_query(query) 接收 SQL,执行筛选、关联或聚合,并返回含列头的数据文本。先发现表、再了解数据、最后查询的顺序由提示词引导。当前执行工具直接调用数据库游标执行传入 SQL,没有在工具层实现完整的只读校验。

知识库专家有两个工具。 get_assistant_list 返回 RAGFlow 助手名称、描述及关联知识库信息;create_ask_delete(chat_name, question) 选择助手,创建临时会话并提问,成功获取回答后删除会话。这个包装函数最终返回拼接后的答案文本。它查询的是已经入库的内部资料,上传到本次任务的临时附件则由主 Agent 的文件工具读取。

主 Agent 有三个自定义文件工具。 read_file_content(filename, instruction) 根据文件类型提取文本或表格摘要;其中 instruction 记录读取意图,用于监控展示,不会把底层解析器变成任意文档分析程序。generate_markdown(content, filename, path) 把提供的内容写入文件并返回生成说明;convert_md_to_pdf(md_filename, pdf_filename) 读取已有 Markdown,生成 PDF 并返回转换结果。因此,主 Agent 需要先组织好报告内容,再调用写入工具。

2. 工具如何进入 Agent 的执行循环

业务函数通过 LangChain 工具接口暴露名称、用途和参数。主 Agent 注册自己的文件工具,每个专家只注册对应的信息获取工具。主 Agent 通过框架的 task 工具,传入目标专家类型和具体子任务;专家在自身上下文中选择业务工具、填写参数、读取返回结果,再把结论交回主 Agent。

实际访问搜索 API、连接 MySQL、调用 RAGFlow 或写文件的都是应用代码。模型生成调用请求,运行时执行相应函数,再把返回值作为工具结果交回模型。这个参考实现里,搜索返回对象,多数数据库、知识库和文件工具返回文本或错误说明,并没有统一采用结构化业务结果。

write_todos 管理待办事项,帮助主 Agent 跟踪计划;task 发起专家委派。它们也不会替代业务工具的执行逻辑。框架还可能提供文件系统等基础工具,因此介绍项目时,先说清自定义业务工具及其任务,比只报一个运行时工具总数更有意义。

3. 一个请求会怎样调用这些工具

例如用户要求:“读取上传的产品资料,结合内部销售数据和相关公开政策,生成一份 PDF 分析报告。”主 Agent 先用 read_file_content 读取附件,确定研究对象;随后分别委派数据库专家查询销售数据、网络专家搜索政策。若需要补充内部制度或长期知识库资料,再调用 RAGFlow 专家。

数据库专家先发现真实表和字段,再执行具体查询;网络专家接收针对公开政策的检索问题。主 Agent 拿到所需结果后组织报告,把完整内容传给 generate_markdown,文件生成成功后再传给 convert_md_to_pdf。PDF 转换依赖 Markdown 文件已经存在,不能把两步当作相互独立的调用。

失败结果也会影响下一步。例如查询出错时应根据错误补充字段或调整查询;附件不存在、文本无法提取或转换失败时,应明确处理相应问题。项目工具已经返回部分中文错误提示;若需要更稳定的程序处理,可以进一步统一成功状态、错误码和产物引用,并分别落实 SQL 权限、参数校验与文件访问范围。

常见追问

工具和子 Agent 的区别是什么?

工具执行一项已定义的操作,例如输入 SQL 返回查询结果;子 Agent 则围绕一个目标,在自己的上下文中选择工具并完成多步处理。数据库专家可能连续查看表、预览数据、生成查询;主 Agent 通过 task 委派的是这一项完整子任务。

get_table_data 就是数据库 Schema 工具吗?

它返回列名和样例行,可帮助模型理解数据,但没有专门返回完整 DDL、索引和所有约束。若复杂查询需要这些信息,应增加相应元数据接口,避免把样例数据当成数据库全部结构信息。

返回了“文件已生成”,如何确认交付完成?

写入或转换函数的返回值说明该步骤结果,还需要确认目标文件存在、可读,并通过应用文件接口交给用户。报告内容是否满足需求,则应另查所用数据、引用和结论;文件生成与内容质量分别验收。

对应教程

参考资料

相关面经

10 篇

金蝶

Agent 开发工程师
校招一面
查看原面经 →
项目追问
这里有哪些工具?

上海联蔚数科

AI 工程实习生(Agent 方向)
实习
查看原面经 →
你的coding agent都有哪些工具

货拉拉

Agent 应用开发工程师
秋招一面
查看原面经 →
你这个 firstcoder 有哪些工具呢?

百度

Java 开发工程师(智能客服)
实习二面
查看原面经 →
项目追问
你这个 Agent 中一共有多少个工具?

阿里巴巴

AI 应用算法工程师
实习
查看原面经 →
项目用到哪些工具?
展开剩余 5 篇面经

快手

Agent 应用开发工程师
一面
查看原面经 →
说一下tool

小红书

AI 全栈开发工程师
二面
查看原面经 →
项目追问
项目里LangChain做了哪些工具调用,有没有实现memory相关功能,还是只做prompt编排?

Moka

后端开发工程师(AI)
实习
查看原面经 →
agent用到了哪些工具

阿里巴巴

AI 应用开发工程师
二面
查看原面经 →
Agent执行细节,大模型会调用哪些工具,如何测试agent搭的好不好

阿里巴巴

AI 应用开发工程师
暑期实习二面
查看原面经 →
定义了几个function供大模型调用,如何设计的

收录题集

3 份

Agent 核心面试题

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

阿里巴巴问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

腾讯问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

相关题目

4 题