From 7d16258a98d7ab570caa1ab0111c87e294c515dc Mon Sep 17 00:00:00 2001 From: majdyz Date: Mon, 13 Apr 2026 12:24:35 +0000 Subject: [PATCH] perf(copilot): reduce tool output truncation from 500K to 100K chars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 500K chars (~125K tokens) per tool result was too generous — a few large tool outputs could push context past 200K+ tokens. 100K chars (~25K tokens) keeps individual results reasonable. The SDK writes oversized results to tool-results/ files and returns a reference. --- .../backend/backend/copilot/sdk/tool_adapter.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/backend/backend/copilot/sdk/tool_adapter.py b/autogpt_platform/backend/backend/copilot/sdk/tool_adapter.py index c3eb10bd13..61b845822c 100644 --- a/autogpt_platform/backend/backend/copilot/sdk/tool_adapter.py +++ b/autogpt_platform/backend/backend/copilot/sdk/tool_adapter.py @@ -63,8 +63,10 @@ if TYPE_CHECKING: logger = logging.getLogger(__name__) -# Max MCP response size in chars — keeps tool output under the SDK's 10 MB JSON buffer. -_MCP_MAX_CHARS = 500_000 +# Max MCP response size in chars. Lower = smaller context = cheaper. +# 100K chars ≈ 25K tokens. The SDK writes oversized results to +# tool-results/ files and returns a file reference instead. +_MCP_MAX_CHARS = 100_000 # MCP server naming - the SDK prefixes tool names as "mcp__{server_name}__{tool}" MCP_SERVER_NAME = "copilot"