JieGou 一直是一个可视化平台——您在浏览器中构建配方和工作流,点击运行,实时查看结果。但如果您想从 GitHub Action 触发工作流?或从 Slack 机器人运行配方?或将 JieGou 执行嵌入到现有 CI/CD 管道中呢?
今天我们推出 SDK API —— 一个无头执行层,让您以编程方式运行 JieGou 中的任何内容。
一个端点,四个操作
SDK API 是一个统一端点 POST /api/sdk。使用 bearer token 认证,指定操作,获取结果:
# 同步运行配方
curl -X POST https://console.jiegou.ai/api/sdk \
-H "Authorization: Bearer jg_a7f2b1c3e9d4..." \
-H "Content-Type: application/json" \
-d '{
"action": "run_recipe",
"recipeId": "abc123",
"input": { "topic": "2026 年 AI 趋势" }
}'
四个操作可用:
| 操作 | 功能 | 响应 |
|---|---|---|
run_recipe | 执行单个配方 | 同步——立即返回结果 |
run_workflow | 执行多步骤工作流 | 异步——返回 runId 用于轮询 |
run_coding_agent | 运行编码 agent 任务 | 异步——返回 runId,支持流式传输 |
send_message | 向对话发送消息 | 同步——返回助手回复 |
细粒度权限的 API 密钥
SDK API 密钥与您的 LLM 供应商密钥(BYOK)分开。从账户设置页面创建,带范围权限:
recipes:read/recipes:executeworkflows:read/workflows:executeruns:readconversations:read/conversations:writecoding-agent:executeskills:read
密钥使用 jg_ 前缀便于在日志和密钥扫描器中识别。明文令牌仅在创建时显示一次——之后只有前 8 个字符可见。密钥存储为 SHA-256 哈希,从不以明文存储。
每个密钥可以有可选的过期日期。即时轮换密钥——旧令牌被撤销,新令牌以相同配置生成。
异步执行,支持轮询和流式传输
工作流和编码 agent 任务异步运行。初始响应给您一个 runId 和 pollUrl:
{
"status": "queued",
"runId": "run_xyz789",
"pollUrl": "/api/sdk/runs/run_xyz789"
}
轮询状态:
curl https://console.jiegou.ai/api/sdk/runs/run_xyz789 \
-H "Authorization: Bearer jg_a7f2b1c3..."
或通过 SSE 流式传输实时事件:
curl -N https://console.jiegou.ai/api/sdk/runs/run_xyz789/stream \
-H "Authorization: Bearer jg_a7f2b1c3..." \
-H "Accept: text/event-stream"
事件包括步骤开始、步骤完成、编码 agent 工具调用和最终结果。
速率限制和使用跟踪
每个 API 密钥有自己的速率限制:
- 每分钟 60 个请求,每密钥
- 每小时 1,000 个请求,每密钥
- 10 个并发请求,每密钥
SDK 使用在计费仪表板中与 Web UI 使用分开跟踪,按 API 密钥和操作类型细分。令牌消耗与 Web 使用一样纳入 BYOK 计费。
集成示例
GitHub Actions
- name: 生成变更日志
run: |
curl -X POST $JIEGOU_URL/api/sdk \
-H "Authorization: Bearer ${{ secrets.JIEGOU_SDK_KEY }}" \
-d '{"action": "run_recipe", "recipeId": "changelog-gen", "input": {"diff": "${{ steps.diff.outputs.content }}"}}'
Slack 机器人
app.message('summarize', async ({ message, say }) => {
const result = await fetch(`${JIEGOU_URL}/api/sdk`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${JIEGOU_KEY}` },
body: JSON.stringify({
action: 'run_recipe',
recipeId: 'thread-summarizer',
input: { thread: message.text },
}),
});
const data = await result.json();
await say(data.result.output);
});
定时批处理
#!/bin/bash
# 运行每晚数据处理工作流
RESPONSE=$(curl -s -X POST "$JIEGOU_URL/api/sdk" \
-H "Authorization: Bearer $JIEGOU_KEY" \
-d '{"action": "run_workflow", "workflowId": "nightly-etl", "input": {"date": "'$(date -I)'"}}')
RUN_ID=$(echo $RESPONSE | jq -r '.runId')
# 轮询直到完成
while true; do
STATUS=$(curl -s "$JIEGOU_URL/api/sdk/runs/$RUN_ID" \
-H "Authorization: Bearer $JIEGOU_KEY" | jq -r '.status')
[ "$STATUS" = "completed" ] && break
[ "$STATUS" = "failed" ] && exit 1
sleep 10
done
现已可用
SDK API 在 Pro 计划及以上可用。在账户设置 > SDK API 密钥中创建您的第一个 API 密钥。
我们还在开发一个 npm 包(@jiegou/sdk),封装 REST API 并提供 TypeScript 类型、流式传输助手和自动重试逻辑。敬请期待。
创建 API 密钥 并开始自动化您的自动化。