RunAgent: Python으로 개발한 AI Agent를 Rust, Go, Javascript 등에서 직접 호출할 수 있도록 해주는 플랫폼

RunAgent 소개

현대의 AI 개발 환경은 매우 다채로운 언어와 프레임워크의 조합으로 구성되어 있습니다. Python은 AI 개발의 사실상 표준이지만, 실제 서비스 환경에서는 Rust, Go, Javascript 등 성능 및 통합 목적에 따라 다양한 언어가 활용됩니다. 그러나 이런 다중 언어 환경에서 Python으로 구현한 AI 에이전트를 다양한 언어 기반 애플리케이션과 통합하는 일은 여전히 까다로운 작업입니다. RunAgent는 이러한 복잡성을 해소하고자 등장한 플랫폼입니다.

RunAgent는 AI 에이전트를 한 번 Python으로 작성하면, 이를 다양한 언어에서 네이티브하게 호출하고 통합할 수 있는 범용 SDK와 개발 서버를 제공합니다. REST API를 따로 구성하지 않아도 되며, Python으로 정의한 함수들이 자연스럽게 다른 언어에서 함수처럼 호출될 수 있도록 지원합니다. 개발자는 로컬에서 빠르게 개발하고 디버깅할 수 있으며, 추후에는 RunAgent의 클라우드 환경에 배포해 확장성 있는 운영도 가능합니다.

RunAgent는 단순한 SDK 이상의 의미를 지닙니다. LangChain, LangGraph, CrewAI, Letta, Agno 등 다양한 프레임워크에 맞춘 템플릿을 제공하며, 각 언어별 SDK는 완성도 높은 스트리밍 기능과 자동 재시도, 인증 처리 등을 내장하고 있어 실제 프로덕션에 사용할 수 있을 만큼 강력합니다. 또한 CLI 기반의 프로젝트 생성, 서버 실행, 배포 등 전체 개발 라이프사이클을 포괄하는 도구를 제공합니다. RunAgent는 로컬 환경에서의 빠른 개발을 위한 FastAPI 기반 서버를 제공하며, 추후 서버리스 기반 클라우드 배포도 지원 예정입니다. 이처럼 개발에서 배포까지 하나의 흐름으로 연결되며, 마치 Firebase나 Vercel 같은 통합 개발 플랫폼에 가까운 모습입니다.

이처럼 다양한 언어와 플랫폼을 아우르며 AI 에이전트의 통합을 간소화하고자 하는 RunAgent는, 멀티 언어 팀, 마이크로서비스 아키텍처, 기존 레거시 시스템과의 통합에 이상적인 솔루션이라 할 수 있습니다. 특히 스트리밍 응답과 고성능 언어 호환이 필요한 환경에서는 더욱 유용합니다.

RunAgent SDK의 구성과 사용 방식

RunAgent는 Python, Rust, Javascript(TypeScript), Go용 SDK를 제공합니다. 이 SDK들은 각각 해당 언어의 방식에 맞게 스트리밍 응답을 지원하며, 기본적인 함수 호출을 그대로 사용할 수 있도록 구성되어 있습니다.

예를 들어 Python에서는 다음과 같은 형태로 에이전트를 사용할 수 있습니다:

from runagent import RunAgentClient

ra = RunAgentClient(agent_id="...", entrypoint_tag="minimal", local=True)
result = ra.run(message="Remote work의 장점은?")
print(result)

Javascript에서는 async iterator를 활용한 스트리밍도 다음과 같이 자연스럽습니다:

for await (const chunk of ra.run({ message: "Remote work의 장점은?" })) {
    process.stdout.write(chunk);
}

Rust와 Go SDK도 언어에 맞춘 형태로 반복 가능한 응답 스트리밍을 제공합니다.

프로젝트 구조와 에이전트 구성

RunAgent 프로젝트는 일반적으로 다음과 같은 구조를 갖습니다:

my-agent/
├── __init__.py
├── email_agent.py
├── main.py
└── runagent.config.json

중요한 설정은 runagent.config.json에 정의되며, 여기에 어떤 Python 함수가 SDK에서 노출될지(entrypoints) 명시됩니다. mock_response()와 mock_response_stream() 같은 함수는 각각 일반 응답과 스트리밍 응답에 대응됩니다.

{
  "agent_architecture": {
    "entrypoints": [
      {
        "file": "main.py",
        "module": "mock_response",
        "tag": "minimal"
      },
      {
        "file": "main.py",
        "module": "mock_response_stream",
        "tag": "minimal_stream"
      }
    ]
  }
}

CLI 기반 개발 흐름

RunAgent는 다음과 같은 CLI 명령어를 통해 개발 및 배포를 지원합니다:

  • runagent init : 에이전트 템플릿 생성
  • runagent serve : 로컬 서버 실행
  • runagent deploy : 클라우드 배포 (예정)
  • runagent run : 배포된 에이전트 실행
  • runagent setup : 인증 정보 설정

특히 템플릿 초기화 시에는 LangGraph, CrewAI, Letta 등 다양한 프레임워크를 선택할 수 있어 개발 초기 진입 장벽을 낮추는 데 큰 도움이 됩니다.

라이선스

RunAgent 프로젝트는 Elastic License 2.0 (ELv2)로 공개 및 배포되고 있습니다. 개발, 테스트, 배포 용도로 자유롭게 사용할 수 있으며, 상업적 이용도 허용되지만 RunAgent를 서비스형 플랫폼(SaaS)으로 재판매하는 것은 제한됩니다. 자세한 내용은 Elastic License 2.0 (ELv2) 원문을 참고해주세요.

:house: RunAgent 홈페이지

:github: RunAgent 프로젝트 GitHub 저장소

https://github.com/runagent-dev/runagent

:books: RunAgent 공식 문서 사이트



이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요