{{today}} or custom placeholders; resolvers inject live values before the model runs.
How It Works
Quick Start
1
Use built-in variables in a prompt
2
Register a custom provider
Built-in Variables
Variables resolve in
Agent.start(), Agent.run(), and workflow execution.
Common Patterns
Workflow YAML
Direct substitution
Dynamic variables are lazy-loaded — no performance impact when unused.
Best Practices
Prefer {{today}} over hardcoded dates
Prefer {{today}} over hardcoded dates
Prompts with
{{today}} stay accurate across sessions without manual updates.Register custom providers once at startup
Register custom providers once at startup
Call
register_variable_provider() before creating agents that reference custom variables.Combine with static template variables
Combine with static template variables
Pass static values via
substitute_variables(text, {"topic": "AI"}) alongside built-in dynamic ones.Use in workflow YAML
Use in workflow YAML
Workflow task descriptions and goals support the same
{{today}}, {{year}}, and custom providers.Related
Templates
System and prompt templates
Workflows
YAML workflows with variable substitution

