API 参考 元任务
创建元任务
POST/projects/{project_id}/task-types/
创建可复用的元任务定义——每次运行实例化的脚本或 agent 契约。
参数
| 请求体字段 | 必填 | 说明 |
|---|---|---|
| name | 必填 | 显示名 |
| identifier | 可选 | 供 create_task 与 API 调用使用的稳定 id(缺省自动生成) |
| script | 可选 | 工作流源码——workflow.py 或 workflow.ts 内容 |
| execution_mode | 可选 | script(默认)或 agent |
| script_language | 可选 | python(默认)或 typescript |
| workspace_id / agent_id / docker_image_id | 可选 | 绑定:在哪运行、由谁运行、用什么镜像 |
| auto_approve | 可选 | 跳过人工审批关卡(默认 false) |
| extract_memory | 可选 | 从完成的运行蒸馏记忆(默认 false) |
| allow_mcp | 可选 | 允许任务调用项目 MCP server(默认 false) |
| result_schema | 可选 | 运行结果应满足的 JSON schema |
请求
curl -X POST "$ALLYBUILD_API_URL/projects/$PROJECT_ID/task-types/" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
-d '{
"name": "Weekly report",
"identifier": "weekly-report",
"script_language": "python",
"script": "def run(params, reporter):\n reporter.set_phase(\"Fetching\")",
"extract_memory": true
}'响应
{
"id": "5f4e3d2c-...",
"name": "Weekly report",
"identifier": "weekly-report",
"execution_mode": "script",
"script_language": "python",
"extract_memory": true,
"version": 1
}