Interface PromptComponents

Core components that form the foundation of any prompt construction. These are gathered from various sources (GMI state, user input, RAG) and then augmented with dynamically selected contextual elements.

Interface

PromptComponents

interface PromptComponents {
    systemPrompts?: {
        content: string;
        priority?: number;
        source?: string;
    }[];
    conversationHistory?: ConversationMessage[];
    currentTurnMessageCount?: number;
    userInput?: null | string;
    visionInputs?: VisionInputData[];
    audioInput?: AudioInputData;
    tools?: ITool<any, any>[];
    toolSchemas?: Record<string, unknown>[];
    retrievedContext?: string | {
        source: string;
        content: string;
        relevance?: number;
        type?: string;
    }[];
    assembledMemoryContext?: AssembledMemoryContext;
    taskSpecificData?: Record<string, unknown>;
    customComponents?: Record<string, unknown>;
}

Properties

systemPrompts?: {
    content: string;
    priority?: number;
    source?: string;
}[]

System-level prompts with optional priority ordering. Higher priority usually means placed earlier or given more weight.

Type declaration

  • content: string
  • Optional priority?: number
  • Optional source?: string
conversationHistory?: ConversationMessage[]

Conversation history messages, typically an array of Message objects.

currentTurnMessageCount?: number

How many messages at the end of conversationHistory belong to the turn being answered: the current user message when it travels as history (structured input), then the assistant tool calls and tool results of the turn's earlier calls. Token budgeting summarizes or truncates only the messages before them, so the model always receives the request it answers and its own tool rounds. A tool round the first of them belongs to is kept whole with them: a call before them whose result they hold is not dropped. Defaults to 0.

userInput?: null | string

Current user input text.

visionInputs?: VisionInputData[]

Visual inputs (images) if the target model supports vision.

audioInput?: AudioInputData

Audio input data references if the model or a pre-processing step handles audio.

tools?: ITool<any, any>[]

Available tools and their schemas, for models that support function/tool calling.

toolSchemas?: Record<string, unknown>[]

Pre-formatted tool/function schemas that should be forwarded to the model as-is. Useful when upstream logic has already normalized the schema definitions.

retrievedContext?: string | {
    source: string;
    content: string;
    relevance?: number;
    type?: string;
}[]

Retrieved context from a RAG system, to be incorporated into the prompt.

assembledMemoryContext?: AssembledMemoryContext

Assembled cognitive memory context (personality-affected, token-budgeted). Merged with retrievedContext by the prompt template.

taskSpecificData?: Record<string, unknown>

Task-specific data or parameters that need to be included in the prompt.

customComponents?: Record<string, unknown>

Additional custom components that templates might use.