Skip to main content
System prompts define what your agent knows and how it behaves. AFK supports three methods — inline strings, instruction files, and auto-detection — with Jinja2 templating for dynamic values.

Three ways to set instructions

Set instructions directly on the Agent. Best for simple, static prompts.

Precedence chain

When multiple sources are available, AFK uses this order: The first non-empty source wins. If you set both instructions and instruction_file, the inline string takes priority.

Template variables with Jinja2

Use {{ variable }} syntax to inject dynamic values into prompts:

Available template variables

Prompt from file with templates

Templates work in instruction files too:
prompts/reviewer.md

Error handling

Keep prompts in version control. Store instruction files in a prompts/ directory and track changes in git. This gives you prompt history, diffs, and the ability to A/B test prompt versions.

Design guidelines

  • Inline for prototyping, files for production. Switch to instruction files when your prompt exceeds ~5 lines.
  • Use templates for anything dynamic. Don’t concatenate strings — use {{ variable }} and set values in context.
  • Be specific in instructions. Tell the agent what to do and what not to do. Include output format expectations.
  • Test prompt changes with evals. A small prompt change can dramatically shift behavior. Run your eval suite after any edit.

Next steps

Agent Skills

Reusable knowledge bundles loaded on demand.

Evals

Test prompt changes with behavioral assertions.