Integrations
OpenAI
Official · StableBuilt-innpm: @loop-engine/adapter-openaiProvider: OpenAI
Archetype: AI (Actor) — returns AIAgentActor + AIActorDecision for governed engine.transition(...) submission.
What it does
@loop-engine/adapter-openai uses OpenAI chat completions with response_format: { type: "json_object" } to produce structured actor decisions. It returns an AIAgentActor and AIActorDecision for runtime submission where policy guards are enforced.
Quick setup
-
Install
1npm install @loop-engine/adapter-openai openai -
Create the actor
1import { createOpenAIActorAdapter } from "@loop-engine/adapter-openai";23const adapter = createOpenAIActorAdapter({4 apiKey: process.env.OPENAI_API_KEY!,5 model: "gpt-4o"6}); -
Submit to a loop transition
1"cmt">// @no-typecheck2const { actor, decision } = await adapter.createSubmission({3 loopId: "procurement",4 loopName: "SCM Procurement",5 currentState: "pending_analysis",6 availableSignals: [7 {8 signalId: "submit_recommendation",9 name: "Submit Recommendation",10 allowedActors: ["ai-agent"]11 }12 ],13 instruction: "Analyze demand data and recommend a purchase order.",14 evidence: { demandForecast: 0.89, currentStock: 42, reorderPoint: 50 }15});1617await loopSystem.engine.transition({18 aggregateId: "procurement-1",19 transitionId: decision.transitionId,20 actor,21 evidence: decision22});
How it works
- Builds a structured prompt from loop context
- Calls OpenAI with JSON object response format
- Parses response and validates
signalId+confidence - Computes
promptHashfor auditability - Returns actor + decision for runtime enforcement
Configuration reference
| Option | Type | Default | Description |
|---|---|---|---|
| modelId | string | gpt-4o | OpenAI model ID (, , also supported) |
| | | | Max tokens in response |
| | | — | Optional system prompt prepended to loop context |
| | | | Minimum confidence required (0–1) |