第4章 智能体开发Step1 & 2:为"评论甄别"定规矩、建题库
本章你将学到:
- 用Claude Code将模糊需求转化为结构化的评测规范文档
- 用AI批量生成测试数据集,并人工构建黄金标准(GT)
- 检查数据集质量的实用技巧
本章你将产出 :一份完整的《评论有效性评测规范》文档,以及一个包含50条评论和黄金标准标签的测试数据集
全部章节:收录在专栏《AI应用工程化实战教程》
在第2章,我们学习了Harness工程的核心思想------规范即基准。在第3章,我们搭建好了开发环境。从本章开始,我们正式进入实战。
还记得第1章结尾的困境吗?Prompt越改越乱,因为你没有一份白纸黑字写清楚的规范,也没有一套标准化的测试集。本章要做的,就是补上这两个缺失的基础设施。
4.1 规范先行:定义什么是"好评论"
4.1.1 从模糊需求到可执行规范
在第1章,我们的需求描述只有一句话:"判断用户评论是否有效。"
这句话有很多模糊地带。什么是"有效"?"具体信息"怎么定义?"情绪化"一定无效吗?
规范的任务,就是把这些模糊地带全部消除。一份好的规范,能让两个独立的人(或AI),面对同一条评论,做出相同的判断。
4.1.2 定义核心评测维度
基于评论甄别这个任务的特点,我们定义了四个评测维度:
| 维度 | 含义 | 权重 | 通过标准 |
|---|---|---|---|
| 具体性 | 是否包含与商品/服务直接相关的具体细节 | 40% | 至少包含1个以上具体细节(菜品名、口味、价格、分量、环境等) |
| 可验证性 | 描述是否可被他人独立验证 | 25% | 包含可观察、可测量的客观信息 |
| 相关性 | 评论主体是否针对商品/服务本身 | 25% | 商品相关内容的占比超过50% |
| 信息密度 | 是否提供了足够的有效信息量 | 10% | 有效信息字数占总字数的30%以上 |
这四个维度共同回答一个问题:这条评论对其他人做决策有没有参考价值?
4.1.3 用Claude Code生成完整规范文档
现在,我们用Claude Code来生成一份完整的规范文档。
打开终端,进入项目文件夹,启动Claude Code:
bash
cd comment-analyzer
claude
输入以下指令:
你是AI工程化开发专家。我正在开发一个"评论有效性甄别智能体",它的任务是判断用户评论是否真实有效、具有参考价值。
请帮我生成一份完整的《评论有效性评测规范》文档,保存为 spec_review_validity.md。
文档需要包含以下内容:
1. 智能体角色定义
2. 输入规范(格式、约束)
3. 输出规范(JSON结构及每个字段的含义,给出正确输出示例)
4. 四个评测维度(具体性40%、可验证性25%、相关性25%、信息密度10%),每个维度必须有:
- 明确的通过标准
- 明确的不通过标准
- 至少一个通过示例和一个不通过示例
5. 边界规则(至少覆盖:空输入、纯表情/符号、纯数字、超长评论、非中文内容)
6. 错误处理(当输入不符合规范时返回什么)
输出为Markdown格式,语言为中文。
Claude Code会生成一份结构化的规范文档。但这不是终点------你需要仔细阅读这份文档,检查:
- 每个维度的"通过"和"不通过"标准是否清晰无歧义?
- 边界规则是否覆盖了你第1章踩过的坑?
- 示例是否典型、容易理解?
AI生成的是草稿,你来定稿。规范最终由人确认,这是"规范即基准"的关键。
4.2 数据为基:打造黄金标准测试集
规范文档写好了,接下来做第二件事:构建测试数据集。
4.2.1 什么是黄金标准(Ground Truth)
黄金标准(Ground Truth,简称GT) 是经过人工确认的、不可争议的正确输出。对于评论甄别任务,GT就是:这条评论到底是"有效"还是"无效"------这个答案不是AI说了算,是规范说了算,由人工根据规范逐条确认。
GT的作用是什么?它是整个评测体系的定海神针。后面所有自动化评测,本质上就是在做一件事:把你的智能体的输出,跟GT做比对。
如果GT本身有问题,后面的一切评测都失去意义。所以,构建高质量GT数据集是五步法中最需要细心的一步。
4.2.2 用Claude Code生成候选测试数据
先让AI帮我们批量生成评论数据。在Claude Code中输入:
根据 spec_review_validity.md 中定义的评测规范,请帮我生成50条模拟用户评论,保存为 test_data.csv。
要求:
1. 覆盖以下类型,每种类型至少5条:
- 高质量有效评论(具体、可验证、相关、信息密集)
- 刷单好评(笼统形容词堆砌、无具体信息)
- 情绪发泄型差评(只有情绪,没有事实细节)
- 无信息评论("还行""不错""一般"等极短评论)
- 与商品无关的评论(吐槽配送、天气、平台优惠等)
- 混合型评论(同时包含有效信息和无效信息)
- 边界案例(空文本、纯表情、纯数字、非中文)
2. CSV格式,包含两列:comment_id(从001到050)、comment_text(评论文本)
3. 评论文本模拟真实用户的表达习惯,不要太"教科书化"
执行后,项目目录下会出现 test_data.csv 文件。打开看看,你可能会发现几条不太合理的生成结果------没关系,AI生成的只是候选数据,下一步需要你来把关。
4.2.3 人工标注黄金标准
这是本章最重要的一步。打开 test_data.csv,新增第三列 gt_label,逐条阅读每一条评论,根据规范文档判断它应该是"有效"还是"无效"。
| comment_id | comment_text | gt_label |
|---|---|---|
| 001 | 红烧肉软烂入味,肥瘦相间刚好,量也很足,两个人完全够吃。下次还会点。 | 有效 |
| 002 | 太好吃了!超级好吃!强烈推荐! | 无效 |
| 003 | 等了快一个小时才送到,到手都凉了,骑手态度还特别差 | 无效 |
| ... | ... | ... |
标注时的注意事项:
- 完全依据规范,不要凭"感觉"。如果规范说"只抱怨配送属于无关评论",那003就是无效,哪怕它看起来很真实。
- 遇到模糊案例时,记录下来。比如一条评论:"肉有点柴,但酱料还不错。"------具体性有(肉柴、酱料不错),算有效吗?如果规范没有明确,这就是规范需要补充的地方。
- 标注完成后,自己抽几条重新检查一遍,确保一致性。
如果你发现某些类型的评论缺失(比如全是正确案例,缺少边界案例),回到Claude Code补充生成。
4.2.4 数据质量自检清单
标注完成后,用以下清单自检你的数据集:
- 有效评论和无效评论的数量大致均衡?(建议比例在 4:6 到 6:4 之间)
- 每个评测维度都有对应的测试案例?(具体性、可验证性、相关性、信息密度四个维度都覆盖了吗?)
- 边界案例至少覆盖了:空输入、纯表情、纯数字、超长文本、非中文内容?
- 有没有"显而易见"的案例太多,而"模棱两可"的案例不够?------真正考验智能体的,是那些需要仔细判断的混合型评论。
- 自己随机抽查10条,重新标注一遍,跟上一次的结果是否一致?------如果自己前后判断都不一致,说明规范还不够清晰。
4.3 避坑指南:本科生最容易在这两步犯的错
坑1:规范写得太"教科书化",缺乏操作性。
"判断评论是否真实有效"------这叫目标,不叫规范。规范必须有操作性定义:什么是"有效"?具体性怎么衡量?通过和不通过的边界在哪里?
坑2:测试集全是"典型案例",没有边界案例。
如果你的测试集里没有空评论、没有纯表情、没有超长文本,那你的智能体在面对这些情况时会做什么?你不知道。测试集的设计质量,直接决定了评测结果的可信度。
坑3:GT标注凭"感觉",不凭规范。
一条情绪激烈的差评,凭感觉可能会被判为"无效"------但仔细看,它其实包含了具体的菜品描述和事实细节。这种情况必须严格按照规范来判定,而不是凭印象。
坑4:数据集正负例严重失衡。
如果50条评论里45条都是有效评论,那你的智能体即使"全部判有效"也能拿到90%准确率------但这个数字毫无意义。
4.4 本章小结
- 规范文档是整个开发流程的"宪法"。它必须清晰到能让另一个独立的人(或AI)依据它做出跟你一致的判断。
- 我们为"评论甄别智能体"定义了四个评测维度:具体性、可验证性、相关性、信息密度。
- 黄金标准(GT) 是人工确认的正确答案。后续所有自动化评测都是在跟GT做比对。GT的质量直接决定了整个评测体系的可信度。
- 用Claude Code生成草稿,人工审核确认定稿------这是人机协作的标准模式。
- 数据集构建要关注:类型覆盖、正负均衡、边界案例、GT一致性。
从第5章开始,我们将基于本章产出的规范和数据集,正式开发"评论甄别智能体"的核心Prompt和运行脚本。
课后练习
- 阅读Claude Code生成的规范文档,找出至少一处你认为不够清晰的地方,并修改它。
- 从你的测试数据集中挑出5条"混合型"评论(同时包含有效和无效信息),用规范文档逐条判断。你的判断跟规范的定义一致吗?如果不一致,是规范需要修改,还是你的理解需要调整?
- 为"信息密度"这个维度专门设计5条边界案例------比如:整条评论只有3个字但字字有用;整条评论200字但全是废话。把这些案例加入你的测试集并标注GT。
- (进阶)如果你有自己的数据集想法,比如从真实平台上收集20条评论,尝试用规范文档为它们标注GT。真实数据往往比AI生成的数据更难判断。