验证输出技能Skill verify-output

验证输出技能是一种用于在软件开发流程中,确保AI智能体或自动化工具生成的JSON输出数据符合预定模式(Schema)的自动化验证方法。该技能通过Bash脚本和模式文件,在数据写入最终位置前进行强制验证,防止无效数据污染系统。核心功能包括模式匹配、错误诊断、数据格式校验,适用于AI智能体协作、自动化任务输出、数据管道验证等场景。关键词:输出验证、JSON模式、数据校验、自动化测试、AI智能体、软件开发流程、数据质量保证。

DevOps 0 次安装 6 次浏览 更新于 3/2/2026

名称:验证输出 描述:在完成前验证输出是否符合所需模式的模式。在写入最终输出前使用以确保有效性。 允许工具:读取,Bash

验证输出技能

使用自动验证确保输出符合所需模式的模式。

何时使用

  • 在写入最终输出文件之前
  • 完成任务后
  • 生成结构化JSON输出时

快速参考

写入前验证:

./scripts/validate.sh <模式名称> <文件路径>

可用模式

模式 使用者 输出路径
demand 产品经理 memory/reports/demand.json
design 架构师 memory/reports/designs/*.json
task-output 实施者 memory/tasks/*/output.json
verification 验证者 memory/tasks/*/verification.json
reflection 反思者 memory/reflections/*.json
evolution-proposal 演进者 memory/evolution/*.json
contract 执行者 memory/contracts/*.json

验证流程

步骤1:确定您的模式

基于您的代理角色:

产品经理代理          → demand.schema.json
架构师代理            → design.schema.json
实施者代理            → task-output.schema.json
验证者代理            → verification.schema.json
反思者代理            → reflection.schema.json
演进者代理            → evolution-proposal.schema.json

步骤2:将输出写入临时位置

写入(memory/tasks/{id}/output.json.tmp, 内容)

步骤3:验证

./scripts/validate.sh task-output memory/tasks/{id}/output.json.tmp

步骤4:如果有效,移动到最终位置

mv memory/tasks/{id}/output.json.tmp memory/tasks/{id}/output.json

步骤5:如果无效,修复并重试

常见验证错误及修复方法:

错误 修复方法
'X' 是必需属性 添加缺失字段
'Y' 不是 ['a', 'b'] 中的一个 使用有效的枚举值
'Z' 不是 'array' 类型 将值包装在数组中:[值]
不允许附加属性 删除额外字段

输出格式:紧凑JSON

所有代理输出必须是紧凑JSON(单行,无额外空格):

{"task_id":"001","status":"pre_complete","knowledge_updates":[],"reflection":{"what_worked":[],"what_failed":[],"patterns_noticed":[]}}

必需字段(所有代理)

每个输出必须包含:

{"knowledge_updates":[{"category":"codebase","content":"string","confidence":"certain"}],"reflection":{"what_worked":["string"],"what_failed":["string"],"patterns_noticed":["string"]}}

如果没有更新,则为空数组:

{"knowledge_updates":[],"reflection":{"what_worked":[],"what_failed":[],"patterns_noticed":[]}}

有效值:

  • category: "codebase" | "convention" | "decision" | "gotcha"
  • confidence: "certain" | "likely" | "uncertain"

写入前验证模式

推荐的代理模式:

1. 在内存中构建输出对象
2. 写入 {输出路径}.tmp
3. 运行:./scripts/validate.sh {模式} {输出路径}.tmp
4. 如果验证通过:
     → mv {输出路径}.tmp {输出路径}
     → 日志:"输出已验证并写入"
5. 否则:
     → 读取验证错误
     → 修复输出对象
     → 从步骤2重试
     → 最多重试3次,然后报告验证失败

常见错误

  • 忘记 knowledge_updates(即使是空数组)
  • 忘记 reflection 字段
  • 使用无效的枚举值(检查模式允许的值)
  • 缺少必需的嵌套字段
  • 类型错误(字符串而不是数组等)
  • 使用YAML而不是JSON
  • 美化打印JSON(使用紧凑格式)

原则

  1. 写入前验证 - 绝不输出无效数据
  2. 模式即法律 - 缺少字段 = 被执行者拒绝
  3. 空值有效 - "knowledge_updates":[] 是可以的
  4. 快速失败 - 在错误传播前捕获
  5. 紧凑JSON - 单行,无格式化