LangChain을 활용한 AI 에이전트의 커스텀 시간 도구 개발

AI on Rails: Custom tool calls with LangChain.rb

작성자
Ruby AI News
발행일
2026년 01월 06일

핵심 요약

  • 1 AI 에이전트의 현재 날짜/시간 인지 능력 부재를 해결하기 위해 LangChain 기반의 커스텀 도구를 개발하는 방법을 설명합니다.
  • 2 Ruby로 `BaseTool`과 `DateTimeTool`을 구현하여 에이전트가 현재 시간을 다양한 형식으로 조회할 수 있도록 하는 과정을 소개합니다.
  • 3 도구에 현재 태스크 컨텍스트를 주입하고 에이전트에 통합하는 방법을 시연하며, 커스텀 도구의 강력함을 강조합니다.

도입

AI 에이전트는 종종 현재 날짜나 시간에 대한 정보를 알지 못하여 이벤트 예약, 일정 관리 등 시간 관련 기능 수행에 한계가 있습니다. 이러한 문제를 해결하고 에이전트의 유용성을 높이기 위해, LangChain 라이브러리를 활용하여 에이전트가 현재 날짜와 시간을 정확하게 인지하고 활용할 수 있도록 하는 커스텀 도구 개발의 필요성과 배경을 설명합니다. 본 내용은 Ruby 환경에서 LangChain 커스텀 도구를 구축하는 구체적인 방법을 다룹니다.

LangChain을 이용한 AI 에이전트의 커스텀 시간 도구 개발은 BaseToolDateTimeTool이라는 두 가지 핵심 컴포넌트를 중심으로 진행됩니다.

1. BaseTool 구현

  • 모든 커스텀 도구가 상속받을 기본 클래스인 BaseTool을 정의합니다.

  • 이 클래스는 LangChain::ToolDefinition을 확장하여 도구의 기본 기능을 제공합니다.

  • 도구 실행 시간을 측정하는 타이머 기능을 포함하여, 성능 벤치마킹 및 UI 출력을 위한 기반을 마련합니다.

  • attr_reader :taskinitialize(task)를 통해 현재 실행 중인 태스크 컨텍스트를 도구에 주입할 수 있도록 하여, 더욱 복잡하고 상황 인지적인 도구 개발의 가능성을 열어줍니다. 이는 향후 서브 에이전트 간의 통신에서도 중요한 역할을 합니다.

2. DateTimeTool 구현

  • BaseTool을 상속받아 DateTimeTool 클래스를 생성합니다.

  • 주요 기능인 get_current_date_time 메서드를 정의합니다.

  • 이 메서드는 AI가 요청하는 형식(format 속성, 기본값 default)에 따라 현재 시간을 반환합니다. format 속성은 required: false로 설정하여 AI가 원하는 시간 형식을 자유롭게 선택할 수 있도록 합니다.

  • Time.current를 사용하여 현재 시간을 가져오고, AI의 요청에 따라 시간을 포맷팅합니다.

  • 결과는 JSON 형태로 반환되며, 여기에는 포맷된 시간, 타임스탬프, 시간대 및 도구 실행 시간이 포함됩니다. AI는 JSON 형식의 응답을 선호하므로, BaseTool에 정의된 json_response 기능을 활용하여 깔끔한 JSON을 생성합니다.

3. 에이전트 통합 및 활용

  • 구현된 DateTimeTool을 에이전트의 available_tools 목록에 추가합니다.

  • 에이전트 설정(예: general_assistant)에서 date_time_tool을 활성화합니다.

  • 이를 통해 에이전트는 “지금 몇 시야?” 또는 “24시간 형식으로 알려줘”와 같은 질문에 대해 current_date_time 도구를 호출하여 정확한 현재 시간 정보를 제공할 수 있게 됩니다.

결론

LangChain을 활용하여 AI 에이전트의 커스텀 도구를 개발하는 과정은 에이전트의 기능을 확장하고 실제 세계와 상호작용하는 능력을 크게 향상시킵니다. 특히 현재 날짜/시간 정보를 인지하는 `DateTimeTool`의 구현은 에이전트가 예약, 일정 관리 등 시간 기반의 복잡한 작업을 수행하는 데 필수적인 기반을 제공합니다. `BaseTool`을 통해 도구 실행 시간을 측정하고 태스크 컨텍스트를 주입하는 설계는 향후 더 정교하고 상호작용적인 에이전트 시스템을 구축하는 데 중요한 초석이 될 것입니다. 이러한 커스텀 도구는 서브 에이전트와의 통신 등 고급 시나리오에서 더욱 강력한 잠재력을 발휘할 것입니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!