Examples
AI Replenishment (Claude)
What this example shows
An AI actor using @loop-engine/adapter-anthropic analyzes inventory evidence and submits a replenishment recommendation. A confidence threshold gate keeps low-confidence decisions from reaching execution. A human approval transition remains required for final ordering.
Loop diagram
1IDLE ----[signal_detected]----> ANALYZING2ANALYZING --[submit_recommendation]--> PENDING_APPROVAL3ANALYZING --[insufficient_confidence]--> IDLE4PENDING_APPROVAL --[approve]--> ORDERED (terminal)5PENDING_APPROVAL --[reject]--> IDLEActors
| Actor | Type | Transitions | Guards |
|---|---|---|---|
| signal detector | automation | signal_detected | none |
| claude recommender | ai-agent | submit_recommendation | confidence-threshold |
| buyer approver | human | approve, reject | human-only |
Key annotated snippet
1"cmt">// @no-typecheck2import Anthropic from "@anthropic-ai/sdk";3import { createAnthropicActorAdapter } from "@loop-engine/adapter-anthropic";4 5const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });6const claude = createAnthropicActorAdapter(anthropic, {7 modelId: "claude-opus-4-6",8 confidenceThreshold: 0.759});10 11const { actor, decision } = await claude.createSubmission({12 loopId: "scm.replenishment",13 loopName: "SCM Replenishment",14 currentState: "ANALYZING",15 availableSignals: [{ signalId: "submit_recommendation", name: "Submit Recommendation" }],16 instruction: "Recommend reorder quantity based on stock and forecast.",17 evidence: {18 sku: "LMB-BRS-001",19 currentStock: 142,20 reorderPoint: 280,21 forecastedDemand: 52722 }23});24 25await engine.transition({26 aggregateId: "repl-lmb-001" as never,27 transitionId: "submit_recommendation" as never,28 actor,29 evidence: decision30});