工具库的价值在于,它让数据库世界真的能被 Agent 操作。
有了企业数据库世界之后,还需要一套工具库。
这一步很关键。因为 Agent 看到的世界来自工具暴露出来的能力。
EntBench-Agent 里定义了 107 个企业工具,覆盖 system、HR、document、permission、meeting、project、schedule 等类别。
我觉得这套工具库有两个价值。
第一,它把数据库读写能力包装成企业 Agent 能调用的 API。
第二,它给后面的任务合成和工具检索提供了明确的动作空间。
1. 工具要和业务表一一对应
工具库和数据库世界是配套的。
文档域有 Document、DocumentVersion、DocumentPermission、DocumentShare 等表,所以工具里自然会出现:
create_document
get_document
update_document
query_documents
create_document_version
list_document_versions
grant_document_permission
revoke_document_permission
create_document_share
download_document
list_document_downloads
权限域有 PermissionRequest,所以工具里会有:
request_document_permission
list_permission_requests
approve_permission_request
reject_permission_request
get_user_permission_summary
会议域有会议室、预订、会议、参会人、纪要,所以工具会覆盖:
list_rooms
book_room
check_room_availability
create_meeting
list_meetings
add_meeting_attendee
create_meeting_minutes
share_meeting_minutes
grant_meeting_permission
项目域和日程域也一样,会有项目创建、成员管理、任务更新、事件创建、待办完成、提醒创建这些能力。
这说明工具有明确的业务来源。
它们是数据库世界的操作接口。
2. 工具设计要有企业味
企业工具和普通 CRUD 工具有区别。
如果只提供:
select_table
update_table
insert_table
delete_table
那 Agent 虽然能操作数据库,但任务语义会很弱。
企业 Agent 需要的是业务动作:
审批权限请求
预订会议室
创建会议纪要
分享会议纪要
更新任务完成度
创建入职提醒
查询用户权限汇总
这些工具名本身就带着业务语义。
后面做任务合成时,LLM 可以根据 seed 里的目标状态选择合适工具。
后面做工具检索时,也可以根据工具名称、描述、参数 schema 构建语义图。
所以工具设计本身会影响 benchmark 的质量。
3. 工具数量多之后,选择工具就是一个问题
107 个工具听起来还好,但对 Agent 来说已经很容易混。
比如文档权限相关工具就有:
grant_document_permission
revoke_document_permission
check_document_permission
request_document_permission
list_permission_requests
approve_permission_request
reject_permission_request
get_user_permission_summary
这些工具名字都很接近,但语义和使用时机差别很大。
比如 request_document_permission 是发起申请。
approve_permission_request 是审批已有申请。
grant_document_permission 是直接授予权限。
如果 Agent 把它们混起来,任务就会跑偏。
这也是后面工具图检索要做的事情:根据历史成功轨迹,学习这些工具之间的稳定调用关系。
4. 工具链比单个工具更重要
企业任务经常需要工具链。
比如审批文档权限请求:
list_permission_requests
↓
get_document
↓
approve_permission_request
↓
list_document_permissions
这个链条里,每个工具都有位置。
list_permission_requests 找到 request_id。
get_document 确认文档信息。
approve_permission_request 执行写操作。
list_document_permissions 验证最终权限。
单看用户请求,语义最强的工具是 approve_permission_request。但完整任务需要前置查询和后置验证。
所以我觉得 EntBench-Agent 的工具库设计,重点在工具之间天然会组成工作流。
5. 工具 metadata 的作用
PDF 里提到工具 metadata,比如领域、描述、参数。
这部分后面会被多处使用:
任务 seed 阶段:根据业务域和实体类型筛候选工具
LLM prompt 阶段:告诉模型当前可用工具
Agent 运行阶段:渐进式暴露工具参数
语义图阶段:根据工具描述和参数构建相似关系
失败分析阶段:判断缺失工具、错误工具、危险工具
也就是说,工具 metadata 是系统运行的一部分。
一个工具如果 metadata 写得模糊,后面 LLM 选工具时就容易混。
一个工具如果参数 schema 设计得模糊,后面真实执行时就容易错。
6. 这一层的小结
工具库这一层解决的是:企业数据库世界如何被 Agent 操作。
数据库提供状态。
工具提供动作。
工具 metadata 提供语义。
工具链提供工作流经验。
后面任务合成、真实评测、失败分析、工具图检索,全部要围绕这套工具库展开。
所以这 107 个工具更像 EntBench-Agent 里的动作空间。