Claude-code-plugins-plus-skills lindy-performance-tuning
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/lindy-pack/skills/lindy-performance-tuning" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-lindy-performance-tuning && rm -rf "$T"
plugins/saas-packs/lindy-pack/skills/lindy-performance-tuning/SKILL.mdLindy Performance Tuning
Overview
Lindy agents execute as multi-step workflows where each step (LLM call, action execution, API call, condition evaluation) adds latency and credit cost. Optimization targets: fewer steps, smaller models, faster actions, tighter prompts.
Prerequisites
- Lindy workspace with active agents
- Access to agent Tasks tab (view step-by-step execution history)
- Understanding of agent workflow structure
Instructions
Step 1: Profile Agent Execution
In the Tasks tab, open a completed task and review:
- Total task duration: Baseline for improvement
- Per-step timing: Identify the slowest steps
- Credit consumption: Which steps cost the most
- Step count: Total actions executed per task
Common bottlenecks:
| Bottleneck | Symptom | Fix |
|---|---|---|
| Large model on simple task | High credit cost, slow | Switch to Gemini Flash |
| Too many LLM steps | Long total duration | Consolidate into fewer steps |
| Agent Step with many skills | Unpredictable path | Reduce to 2-4 focused skills |
| Knowledge Base over-querying | Multiple KB searches | Increase Max Results per query |
| Sequential when parallel possible | Unnecessary waiting | Use loop with Max Concurrent > 1 |
Step 2: Right-Size Model Selection
The single biggest performance lever. Match model to task complexity:
| Task | Recommended Model | Speed | Credits |
|---|---|---|---|
| Route email to category | Gemini Flash | Fast | ~1 |
| Extract fields from text | GPT-4o-mini | Fast | ~2 |
| Draft short response | Claude Sonnet | Medium | ~3 |
| Complex multi-step analysis | GPT-4 / Claude Opus | Slow | ~10 |
| Simple phone call | Gemini Flash | Fast | ~20/min |
| Complex phone conversation | Claude Sonnet | Medium | ~20/min |
Rule of thumb: Start with the smallest model. Only upgrade if output quality is insufficient. Most classification and routing tasks work fine with Gemini Flash.
Step 3: Consolidate LLM Steps
Before (3 LLM calls, ~9 credits):
Step 1: Classify email (LLM) Step 2: Extract key entities (LLM) Step 3: Generate response (LLM)
After (1 LLM call, ~3 credits):
Step 1: Classify, extract entities, and generate response (single LLM prompt)
Consolidated prompt:
Analyze this email and return JSON with: 1. "classification": one of [billing, technical, general] 2. "entities": {customer_name, product, issue_type} 3. "draft_response": professional reply under 150 words Email: {{email_received.body}}
Step 4: Use Deterministic Actions Where Possible
Replace AI-powered fields with Set Manually mode when values are predictable:
| Field | Instead of AI Prompt | Use Set Manually |
|---|---|---|
| Slack channel | "Post to the support channel" | |
| Email subject | "Create an appropriate subject" | |
| Sheet column | "Determine the right column" | Column A |
Each Set Manually field saves one LLM inference (~1 credit).
Step 5: Optimize Knowledge Base Queries
- Max Results: Set to the minimum needed (default 4, max 10)
- Search Fuzziness: Keep at 100 (semantic) unless precision matching needed
- Query mode: Use AI Prompt with specific instructions:
Not: "Search for relevant information" (too vague, wastes results)Search for the customer's specific product issue. Focus on: {{extracted_entities.product}} {{extracted_entities.issue_type}}
Step 6: Optimize Trigger Filters
Prevent wasted runs with precise trigger filters:
Before: Email Received (all emails) → 200 runs/day → 600 credits After: Email Received (label: "support" AND NOT from: "noreply@") → 30 runs/day → 90 credits (85% savings)
Step 7: Use Agent Steps Judiciously
Agent Steps (autonomous mode) are powerful but expensive — the agent may take unpredictable paths and use more actions than a deterministic workflow.
Use Agent Steps when: Next steps are genuinely uncertain (complex research, multi-source investigation, adaptive problem-solving)
Use deterministic actions when: Steps are predictable (classify -> route -> respond)
When using Agent Steps:
- Limit available skills to 2-4
- Set clear, measurable exit conditions
- Include a fallback exit condition to prevent infinite loops
- Monitor credit consumption of first 10 runs to establish baseline
Step 8: Loop Optimization
For batch processing, configure loops for efficiency:
- Max Concurrent: Increase for independent items (parallel execution)
- Max Cycles: Always set a cap to prevent runaway processing
- Only pass essential data as loop output (not full context)
Performance Baseline Reference
| Agent Type | Expected Duration | Expected Credits |
|---|---|---|
| Simple router (1 LLM + 1 action) | 2-5 seconds | 1-2 |
| Email triage (classify + respond) | 5-15 seconds | 3-5 |
| Research agent (search + analyze) | 15-60 seconds | 5-15 |
| Multi-agent pipeline | 30-120 seconds | 10-30 |
| Phone call | Real-time | ~20/min |
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Agent timeout | Too many sequential steps | Consolidate steps, reduce skill count |
| High credit burn | Large model + many steps | Downgrade model, merge LLM calls |
| Inconsistent output | Agent Step choosing different paths | Switch to deterministic workflow |
| KB search slow | Large knowledge base | Reduce fuzziness, increase specificity |
| Loop runs too long | High max cycles, low concurrency | Increase Max Concurrent, lower Max Cycles |
Resources
Next Steps
Proceed to
lindy-cost-tuning for budget optimization.