输出有契约
下游需要哪些字段、什么类型,用 expect 声明。输出必须经过结构校验,才能被当作这个类型使用。
expect Result用一份 .flow 文件定义步骤、输出和验收条件。Agent 处理任务,运行时负责校验结果、限制资源,并在条件不满足时停止。
独立语言 · 可嵌入的运行时 · 不绑定模型厂商
agent(implementer)expect TestReportexpect ReviewReportpass when tests.passed
and review.blockers.empty条件不满足,流程在这里停止。
下游需要哪些字段、什么类型,用 expect 声明。输出必须经过结构校验,才能被当作这个类型使用。
expect Result把验收条件写成 pass when 表达式,再用 require 拦住未通过的结果。流程不必依赖 Agent 自行决定是否继续。
require result.passed并发数、调用次数、超时和请求权限都有明确的声明。工作流请求的能力,仍受宿主策略限制。
limits · tools · timeout三个片段,分别说明输出、验收和并发如何被约束。
stage answer -> Result {
return agent(writer) {
task "Answer the request"
input {
request: input
}
tools none
expect Result
}
}
expect Result 会生成 JSON Schema,并由运行时校验。默认提供一次修复机会;仍不合规则报错。
查看语法说明为便于阅读,省略外围类型和部分任务参数。完整示例见文档。
pnpm install
pnpm build
node packages/cli/dist/main.js check examples/simple.flow需要 Node.js 20 或 22、pnpm ≥ 9。CLI 演示使用 FakeAgentRuntime,不调用真实模型。