fix: preserve tool failures under noisy output
This commit is contained in:
@@ -77,6 +77,7 @@ VERIFICATION_TOOLS = {"read_file", "git_status", "git_diff", "exec", "poll_proce
|
||||
EXECUTION_TOOLS = {"exec", "start_process", "poll_process"}
|
||||
REPEAT_GUARDED_EXECUTION_TOOLS = {"exec", "start_process"}
|
||||
MAX_CONSECUTIVE_CHECKPOINT_REJECTIONS = 3
|
||||
MAX_TOOL_CALLS_PER_ITERATION = 8
|
||||
CODE_FILE_SUFFIXES = {
|
||||
".c",
|
||||
".cc",
|
||||
@@ -568,6 +569,17 @@ class AgentLoop:
|
||||
)
|
||||
return candidate
|
||||
|
||||
if len(tool_calls) > MAX_TOOL_CALLS_PER_ITERATION:
|
||||
await recorder.emit(
|
||||
"tool.batch_limited",
|
||||
{
|
||||
"requested": len(tool_calls),
|
||||
"accepted": MAX_TOOL_CALLS_PER_ITERATION,
|
||||
"iteration": iteration + 1,
|
||||
"depth": depth,
|
||||
},
|
||||
)
|
||||
tool_calls = tool_calls[:MAX_TOOL_CALLS_PER_ITERATION]
|
||||
consecutive_checkpoint_rejections = 0
|
||||
assistant_message = {
|
||||
"role": "assistant",
|
||||
|
||||
@@ -10,6 +10,7 @@ from agent_platform.auth import UserIdentity
|
||||
from agent_platform.config import Settings
|
||||
from agent_platform.runtime.schemas import PlanItem
|
||||
from agent_platform.store import RuntimeStore
|
||||
from agent_platform.text import truncate_middle
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
@@ -337,6 +338,4 @@ class ToolRegistry:
|
||||
|
||||
def tool_result_text(result: Any, limit: int) -> str:
|
||||
text = json.dumps(result, ensure_ascii=False, separators=(",", ":"), default=str)
|
||||
if len(text) <= limit:
|
||||
return text
|
||||
return text[:limit] + "…"
|
||||
return truncate_middle(text, limit)
|
||||
|
||||
Reference in New Issue
Block a user