diff --git a/agents/s01_agent_loop.py b/agents/s01_agent_loop.py index 0508800..8455ebf 100644 --- a/agents/s01_agent_loop.py +++ b/agents/s01_agent_loop.py @@ -73,6 +73,8 @@ def run_bash(command: str) -> str: return out[:50000] if out else "(no output)" except subprocess.TimeoutExpired: return "Error: Timeout (120s)" + except (FileNotFoundError, OSError) as e: + return f"Error: {e}" # -- The core pattern: a while loop that calls tools until the model stops -- diff --git a/agents/s04_subagent.py b/agents/s04_subagent.py index 2cbf081..dda2737 100644 --- a/agents/s04_subagent.py +++ b/agents/s04_subagent.py @@ -61,6 +61,8 @@ def run_bash(command: str) -> str: return out[:50000] if out else "(no output)" except subprocess.TimeoutExpired: return "Error: Timeout (120s)" + except (FileNotFoundError, OSError) as e: + return f"Error: {e}" def run_read(path: str, limit: int = None) -> str: try: @@ -155,8 +157,9 @@ def agent_loop(messages: list): if block.type == "tool_use": if block.name == "task": desc = block.input.get("description", "subtask") - print(f"> task ({desc}): {block.input['prompt'][:80]}") - output = run_subagent(block.input["prompt"]) + prompt = block.input.get("prompt", "") + print(f"> task ({desc}): {prompt[:80]}") + output = run_subagent(prompt) else: handler = TOOL_HANDLERS.get(block.name) output = handler(**block.input) if handler else f"Unknown tool: {block.name}"