From 1eae2fdd3243d0e4e878eb2881729e8ace79f59f Mon Sep 17 00:00:00 2001 From: Block Thyme LLC Date: Sun, 15 Mar 2026 23:37:46 +0800 Subject: [PATCH] feat: pass modelId to context engine assemble() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Context engine plugins can now receive the current model identifier in assemble() params, enabling model-aware context formatting. For example, a plugin could: - Use XML formatting for Claude models - Use terse/compressed context for small local models (7B) - Adjust token budgets based on model context window size The model param is optional and backward-compatible — existing plugins that don't use it are unaffected. --- src/agents/pi-embedded-runner/run/attempt.ts | 1 + src/context-engine/legacy.ts | 1 + src/context-engine/types.ts | 3 +++ 3 files changed, 5 insertions(+) diff --git a/src/agents/pi-embedded-runner/run/attempt.ts b/src/agents/pi-embedded-runner/run/attempt.ts index f89759606de..71db23d0f5b 100644 --- a/src/agents/pi-embedded-runner/run/attempt.ts +++ b/src/agents/pi-embedded-runner/run/attempt.ts @@ -2167,6 +2167,7 @@ export async function runEmbeddedAttempt( sessionKey: params.sessionKey, messages: activeSession.messages, tokenBudget: params.contextTokenBudget, + model: params.modelId, }); if (assembled.messages !== activeSession.messages) { activeSession.agent.replaceMessages(assembled.messages); diff --git a/src/context-engine/legacy.ts b/src/context-engine/legacy.ts index 09659c968fb..c823979c964 100644 --- a/src/context-engine/legacy.ts +++ b/src/context-engine/legacy.ts @@ -40,6 +40,7 @@ export class LegacyContextEngine implements ContextEngine { sessionKey?: string; messages: AgentMessage[]; tokenBudget?: number; + model?: string; }): Promise { // Pass-through: the existing sanitize -> validate -> limit -> repair pipeline // in attempt.ts handles context assembly for the legacy engine. diff --git a/src/context-engine/types.ts b/src/context-engine/types.ts index 7ddd695b5b6..438ae625d2d 100644 --- a/src/context-engine/types.ts +++ b/src/context-engine/types.ts @@ -131,6 +131,9 @@ export interface ContextEngine { sessionKey?: string; messages: AgentMessage[]; tokenBudget?: number; + /** Current model identifier (e.g. "claude-opus-4", "gpt-4o", "qwen2.5-7b"). + * Allows context engine plugins to adapt formatting per model. */ + model?: string; }): Promise; /**