5.2.3 BaseTool 클래스 상속
BaseTool은 Tool 클래스를 직접 구현할 때 사용하는 기본 클래스입니다. @tool과 StructuredTool.from_function()이 기존 함수를 Tool로 변환하는 방식이라면, BaseTool은 Tool 자체를 클래스 형태로 직접 만드는 방식입니다.
이 방식에서는 BaseTool을 상속받아 클래스를 정의하고, 동기 실행은 _run(), 비동기 실행은 _arun() 메서드에 구현합니다. Tool이 내부 상태를 유지해야 하거나 초기화 과정이 복잡한 경우 또는 동기와 비동기 실행을 모두 직접 제어해야 할 때 사용할 수 있습니다.