Skip to content
Back to skills

Few Shot Conversation Injection

ASecurity

Inject fake (user, assistant) turn pairs before the real prompt to steer the LLM into a specific output format

  • 61 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
ai-agentspythonapi

Works with

  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add wenmin-wu/ds-skills --skill few-shot-conversation-injection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Few Shot Conversation Injection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Few Shot Conversation Injection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wenmin-wu-few-shot-conversation-injection/badge)](https://www.skillsdirectory.com/skills/wenmin-wu-few-shot-conversation-injection)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: llm-few-shot-conversation-injection
description: Inject fake (user, assistant) turn pairs before the real prompt to steer the LLM into a specific output format
---

## Overview

LLM APIs accept a list of chat messages. Most users only populate `system` + current `user`, but you can prepend fabricated prior turns — a pseudo conversation where the "assistant" already output the exact format you want. The live model, trained on turn coherence, continues the pattern. This is a much stronger format steer than any system-prompt instruction because the model sees itself "having already done it" N times.

## Quick Start

```python
def build_messages(system_prompt, target_model_name, user_prompt):
    few_shot = [
        {"role": "user", "content": "Evaluate this essay: 'The quick brown fox...'"},
        {"role": "assistant", "content": f"I am {target_model_name}. Count: 9"},
        {"role": "user", "content": "Evaluate this essay: 'In summer the sun...'"},
        {"role": "assistant", "content": f"I am {target_model_name}. Count: 9"},
    ]
    return [
        {"role": "system", "content": system_prompt},
        *few_shot,
        {"role": "user", "content": user_prompt},
    ]
```

## Workflow

1. Decide the exact target output format (a single token, a JSON object, a fixed prefix)
2. Write 2-4 fake prior turns that show the assistant producing that format
3. Parameterize the assistant turns with the actual target model name so self-ID traps fire correctly
4. Keep fake-user turns realistic — nonsense user messages break turn coherence and reduce steering
5. Submit; measure format compliance — expect 80%+ vs. 30-40% for system-prompt-only steering

## Key Decisions

- **2-4 shots is the sweet spot**: 1 is weak, 5+ hits context limits and dilutes the real prompt.
- **Match the judge's expected turn format**: some APIs strip `role=assistant` turns unless they follow a `user` turn — always alternate.
- **Vary the fake user turns slightly**: identical turns look like a glitch and some providers dedupe.
- **vs. system prompt instructions**: system prompts are a weak steer; demonstrated history is a strong one because LLMs are trained to maintain dialogue consistency.

## References

- [LLMs - You Can't Please Them All competition solutions](https://www.kaggle.com/competitions/llms-you-cant-please-them-all)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.