prompt-engineering
Prompt Engineering
Techniques for getting reliable, high-quality output from LLMs.
Core Techniques
System Prompt Design
- Define the role, constraints, and output format upfront
- Be explicit about what NOT to do
- Put the most important instructions first
Chain-of-Thought
Force step-by-step reasoning before the answer:
Think through this step by step:
1. First, identify...
2. Then, evaluate...
3. Finally, decide...
Few-Shot Examples
Provide 2-3 examples of input → output pairs before the actual task. Match the exact format you want back.
Structured Output
Request specific formats:
Respond with JSON in this exact format:
{"decision": "approve|reject", "reason": "string", "confidence": 0.0-1.0}
Prompt Patterns
Persona Pattern
You are a senior security engineer reviewing code for vulnerabilities.
Focus only on security issues. Ignore style, naming, and formatting.
Constraint Pattern
Rules:
- Maximum 3 sentences per response
- Use only information from the provided context
- If uncertain, say "I don't know" instead of guessing
Verification Pattern
After generating your response, verify:
1. Does it answer the original question?
2. Are all claims supported by evidence?
3. Are there any logical contradictions?
If any check fails, revise before responding.
Decomposition Pattern
Break this problem into sub-problems:
1. Solve each sub-problem independently
2. Combine the solutions
3. Verify the combined solution
API Usage Patterns
Claude API
curl -s https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"system": "You are a code reviewer. Only flag security issues.",
"messages": [{"role": "user", "content": "Review this code: ..."}]
}' | jq '.content[0].text'
OpenAI API
curl -s https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a code reviewer."},
{"role": "user", "content": "Review this code: ..."}
],
"response_format": {"type": "json_object"}
}' | jq '.choices[0].message.content'
Prompt Optimization
Reduce token usage
- Remove filler words and redundant instructions
- Use examples instead of lengthy descriptions
- Put context in system prompt (cached across turns with some providers)
Improve reliability
- Ask the model to output reasoning before conclusions
- Use XML tags to delimit sections:
<context>...</context> - Be specific: "list 5 items" not "list some items"
- Provide negative examples: "Do NOT include..."
Test prompts
- Run the same prompt 5 times — if outputs vary wildly, the prompt is ambiguous
- Use temperature 0 for deterministic tasks, 0.7+ for creative tasks
- Compare model outputs across providers for the same prompt
Notes
- Prompt engineering is empirical — test and iterate, don't theorize.
- Long prompts aren't bad if they reduce ambiguity. Clarity > brevity.
- System prompts are more reliable than user-message instructions for persistent behavior.
- XML tags (
<instructions>,<context>,<examples>) help models parse structured prompts. - Cache-friendly prompts: put static content first, dynamic content last.
More from thinkfleetai/thinkfleet-engine
local-whisper
Local speech-to-text using OpenAI Whisper. Runs fully offline after model download. High quality transcription with multiple model sizes.
148flyio-cli-public
Use the Fly.io flyctl CLI for deploying and operating apps on Fly.io: deploys (local or remote builder), viewing status/logs, SSH/console, secrets/config, scaling, machines, volumes, and Fly Postgres (create/attach/manage databases). Use when asked to deploy to Fly.io, debug fly deploy/build/runtime failures, set up GitHub Actions deploys/previews, or safely manage Fly apps and Postgres.
24kagi-search
Web search using Kagi Search API. Use when you need to search the web for current information, facts, or references. Requires KAGI_API_KEY in the environment.
22feishu-bridge
Connect a Feishu (Lark) bot to ThinkFleet via WebSocket long-connection. No public server, domain, or ngrok required. Use when setting up Feishu/Lark as a messaging channel, troubleshooting the Feishu bridge, or managing the bridge service (start/stop/logs). Covers bot creation on Feishu Open Platform, credential setup, bridge startup, macOS launchd auto-restart, and group chat behavior tuning.
13bambu-local
Control Bambu Lab 3D printers locally via MQTT (no cloud). Supports A1, A1 Mini, P1P, P1S, X1C.
10voice-transcribe
Transcribe audio files using OpenAI's gpt-4o-mini-transcribe model with vocabulary hints and text replacements. Requires uv (https://docs.astral.sh/uv/).
10