AI Engineer
Build production AI applications: LLM integration, function calling, streaming, embedding pipelines, guardrails, cost optimization, and evaluation.
A hands-on production AI skill that helps you ship LLM-powered features reliably. It covers the full stack: streaming completions, function/tool calling, retrieval-augmented generation, embedding pipelines, structured outputs, guardrails, and eval harnesses. Opinionated on cost optimization — knows when to use GPT-4o-mini vs Sonnet vs Gemini Flash, and how to cut token spend by 60%+ without sacrificing quality.
Added Mar 20, 2026
$npx skills add johnefemer/skillfish --skill ai-engineer What This Skill Can Do
Concrete capabilities you get when you install this skill.
Integrate LLMs with streaming, function calling, and structured JSON outputs
Build and optimize embedding pipelines for semantic search and RAG
Implement guardrails: input validation, output moderation, and hallucination detection
Design eval harnesses to measure accuracy, latency, and cost regressions
Optimize token usage and model selection to minimize cost per request
Debug LLM failures: prompt sensitivity, context window issues, and tool-call errors
Real Conversations
See how the AI Engineer skill responds to actual requests. These are representative examples of what your AI agent will produce.
How do I implement streaming with function calling in the OpenAI API? I want to show partial text while also handling tool calls.
Streaming + function calling requires careful handling because tool calls arrive as delta chunks, not a complete object. Here's the pattern:
import OpenAI from 'openai';
const client = new OpenAI();
async function streamWithTools(userMessage: string) {
const stream = await client.chat.completions.create({
model: 'gpt-4o',
stream: true,
messages: [{ role: 'user', content: userMessage }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
parameters: { type: 'object', properties: { city: { type: 'string' } }, required: ['city'] },
},
}],
});
let toolCallAccumulator: { id: string; name: string; args: string } | null = null;
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta;
if (delta?.content) {
process.stdout.write(delta.content); // stream text
}
if (delta?.tool_calls?.[0]) {
const tc = delta.tool_calls[0];
if (tc.id) toolCallAccumulator = { id: tc.id, name: tc.function?.name ?? '', args: '' };
if (tc.function?.arguments) toolCallAccumulator!.args += tc.function.arguments;
}
if (chunk.choices[0]?.finish_reason === 'tool_calls' && toolCallAccumulator) {
const args = JSON.parse(toolCallAccumulator.args);
const result = await callTool(toolCallAccumulator.name, args);
console.log('\nTool result:', result);
}
}
}
Key gotchas: tool_calls[0].id only appears on the first chunk — accumulate arguments across subsequent chunks. Always check finish_reason === 'tool_calls' before dispatching.
Get Started
How to install and use this skill in your preferred environment.
Skills are designed for AI coding agents (Claude Code, Cursor, Windsurf) and IDE-based workflows where the agent can read files, run scripts, and act on your codebase.
Models & Context
Which AI models and context windows work best with this skill.
Recommended Models
Best with Claude Sonnet 4, GPT-4o, or Gemini 2.5 Pro for complex pipeline design. GPT-4o-mini handles simpler integration questions.
Context Window
SKILL.md is ~10KB. Fits in 32K context. For multi-service AI pipelines, 100K+ context recommended to track tool schemas and eval results.
Pro tips for best results
Be specific
Include numbers — users, budget, RPS — so the skill can size the architecture.
Share constraints
Compliance needs, team size, and existing stack all improve the output.
Iterate
Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.
Combine skills
Pair with companion skills below for end-to-end coverage.
Works Great With
These skills complement AI Engineer for end-to-end coverage. Install them together for better results.
Ready to try AI Engineer?
Install the skill and start getting expert-level guidance in your workflow — any agent, any IDE.
$npx skills add johnefemer/skillfish --skill ai-engineer