Refactor agent.py and graph.py to enhance agent functionality and logging. Introduce Configuration class for managing parameters, improve state handling in AgentRunner, and update agent graph to support step logging and user interaction. Add new tests for agent capabilities and update requirements for code formatting tools.
Add test_agent.py with unit tests for AgentRunner functionality, including tests for question handling and basic math calculations. Implement logging for better traceability during tests.
Refactor AgentNode in graph.py to utilize CodeAgent instead of ToolCallingAgent, update prompt template loading to use code_agent.yaml, and enhance step callback logging for improved debugging.
Enhance logging in AgentNode's __call__ method in graph.py to track state before and after processing, including detailed information about messages, question, and answer.