Integrations
Loading
Loading
Integrations
Archetype: AI (Actor) — returns AIAgentActor + AIActorDecision for governed engine.transition(...) submission.
@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.
Install
1npm install @loop-engine/adapter-openai openaiCreate the actor
1import { createOpenAIActorAdapter } from "@loop-engine/adapter-openai";2 3const 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});16 17await loopSystem.engine.transition({18 aggregateId: "procurement-1",19 transitionId: decision.transitionId,20 actor,21 evidence: decision22});signalId + confidencepromptHash for auditability| 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 | number | 0.7 | Minimum confidence required (0–1) |
ActorDecisionError: INVALID_SIGNAL — Returned signalId is not in availableSignals.ActorDecisionError: INVALID_CONFIDENCE — Confidence outside 0–1; constrain via systemPrompt.ActorDecisionError: API_ERROR — Check OPENAI_API_KEY and model availability.