Implement self-healing system Phase 1: Error capture and logging
- Add SelfHealingSystem with error observation infrastructure - Capture errors with full context: type, message, stack trace, intent, inputs - Log to MEMORY.md with deduplication (max 3 attempts per error signature) - Integrate error capture in agent, tools, runtime, and scheduler - Non-invasive: preserves all existing error handling behavior - Foundation for future diagnosis and auto-fixing capabilities Phase 1 of 4-phase rollout - observation only, no auto-fixing yet. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
9
tools.py
9
tools.py
@@ -324,7 +324,7 @@ TOOL_DEFINITIONS = [
|
||||
]
|
||||
|
||||
|
||||
def execute_tool(tool_name: str, tool_input: Dict[str, Any]) -> str:
|
||||
def execute_tool(tool_name: str, tool_input: Dict[str, Any], healing_system: Any = None) -> str:
|
||||
"""Execute a tool and return the result as a string."""
|
||||
try:
|
||||
# File tools
|
||||
@@ -407,6 +407,13 @@ def execute_tool(tool_name: str, tool_input: Dict[str, Any]) -> str:
|
||||
else:
|
||||
return f"Error: Unknown tool '{tool_name}'"
|
||||
except Exception as e:
|
||||
if healing_system:
|
||||
healing_system.capture_error(
|
||||
error=e,
|
||||
component=f"tools.py:{tool_name}",
|
||||
intent=f"Executing {tool_name} tool",
|
||||
context={"tool_name": tool_name, "input": tool_input},
|
||||
)
|
||||
return f"Error executing {tool_name}: {str(e)}"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user