Skip to content

Commit 3dbd608

Browse files
committed
refactor: clarify tool history validation
1 parent 8beb863 commit 3dbd608

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

astrbot/core/agent/context/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ async def process(
5757
try:
5858
result = self.truncator.fix_messages(messages)
5959
if len(result) != len(messages):
60-
logger.warning(
60+
logger.debug(
6161
f"Removed {len(messages) - len(result)} invalid tool history "
6262
"message(s) before context processing."
6363
)

astrbot/core/agent/context/truncator.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,18 @@ def flush_pending_if_valid() -> None:
7979
break
8080
expected_ids.append(tool_call_id)
8181
result_ids = [tool.tool_call_id for tool in pending_tools]
82-
if (
82+
has_valid_expected_ids = bool(expected_ids) and len(
8383
expected_ids
84-
and len(expected_ids) == len(set(expected_ids))
85-
and len(result_ids) == len(expected_ids)
84+
) == len(set(expected_ids))
85+
has_valid_result_ids = (
86+
len(result_ids) == len(expected_ids)
8687
and all(
8788
isinstance(tool_id, str) and tool_id for tool_id in result_ids
8889
)
8990
and len(result_ids) == len(set(result_ids))
90-
and set(result_ids) == set(expected_ids)
91-
):
91+
)
92+
ids_match = set(result_ids) == set(expected_ids)
93+
if has_valid_expected_ids and has_valid_result_ids and ids_match:
9294
fixed_messages.append(pending_assistant)
9395
fixed_messages.extend(pending_tools)
9496
pending_assistant = None

0 commit comments

Comments
 (0)