From 602998b76c581c001cb69324ef1399c1317127da Mon Sep 17 00:00:00 2001 From: vizi0uz Date: Mon, 6 Jul 2026 04:50:22 -0300 Subject: [PATCH] fix(honcho): warn model away from minimal reasoning_level on multi-fact queries honcho_reasoning's minimal tier hard-caps Honcho's dialectic output at 250 tokens combined with the model's own hidden reasoning tokens. Confirmed via direct honcho-api server logs that a multi-fact query ("summarize known facts about this peer and communication preferences") run at reasoning_level=minimal gets cut off mid chain-of-thought at exactly output_tokens=250, before the model ever reaches a synthesized answer. low/medium/high/max fall back to Honcho's much larger global dialectic default and don't hit this cap. Since dialecticDynamic is on by default and the calling model picks reasoning_level itself via this tool parameter, the fix is to make the tradeoff explicit in the parameter description so the model defaults to low unless the query is genuinely a single-fact lookup. Schema-description-only change; the shared dialectic_max_chars truncation cap in session.py's dialectic_query() is a separate fix (its own PR). Co-Authored-By: Claude Opus 4.8 --- plugins/memory/honcho/__init__.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/plugins/memory/honcho/__init__.py b/plugins/memory/honcho/__init__.py index 36dc69e5ce7..8ac56aec27d 100644 --- a/plugins/memory/honcho/__init__.py +++ b/plugins/memory/honcho/__init__.py @@ -125,13 +125,26 @@ REASONING_SCHEMA = { "type": "string", "description": ( "Override the default reasoning depth. " - "Omit to use the configured default (typically low). " - "Guide:\n" - "- minimal: quick factual lookups (name, role, simple preference)\n" - "- low: straightforward questions with clear answers\n" - "- medium: multi-aspect questions requiring synthesis across observations\n" - "- high: complex behavioral patterns, contradictions, deep analysis\n" - "- max: thorough audit-level analysis, leave no stone unturned" + "Omit to use the configured default (typically low).\n" + "reasoning_level parameter guide:\n" + "- minimal: use ONLY for a single quick factual lookup (e.g. " + "'what is the user's name'). Honcho hard-caps this tier's output " + "at 250 tokens combined with the model's own hidden reasoning " + "tokens — a multi-part answer can get cut off mid-thought before " + "it even reaches the final-answer phase, especially on models " + "with reasoning/thinking enabled.\n" + "- low/medium/high/max: use for anything requiring a synthesized, " + "multi-fact, or summary-style answer (e.g. 'summarize known facts " + "about this peer', 'what are their communication preferences'). " + "These tiers have no output-token cap of their own (fall back to " + "Honcho's 8192-token global default), so they don't have " + "minimal's cutoff failure mode.\n" + " - low: straightforward questions with clear answers\n" + " - medium: multi-aspect questions requiring synthesis across observations\n" + " - high: complex behavioral patterns, contradictions, deep analysis\n" + " - max: thorough audit-level analysis, leave no stone unturned\n" + "Default to at least 'low' unless the query is genuinely a single " + "fact lookup." ), "enum": ["minimal", "low", "medium", "high", "max"], },