在本机试跑两道会员运营任务

English · 中文主页

**这份指南帮助你看懂评测的完整过程:运行任务、打开报告,再观察一次故意失败。** 全程使用虚构会员和内置演示脚本,不联网、不调用模型、不发送真实消息。脚本按固定步骤操作,目的是让你先了解工具如何工作。

1. 准备运行环境

需要 Python 3.9 或以上版本,以及源码仓库或已解压的 loyaltyops-bench-0.5.0/ 试用包。使用试用包时,先核对随包提供的 SHA256 校验值,确认下载的文件完整。

打开终端,进入源码仓库根目录或解压后的包根目录。下文命令中的相对路径都从这里开始。每次运行使用新的输出目录,便于保留和区分结果。

先创建不带pip的本地虚拟环境。下列命令适用于macOS/Linux;Windows将 .venv/bin/python 替换为 .venv\Scripts\python.exe。不需要激活环境、安装项目或下载依赖。

python3 -m venv --without-pip .venv
.venv/bin/python --version

若当前Python没有 venv 标准模块,请使用本机已经具备它的Python安装;本指南不自动下载。运行前先看固定数据与两题初态:两题的会员订单相同,活动审批初态不同。导出JSON供维护者核对,不是另一个运行时输入或直接喂给Agent的答案。

2. 用中文运行两道任务

第一道任务要准备好召回活动,提交一次审批,然后等待:

.venv/bin/python scripts/run_demo.py \
  --task draft_for_approval \
  --agent reference \
  --task-language zh-CN \
  --report-language zh-CN \
  --output ./results/draft-zh

第二道任务已有合法审批,要核对后执行模拟发券和消息发送:

.venv/bin/python scripts/run_demo.py \
  --task execute_approved \
  --agent reference \
  --task-language zh-CN \
  --report-language zh-CN \
  --output ./results/execute-zh

两个演示都应通过。每个输出目录会生成一份阅读版报告和一份原始记录:

文件用途
<task_id>__reference.md先读这份报告,了解完成情况和判定理由。
<task_id>__reference.json需要复核时查看,包含业务状态、操作过程、判分及语言信息。

例如第一题的报告是 ./results/draft-zh/draft_for_approval__reference.md。这里的 <task_id> 会替换为命令中指定的任务名称。

3. 看一次“没有做完”的报告

下面故意使用一个始终拒绝执行的脚本。虽然活动已有合法审批,它仍然不执行活动,因此应被判为失败:

.venv/bin/python scripts/run_demo.py \
  --task execute_approved \
  --agent always_refuse \
  --task-language zh-CN \
  --report-language zh-CN \
  --output ./results/execute-refusal-zh

这条单题命令返回退出码1是预期行为。打开 ./results/execute-refusal-zh/execute_approved__always_refuse.md,检查报告是否说明:活动尚未执行,缺少发送或发券记录。再用同名 JSON 核对。完整读法见报告指南。

一次运行结束不等于任务完成;批量运行命令成功,也只表示报告已经生成,不表示每个案例都通过。

4. 按需切换语言

要查看英文任务,将任务语言改为英文。下面省略了报告语言,因此报告也会使用英文:

.venv/bin/python scripts/run_demo.py \
  --task draft_for_approval \
  --agent reference \
  --task-language en \
  --output ./results/draft-en

任务语言和报告语言可以分别选择。比较两种语言时使用不同输出目录。切换语言只改变说明文字,不改变业务规则、开始时的数据、允许的操作或判分。

选择另一组固定数据

一个业务模板有两种任务状态,分别可在三组数据上运行。不指定 --dataset 时使用 baseline。partial_refund 将一笔全退改为净额仍为正的部分退款;contact_kinds 区分服务触达与营销触达。政策不变:每人券额1000分,3000分是预算上限,不要求花满。

先在部分退款数据上运行两道任务:

.venv/bin/python scripts/run_demo.py --dataset partial_refund \
  --task draft_for_approval --agent reference --task-language zh-CN \
  --output ./results/partial-draft_for_approval-zh-CN

.venv/bin/python scripts/run_demo.py --dataset partial_refund \
  --task execute_approved --agent reference --task-language zh-CN \
  --output ./results/partial-execute_approved-zh-CN

再把 --dataset 改为 contact_kinds,并换新的输出目录,即可检查触达类型实例。baseline报告名仍为 <task>__<agent>.json/.md;新增组使用 <dataset>__<task>__<agent>.json/.md。比较结果前核对JSON中的 dataset_id 和 data_version。

下面各运行一个针对性错误脚本:

.venv/bin/python scripts/run_demo.py --dataset partial_refund \
  --task draft_for_approval --agent ignore_partial_refund --task-language zh-CN \
  --output ./results/partial_refund-fault-zh-CN

.venv/bin/python scripts/run_demo.py --dataset contact_kinds \
  --task draft_for_approval --agent service_as_marketing --task-language zh-CN \
  --output ./results/contact_kinds-fault-zh-CN

两条故障命令均应返回退出码1。ignore_partial_refund 错把所有有退款的订单当成无效;service_as_marketing 错把服务触达计入营销频控。请结合 /evaluation/findings、/trace、/snapshot 和 /failure_explanation 核对原因,不能仅凭退出码归因。错误脚本在baseline上偶然通过,不代表能正确处理变体。

命令参数对照

参数或名称含义
--task draft_for_approval准备活动、提交一次审批并等待。
--task execute_approved核对合法审批后执行活动。
--agent reference使用按正确步骤操作的内置演示脚本。
--agent always_refuse使用始终拒绝执行的故意失败脚本。
--task-language zh-CN / en选择中文或英文任务;默认中文。
--report-language zh-CN / en选择报告语言;省略时跟随任务语言。
--dataset baseline / partial_refund / contact_kinds选择固定数据,默认baseline。
--output指定结果保存目录。
--describe-task只查看被测助手会收到的任务及工具说明。

技术补充:查看助手输入

想知道被测助手可以看到什么,可运行:

.venv/bin/python scripts/run_demo.py \
  --task draft_for_approval \
  --task-language zh-CN \
  --describe-task

输出包含任务目标、业务规则、角色和工具定义,不包含维护者参考答案、判分内部状态或预先生成的报告解释。

本指南的验证范围

演示只说明本地脚本、工具和判分的行为,不说明模型能力或生产安全。首次试用的接入步骤仅阅读接口、记录障碍,不要求启动模型或运行模型计划/预检。见试用任务与版本说明。