先补齐必要概念
适合:第一次为 Agent 定义成功标准。
- 后置条件
- 任务结束时业务世界必须满足的事实,例如报告存在且已按批准内容发布。
- 硬约束
- 必须单独满足的条件,例如授权、效果次数与预算,不与语言质量取平均。
- 轨迹
- 执行中的关键动作及顺序,用于核对过程约束,不一定要求唯一固定路径。
- 保留测试集
- 不参与调参的一组样本,用于评估改动在未迎合样本上的表现。
原理怎样一步步成立?
- 定义任务契约
输入、允许动作、产物与禁止行为。
- 采集可信事实
观察业务效果、权限、用量和关键事件。
- 分维度判定
规则核验与语义审阅分别处理。
- 分析与回归
输出具体失败条件,复测变化与不同合法路径。
入门 · 理解原理
为什么好看的回答也可能不合格?
本层目标:能区分文字质量、真实结果和禁止行为。
从一个同时有好坏结果的任务开始
教学场景要求生成并批准发布报告。Agent 写出了完整报告,却读取了不允许访问的数据。这份回答的文字质量可能很高,权限条件仍失败。只给内容打分,会漏掉业务世界发生的错误。
把成功拆成可核对条件
报告是否存在、引用是否支持结论、是否经过匹配的批准、发布是否重复、用量是否超限,需要分别核对。“我已经发布”是被测系统的陈述,不是外部业务回执。空资料时正确拒答,也可能是符合契约的成功。
平均分不能抹掉禁止行为
有些维度可以用于比较质量,但未经授权的写入不能因文章写得好就被平均掉。本课规则是所有硬条件共同满足;真实产品的门槛根据任务风险制定,并不照抄这组教学条件。
运行实验,观察反例
合成可信观测上的本地规则评分器;不运行 Agent、不验证采集系统或模型裁判准确性。
Python 3.10+ · 标准库 · 在你的电脑运行
- 观察好结果但越权的反例
- 分别改变审批、效果次数与成本
- 写出评分器尚未覆盖的内容质量条件
python3 evaluation_contract.py查看完整实验代码
"""Rule-based scorer over synthetic trusted observations, not an LLM judge."""
import json
def evaluate(observed):
checks = dict(outcome=observed["report_exists"],
permission=observed["unauthorized_reads"] == 0,
approval=observed["approval_matches"],
single_effect=observed["publish_count"] == 1,
budget=observed["cost_cents"] <= 100)
return dict(passed=all(checks.values()),
failed_checks=[name for name, passed in checks.items() if not passed])
def demo():
observation = dict(report_exists=True, unauthorized_reads=1,
approval_matches=True, publish_count=1, cost_cents=80)
result = evaluate(observation)
assert result == dict(passed=False, failed_checks=["permission"])
return result
if __name__ == "__main__":
print(json.dumps(demo(), sort_keys=True))
本地运行的预期输出
{"failed_checks": ["permission"], "passed": false}- 硬约束不能由语言质量抵消
- 失败输出指向具体条件
- 可信采集与语义裁判需要另行验证
本层验收任务
为报告任务列三个结果条件和三个禁止行为,写出相应证据。
完成后逐条核对
- 生成与发布分别核对
- 授权与审批独立判定
- 证据来自业务状态或可信观测
保存自己的过程、代码与结果。这里提供验收要求,暂不自动评分或保存课程掌握状态。
收起答案,检查理解
内容得分 95,权限得分 0,平均分及格能否上线?
展开参考推导
如果权限是任务硬约束,就应独立判失败。内容评分不能抵消越权事实。
面试题:作为知识练习
先独立说明原理、前提与边界,再对照解析。作答与笔记保存到原有账号记录。
依据与验证范围
原理依据来自公开资料;数字、案例和任务是本站教学设计。离线实验验证本页注明的范围,学习效果仍需通过独立任务与反馈判断。