Agent 能力用例
This content is not available in your language yet.
星汉的 agent 能力不靠宣传页描述,靠公开的测试用例说话。这里的每一页 既是一篇能力说明,也是我们 CI 里每天真实执行的测试——文档和测试是同一个 markdown 文件,不存在”文档说的”和”实际测的”两份。
每个用例页固定四段:
| 段落 | 内容 |
|---|---|
| 基础项目 | 用例运行的初始数据环境(.xh 项目包),提供下载链接,导入星汉即可亲眼查看 |
| 题面 | 逐字节发给 agent 的用户消息——测试时注入的就是这段原文 |
| 验收 | 判定通过/失败的断言。声明式断言(YAML)+ 需要时的代码验收(JS) |
| 复现 | 在你自己机器上跑这个用例的命令 |
验收有一条设计原则值得说明:断言写意图,不写路径。我们只规定”答案必须 正确、状态必须改对、不许暴力翻表”,不规定 agent 必须用哪个工具怎么走—— 聪明的解法不该被考卷惩罚。
| 用例 | 域 | 难度 | 考什么 | 基础项目 |
|---|---|---|---|---|
| 跟进中的客户有几家 | 查询 | L1 | 单条件计数——服务端算而非翻表 | crm-basic@1 |
| 客户表一共多少条 | 查询 | L1 | 全表行数——用元信息/聚合,不翻页 | crm-basic@1 |
| 客户表的字段结构 | 查询 | L1 | 读 schema(字段名+类型) | crm-basic@1 |
| 最早要跟进的客户 | 查询 | L1 | 最值查询——排序/聚合而非翻表 | crm-basic@1 |
| 没填跟进日期的客户 | 查询 | L1 | 空值筛选(isEmpty 语义) | crm-basic@1 |
| 查负责人与合同金额 | 查询 | L1 | 单行定位+多字段读取 | crm-basic@1 |
| 项目里有哪些表 | 查询 | L1 | 项目结构感知 | crm-basic@1 |
| 合同金额最高的客户 | 查询 | L1 | 数值最值+关联信息读取 | crm-basic@1 |
| 订单表的字段 | 查询 | L1 | 读 schema(第二张 fixture) | orders-large@1 |
| 按订单号查单 | 查询 | L1 | 2000 行大表按业务主键定位——必须下推 filter | orders-large@1 |
| 列出全部负责人 | 查询 | L1 | 去重取值集(值分布/聚合) | crm-basic@1 |
| 描摹客户表画像 | 查询 | L1 | 表画像——schema+行数+值分布组合 | crm-basic@1 |
| 状态字段的可选项 | 查询 | L1 | 读字段配置(选项清单) | crm-basic@1 |
| 跟进中且已逾期 | 查询 | L2 | 状态+日期双条件($today 边界) | crm-basic@1 |
| 已退款订单计数 | 查询 | L2 | 大表条件计数(服务端聚合) | orders-large@1 |
| 已发货订单计数 | 查询 | L2 | 大表条件计数 | orders-large@1 |
| 逾期未跟进清单 | 查询 | L2 | 日期比较筛选(早于今天) | crm-basic@1 |
| 张伟名下合同金额合计 | 查询 | L2 | 条件聚合求和 | crm-basic@1 |
| 张伟的已退款订单数 | 查询 | L2 | 双条件计数 | orders-large@1 |
| 已成交客户清单 | 查询 | L2 | 单条件筛选记录集(precision/recall 双向扣分) | crm-basic@1 |
| 按负责人汇总订单金额 | 查询 | L2 | 分组聚合+排序 | orders-large@1 |
| 张伟名下订单合计 | 查询 | L2 | 大表条件求和 | orders-large@1 |
| 未来一周要跟进的客户 | 查询 | L2 | 日期闭区间筛选(已知全行业弱点) | crm-basic@1 |
| 批量删除必须先问 | 安全 | L2 | 破坏性批量操作必须先确认(审批门) | orders-large@1 |
| 凭线索词「续约」找客户 | 检索 | L3 | 内容线索 → 全局检索定位 | workspace-mixed@1 |
| 一家公司出现在哪些表 | 检索 | L3 | 实体跨表召回 | workspace-mixed@1 |
| 谁提到了「发票」 | 检索 | L3 | 关键词检索+归属解读 | workspace-mixed@1 |
| 凭电话号码找人 | 检索 | L3 | 精确值全局检索 | workspace-mixed@1 |
| 审核单模式:改动进单不落 live | 写入 | L2 | propose 会话:写改动进审核单(F1 回归——live 零直写+恰好一张 open 单) | crm-basic@1 |
| 把赢单改成已成交 | 写入 | L2 | 审批后单格写入——存储形态须是 optionId | crm-basic@1 |
| 改完再改回去(多步)(多步) | 写入 | L2 | 多步连续写入+会话记忆——记得住上一步改了谁 | crm-basic@1 |
基础项目下载
Section titled “基础项目下载”用例基于固定版本的基础项目(发布后永不修改——改数据即升版本号,保证 任何时候的复现结果可比):
| 项目包 | 内容 | 大小 | 校验(sha256 前 16 位) | 下载 |
|---|---|---|---|---|
crm-basic@1 | 客户/订单两表 CRM,13 家客户 | 4 KB | e6ad26a53bd2c65e | crm-basic@1.xh |
下载后在星汉里 项目列表 → 导入 → 选择 .xh 文件,即可打开和用例完全 一致的初始数据环境。
# 需要本地跑一个星汉容器(详见 agent-eval README)pnpm --dir packages/agent-eval eval --only L2-write-statusrunner 开跑前会自动把用例引用的基础项目下载到本地缓存目录并校验 sha256, 然后导入为一次性项目、把日期字段平移到运行日——你跑到的初始环境和 CI 完全一致。