From retellai-pack
Builds Retell AI voice agents using TypeScript SDK with custom LLM prompts, function calling to APIs, voice configs, and call handling settings.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin retellai-packThis skill is limited to using the following tools:
Build and configure voice agents with custom prompts, function calling, and call flow logic.
Handles Retell AI webhook events for voice agent call lifecycle, transcripts, function calls. Setup examples with Node.js, Express, TypeScript.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Build and configure voice agents with custom prompts, function calling, and call flow logic.
retellai-hello-worldconst llm = await retell.llm.create({
model: 'gpt-4o',
general_prompt: `You are a booking assistant for Dr. Smith's office.
- Help callers book, reschedule, or cancel appointments
- Collect: name, phone, preferred date/time
- Confirm all details before booking`,
functions: [
{
name: 'book_appointment',
description: 'Book a new appointment',
parameters: {
type: 'object',
properties: {
patient_name: { type: 'string' },
phone: { type: 'string' },
date: { type: 'string', description: 'YYYY-MM-DD format' },
time: { type: 'string', description: 'HH:MM format' },
},
required: ['patient_name', 'phone', 'date', 'time'],
},
url: 'https://your-api.com/appointments',
speak_during_execution: true,
speak_after_execution: true,
},
],
});
const agent = await retell.agent.create({
response_engine: { type: 'retell-llm', llm_id: llm.llm_id },
voice_id: '11labs-Rachel',
agent_name: 'Dr. Smith Booking Agent',
language: 'en-US',
opt_out_sensitive_data_storage: false,
end_call_after_silence_ms: 10000, // End call after 10s silence
max_call_duration_ms: 300000, // 5-minute max
enable_backchannel: true, // "mhm", "yeah" responses
boosted_keywords: ['appointment', 'schedule', 'Dr. Smith'],
});
await retell.agent.update(agent.agent_id, {
voice_id: '11labs-Dorothy', // Change voice
end_call_after_silence_ms: 15000,
});
| Error | Cause | Solution |
|---|---|---|
| Function not triggering | Prompt doesn't guide to function | Include function use in prompt |
| Voice quality issues | Wrong voice selection | Test different voices |
| Call ending too early | Short silence timeout | Increase end_call_after_silence_ms |
Phone call management: retellai-core-workflow-b