Post

LLM이 진짜 '손발'을 갖게 되었습니다: Composio 완벽 분석

LLM이 진짜 '손발'을 갖게 되었습니다: Composio 완벽 분석

최근 AI 개발 씬(Scene)에서 가장 뜨거운 화두는 단연 ‘에이전트(Agent)’입니다. 단순히 묻는 말에 대답만 하는 챗봇을 넘어, 직접 이메일을 보내고, 코드를 커밋하고, 캘린더 일정을 잡는 ‘행동하는 AI’가 주목받고 있습니다.

하지만 직접 에이전트를 만들어본 개발자라면 누구나 마주치는 거대한 장벽이 있습니다. 바로 ‘외부 서비스 연동’‘인증(Authentication)’ 문제입니다.

“GitHub API를 연동하려면 OAuth 토큰은 어떻게 관리하지?” “Slack, Jira, Gmail… 이 많은 API 명세를 언제 다 학습시키지?”

오늘 소개할 Composio는 이 문제를 단 한 줄의 코드로 해결해주는, 말 그대로 AI 에이전트를 위한 만능 도구 상자입니다.


1. Composio란 무엇인가?

Composio는 AI 에이전트와 외부 애플리케이션(SaaS) 사이를 연결하는 통합 인프라입니다. 쉽게 말해, LLM(거대언어모델)에게 ‘손’과 ‘발’을 달아주는 플랫폼입니다.

기존에는 개발자가 직접 GitHub API 문서를 보고 requests 코드를 짜고, OAuth 토큰 갱신 로직을 구현해야 했습니다. 하지만 Composio를 사용하면, “GitHub 스타(Star) 눌러줘”라는 자연어 명령을 실행하기 위해 필요한 모든 도구와 인증 과정을 관리형(Managed)으로 제공받을 수 있습니다.

2. 왜 Composio가 특별한가? (핵심 기능)

GitHub README와 공식 문서를 기반으로 분석한 Composio의 핵심 기능은 다음과 같습니다.

① 100개 이상의 사전 구축된 도구 (Pre-built Tools)

GitHub, Slack, Google Calendar, Jira, Notion, Discord 등 개발자와 비즈니스에 필요한 거의 모든 주요 SaaS가 이미 연동되어 있습니다. API 명세를 일일이 찾아볼 필요 없이, Composio가 제공하는 ‘Action’을 가져다 쓰기만 하면 됩니다.

② 관리형 인증 (Managed Authentication) [핵심]

가장 강력한 기능입니다. OAuth 2.0 흐름, 액세스 토큰 관리, 리프레시 토큰 갱신 등 복잡한 인증 절차를 Composio가 대신 처리합니다.

  • User-Level Auth: 에이전트가 ‘내 계정’으로 로그인해서 동작하도록 만들 수 있습니다.
  • 보안: 토큰 유출 걱정 없이 안전하게 자격 증명을 관리합니다.

③ 프레임워크 불문 (Framework Agnostic)

특정 라이브러리에 종속되지 않습니다. 현재 가장 인기 있는 AI 프레임워크들을 모두 지원합니다.

  • LangChain
  • AutoGen (Microsoft)
  • CrewAI
  • LlamaIndex
  • OpenAI Assistant API

④ 트리거(Triggers) 및 액션

단순히 AI가 도구를 호출하는 것뿐만 아니라, 외부 이벤트(예: “새로운 GitHub 이슈가 등록되면”)를 감지하여 에이전트를 깨우는 트리거 기능도 지원합니다.


3. 아키텍처: 어떻게 작동하는가?

Composio의 작동 원리는 ‘Function Calling’의 중개자 역할로 이해하면 쉽습니다.

  1. 사용자/개발자: Composio 플랫폼에서 GitHub, Slack 등의 ‘Integration’을 활성화합니다.
  2. Composio SDK: 선택한 도구들의 API 명세(OpenAPI Spec)를 LLM이 이해할 수 있는 함수 정의(Function Definition) 형태로 변환하여 에이전트에게 전달합니다.
  3. LLM (Agent): 사용자의 명령(예: “이 repo에 스타 줘”)을 분석하고, Composio가 제공한 함수 중 적절한 것(github_star_repo)을 선택합니다.
  4. Composio 서버: 에이전트의 요청을 받아, 관리 중인 인증 토큰을 사용하여 실제 외부 API를 안전하게 호출하고 결과를 반환합니다.

이 과정에서 개발자는 “인증 헤더를 어떻게 넣지?”라는 고민에서 완전히 해방됩니다.


4. 설치 및 설정 (Installation)

Python과 JavaScript/TypeScript를 모두 지원하지만, 여기서는 Python을 기준으로 설명합니다.

1. 패키지 설치 핵심 코어 패키지를 설치합니다.

1
pip install composio-core

2. CLI 로그인 및 설정 터미널에서 Composio 계정에 로그인하고 필요한 도구를 추가합니다. 이 과정이 매우 직관적입니다.

1
2
3
4
5
6
7
8
# Composio 계정 로그인
composio login

# GitHub 도구 추가 (웹 브라우저가 열리며 인증 진행)
composio add github

# 현재 연동된 앱 확인
composio apps

5. 실전 사용 가이드 (Usage Guide)

가장 대중적인 OpenAILangChain을 사용하여, “Composio GitHub 저장소에 스타(Star)를 누르는 에이전트”를 만들어 보겠습니다.

예제 1: OpenAI SDK와 직접 연동 (Raw Python)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os
from openai import OpenAI
from composio import Composio, App

# 1. 클라이언트 초기화
openai_client = OpenAI(api_key="YOUR_OPENAI_KEY")
composio_client = Composio(api_key="YOUR_COMPOSIO_KEY")

# 2. GitHub 도구 가져오기
# 'github' 앱의 모든 기능을 가져오거나, 특정 기능만 골라올 수 있습니다.
tools = composio_client.get_tools(apps=[App.GITHUB])

# 3. 에이전트 실행 (도구 정보 주입)
instruction = "ComposioHQ/composio 저장소에 스타(Star)를 눌러줘."

response = openai_client.chat.completions.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": instruction}],
    tools=tools, # Composio가 변환해준 도구 정의
    tool_choice="auto"
)

# 4. 결과 실행 (Composio가 실제 API 호출 처리)
result = composio_client.handle_tool_calls(response)
print(result)

예제 2: LangChain과 연동 (더 간결함)

LangChain을 사용하면 도구 바인딩과 실행 과정을 더욱 추상화할 수 있습니다. (composio-langchain 설치 필요)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_functions_agent, AgentExecutor
from composio_langchain import ComposioToolSet, App

# 1. LLM 설정
llm = ChatOpenAI(model="gpt-4-turbo")

# 2. Composio 툴셋 설정
# 'github' 앱의 'star' 관련 액션만 콕 집어서 가져올 수도 있습니다.
toolset = ComposioToolSet()
tools = toolset.get_tools(apps=[App.GITHUB])

# 3. 에이전트 생성 및 실행
prompt = ... # (LangChain 기본 프롬프트 사용)
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 4. 명령 수행
agent_executor.invoke(
    {"input": "GitHub에서 ComposioHQ/composio 레포지토리에 스타를 눌러줘"}
)

위 코드를 실행하면, 실제로 내 GitHub 계정으로 해당 저장소에 Star가 눌리는 것을 확인할 수 있습니다. 놀랍도록 간단합니다.


6. 대표적인 활용 사례 (Use Cases)

  1. AI 코딩 어시스턴트 (SW Engineering Agent)
    • GitHub Issues를 읽고 -> 코드를 수정하고 -> Pull Request를 생성하고 -> Slack으로 팀원에게 알림을 보냅니다. (Swe-agent와 유사)
  2. 개인 비서 (Personal Assistant)
    • Google Calendar 일정을 확인하고 -> Gmail로 회의 초대장을 보내고 -> Notion에 회의록 초안을 생성합니다.
  3. 영업 자동화 (Sales Ops)
    • 새로운 리드(Lead)가 들어오면 Salesforce에 등록하고 -> 관련 문서를 검색하여 -> 맞춤형 콜드 메일을 발송합니다.

7. 장단점 비교 (Pros & Cons)

장점 (Pros):

  • 압도적인 생산성: 인증 구현에 며칠을 쓸 필요 없이 5분 만에 연동 가능합니다.
  • 표준화된 인터페이스: Slack이든 Jira든 동일한 방식으로 도구를 호출할 수 있습니다.
  • 보안: 토큰 관리를 위임하므로 로컬 파일에 키를 저장하는 위험을 줄일 수 있습니다.

단점 (Cons):

  • 의존성: Composio 서버가 다운되면 에이전트의 외부 연동 기능도 멈출 수 있습니다. (물론 로컬 호스팅 옵션도 존재합니다).
  • 커스텀 복잡도: 지원하지 않는 사내 자체 API(Private API)를 연동하려면 커스텀 툴 정의 과정을 거쳐야 합니다.

8. 결론 (Conclusion)

Composio는 AI 에이전트 개발의 패러다임을 “어떻게 연결하지?”에서 “무엇을 시킬까?”로 바꿔놓았습니다.

지금까지 LLM이 ‘뇌’ 역할을 해왔다면, Composio는 그 뇌에 강력한 근육과 신경망을 연결해준 셈입니다. LangChain이나 AutoGen으로 에이전트를 개발하고 계신다면, 복잡한 API 연동에 시간을 낭비하지 말고 Composio를 도입해보시길 강력히 추천합니다.

이제 여러분의 에이전트는 단순히 말만 하는 챗봇이 아니라, 세상을 변화시키는 행동을 할 수 있게 되었습니다.

References

  • https://github.com/ComposioHQ/composio
  • https://docs.composio.dev
  • https://docs.composio.dev/framework/langchain
  • https://docs.composio.dev/framework/openai
This post is licensed under CC BY 4.0 by the author.