haiku.rag/docs/configuration/prompts.md
2025-12-26 13:34:51 +02:00

3.2 KiB

Prompt Customization

Customize the prompts used by haiku.rag's AI agents to better match your domain and use case.

Configuration

prompts:
  # Prepended to all agent prompts
  domain_preamble: |
    You are answering questions about our internal documentation.
    Technical terms like "time travel" refer to database versioning features.    

  # Full replacement for QA agent prompt (optional)
  qa: null

  # Full replacement for research synthesis prompt (optional)
  synthesis: null

Domain Preamble

The domain_preamble field is prepended to all agent prompts (QA, research planning, search, evaluation, and synthesis). Use this to:

  • Add domain context that clarifies terminology
  • Set the tone or personality of responses
  • Specify what the knowledge base contains

Example:

prompts:
  domain_preamble: |
    You are a technical support assistant for Acme Corp products.
    The knowledge base contains product documentation, FAQs, and troubleshooting guides.
    Always be helpful and professional.    

Custom QA Prompt

Replace the default QA agent prompt entirely by setting prompts.qa. The prompt should instruct the agent how to:

  1. Use the search_documents tool to find relevant content
  2. Interpret search results with scores and metadata
  3. Cite sources using chunk IDs
  4. Handle insufficient information

Example:

prompts:
  qa: |
    You are a concise technical assistant. Answer questions using only the knowledge base.

    Process:
    1. Search for relevant documents using the search_documents tool
    2. Review results and their relevance scores
    3. Provide a brief, direct answer based on retrieved content

    Guidelines:
    - Use only information from search results
    - Include chunk IDs in cited_chunks for sources you use
    - If information is insufficient, say so clearly
    - Be concise - avoid unnecessary elaboration    

Custom Synthesis Prompt

Replace the research report synthesis prompt by setting prompts.synthesis. This controls how the multi-agent research workflow generates its final report.

The prompt should produce a ResearchReport with: title, executive_summary, main_findings, conclusions, recommendations, limitations, and sources_summary.

Example:

prompts:
  synthesis: |
    Generate a research report based on the gathered evidence.

    Output format:
    - title: 5-12 word title
    - executive_summary: 3-5 sentence overview
    - main_findings: 4-8 bullet points of key findings
    - conclusions: 2-4 bullet points
    - recommendations: 2-5 actionable recommendations
    - limitations: 1-3 limitations or gaps
    - sources_summary: Brief description of sources used

    Guidelines:
    - Base all content strictly on collected evidence
    - Be specific and objective
    - Avoid meta-commentary like "This report covers..."    

Programmatic Configuration

from haiku.rag.config import AppConfig
from haiku.rag.config.models import PromptsConfig

config = AppConfig(
    prompts=PromptsConfig(
        domain_preamble="You are answering questions about our product documentation.",
        qa=None,  # Use default QA prompt
        synthesis=None,  # Use default synthesis prompt
    )
)