From b8aa00b8836ca1f56214dea6f0513297b2f319cb Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Tue, 26 May 2026 09:42:26 +0000 Subject: [PATCH] fix(llm): inject system prompt into user message for OpusAgent OpusAgent topic system_prompt is used for summarization context but not enforced as a binding instruction to Claude. Prepend [SYSTEM] block to the first message of each session so Claude sees the full JSON schema and grammar specification. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/multi_swarm_core/multi_swarm_core/llm/client.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/multi_swarm_core/multi_swarm_core/llm/client.py b/src/multi_swarm_core/multi_swarm_core/llm/client.py index 13a4f04..31555d8 100644 --- a/src/multi_swarm_core/multi_swarm_core/llm/client.py +++ b/src/multi_swarm_core/multi_swarm_core/llm/client.py @@ -163,9 +163,11 @@ class LLMClient: model = self._tier_map[genome.model_tier] topic_id = self._get_or_create_topic(system) + prompt = f"[SYSTEM]\n{system}\n\n[USER]\n{user}" if session_id in (None, "new") else user + body: dict = { "topic_id": topic_id, - "prompt": user, + "prompt": prompt, "model": model, } if session_id is not None: