任务生成之前,先从企业关系图里抽出一个可靠的骨架。

EntBench-Agent 的第二层是业务 motif 和 seed 子图。

我觉得这是整个任务合成里最关键的一步。因为它决定了后面 LLM 能写出什么任务,也决定这个任务能否落到真实数据库里。

1. 为什么需要 seed

LLM 很擅长把任务写得自然。

比如它可以写:

请帮我找到 Bob 对 Partner Ops Launch Checklist 的编辑权限申请,并让 Alice 审批它。

这句话很像真实用户请求。

但问题在于:这句话背后的实体关系必须真实存在。

数据库里要有 Bob。

要有 Alice。

要有 Partner Ops Launch Checklist 这篇文档。

要有 Bob 对这篇文档的 pending edit permission request。

Alice 还要是有资格审批的人。

所以系统需要先抽一个结构化 seed,把真实实体和关系固定下来,再交给 LLM 改写。

seed 可以理解成任务骨架。

它里面有:

seed_id
difficulty
motif_id
domains
actors
entities
relation_evidence
initial_state
target_state
allowed_tools
forbidden_tools

这样 LLM 后面写任务时,所有关键事实都有来源。

2. motif 是什么

motif 可以理解成业务任务模板。

比如:

文档权限审批
文档分享查询
会议协调
项目任务更新
入职提醒
请假审批
跨域项目协作

每个 motif 都描述一种常见企业工作流。

以权限审批 motif 为例,它通常需要:

一个 requester
一个 owner
一个 document
一个 pending permission request
一个目标状态:request approved + permission granted

系统会从企业关系图里找满足这个结构的局部子图。

找到之后,就形成一个 seed。

这一步很像从一张大图里切一小块可以出题的材料。

3. 难度怎么控制

PDF 里把任务难度分成 4 级。

Level 1:单节点任务
Level 2:双节点或简单关系任务
Level 3:涉及状态变化的任务
Level 4:跨业务域协调任务

这个分层很有用。

Level 1 可能只是查询一个文档或用户。

Level 2 可能要找到用户和文档之间的关系。

Level 3 开始有写操作,比如审批权限、更新任务状态、修改会议。

Level 4 会跨业务域,比如文档权限、项目任务、会议协调连在一起。

这样 benchmark 才能覆盖从简单查询到复杂工作流的能力。

4. seed 子图抽取流程

整体流程大概是:

Pasted image 20260611130933
Pasted image 20260611130933

比如抽到一个文档 owner 和一个 requester,系统会继续找他们之间是否存在 permission request。

如果这个 request 状态是 pending,并且文档、权限、用户关系都对得上,就可以形成一个权限审批 seed。

seed 里还会记录 relation evidence。

比如:

pending_permission_request
request_owner
document_uploader

这些证据后面很重要。

它们会帮助 compiler 构造初始数据库补丁,也会帮助 evaluator 检查最终状态。

5. 候选工具怎么筛

候选工具也在 seed 阶段确定。

系统会综合几类信号:

motif preferred tools
domain hints
entity hints
relation hints
target_state keyword hints

比如权限审批 seed 涉及:

Document
PermissionRequest
DocumentPermission

目标状态是 approve request 并授予 edit permission。

那候选工具就会偏向:

list_permission_requests
get_document
approve_permission_request
list_document_permissions

同时,删除、取消、撤销类工具会进入高风险区域,避免出现在这个任务里。

这个筛选很重要。全量 107 个工具直接交给 LLM,工具空间太大,任务生成也会飘。

seed 阶段先把工具空间收窄,后面 LLM 的输出就更容易落地。

6. seed 的作用

seed 的作用可以总结成三点。

第一,保证实体关系真实。

任务里提到的用户、文档、会议、项目、权限请求都来自数据库。

第二,保证目标状态可落地。

任务要达成的状态可以通过现有工具和数据库字段检查。

第三,保证工具链空间合理。

LLM 在候选工具范围内生成任务草稿,后面评测也能知道应该检查哪些工具和状态。

我觉得这一层是 EntBench-Agent 里最像“出题老师”的地方。它先从企业世界里找到一块真实材料,再让 LLM 把这块材料写成自然任务。