本页只定义 agentic_workflow(task) 如何复用、修改或创建项目,以及candidate隔离、可执行测试门、发布判定与实现交付顺序。
agent() loop和一个确定性收尾函数;不增加新装饰器、resolver、dispatcher或模型工具协议。固定根项目与全部可达依赖;后续检查和执行使用同一份源码。
验证标准package、唯一参数化入口、允许的import、缺失依赖和循环依赖。
执行 python -m unittest discover -s tests -p "test_*.py";测试只存在或可解析不算通过。
在同一候选快照调用公开入口并记录DAG;失败回到同一个Agent修正。
测试与入口执行都成功后才创建commit并fast-forward目标仓库。
| 测试进程边界 | 合同 |
|---|---|
| 写入 | 只允许写本次临时目录,不能写源仓库、其他Workflow或用户目录。 |
| 网络与凭据 | 入口测试替换模型和外部Workflow调用;不获得provider凭据,不自动访问网络或安装依赖。 |
| 时间与输出 | 使用有界超时和输出上限;超时终止整个测试进程树。 |
| 取消 | 立即终止测试,删除临时候选,不创建commit,也不更新管理页面测试状态。 |
| 公共路径 | 必须观察到的结果 |
|---|---|
| 发现现有入口可完成 | 同一个Agent直接调用并返回;没有selection JSON、第二个author turn或新仓库。 |
| 创建缺失能力 | 生成独立Git仓库和多文件package,公开入口是现有 @agentic_function(task)。 |
| 现有B/C可完成新任务 | 只生成import B/C的编排项目,不复制B/C源码。 |
| 测试失败、超时或取消 | 不提交、不fast-forward,原仓库HEAD保持不变。 |
| 仓库有未提交修改 | 本次执行仍使用固定commit;修改只在authoring worktree验证后发布。 |
| 循环或缺失依赖 | 隔离worker启动前返回结构化错误。 |
| 任务 | 代码边界 | 完成证据 |
|---|---|---|
| A · 单一Agent authoring | openprogram/programs/agentic_functions/agentic_workflow/__init__.py | 直接复用、修改现有项目、创建组合项目三条公共RED。 |
| B · 可执行测试门 | 同一Workflow runtime与component测试 | 失败、超时、取消保持HEAD不变;通过时只发布一个commit。 |
| C · 只读管理视图 | 仓库扫描结果由Programs route与前端共用 | 详见DAG与管理网页。 |
@workflow、call_workflow()、invoke_workflow() 或字符串dispatcher。workflow.json / entry.py 不参与新任务。