Skip to content

Commit 4a7a9de

Browse files
committed
fix: Address pr cmments
1 parent 0d260c6 commit 4a7a9de

File tree

4 files changed

+36
-18
lines changed

4 files changed

+36
-18
lines changed

src/strands/agent/agent.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from .. import _identifier
3434
from .._async import run_async
3535
from ..event_loop.event_loop import event_loop_cycle
36-
from ..tools._tool_helpers import generate_interrupted_tool_result_content
36+
from ..tools._tool_helpers import generate_missing_tool_result_content
3737

3838
if TYPE_CHECKING:
3939
from ..experimental.tools import ToolProvider
@@ -829,7 +829,7 @@ def _convert_prompt_to_messages(self, prompt: AgentInput) -> Messages:
829829
self._append_message(
830830
{
831831
"role": "user",
832-
"content": generate_interrupted_tool_result_content(tool_use_ids),
832+
"content": generate_missing_tool_result_content(tool_use_ids),
833833
}
834834
)
835835
if isinstance(prompt, str):

src/strands/session/repository_session_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing import TYPE_CHECKING, Any, Optional
55

66
from ..agent.state import AgentState
7-
from ..tools._tool_helpers import generate_interrupted_tool_result_content
7+
from ..tools._tool_helpers import generate_missing_tool_result_content
88
from ..types.content import Message
99
from ..types.exceptions import SessionException
1010
from ..types.session import (
@@ -194,7 +194,7 @@ def _fix_broken_tool_use(self, messages: list[Message]) -> list[Message]:
194194
"Adding toolResult content blocks to create valid conversation."
195195
)
196196
# Create the missing toolResult content blocks
197-
missing_content_blocks = generate_interrupted_tool_result_content(missing_tool_use_ids)
197+
missing_content_blocks = generate_missing_tool_result_content(missing_tool_use_ids)
198198

199199
if tool_result_ids:
200200
# If there were any toolResult ids, that means only some of the content blocks are missing

src/strands/tools/_tool_helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def noop_tool() -> None:
1616
pass
1717

1818

19-
def generate_interrupted_tool_result_content(tool_use_ids: list[str]) -> list[ContentBlock]:
19+
def generate_missing_tool_result_content(tool_use_ids: list[str]) -> list[ContentBlock]:
2020
"""Generate ToolResult content blocks for orphaned ToolUse message."""
2121
return [
2222
{

tests/strands/agent/test_agent.py

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2246,11 +2246,18 @@ def test_agent_fixes_orphaned_tool_use_on_new_prompt(mock_model, agenerator):
22462246

22472247
# Should have added toolResult message
22482248
assert len(agent.messages) >= 3
2249-
assert agent.messages[1]["role"] == "user"
2250-
assert "toolResult" in agent.messages[1]["content"][0]
2251-
assert agent.messages[1]["content"][0]["toolResult"]["toolUseId"] == "orphaned-123"
2252-
assert agent.messages[1]["content"][0]["toolResult"]["status"] == "error"
2253-
assert agent.messages[1]["content"][0]["toolResult"]["content"][0]["text"] == "Tool was interrupted."
2249+
assert agent.messages[1] == {
2250+
"role": "user",
2251+
"content": [
2252+
{
2253+
"toolResult": {
2254+
"toolUseId": "orphaned-123",
2255+
"status": "error",
2256+
"content": [{"text": "Tool was interrupted."}],
2257+
}
2258+
}
2259+
],
2260+
}
22542261

22552262

22562263
def test_agent_fixes_multiple_orphaned_tool_uses(mock_model, agenerator):
@@ -2291,14 +2298,25 @@ def test_agent_fixes_multiple_orphaned_tool_uses(mock_model, agenerator):
22912298
agent("Continue")
22922299

22932300
# Should have toolResult for both toolUse IDs
2294-
tool_results = agent.messages[1]["content"]
2295-
assert len(tool_results) == 2
2296-
tool_use_ids = {tr["toolResult"]["toolUseId"] for tr in tool_results}
2297-
assert tool_use_ids == {"orphaned-123", "orphaned-456"}
2298-
2299-
for tool_result in tool_results:
2300-
assert tool_result["toolResult"]["status"] == "error"
2301-
assert tool_result["toolResult"]["content"][0]["text"] == "Tool was interrupted."
2301+
assert agent.messages[1] == {
2302+
"role": "user",
2303+
"content": [
2304+
{
2305+
"toolResult": {
2306+
"toolUseId": "orphaned-123",
2307+
"status": "error",
2308+
"content": [{"text": "Tool was interrupted."}],
2309+
}
2310+
},
2311+
{
2312+
"toolResult": {
2313+
"toolUseId": "orphaned-456",
2314+
"status": "error",
2315+
"content": [{"text": "Tool was interrupted."}],
2316+
}
2317+
},
2318+
],
2319+
}
23022320

23032321

23042322
def test_agent_skips_fix_for_valid_conversation(mock_model, agenerator):

0 commit comments

Comments
 (0)