AI Sparkup

복잡한 AI 세상을 읽는 힘

AI 에이전트 개발을 위한 필수 도구, Composio 완벽 가이드

Composio 로고

AI 도구와 LLM(대규모 언어 모델)이 급속도로 발전함에 따라, 이를 실제 비즈니스 환경에 통합하는 것은 개발자와 기업에게 큰 과제가 되었습니다. 다양한 API와 서비스를 AI 에이전트에 연결하는 작업은 보통 복잡한 인증 관리와 함께 많은 코드 작성을 필요로 합니다. 이러한 문제를 해결하기 위해 등장한 Composio는 AI 에이전트를 위한 통합 도구 플랫폼으로, 개발 프로세스를 대폭 간소화시켜 줍니다.

Composio란 무엇인가?

Composio는 AI 에이전트와 LLM을 다양한 도구 및 서비스와 연결해주는 생산성 중심의 통합 플랫폼입니다. 250개 이상의 도구를 지원하며, GitHub, Notion, Gmail, Slack, Hubspot, Salesforce 등 다양한 소프트웨어 도구는 물론 파일 관리, 쉘 명령, 코드 분석과 같은 시스템 작업까지 AI 에이전트로 제어할 수 있게 해줍니다.

Composio의 가장 큰 장점은 복잡한 인증 관리를 자동화하고, 도구 호출 정확도를 최대 40%까지 향상시킨다는 점입니다. OpenAI, Groq, Claude, LlamaIndex, Langchain, CrewAI, Autogen, Gemini 등 다양한 AI 프레임워크를 지원하여 어떤 환경에서도 쉽게 통합할 수 있습니다.

Composio의 주요 특징

  1. 250+ 도구 지원: GitHub, Notion, Gmail 등 다양한 소프트웨어 도구와 파일 관리, 쉘 명령어 등 시스템 작업까지 지원
  2. 다양한 프레임워크 호환성: OpenAI, Claude, Langchain, CrewAI 등 인기 있는 AI 프레임워크와 완벽하게 통합
  3. 인증 관리 자동화: OAuth, API 키, JWT 등 다양한 인증 프로토콜을 자동으로 관리
  4. 도구 호출 정확도 향상: 최적화된 설계로 도구 호출 정확도를 최대 40% 개선
  5. 사용자 정의 도구 지원: 플러그인 아키텍처를 통해 사용자 정의 도구 및 확장 가능

시작하기: Composio 설치 및 설정

Composio를 사용하기 위한 첫 단계를 알아보겠습니다. 파이썬과 자바스크립트 두 환경 모두 지원하므로, 필요에 따라 선택할 수 있습니다.

Python 환경에서 설치하기

pip install composio-core

OpenAI 플러그인을 함께 설치하려면:

pip install composio-openai

JavaScript 환경에서 설치하기

npm install composio-core

API 키 설정

Composio를 사용하려면 API 키가 필요합니다. Composio 웹사이트에서 가입하고 API 키를 발급받을 수 있습니다.

발급받은 API 키는 환경 변수로 설정하는 것이 좋습니다:

export COMPOSIO_API_KEY=YOUR_API_KEY

또는 .env 파일에 저장할 수도 있습니다:

echo "COMPOSIO_API_KEY=YOUR_API_KEY" >> .env

첫 번째 AI 에이전트 만들기: GitHub 레포지토리 스타하기

이제 간단한 예제를 통해 실제로 Composio를 사용하는 방법을 알아보겠습니다. GitHub 도구를 사용하여 레포지토리에 별표를 주는 AI 에이전트를 만들어 보겠습니다.

1. GitHub 계정 연결하기

먼저 Composio에 GitHub 계정을 연결해야 합니다. 터미널에서 다음 명령을 실행하세요:

composio add github

명령을 실행하면 브라우저가 열리고 GitHub 인증 페이지로 이동합니다. 인증을 완료하면 계정이 연결됩니다.

2. Python으로 에이전트 만들기

다음은 파이썬에서 OpenAI를 사용하여 GitHub 레포지토리에 별표를 주는 간단한 에이전트를 만드는 코드입니다:

from openai import OpenAI
from composio_openai import ComposioToolSet, App, Action
from dotenv import load_dotenv
import os

# 환경 변수 로드
load_dotenv()

# OpenAI 클라이언트 초기화
openai_client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# Composio 도구 세트 초기화
composio_tool_set = ComposioToolSet()

# GitHub 별표 기능 가져오기
actions = composio_tool_set.get_actions(
    actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]
)

# 작업 정의
my_task = "Star a repo composiohq/composio on GitHub"

# OpenAI 어시스턴트 설정
assistant_instruction = "You are a super intelligent personal assistant"

assistant = openai_client.beta.assistants.create(
    name="Personal Assistant",
    instructions=assistant_instruction,
    model="gpt-4-turbo",
    tools=actions,
)

# 스레드 생성
thread = openai_client.beta.threads.create()

# 메시지 생성
message = openai_client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content=my_task
)

# 도구가 포함된 에이전트 실행
run = openai_client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id
)

# 함수 호출 대기 및 처리
response_after_tool_calls = composio_tool_set.wait_and_handle_assistant_tool_calls(
    client=openai_client,
    run=run,
    thread=thread,
)

print(response_after_tool_calls)

3. JavaScript로 에이전트 만들기

JavaScript를 사용하는 개발자를 위한 코드도 살펴보겠습니다:

import { OpenAIToolSet } from "composio-core";
import OpenAI from "openai";
import dotenv from "dotenv";

dotenv.config();

const toolset = new OpenAIToolSet({ apiKey: process.env.COMPOSIO_API_KEY });
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

async function main() {
  // GitHub 도구 가져오기
  const tools = await toolset.getTools({ 
    actions: ["GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER"] 
  });

  // GitHub 어시스턴트 생성
  const githubAssistant = await openai.beta.assistants.create({
    name: "Github Assistant",
    instructions: "You're a GitHub Assistant, you can do operations on GitHub",
    tools: tools,
    model: "gpt-4o"
  });

  // 스레드 및 실행 생성
  const thread = await openai.beta.threads.create();
  const run = await openai.beta.threads.runs.create(thread.id, {
    assistant_id: githubAssistant.id,
    instructions: "Star the repository 'composiohq/composio'",
    tools: tools,
    model: "gpt-4o",
    stream: false
  });
  
  // 도구 호출 처리
  const call = await toolset.waitAndHandleAssistantToolCalls(openai, run, thread);
  console.log(call);
}

main().catch(console.error);

고급 기능: 사용 사례에 맞는 도구 찾기

Composio는 단순히 도구를 나열하는 것을 넘어 AI를 활용하여 원하는 사용 사례에 가장 적합한 도구를 자동으로 찾아주는 기능도 제공합니다.

# 사용 사례 기반 도구 찾기
actions = toolset.find_actions_by_use_case(
    use_case="star a repo, print octocat",
    advanced=True,
)

# 찾은 도구들 가져오기
tools = toolset.get_tools(actions=actions)

이 기능을 활용하면 개발자가 어떤 도구를 사용해야 할지 몰라도, 원하는 작업에 필요한 도구를 자동으로 찾아서 사용할 수 있습니다.

실제 사용 사례: LLM과 도구 호출 루프 구현하기

실제 애플리케이션에서는 대화형 AI 에이전트가 필요한 경우가 많습니다. 다음은 LLM과 도구 호출 루프를 구현하는 예제입니다:

# LLM과 도구 호출 루프
while True:
    try:
        # LLM에 요청 보내기
        response = client.chat.completions.create(
            model="gpt-4o",
            tools=tools,
            messages=messages,
        )

        # LLM이 도구 사용을 원하는지 확인
        if response.choices[0].finish_reason != "tool_calls":
            print(response.choices[0].message.content)
            break

        # 도구 호출 실행
        result = toolset.handle_tool_calls(response)

        # 대화 기록 저장
        messages.append({
            "role": "assistant",
            "content": "",
            "tool_calls": response.choices[0].message.tool_calls,
        })
        
        for tool_call in response.choices[0].message.tool_calls:
            messages.append({
                "role": "tool",
                "content": str(result),
                "tool_call_id": tool_call.id,
            })
    except Exception as error:
        print(f"Error: {error}")
        break

이 패턴을 사용하면 AI 에이전트가 사용자의 요청에 따라 필요한 도구를 호출하고, 그 결과를 다시 LLM에 전달하여 자연스러운 대화를 이어갈 수 있습니다.

도구 호출 흐름

Composio MCP: 더 강력한 통합

Composio는 최근 MCP(Model Context Protocol) 서버도 출시했습니다. MCP 서버를 사용하면 Claude, Cursor, Windsurf와 같은 도구를 100개 이상의 완전 관리형 MCP 서버와 연결할 수 있습니다. 이를 통해 보안 인증이 통합된 환경에서 더 강력한 AI 애플리케이션을 구축할 수 있습니다.

기업 활용 사례

Composio는 이미 여러 기업에서 성공적으로 활용되고 있습니다:

  1. 11x AI: 40억 원 규모의 엔터프라이즈 계약을 체결하고 380시간의 엔지니어링 시간을 절약했습니다. AI SDR 에이전트와 전화 에이전트를 통해 영업 운영을 자동화했습니다.
  2. AssistaAI: Composio를 활용하여 개발 시간을 8배 단축하고 수백 시간의 작업 시간을 절약했습니다. Gmail, Calendar, GitHub, Drive 등 여러 앱과 도구를 중앙 허브로 통합했습니다.
  3. Gorilla(UC Berkeley): AgentArena 플레이그라운드 개발을 위해 Composio를 사용하여 수백 시간의 엔지니어링 시간을 절약했습니다.
  4. Fabrile(Ingram Technologies): 30분 만에 Google 앱을 통합하여 TechCrunch Disrupt에서 MVP를 선보였습니다.

실용적인 활용 사례: Composio가 빛나는 순간

Composio를 사용하면 다양한 비즈니스 시나리오에서 AI 에이전트를 효과적으로 활용할 수 있습니다. 아래 활용 사례들을 통해 Composio가 어떻게 실제 업무를 혁신할 수 있는지 살펴보겠습니다.

1. 개발자 생산성 향상을 위한 PR 리뷰 에이전트

개발팀에서는 코드 리뷰에 많은 시간을 소비합니다. Composio를 사용하면 GitHub 통합을 통해 자동으로 PR(Pull Request)을 분석하고 코드 개선 사항을 제안하는 AI 에이전트를 구축할 수 있습니다.

# PR 리뷰 기능을 위한 GitHub 도구 가져오기
actions = composio_tool_set.get_actions(
    actions=[
        Action.GITHUB_GET_PULL_REQUEST,
        Action.GITHUB_LIST_PULL_REQUEST_FILES,
        Action.GITHUB_CREATE_PULL_REQUEST_REVIEW_COMMENT
    ]
)

# PR 리뷰 에이전트 생성 및 실행
# (이하 코드는 기존 예제와 유사)

이 에이전트는 코드 규칙 준수 여부, 잠재적 버그, 성능 문제를 자동으로 확인하여 개발자의 시간을 절약하고 코드 품질을 향상시킵니다.

2. 고객 지원 자동화 시스템

Composio를 활용하여 이메일, Slack, 챗봇을 통합한 고객 지원 시스템을 구축할 수 있습니다. 고객 문의가 들어오면 AI 에이전트가 내용을 분석하고 적절한 대응을 제안하거나 직접 처리합니다.

# 고객 지원 통합을 위한 도구 설정
support_actions = composio_tool_set.get_actions(
    actions=[
        Action.GMAIL_READ_MESSAGES,
        Action.GMAIL_SEND_MESSAGE,
        Action.SLACK_POST_MESSAGE,
        Action.JIRA_CREATE_ISSUE
    ]
)

# 고객 지원 에이전트 설정
support_instruction = "You are a customer support assistant that helps triage and respond to customer inquiries."

이 시스템은 단순 문의에 자동으로 응답하고, 복잡한 문제는 적절한 팀원에게 할당하며, 지식 베이스를 검색하여 해결책을 제안할 수 있습니다.

3. 데이터 분석 및 보고서 생성 워크플로우

분석가들은 데이터 수집, 처리, 시각화, 보고서 작성에 많은 시간을 소비합니다. Composio로 이러한 작업을 자동화할 수 있습니다:

# 데이터 분석 워크플로우를 위한 도구
analysis_actions = composio_tool_set.get_actions(
    actions=[
        Action.GOOGLE_SHEETS_READ,
        Action.GOOGLE_SHEETS_WRITE,
        Action.FILE_TOOL_READ_FILE,
        Action.CODE_INTERPRETER_EXECUTE_PYTHON,
        Action.GOOGLE_DOCS_CREATE_DOCUMENT
    ]
)

이 에이전트는 다양한 소스에서 데이터를 수집하고, 분석 코드를 실행한 후, 결과를 시각화하여 Google Docs나 Slack으로 자동 보고서를 생성할 수 있습니다.

4. 영업 프로세스 최적화

Composio를 CRM 시스템과 통합하여 영업 프로세스를 최적화할 수 있습니다:

# 영업 최적화를 위한 도구
sales_actions = composio_tool_set.get_actions(
    actions=[
        Action.SALESFORCE_QUERY_RECORDS,
        Action.HUBSPOT_GET_CONTACT,
        Action.GMAIL_SEND_MESSAGE,
        Action.CALENDAR_CREATE_EVENT
    ]
)

이 에이전트는 리드 상태를 분석하고, 후속 이메일을 자동으로 보내며, 미팅 일정을 잡고, 영업 활동을 추적하여 영업팀의 효율성을 높입니다.

5. 콘텐츠 마케팅 자동화

마케팅 팀을 위한 콘텐츠 제작 및 배포를 자동화할 수 있습니다:

# 콘텐츠 마케팅을 위한 도구
marketing_actions = composio_tool_set.get_actions(
    actions=[
        Action.GOOGLE_SEARCH,
        Action.WORDPRESS_CREATE_POST,
        Action.TWITTER_POST_TWEET,
        Action.LINKEDIN_SHARE_POST
    ]
)

이 에이전트는 트렌드 분석, 콘텐츠 아이디어 제안, 초안 작성, 여러 채널을 통한 콘텐츠 배포까지 자동화할 수 있습니다.

6. 개인 생산성 비서 구축

개인 생산성 향상을 위한 AI 비서도 Composio로 구현할 수 있습니다:

# 개인 생산성 비서를 위한 도구
productivity_actions = composio_tool_set.get_actions(
    actions=[
        Action.CALENDAR_LIST_EVENTS,
        Action.GMAIL_SEARCH_MESSAGES,
        Action.NOTION_SEARCH,
        Action.SLACK_SEARCH_MESSAGES
    ]
)

이 AI 비서는 일정 관리, 이메일 요약, 할 일 추적, 회의 준비 자료 수집 등을 자동화하여 개인의 생산성을 크게 향상시킵니다.

결론: AI 에이전트 개발의 미래

Composio는 AI 에이전트와 LLM을 실제 비즈니스 환경에 통합하는 과정을 대폭 간소화합니다. 250개 이상의 도구 지원, 강력한 인증 관리, 다양한 프레임워크 호환성 등의 특징을 갖춘 Composio는 AI 에이전트 개발의 미래를 열어가고 있습니다.

AI 기술이 빠르게 발전함에 따라, Composio와 같은 도구는 개발자와 기업이 복잡한 기술적 세부 사항에 시간을 낭비하지 않고 실제 비즈니스 가치를 창출하는 데 집중할 수 있게 돕습니다. 단 몇 줄의 코드로 강력한 AI 에이전트를 구축하고, 다양한 외부 서비스와 도구를 연결할 수 있게 되면서, AI의 실제 비즈니스 활용은 더욱 가속화될 것입니다.

오늘 Composio를 시작해 보고, AI 에이전트 개발의 새로운 패러다임을 경험해 보세요!


참고자료:


Awsom GPT에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다