协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
lindy-sdk-patterns【开发与工程】Lindy AI SDK best practices and common patterns. Use when learning SDK patterns, optimizing API usage, or implementing advanced agent features. Trigger with phrases like "lindy SDK patterns", "lindy best practices", "lindy API patterns", "lindy code patterns".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Essential SDK patterns and best practices for Lindy AI agent development.
lindy-install-auth setup// lib/lindy.ts
import { Lindy } from '@lindy-ai/sdk';
let client: Lindy | null = null;
export function getLindyClient(): Lindy {
if (!client) {
client = new Lindy({
apiKey: process.env.LINDY_API_KEY!,
timeout: 30000,
});
}
return client;
}
// agents/factory.ts
import { getLindyClient } from '../lib/lindy';
interface AgentConfig {
name: string;
instructions: string;
tools?: string[];
}
export async function createAgent(config: AgentConfig) {
const lindy = getLindyClient();
const agent = await lindy.agents.create({
name: config.name,
instructions: config.instructions,
tools: config.tools || [],
});
return agent;
}
async function runWithRetry<T>(
fn: () => Promise<T>,
maxRetries = 3
): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error: any) {
if (error.status === 429 && i < maxRetries - 1) {
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
continue;
}
throw error;
}
}
throw new Error('Max retries exceeded');
}
async function streamAgentResponse(agentId: string, input: string) {
const lindy = getLindyClient();
const stream = await lindy.agents.runStream(agentId, { input });
for await (const chunk of stream) {
process.stdout.write(chunk.delta);
}
console.log(); // newline
}
| Pattern | Use Case | Benefit |
|---|---|---|
| Singleton | Connection reuse | Reduced overhead |
| Factory | Agent creation | Consistency |
| Retry | Rate limits | Reliability |
| Streaming | Long responses | Better UX |
// services/agent-service.ts
import { getLindyClient } from '../lib/lindy';
export class AgentService {
private lindy = getLindyClient();
async createAndRun(name: string, instructions: string, input: string) {
const agent = await this.lindy.agents.create({ name, instructions });
const result = await this.lindy.agents.run(agent.id, { input });
return { agent, result };
}
async listAgents() {
return this.lindy.agents.list();
}
async deleteAgent(id: string) {
return this.lindy.agents.delete(id);
}
}
Proceed to lindy-core-workflow-a for agent creation workflows.