Integrations
Google Gemini
✓ Certifiednpm: @loop-engine/adapter-geminiProvider: Google
What it does
@loop-engine/adapter-gemini wraps Gemini API calls as Loop Engine actor submissions. It returns structured decisions for runtime guard enforcement, preserving attribution and evidence on every transition.
Quick setup
-
Install
1npm install @loop-engine/adapter-gemini @google/generative-ai -
Create the actor
1import { createGeminiActorAdapter } from "@loop-engine/adapter-gemini";23const adapter = createGeminiActorAdapter(process.env.GOOGLE_AI_API_KEY!, {4 modelId: "gemini-1.5-pro"5}); -
Submit to a loop transition
1const { actor, decision } = await adapter.createSubmission({2 loopId: "procurement",3 loopName: "SCM Procurement",4 currentState: "pending_analysis",5 availableSignals: [{ signalId: "submit_recommendation", name: "Submit Recommendation", allowedActors: ["ai-agent"] }],6 instruction: "Analyze demand data and recommend a purchase order.",7 evidence: { demandForecast: 0.93, currentStock: 36 }8});910await loopSystem.transition({11 aggregateId: "procurement-1",12 signal: decision.signalId,13 actor,14 evidence: decision15});
How it works
- Formats context using Loop Engine actor prompt shape
- Calls Gemini generate endpoint
- Parses decision JSON and validates fields
- Returns actor + decision for runtime guard evaluation
Configuration reference
| Option | Type | Default | Description |
|---|---|---|---|
| modelId | string | gemini-1.5-pro | Gemini model (gemini-1.5-flash, gemini-2.0-flash) |
| maxOutputTokens | number | 1024 | Max output tokens |
| systemPrompt | string | — | Optional system prompt prepended to loop context |
| confidenceThreshold | number | 0.7 | Minimum confidence required (0–1) |
Troubleshooting
ActorDecisionError: PARSE_FAILED— Gemini may wrap JSON in markdown fences; add "raw JSON only" to .