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 | 執行編碼代理任務 | 非同步 — 返回帶串流的 runId |
send_message | 向對話發送訊息 | 同步 — 返回助手回應 |
具有細粒度權限的 API 金鑰
SDK API 金鑰與你的 LLM 提供商金鑰(BYOK)分開。從帳戶設定頁面建立,具有範圍權限:
recipes:read/recipes:executeworkflows:read/workflows:executeruns:readconversations:read/conversations:writecoding-agent:executeskills:read
金鑰使用 jg_ 前綴,方便在日誌和密鑰掃描器中識別。明文 token 在建立時僅顯示一次 — 之後只有前 8 個字元可見。金鑰以 SHA-256 雜湊儲存,永不以明文保存。
每個金鑰可以設定可選的到期日。即時輪換金鑰 — 舊 token 被撤銷,新 token 以相同設定生成。
非同步執行,支援輪詢和串流
工作流程和編碼代理任務以非同步方式執行。初始回應提供 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"
事件包括步驟開始、步驟完成、編碼代理工具呼叫和最終結果。
速率限制和使用追蹤
每個 API 金鑰有自己的速率限制:
- 每個金鑰每分鐘 60 個請求
- 每個金鑰每小時 1,000 個請求
- 每個金鑰 10 個並發請求
SDK 使用量在帳單儀表板中與 Web UI 使用量分開追蹤,按 API 金鑰和動作類型細分。Token 消耗納入與 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),用 TypeScript 類型、串流輔助工具和自動重試邏輯包裝 REST API。敬請期待。
建立 API 金鑰,開始自動化你的自動化。