Skip to content

Prompts Module

Prompt template management with support for both Jinja2 (.jinja2) and Markdown (.md) templates.

Classes

Class Description
PromptManager Load, cache, and render templates
PromptTemplate Renderable prompt template
PromptConfig Manager configuration
TemplateConfig Template reference for Agent
TemplateType Enum: JINJA2 or MARKDOWN

Quick Example

from mamba_agents import Agent
from mamba_agents.prompts import PromptManager, TemplateConfig

# With Agent
agent = Agent(
    "gpt-4o",
    system_prompt=TemplateConfig(
        name="system/assistant",
        variables={"name": "Helper"}
    )
)

# Direct rendering (works with .jinja2 or .md files)
manager = PromptManager()
prompt = manager.render("system/assistant", name="Helper")

# Runtime registration (Jinja2 syntax)
manager.register("custom/greeting", "Hello, {{ name }}!")
result = manager.render("custom/greeting", name="World")

Imports

# From main package
from mamba_agents import (
    PromptConfig,
    PromptManager,
    PromptTemplate,
    TemplateConfig,
)

# From prompts module
from mamba_agents.prompts import (
    # Classes
    PromptConfig,
    PromptManager,
    PromptTemplate,
    TemplateConfig,
    TemplateType,
    # Errors
    PromptError,
    PromptNotFoundError,
    TemplateRenderError,
    TemplateValidationError,
    MarkdownParseError,
    TemplateConflictError,
)

Template Directory Structure

prompts/
├── v1/
│   ├── system/
│   │   ├── assistant.md       # Markdown template
│   │   └── coder.jinja2       # Jinja2 template
│   └── workflow/
│       └── react.jinja2
└── v2/
    └── system/
        └── assistant.md

Template Formats

Jinja2 (.jinja2)

Full Jinja2 templating with {{ var }} syntax, conditionals, loops, and inheritance.

Markdown (.md)

Simple templates with YAML frontmatter for default variables and {var} syntax:

---
variables:
  name: Claude
---
Hello, {name}!