Integrations
OpenAI
✓ Certifiednpm: @loop-engine/adapter-openaiProvider: OpenAI
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(process.env.OPENAI_API_KEY!, {4 modelId: "gpt-4o",5 confidenceThreshold: 0.756}); -
Submit to a loop transition
1const { actor, decision } = await adapter.createSubmission({2 loopId: "procurement",3 loopName: "SCM Procurement",4 currentState: "pending_analysis",5 availableSignals: [6 {7 signalId: "submit_recommendation",8 name: "Submit Recommendation",9 allowedActors: ["ai-agent"]10 }11 ],12 instruction: "Analyze demand data and recommend a purchase order.",13 evidence: { demandForecast: 0.89, currentStock: 42, reorderPoint: 50 }14});1516await loopSystem.transition({17 aggregateId: "procurement-1",18 signal: decision.signalId,19 actor,20 evidence: decision21});
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 (gpt-4o-mini, o1, o3-mini also supported) |
| maxTokens | number | 1024 | Max tokens in response |
| systemPrompt | string | — | Optional system prompt prepended to loop context |
| confidenceThreshold | | | Minimum confidence required (0–1) |