---
title: "Skill instructions"
description: "Inject caller-composed skill prompts into the system prompt without replacing the agent's identity."
---

> Documentation Index
> Fetch the complete documentation index at: https://truememory-docs.mvstg.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skill instructions

Use the `skill_instructions` parameter on [chat completions](/ai-gateway/chat-completions/) requests to inject caller-composed skill prompts into the LLM system prompt. This is how app backends send skill-specific behavior to Truememory without Truememory needing to know about the app's skill definitions.

Truememory inserts the text at a fixed position in the prompt stack:

```
┌─────────────────────────┐
│ Agent base instructions │  ← Truememory owns (e.g. Eliza personality, safety rules)
├─────────────────────────┤
│ Persona                 │  ← Truememory's persona system
├─────────────────────────┤
│ skill_instructions      │  ← Your text goes here
├─────────────────────────┤
│ Memory context          │  ← Truememory adds from the user's knowledge graph
├─────────────────────────┤
│ Conversation history    │  ← Messages
└─────────────────────────┘
```

**Key behavior:**
- **Additive** — never replaces the agent's base instructions or persona
- **Optional** — if omitted, behavior is unchanged (persona + memory as before)
- Truememory does not interpret, cache, or fetch `skill_instructions` — it only appends the text

## Example

```bash
curl -X POST https://your-tie-host/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "model": "anthropic/claude-sonnet-4-5",
    "messages": [
      {"role": "user", "content": "What should I order from this Italian restaurant?"}
    ],
    "skill_instructions": "You are in Menu Analysis mode. Break down each menu item by calories, protein, carbs, and fat. Apply the Keto lens: flag items exceeding 20g net carbs.",
    "metadata": {
      "active_skill": "menu",
      "super_skill": "keto"
    }
  }'
```

In this example, the LLM sees Eliza's personality and safety rules, then the menu analysis instructions, then any memories about the user (e.g. allergies). The [`metadata`](/ai-gateway/features/custom-metadata/) is echoed back to the client but not shown to the LLM.

:::note
`skill_instructions` differs from [Custom Prompt Mode](/ai-gateway/chat-completions/#custom-prompt-mode). A `system`/`developer` message **replaces** the agent's base instructions. `skill_instructions` is **additive** — the agent's identity stays intact.
:::

To manage the skill definitions themselves (create, tag knowledge packs, store prompts), see [Skills](/ai-gateway/skills/).

Source: https://truememory-docs.mvstg.com/ai-gateway/features/skill-instructions/index.mdx
