Scope
Request Pipeline Stages
For eachUserTextPacket, stages run in this order:
Stage order is validated by
TestRequestPipeline_DefaultStages.
Prompt Argument Map
buildPromptContext() creates these top-level keys:
Deep clone is applied before use (
clonePromptArguments).
General Jinja-Style Guidelines
Template rendering is performed by Pongo2 (pkg/parsers/pongo2.template.parser.go), which follows Jinja-style syntax.
Verified patterns from parser tests:
Execution behavior:
Argument Namespaces
system.*
All are UTC.
assistant.*
conversation.*
session.*
message.*
Args Behavior (Namespaced + Root)
Conversation args are merged twice:
Implementation merge:
TestBuildPromptContext_ArgumentsRemainRootLevel.
Template Rendering Contract
buildChatRequest() renders prompt templates and prepends rendered system/template messages before runtime history.
Argument merge precedence for rendering
Parser behavior (
pongo2):
Response + Tool Follow-up Argumentation
On response handling, prompt args are rebuilt viapreparePromptArgumentsForResponse() before tool follow-up send.
Language precedence for response flow:
Validated by:
TestPreparePromptArgumentsForResponse_UsesLatestUserAndClientLanguageTestPreparePromptArgumentsForResponse_PrefersLatestHistoryLanguageTestHandleResponse_ToolFollowUpRetainsUserMessageContext
History Validation Rules
Before sending chat requests, history must satisfy these rules:
Validation coverage:
TestValidateHistorySequence_*
Internal Reference
api/assistant-api/internal/agent/executor/llm/internal/model/PROMPT_ARGUMENTS.md