Prompt templates for all agent types are stored as YAML files under src/smolagents/prompts/:
code_agent.yaml— forCodeAgentstructured_code_agent.yaml— forCodeAgentusing structured JSON output (used with providers like Cerebras and Fireworks-AI)toolcalling_agent.yaml— forToolCallingAgent
Templates are rendered at runtime via Jinja2 (jinja2.StrictUndefined mode) and injected into a PromptTemplates TypedDict containing keys: system_prompt, planning.initial_plan, planning.update_plan_pre_messages, planning.update_plan_post_messages, managed_agent.task, managed_agent.report, final_answer.pre_messages, final_answer.post_messages.
Custom prompt templates can be passed at agent construction time; any missing keys relative to EMPTY_PROMPT_TEMPLATES raise an assertion error immediately. The code_agent.yaml prompt is also included in the package data via pyproject.toml's [tool.setuptools.package-data] entry.
src/smolagents/prompts/src/smolagents/agents.pypyproject.toml