JieGou 內建 260+ MCP 整合、9 個 LLM 提供商和視覺化工作流程建構器。但每個組織都有通用平台無法預見的獨特工具、內部 API 和流程。
今天我們推出三個擴展功能,讓你可以將自己的能力帶入 JieGou — 無需分叉程式碼庫或等待我們建構整合。
自訂 Webhook 工具
定義由任何 HTTP 端點支援的工具。你的工具在配方、工作流程和對話式代理中可用 — 就像內建工具一樣。
運作方式
- 定義工具:名稱、描述、JSON 輸入 schema 和端點 URL
- 設定請求:方法(GET/POST)、自訂標頭(加密)、可選的 Handlebars 請求範本
- 映射回應:JSONPath 表達式以提取相關輸出
- 設定範圍:指派到特定部門或設為帳戶級
範例:庫存檢查工具
{
"name": "check_inventory",
"description": "檢查產品 SKU 的當前庫存水平",
"inputSchema": {
"type": "object",
"properties": {
"sku": { "type": "string", "description": "產品 SKU" }
},
"required": ["sku"]
},
"endpoint": {
"url": "https://api.internal.example.com/inventory/{{sku}}",
"method": "GET",
"headers": { "Authorization": "Bearer {{env.INVENTORY_API_KEY}}" },
"timeoutMs": 10000
},
"responseMapping": "$.data.quantity"
}
現在任何配方或工作流程步驟都可以使用 check_inventory 作為工具。LLM 會在內建工具旁看到它,並在相關時呼叫。
安全性
- 生產環境必須使用 HTTPS
- 自訂標頭靜態加密(與 BYOK 金鑰相同的 AES-256-GCM)
- 所有外部請求都通過平台的逾時、重試和速率限制基礎架構
- 回應大小上限 100KB
- 工具執行計入帳戶的速率限制
自訂 Webhook 工具在 Team 方案及以上可用。
自訂工作流程步驟類型
對於超越 Webhook 呼叫的邏輯,可以將自訂步驟類型定義為在 V8 隔離環境中執行的 TypeScript 模組 — 完全沙箱化,無法存取檔案系統、網路或主機程序。
沙箱
自訂步驟在具有嚴格約束的 isolated-vm V8 隔離環境中執行:
- 記憶體限制:每次執行 128MB
- CPU 時間限制:每個步驟可設定
- 無
require()或import:依賴項是明確注入的 - 無檔案系統或網路:只有平台提供的 API 可用
注入的 API
自訂步驟可以使用平台能力的子集,在定義時宣告:
| API | 提供的功能 |
|---|---|
http | 代理的 HTTP fetch(遵守速率限制) |
llm | LLM 呼叫(使用帳戶的 BYOK 設定,計入帳單) |
firestore_read | 唯讀 Firestore 存取(範圍限制在帳戶內) |
範例:情感聚合步驟
// 自訂步驟:aggregate-sentiment
// 允許的 API:llm
export async function execute(input: { reviews: string[] }, context: any) {
const results = await Promise.all(
input.reviews.map(review =>
context.llm.invoke(`為這則評論的情感從 1-5 評分:"${review}"。只回覆數字。`, { model: 'haiku' })
)
);
const scores = results.map(r => parseInt(r.trim())).filter(n => !isNaN(n));
const average = scores.reduce((a, b) => a + b, 0) / scores.length;
return {
averageSentiment: Math.round(average * 10) / 10,
totalReviews: scores.length,
distribution: {
positive: scores.filter(s => s >= 4).length,
neutral: scores.filter(s => s === 3).length,
negative: scores.filter(s => s <= 2).length,
},
};
}
在內建的 Monaco 編輯器中編輯程式碼,定義輸入/輸出 schema,並在部署前使用範例資料測試。
自訂步驟類型在 Enterprise 方案可用。
生命週期掛鉤
註冊在工作流程和配方執行事件上觸發的 Webhook 端點。用它們與 Slack、PagerDuty、自訂儀表板或任何 HTTP 服務整合。
支援的事件
| 事件 | 觸發時機 |
|---|---|
workflow:start | 工作流程開始執行 |
workflow:complete | 工作流程成功完成 |
workflow:error | 工作流程失敗 |
step:start | 個別步驟開始 |
step:complete | 個別步驟完成 |
step:error | 個別步驟失敗 |
recipe:start | 配方開始執行 |
recipe:complete | 配方完成 |
approval:requested | 審批閘門觸發 |
approval:granted | 審批通過 |
approval:rejected | 審批拒絕 |
非阻塞 vs. 阻塞
非阻塞掛鉤(預設)是即發即忘的。平台發送 Webhook 後繼續執行,不等待回應。用於通知和日誌。
阻塞掛鉤暫停執行直到 Webhook 回應(10 秒逾時)。回應可以修改執行上下文。用於預檢查或動態設定注入。阻塞掛鉤有熔斷器 — 如果反覆失敗,會自動停用。
範例:工作流程完成時 Slack 通知
{
"name": "完成時 Slack 通知",
"events": ["workflow:complete", "workflow:error"],
"webhookUrl": "https://hooks.slack.com/services/T.../B.../xxx",
"blocking": false
}
生命週期掛鉤在 Team 方案及以上可用。
它們如何協同運作
三個擴展功能自然組合:
- 自訂工具檢查你的內部庫存 API
- 自訂步驟在 V8 沙箱中執行專業業務邏輯
- 生命週期掛鉤在工作流程完成時通知你的 Slack 頻道
三者都遵守平台現有的安全模型 — RBAC、稽核日誌、速率限制和部門範圍統一適用。
在你的帳戶設定中探索擴展功能。