Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Core Lindy workflow for creating and configuring AI agents. Use when building new agents, defining agent behaviors, or setting up agent capabilities. Trigger with phrases like "create lindy agent", "build lindy agent", "lindy agent workflow", "configure lindy agent".
.claude/skills/majiayu000-lindy-core-workflow-a/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 20% | 0% |
Complete workflow for creating, configuring, and deploying Lindy AI agents.
lindy-install-auth setuptypescriptinterface AgentSpec { name: string; description: string; instructions: string; tools: string[]; model?: string; temperature?: number; } const agentSpec: AgentSpec = { name: 'Customer Support Agent', description: 'Handles customer inquiries and support tickets', instructions: ` You are a helpful customer support agent. - Be polite and professional - Ask clarifying questions when needed - Escalate complex issues to human support - Always confirm resolution with the customer `, tools: ['email', 'calendar', 'knowledge-base'], model: 'gpt-4', temperature: 0.7, };
typescriptimport { Lindy } from '@lindy-ai/sdk'; const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY }); async function createAgent(spec: AgentSpec) { const agent = await lindy.agents.create({ name: spec.name, description: spec.description, instructions: spec.instructions, tools: spec.tools, config: { model: spec.model || 'gpt-4', temperature: spec.temperature || 0.7, }, }); console.log(`Created agent: ${agent.id}`); return agent; }
typescriptasync function configureTools(agentId: string, tools: string[]) { for (const tool of tools) { await lindy.agents.addTool(agentId, { name: tool, enabled: true, }); } console.log(`Configured ${tools.length} tools`); }
typescriptasync function testAgent(agentId: string) { const testCases = [ 'Hello, I need help with my order', 'Can you check my subscription status?', 'I want to cancel my account', ]; for (const input of testCases) { const result = await lindy.agents.run(agentId, { input }); console.log(`Input: ${input}`); console.log(`Output: ${result.output}\n`); } }
| Error | Cause | Solution | |-------|-------|----------| | Tool not found | Invalid tool name | Check available tools list | | Instructions too long | Exceeds limit | Summarize or split instructions | | Model unavailable | Unsupported model | Use default gpt-4 |
typescriptasync function main() { // Create agent const agent = await createAgent(agentSpec); // Configure tools await configureTools(agent.id, agentSpec.tools); // Test agent await testAgent(agent.id); console.log(`Agent ${agent.id} is ready!`); } main().catch(console.error);
Proceed to lindy-core-workflow-b for task automation workflows.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | fail→pass | 11,625 | 3,463 | -70% | 1 | 1 | 0% | 2,069 | 1,500 | -28% | 0 | 0 | — |
case-01 | fail→pass | 24,445 | 14,608 | -40% | 1 | 1 | 0% | 4,017 | 2,912 | -28% | 0 | 0 | — |
case-02 | fail→pass | 13,224 | 8,826 | -33% | 1 | 1 | 0% | 2,615 | 2,791 | +7% | 0 | 0 | — |
case-03 | fail→pass | 15,532 | 13,936 | -10% | 1 | 1 | 0% | 3,257 | 2,816 | -14% | 0 | 0 | — |
case-04 | fail→fail | 18,666 | 12,227 | -34% | 1 | 1 | 0% | 3,532 | 3,429 | -3% | 0 | 0 | — |
case-05 | fail→pass | 11,066 | 8,822 | -20% | 1 | 1 | 0% | 2,028 | 2,431 | +20% | 0 | 0 | — |
case-06 | fail→fail | 20,849 | 19,440 | -7% | 1 | 1 | 0% | 2,800 | 3,961 | +41% | 0 | 0 | — |
case-13 | pass→pass | 7,407 | 2,739 | -63% | 1 | 1 | 0% | 1,375 | 1,410 | +3% | 0 | 0 | — |
case-22 | pass→pass | 6,495 | 2,361 | -64% | 1 | 1 | 0% | 1,177 | 1,295 | +10% | 0 | 0 | — |
case-08 | pass→pass | 6,389 | 2,657 | -58% | 1 | 1 | 0% | 1,034 | 1,349 | +30% | 0 | 0 | — |
case-09 | pass→pass | 14,197 | 7,006 | -51% | 1 | 1 | 0% | 1,760 | 1,260 | -28% | 0 | 0 | — |
case-10 | fail→pass | 13,933 | 7,918 | -43% | 1 | 1 | 0% | 1,700 | 1,402 | -18% | 0 | 0 | — |
case-11 | fail→pass | 10,655 | 7,495 | -30% | 1 | 1 | 0% | 1,791 | 1,445 | -19% | 0 | 0 | — |
case-12 | pass→pass | 14,544 | 7,160 | -51% | 1 | 1 | 0% | 1,640 | 1,269 | -23% | 0 | 0 | — |
case-14 | pass→pass | 14,409 | 2,512 | -83% | 1 | 1 | 0% | 1,585 | 1,312 | -17% | 0 | 0 | — |
case-15 | pass→pass | 5,991 | 2,644 | -56% | 1 | 1 | 0% | 1,140 | 1,359 | +19% | 0 | 0 | — |
case-16 | pass→pass | 13,493 | 8,213 | -39% | 1 | 1 | 0% | 1,389 | 1,415 | +2% | 0 | 0 | — |
case-17 | pass→pass | 16,214 | 13,799 | -15% | 1 | 1 | 0% | 1,830 | 2,449 | +34% | 0 | 0 | — |
case-18 | fail→pass | 14,138 | 8,452 | -40% | 1 | 1 | 0% | 1,540 | 1,442 | -6% | 0 | 0 | — |
case-19 | fail→pass | 15,908 | 1,619 | -90% | 1 | 1 | 0% | 1,330 | 1,146 | -14% | 0 | 0 | — |
case-20 | fail→pass | 10,264 | 6,830 | -33% | 1 | 1 | 0% | 768 | 1,136 | +48% | 0 | 0 | — |
case-21 | fail→pass | 14,568 | 7,620 | -48% | 1 | 1 | 0% | 1,665 | 1,371 | -18% | 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 +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
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.