Appearance
工作流节点参考
给学员 AI / 开发者生成
{nodes, edges}用。平台只提供积木契约,不负责业务逻辑。
机读摘要:GET /api/builder/node-types· 灌装前请先POST /api/builder/validate。
总规则
- 至少各有一个
start、end。 - 节点
id全局唯一;edges的 source/target 必须指向已有 id。 type必须是下表之一;缺必填 config → validate / provision 返回 400。- 模板变量:
{{节点id.字段}},例如{{start_1.user_message}}、{{llm_1.result}}、{{http_1.result}}。
节点类型
| type | 必填 config(任一) | 常用可选 | 说明 |
|---|---|---|---|
start | — | outputs / variables | 入口,注入用户输入 |
end | — | output | 出口,常用 {{上游.result}} |
llm | userPrompt / user_prompt / prompt_template | systemPrompt、model、temperature、maxTokens | 调模型 |
http | url | method、headers、params、body、timeout | 调她自己的 API;相对路径拼 WEBHOOK_BASE_URL |
condition | expression | trueTarget / falseTarget;或边的 condition | 分支 |
code | code | timeout | 沙箱 Python;结果赋给 result |
memory_load | agent_id | fields、memory_type | 读记忆 |
memory_save | agent_id | data、extractFrom | 写记忆 |
最小合法示例(start→llm→end)
json
{
"nodes": [
{
"id": "start_1",
"type": "start",
"config": {
"outputs": [{ "name": "user_message", "type": "string", "required": true, "default": "" }]
},
"position": { "x": 0, "y": 0 }
},
{
"id": "llm_1",
"type": "llm",
"config": {
"systemPrompt": "你是助教。",
"userPrompt": "{{start_1.user_message}}"
},
"position": { "x": 200, "y": 0 }
},
{
"id": "end_1",
"type": "end",
"config": { "output": "{{llm_1.result}}" },
"position": { "x": 400, "y": 0 }
}
],
"edges": [
{ "source": "start_1", "target": "llm_1" },
{ "source": "llm_1", "target": "end_1" }
]
}含 HTTP 的示例路径
内置 Recipe:http_call_thin(start→http→llm→end,http 默认 GET /health)。
自建时把 url 改成业务地址后 validate → provision。
API
bash
# 契约摘要
curl -sS "$BASE/api/builder/node-types" -H "Authorization: Bearer $TOKEN"
# 校验(不落库)
curl -sS -X POST "$BASE/api/builder/validate" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"workflow": { ... }}'SDK:client.list_node_types() · client.validate_workflow(workflow_dict)
MCP:builder_list_node_types · builder_validate