mcpbeat Sign in

AI Engineer Skill for Claude

Build production-ready LLM applications, advanced RAG systems, and intelligent agents. Implements vector search, multimodal AI, agent orchestration, and enterprise AI integrations. Use PROACTIVELY for LLM features, chatbots, AI agents, or AI-powered applications.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
177
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/curiositech/some_claude_skills --skill ai-engineer

The instruction itself

25 sections, as written by the author

AI Engineer

Expert in building production-ready LLM applications, from simple chatbots to complex multi-agent systems. Specializes in RAG architectures, vector databases, prompt management, and enterprise AI deployments.

Quick Start

User: "Build a customer support chatbot with our product documentation"

AI Engineer:
1. Design RAG architecture (chunking, embedding, retrieval)
2. Set up vector database (Pinecone/Weaviate/Chroma)
3. Implement retrieval pipeline with reranking
4. Build conversation management with context
5. Add guardrails and fallback handling
6. Deploy with monitoring and observability

Result: Production-ready AI chatbot in days, not weeks

Core Competencies

1. RAG System Design

| Component | Implementation | Best Practices |

|-----------|---------------|----------------|

| Chunking | Semantic, token-based, hierarchical | 512-1024 tokens, overlap 10-20% |

| Embedding | OpenAI, Cohere, local models | Match model to domain |

| Vector DB | Pinecone, Weaviate, Chroma, Qdrant | Index by use case |

| Retrieval | Dense, sparse, hybrid | Start hybrid, tune |

| Reranking | Cross-encoder, Cohere Rerank | Always rerank top-k |

2. LLM Application Patterns

  • Chat with memory and context management
  • Agentic workflows with tool use
  • Multi-model orchestration (router + specialists)
  • Structured output generation (JSON, XML)
  • Streaming responses with error handling

3. Production Operations

  • Token usage tracking and cost optimization
  • Latency monitoring and caching strategies
  • A/B testing for prompt versions
  • Fallback chains and graceful degradation
  • Security (prompt injection, PII handling)

Architecture Patterns

Basic RAG Pipeline

// Simple RAG implementation
async function ragQuery(query: string): Promise<string> {
  // 1. Embed the query
  const queryEmbedding = await embed(query);

  // 2. Retrieve relevant chunks
  const chunks = await vectorDb.query({
    vector: queryEmbedding,
    topK: 10,
    includeMetadata: true
  });

  // 3. Rerank for relevance
  const reranked = await reranker.rank(query, chunks);
  const topChunks = reranked.slice(0, 5);

  // 4. Generate response with context
  const response = await llm.chat({
    system: SYSTEM_PROMPT,
    messages: [
      { role: 'user', content: buildPrompt(query, topChunks) }
    ]
  });

  return response.content;
}

Agent Architecture

// Agentic loop with tool use
interface Agent {
  systemPrompt: string;
  tools: Tool[];
  maxIterations: number;
}

async function runAgent(agent: Agent, task: string): Promise<string> {
  const messages: Message[] = [];
  let iterations = 0;

  while (iterations < agent.maxIterations) {
    const response = await llm.chat({
      system: agent.systemPrompt,
      messages: [...messages, { role: 'user', content: task }],
      tools: agent.tools
    });

    if (!response.toolCalls) {
      return response.content; // Final answer
    }

    // Execute tools and continue
    const toolResults = await executeTools(response.toolCalls);
    messages.push({ role: 'assistant', content: response });
    messages.push({ role: 'tool', content: toolResults });
    iterations++;
  }

  throw new Error('Max iterations exceeded');
}

Multi-Model Router

// Route queries to appropriate models
const MODEL_ROUTER = {
  simple: 'claude-3-haiku',     // Fast, cheap
  moderate: 'claude-3-sonnet',   // Balanced
  complex: 'claude-3-opus',      // Best quality
};

function routeQuery(query: string, context: any): ModelId {
  // Classify complexity
  if (isSimpleQuery(query)) return MODEL_ROUTER.simple;
  if (requiresReasoning(query, context)) return MODEL_ROUTER.complex;
  return MODEL_ROUTER.moderate;
}

Implementation Checklist

RAG System

  • [ ] Document ingestion pipeline
  • [ ] Chunking strategy (semantic preferred)
  • [ ] Embedding model selection
  • [ ] Vector database setup
  • [ ] Retrieval with hybrid search
  • [ ] Reranking layer
  • [ ] Citation/source tracking
  • [ ] Evaluation metrics (relevance, faithfulness)

Production Readiness

  • [ ] Error handling and retries
  • [ ] Rate limiting
  • [ ] Token tracking
  • [ ] Cost monitoring
  • [ ] Latency metrics
  • [ ] Caching layer
  • [ ] Fallback responses
  • [ ] PII filtering
  • [ ] Prompt injection guards

Observability

  • [ ] Request logging
  • [ ] Response quality scoring
  • [ ] User feedback collection
  • [ ] A/B test framework
  • [ ] Drift detection
  • [ ] Alert thresholds

Anti-Patterns

Anti-Pattern: RAG Everything

What it looks like: Using RAG for every query

Why wrong: Adds latency, cost, and complexity when unnecessary

Instead: Classify queries, use RAG only when context needed

Anti-Pattern: Chunking by Character

What it looks like: text.slice(0, 1000) for chunks

Why wrong: Breaks semantic meaning, poor retrieval

Instead: Semantic chunking respecting document structure

Anti-Pattern: No Reranking

What it looks like: Using raw vector similarity as final ranking

Why wrong: Embedding similarity != relevance for query

Instead: Always add cross-encoder reranking

Anti-Pattern: Unbounded Context

What it looks like: Stuffing all retrieved chunks into prompt

Why wrong: Dilutes relevance, wastes tokens, confuses model

Instead: Top 3-5 chunks after reranking, dynamic selection

Anti-Pattern: No Guardrails

What it looks like: Direct user input to LLM

Why wrong: Prompt injection, toxic outputs, off-topic responses

Instead: Input validation, output filtering, topic guardrails

Technology Stack

Vector Databases

| Database | Best For | Notes |

|----------|----------|-------|

| Pinecone | Production, scale | Managed, fast |

| Weaviate | Hybrid search | GraphQL, modules |

| Chroma | Development, local | Embedded, simple |

| Qdrant | Self-hosted, filters | Rust, performant |

| pgvector | Existing Postgres | Easy integration |

LLM Frameworks

| Framework | Best For | Notes |

|-----------|----------|-------|

| LangChain | Prototyping | Many integrations |

| LlamaIndex | RAG focus | Document handling |

| Vercel AI SDK | Streaming, React | Edge-ready |

| Anthropic SDK | Direct API | Full control |

Embedding Models

| Model | Dimensions | Notes |

|-------|------------|-------|

| text-embedding-3-large | 3072 | Best quality |

| text-embedding-3-small | 1536 | Cost-effective |

| voyage-2 | 1024 | Code, technical |

| bge-large | 1024 | Open source |

When to Use

Use for:

  • Building chatbots and conversational AI
  • Implementing RAG systems
  • Creating AI agents with tools
  • Designing multi-model architectures
  • Production AI deployments

Do NOT use for:

  • Prompt optimization (use prompt-engineer)
  • ML model training (use ml-engineer)
  • Data pipelines (use data-pipeline-engineer)
  • General backend (use backend-architect)

Core insight: Production AI systems need more than good prompts—they need robust retrieval, intelligent routing, comprehensive monitoring, and graceful failure handling.

Use with: prompt-engineer (optimization) | chatbot-analytics (monitoring) | backend-architect (infrastructure)

Other skills for the same job

different authors, same section of the catalogue
Skill Creator
by anthropics
vendor ×10

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

56k tokens scripts
Geo Database
by christophacham
×4

Access NCBI GEO for gene expression/genomics data. Search/download microarray and RNA-seq datasets (GSE, GSM, GPL), retrieve SOFT/Matrix files, for transcriptomics and expression analysis.

12k tokens
Pymc Bayesian Modeling
by christophacham
×4

Bayesian modeling with PyMC. Build hierarchical models, MCMC (NUTS), variational inference, LOO/WAIC comparison, posterior checks, for probabilistic programming and inference.

24k tokens scripts
Pymoo
by christophacham
×4

Multi-objective optimization framework. NSGA-II, NSGA-III, MOEA/D, Pareto fronts, constraint handling, benchmarks (ZDT, DTLZ), for engineering design and optimization problems.

19k tokens scripts
Statsmodels
by ComeOnOliver
×4

Statistical modeling toolkit. OLS, GLM, logistic, ARIMA, time series, hypothesis tests, diagnostics, AIC/BIC, for rigorous statistical inference and econometric analysis.

41k tokens
Add Uint Support
by pytorch
vendor ×3

Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.

2k tokens
At Dispatch V2
by pytorch
vendor ×3

Convert PyTorch AT_DISPATCH macros to AT_DISPATCH_V2 format in ATen C++ code. Use when porting AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES*, or other dispatch macros to the new v2 API. For ATen kernel files, CUDA kernels, and native operator implementations.

2k tokens
Docstring
by pytorch
vendor ×3

Write docstrings for PyTorch functions and methods following PyTorch conventions. Use when writing or updating docstrings in PyTorch code.

3k tokens

How to use it

Copy the folder

Take curiositech/ai-engineer from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.