Skip to main content

Scope


Request Pipeline Stages

For each UserTextPacket, 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:
Behavior is validated by 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 via preparePromptArgumentsForResponse() before tool follow-up send. Language precedence for response flow: Validated by:
  • TestPreparePromptArgumentsForResponse_UsesLatestUserAndClientLanguage
  • TestPreparePromptArgumentsForResponse_PrefersLatestHistoryLanguage
  • TestHandleResponse_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