Codex技能评估系统核心概念

8 人参与

在实际部署 Codex 智能体时,往往只能凭感觉判断新技能是否真的“更好”。Codex 技能评估系统(Eval System)正是为了解决这一盲点而设计,它把每一次调用抽象为可度量的事件流,并通过结构化评分把主观体验转化为客观数据。

评估系统的基本框架

框架由三层组成:① 输入层——统一的提示词 CSV 或 JSON,明确标记“是否应触发”。② 执行层——使用 codex exec --json --full-auto 将模型运行过程记录为 JSONL;每一次 command_executionitem.startedturn.completed 都被捕获。③ 评分层——依据预设的 Rubric(通过/不通过、得分、备注)对事件进行确定性检查和定性打分。整个闭环可以在 CI 中自动循环,形成可追溯的改动历史。

关键评估维度

  • 结果完整性:任务是否产生了预期的文件或产物(例如 package.jsonsrc/components/Header.tsx)。

  • 过程合规:模型是否按顺序执行了关键命令(npm installnpm run build),是否出现了无效循环。

  • 资源消耗:记录 usage.input_tokensusage.output_tokens,对比不同版本的 Token 预算,及时发现提示词膨胀。

  • 风格符合度:利用结构化的评分 schema 检查代码是否遵循函数式组件、Tailwind 实用类等约定。

  • 权限回归:在沙箱模式下运行时,确认没有越界请求文件系统或网络。

实现方式与工具链

典型的实现步骤如下:1)准备 evals/setup-demo-app.prompts.csv,每行包括 idexpect_triggerprompt。2)脚本遍历 CSV,调用 codex exec --json 并把输出写入 artifacts/ 目录。3)解析 JSONL,使用 Node.js 或 Python 编写的 deterministic checks(如 event.type==="command_execution" && event.command.includes("npm install"))得到布尔结果。4)将布尔结果喂入 Rubric JSON Schema,生成统一的 scorechecks,最后写入 results/

案例剖析:React 演示技能

以 “setup-demo-app” 为例,评估 CSV 包含四条记录:两条显式调用(提示中直接写 $setup-demo-app),一条隐式描述(只说“快速搭建一个 React + Tailwind 示例”),以及一条负向控制(要求在已有项目中添加 Tailwind,不应触发)。执行后,JSONL 中出现了 item.completed 事件记录了 npm create vite@latestnpm installtailwindcss init 的完整链路。通过脚本检查发现:所有正向案例均生成了 src/components/Card.tsx,负向案例却误创建了新项目——这正是名称/描述歧义导致的误触发。

{"overall_pass":false,"score":62,"checks":[{"id":"trigger","pass":false,"notes":"误触发导致重复项目创建"},{"id":"npm_install","pass":true,"notes":"依赖已完整安装"},{"id":"tailwind","pass":true,"notes":"配置文件匹配"}]}

把这条误触发记录加入 CSV,重新跑一遍,系统立刻捕获到名称冲突并给出警示。随后在 SKILL.md 的 description 中加入 “仅在空目录下使用” 的限定语,后续评估再未出现同类回归。这样一步步把手动发现的缺陷固化为自动化检查,技能迭代的每一次提交都能用数据说话。

参与讨论

8 条评论
柚子导航
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.