
Llm Application Dev
- 392 installs
- 1.1k repo stars
- Updated May 5, 2026
- skillcreatorai/ai-agent-skills
llm-application-dev is a version 4.1.0 MIT agent skill that scaffolds LLM-powered applications with prompt engineering, RAG, tool calling, streaming UX, and production integration patterns.
About
llm-application-dev is an agent skill (version 4.1.0, MIT license) from skillcreatorai/ai-agent-skills, sourced from wshobson/agents, for building applications with large language models. It covers structured system and user prompts in TypeScript, few-shot examples, RAG retrieval patterns, tool-calling flows, streaming user experience, and deployment considerations for AI-powered features, chatbots, and LLM automation. Developers reach for llm-application-dev when adding production agent capabilities—guarded prompts, context injection, and integration boundaries—rather than experimenting with raw completion APIs alone.
- Patterns for prompts, tools, and structured outputs
- RAG and context window management guidance
- Streaming and error-handling for LLM calls
- Production deployment and observability hooks
Llm Application Dev by the numbers
- 392 all-time installs (skills.sh)
- +6 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #2,021 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skillcreatorai/ai-agent-skills --skill llm-application-devAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 392 |
|---|---|
| repo stars | ★ 1.1k |
| Last updated | May 5, 2026 |
| Repository | skillcreatorai/ai-agent-skills ↗ |
How do you build production LLM app features?
Scaffold LLM-powered apps with prompts, tool calling, retrieval, streaming UX, and deployment patterns for production agent features.
Who is it for?
Full-stack developers shipping chatbots, copilots, or LLM automation with guarded prompts, retrieval, and tool use in TypeScript stacks.
Skip if: Teams needing only Redis caching tuning, mobile-native on-device models, or infrastructure-only MLOps without application code.
When should I use this skill?
User builds AI-powered features, chatbots, RAG pipelines, tool-calling agents, or LLM streaming UX in application code.
What you get
Structured prompt templates, RAG integration patterns, tool-calling handlers, streaming UX code, and deployment-ready LLM feature scaffolding.
- Prompt templates
- RAG integration patterns
- Tool-calling handlers
By the numbers
- Version 4.1.0 in skill manifest
- MIT license from skillcreatorai/ai-agent-skills
Files
LLM Application Development
Prompt Engineering
Structured Prompts
const systemPrompt = `You are a helpful assistant that answers questions about our product.
RULES:
- Only answer questions about our product
- If you don't know, say "I don't know"
- Keep responses concise (under 100 words)
- Never make up information
CONTEXT:
{context}`;
const userPrompt = `Question: {question}`;Few-Shot Examples
const prompt = `Classify the sentiment of customer feedback.
Examples:
Input: "Love this product!"
Output: positive
Input: "Worst purchase ever"
Output: negative
Input: "It works fine"
Output: neutral
Input: "${customerFeedback}"
Output:`;Chain of Thought
const prompt = `Solve this step by step:
Question: ${question}
Let's think through this:
1. First, identify the key information
2. Then, determine the approach
3. Finally, calculate the answer
Step-by-step solution:`;API Integration
OpenAI Pattern
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function chat(messages: Message[]): Promise<string> {
const response = await openai.chat.completions.create({
model: 'gpt-4',
messages,
temperature: 0.7,
max_tokens: 500,
});
return response.choices[0].message.content ?? '';
}Anthropic Pattern
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
async function chat(prompt: string): Promise<string> {
const response = await anthropic.messages.create({
model: 'claude-3-opus-20240229',
max_tokens: 1024,
messages: [{ role: 'user', content: prompt }],
});
return response.content[0].type === 'text'
? response.content[0].text
: '';
}Streaming Responses
async function* streamChat(prompt: string) {
const stream = await openai.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: prompt }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) yield content;
}
}RAG (Retrieval-Augmented Generation)
Basic RAG Pipeline
async function ragQuery(question: string): Promise<string> {
// 1. Embed the question
const questionEmbedding = await embedText(question);
// 2. Search vector database
const relevantDocs = await vectorDb.search(questionEmbedding, { limit: 5 });
// 3. Build context
const context = relevantDocs.map(d => d.content).join('\n\n');
// 4. Generate answer
const prompt = `Answer based on this context:\n${context}\n\nQuestion: ${question}`;
return await chat(prompt);
}Document Chunking
function chunkDocument(text: string, options: ChunkOptions): string[] {
const { chunkSize = 1000, overlap = 200 } = options;
const chunks: string[] = [];
let start = 0;
while (start < text.length) {
const end = Math.min(start + chunkSize, text.length);
chunks.push(text.slice(start, end));
start += chunkSize - overlap;
}
return chunks;
}Embedding Storage
// Using Supabase with pgvector
async function storeEmbeddings(docs: Document[]) {
for (const doc of docs) {
const embedding = await embedText(doc.content);
await supabase.from('documents').insert({
content: doc.content,
metadata: doc.metadata,
embedding: embedding, // vector column
});
}
}
async function searchSimilar(query: string, limit = 5) {
const embedding = await embedText(query);
const { data } = await supabase.rpc('match_documents', {
query_embedding: embedding,
match_count: limit,
});
return data;
}Error Handling
async function safeLLMCall<T>(
fn: () => Promise<T>,
options: { retries?: number; fallback?: T }
): Promise<T> {
const { retries = 3, fallback } = options;
for (let i = 0; i < retries; i++) {
try {
return await fn();
} catch (error) {
if (error.status === 429) {
// Rate limit - exponential backoff
await sleep(Math.pow(2, i) * 1000);
continue;
}
if (i === retries - 1) {
if (fallback !== undefined) return fallback;
throw error;
}
}
}
throw new Error('Max retries exceeded');
}Best Practices
- Token Management: Track usage and set limits
- Caching: Cache embeddings and common queries
- Evaluation: Test prompts with diverse inputs
- Guardrails: Validate outputs before using
- Logging: Log prompts and responses for debugging
- Cost Control: Use cheaper models for simple tasks
- Latency: Stream responses for better UX
- Privacy: Don't send PII to external APIs
Related skills
How it compares
Choose llm-application-dev for end-to-end LLM app scaffolding rather than Redis-only semantic cache configuration.
FAQ
What version is llm-application-dev?
llm-application-dev is version 4.1.0, MIT-licensed, from skillcreatorai/ai-agent-skills with source attribution to wshobson/agents, covering prompt engineering, RAG, and LLM integration.
What stacks does llm-application-dev emphasize?
llm-application-dev emphasizes TypeScript application patterns—structured system prompts, few-shot examples, RAG context injection, tool calling, and streaming UX for AI-powered product features.