Skip to Content
Workflow IntentSDK Examples

Workflow Intent SDK Examples

These examples all do the same thing: declare a workflow, run one governed provider call inside the workflow context, and complete the workflow.

Python

from keel_sdk import Keel from keel_sdk.providers.openai import OpenAI keel = Keel() openai = OpenAI() workflow = keel.workflows.declare( workflow_id="invoice-batch-2026-05-13", intent={ "expected_calls": 10, "max_calls": 12, "expected_model": "gpt-5-mini", }, ) with keel.workflows.workflow(workflow.workflow_id): response = openai.chat.completions.create( model="gpt-5-mini", messages=[ { "role": "user", "content": "Summarize invoice INV-1001.", } ], max_tokens=80, ) print(response["choices"][0]["message"]["content"]) keel.workflows.complete(workflow.workflow_id)

JavaScript

import { Keel, runInWorkflow } from "keel-sdk"; import { OpenAI } from "keel-sdk/providers/openai"; const keel = new Keel(); const openai = new OpenAI(); const workflow = await keel.workflows.declare({ workflow_id: "invoice-batch-2026-05-13", intent: { expected_calls: 10, max_calls: 12, expected_model: "gpt-5-mini" } }); await runInWorkflow(workflow.workflow_id, async () => { const response = await openai.chat.completions.create({ model: "gpt-5-mini", messages: [ { role: "user", content: "Summarize invoice INV-1001." } ], max_tokens: 80 }); console.log(response.choices[0].message.content); }); await keel.workflows.complete(workflow.workflow_id);

Notes

  • SDK workflow context injects X-Keel-Workflow-Id on governed requests inside the block.
  • The workflow id still needs to be declared before it is used.
  • Go reference-client and direct API users can set the same header manually. See Header Convention.
Last updated on Edit this page on GitHub