用途:ai_evals/ 是 Windmill AI 生成模式(flow、app、script、cli、global)的黑盒基准运行器,始终测试当前检出版本中的生产提示词、工具与指引。每次尝试都走真实生产路径,做确定性校验,再由 LLM 评判;目标是检验当前生产指引对真实用户请求的表现,而非固定某一种实现形态。
用法:进入 ai_evals 目录,首次运行 bun install(前端模式还需 cd frontend && bun install)。用 bun run cli -- models 列出模型别名,bun run cli -- cases global 列出某模式的用例,bun run cli -- run global global-test1-script-create --model sonnet 运行单个用例。前端模式(flow/script/app/global)的模型调用经由 Windmill 后端的 /api/w/<ws>/ai/proxy,因此需要可达后端。配置环境变量示例:WMILL_AI_EVAL_BACKEND_URL=http://127.0.0.1:<port> WMILL_AI_EVAL_BACKEND_WORKSPACE=integration-tests,再运行 bun run cli -- run global <caseIds...> --models sonnet,gpt-5.5,gemini-3.1-pro-preview。需复用已有工作区,因 CE 构建限制工作区数量,临时创建工作区会返回 400;运行唯一副作用是在该工作区 upsert f/evals/ai/<provider> 资源。提供方密钥放在 ai_evals/.env,由 bun 自动加载;评判器是独立的 Anthropic 调用(默认 claude-sonnet-4-6),与被测模型无关。
编写规则:提示词要像真实用户请求,强调行为、输入、约束和结果,而非内部实现;确定性校验只用于硬性失败(缺少必需文件、提示禁止时多出文件、语法错误、未解析的 flow 引用、缺少必需特殊模块或挂起配置、明显损坏),不要绑定某一种首选实现。语义期望放入 judgeChecklist,每个非平凡用例都应包含它,关注用户可见行为、重要约束与完成标准。仅在确切结构确实重要时使用 expected fixtures。完整用例格式、字段与 fixture 细节见 ai_evals/README.md。
限制:资料未说明支持的全部提供方、模型清单、定价或平台要求;前端模式必须依赖可达后端与已有工作区。