Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Reference architectures for Lindy AI agent integrations. Use when designing systems, planning multi-agent architectures, or implementing production integration patterns. Trigger with phrases like "lindy architecture", "lindy design", "lindy system design", "lindy patterns", "lindy multi-agent".
.claude/skills/jeremylongshore-lindy-reference-architecture/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -42% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 27% | 0% |
Production-ready architecture patterns for integrating Lindy AI agents into applications. Covers webhook integration, multi-agent societies, event-driven pipelines, and high-availability patterns.
Single agent triggered by your application, results sent via callback.
┌─────────────┐ POST (webhook) ┌──────────────┐
│ Your App │ ─────────────────────────→ │ Lindy Agent │
│ │ │ │
│ /callback │ ←───────────────────────── │ HTTP Request │
│ │ POST (callback) │ Action │
└─────────────┘ └──────────────┘Implementation:
callbackUrl fieldBest for: Simple automations (email triage, lead scoring, content generation)
Multiple event sources feed agents through a central webhook router.
┌──────────┐
│ Stripe │──webhook──┐
└──────────┘ │
▼
┌──────────┐ ┌───────────┐ ┌──────────────┐
│ Shopify │──→ │ Router │──→ │ Lindy Agents │
└──────────┘ │ Service │ │ │
└───────────┘ │ • Order Bot │
┌──────────┐ ▲ │ • Support Bot│
│ Your App │──webhook──┘ │ • Analytics │
└──────────┘ └──────────────┘Implementation:
typescript// Event router — maps events to specific Lindy agents const agentWebhooks: Record<string, string> = { 'order.created': process.env.LINDY_ORDER_AGENT_WEBHOOK!, 'customer.support_request': process.env.LINDY_SUPPORT_AGENT_WEBHOOK!, 'analytics.daily_report': process.env.LINDY_ANALYTICS_AGENT_WEBHOOK!, }; app.post('/events', async (req, res) => { const { event, data } = req.body; const webhookUrl = agentWebhooks[event]; if (!webhookUrl) { return res.status(400).json({ error: `Unknown event: ${event}` }); } await fetch(webhookUrl, { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.LINDY_WEBHOOK_SECRET}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ event, data, callbackUrl: `${BASE_URL}/callback` }), }); res.json({ routed: true, agent: event }); });
Best for: Multiple event sources, different agents per event type
Specialized agents collaborate through Lindy's built-in delegation system.
┌─────────────────┐
│ Orchestrator │
│ Lindy │
│ (receives │
│ initial task) │
└───┬────────┬────┘
│ │
▼ ▼
┌────────┐ ┌────────┐
│Research│ │Analysis│
│ Lindy │ │ Lindy │
└───┬────┘ └───┬────┘
│ │
▼ ▼
┌─────────────────┐
│ Writer Lindy │
│ (synthesizes │
│ final output) │
└─────────────────┘Setup in Lindy:
Key decisions:
| Decision | Option A | Option B | |----------|---------|---------| | Context passing | Full context (accurate, expensive) | Selective context (cheap, focused) | | Error handling | Agent retries | Orchestrator retry logic | | Parallelism | Sequential delegation | Parallel delegation with merge |
Best for: Complex tasks requiring multiple specialties (research + analysis + writing)
Agents run on schedules, each feeding data to the next.
Schedule: Daily 6 AM
│
▼
┌──────────────┐
│ Data Fetch │ Pulls from APIs/databases
│ Lindy │
└──────┬───────┘
│ Agent Send Message
▼
┌──────────────┐
│ Analysis │ Processes & summarizes
│ Lindy │
└──────┬───────┘
│ Agent Send Message
▼
┌──────────────┐
│ Report │ Formats & delivers
│ Lindy │
│ → Slack │
│ → Email │
└──────────────┘Best for: Daily reports, weekly digests, scheduled data processing
Agent deployed as customer-facing chatbot with RAG-powered responses.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Website │ │ Lindy Agent │ │ Knowledge │
│ (Embed │◀──▶ │ │◀──▶ │ Base │
│ Widget) │ │ Chat Trigger │ │ PDFs, Docs, │
└──────────────┘ │ + KB Search │ │ Websites │
│ + Condition │ └──────────────┘
│ + Escalate │
└──────────────┘
│
▼ (if escalation needed)
┌──────────────┐
│ Slack DM to │
│ human agent │
└──────────────┘Deploy the embed widget:
html<!-- Paste near end of <body> tag --> <script src="https://embed.lindy.ai/widget.js" data-lindy-id="YOUR_AGENT_ID"></script>
KB configuration:
Best for: Customer support, FAQ bots, internal knowledge assistants
| Pattern | Throughput | Latency | Complexity | Cost | |---------|-----------|---------|-----------|------| | Simple webhook | Low-Med | 2-15s | Low | Low | | Event-driven pipeline | High | 5-30s | Medium | Medium | | Multi-agent society | Low-Med | 30-120s | High | High | | Scheduled pipeline | Batch | N/A | Medium | Predictable | | Chat + KB | Interactive | 2-10s | Low-Med | Per-message |
| Pattern | Failure Mode | Recovery | |---------|-------------|----------| | Simple webhook | Agent fails | Retry webhook with backoff | | Event-driven | Router crash | Queue events, replay on recovery | | Multi-agent | Delegation fails | Orchestrator retries or skips | | Scheduled | Missed schedule | Next run catches up | | Chat + KB | KB empty | Fallback to generic response + escalate |
Proceed to Flagship tier skills for enterprise features: multi-env, observability, incident response, data handling, RBAC, and migration.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→pass | 22,934 | 26,093 | +14% | 1 | 1 | 0% | 3,287 | 5,989 | +82% | 0 | 0 | — |
case-11 | fail→pass | 25,055 | 14,053 | -44% | 1 | 1 | 0% | 3,118 | 4,265 | +37% | 0 | 0 | — |
case-05 | pass→pass | 20,420 | 20,319 | -0% | 1 | 1 | 0% | 3,122 | 5,023 | +61% | 0 | 0 | — |
case-01 | fail→fail | 24,579 | 21,886 | -11% | 1 | 1 | 0% | 3,895 | 5,255 | +35% | 0 | 0 | — |
case-02 | fail→pass | 47,466 | 30,828 | -35% | 1 | 1 | 0% | 5,784 | 6,617 | +14% | 0 | 0 | — |
case-03 | fail→pass | 40,399 | 18,974 | -53% | 1 | 1 | 0% | 7,214 | 4,169 | -42% | 0 | 0 | — |
case-06 | pass→pass | 23,986 | 31,975 | +33% | 1 | 1 | 0% | 3,454 | 5,787 | +68% | 0 | 0 | — |
case-07 | pass→fail | 21,247 | 15,313 | -28% | 1 | 1 | 0% | 2,218 | 3,705 | +67% | 0 | 0 | — |
case-08 | fail→pass | 16,536 | 10,526 | -36% | 1 | 1 | 0% | 2,275 | 2,612 | +15% | 0 | 0 | — |
case-09 | fail→pass | 22,854 | 18,779 | -18% | 1 | 1 | 0% | 2,917 | 3,717 | +27% | 0 | 0 | — |
case-10 | pass→pass | 13,517 | 9,119 | -33% | 1 | 1 | 0% | 1,817 | 2,486 | +37% | 0 | 0 | — |
case-12 | pass→pass | 18,263 | 11,451 | -37% | 1 | 1 | 0% | 2,012 | 3,667 | +82% | 0 | 0 | — |
case-13 | fail→pass | 17,969 | 16,600 | -8% | 1 | 1 | 0% | 3,083 | 3,910 | +27% | 0 | 0 | — |
case-14 | pass→pass | 20,869 | 10,940 | -48% | 1 | 1 | 0% | 2,687 | 3,563 | +33% | 0 | 0 | — |
case-15 | pass→pass | 13,014 | 2,116 | -84% | 1 | 1 | 0% | 1,269 | 2,271 | +79% | 0 | 0 | — |
case-16 | fail→pass | 14,064 | 4,409 | -69% | 1 | 1 | 0% | 2,234 | 2,619 | +17% | 0 | 0 | — |
case-17 | pass→pass | 12,328 | 17,113 | +39% | 1 | 1 | 0% | 1,725 | 4,064 | +136% | 0 | 0 | — |
case-18 | pass→pass | 21,651 | 14,244 | -34% | 1 | 1 | 0% | 2,911 | 4,362 | +50% | 0 | 0 | — |
case-19 | pass→pass | 22,475 | 18,524 | -18% | 1 | 1 | 0% | 2,619 | 4,130 | +58% | 0 | 0 | — |
case-20 | pass→pass | 18,848 | 6,932 | -63% | 1 | 1 | 0% | 2,035 | 2,967 | +46% | 0 | 0 | — |
case-21 | fail→pass | 18,498 | 20,545 | +11% | 1 | 1 | 0% | 2,904 | 3,833 | +32% | 0 | 0 | — |
case-22 | fail→pass | 28,032 | 9,868 | -65% | 1 | 1 | 0% | 2,946 | 3,171 | +8% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.