튜토리얼 카테고리 Skills 소개
ZH EN JA KO
스킬 플러그인

OpenClaw 채널 전용 도구 개발

· 6 분 소요

개요

OpenClaw의 7단계 도구 파이프라인 중 4단계인 "채널 전용 도구"는 독특한 설계입니다. 서로 다른 통신 플랫폼은 전혀 다른 상호작용 능력을 제공합니다. Discord는 풍부한 임베드 메시지와 리액션 시스템, Telegram은 인라인 키보드와 봇 API, Slack은 Block Kit과 워크플로, WhatsApp은 템플릿 메시지와 인터랙티브 리스트를 가지고 있습니다. 채널 전용 도구는 AI 에이전트가 각 플랫폼의 네이티브 기능을 충분히 활용할 수 있게 합니다.

채널 도구 아키텍처

채널 전용 도구는 도구 파이프라인의 4단계에서 주입됩니다. 시스템은 현재 세션의 channelType 속성에 따라 등록된 채널 도구 집합에서 매칭되는 도구를 선택하여 도구 목록에 추가합니다.

channelTools:
  discord:
    - discord_embed
    - discord_reaction
    - discord_thread
    - discord_voice
  telegram:
    - telegram_keyboard
    - telegram_sticker
    - telegram_poll
  slack:
    - slack_blocks
    - slack_workflow
    - slack_modal
  whatsapp:
    - whatsapp_template
    - whatsapp_list
    - whatsapp_location

Discord 전용 도구

discord_embed -- 임베드 메시지 도구

Discord의 임베드 메시지(Embed)는 제목, 설명, 필드, 이미지, 썸네일, 푸터를 포함하는 풍부한 형식의 콘텐츠를 지원합니다. 이 도구를 통해 AI 에이전트가 보기 좋은 구조화된 메시지를 만들 수 있습니다.

도구 매개변수: title, description, color, fields(배열), thumbnail, image, footer, timestamp. AI 에이전트는 콘텐츠 유형에 따라 적합한 레이아웃 방식을 자동으로 선택합니다.

discord_reaction -- 리액션 관리 도구

메시지의 이모지 리액션을 관리합니다. AI 에이전트는 상호작용 버튼의 대안으로 리액션을 추가하거나, 사용자의 리액션을 읽어 피드백을 수집할 수 있습니다.

discord_thread -- 스레드 도구

Discord 채널에서 스레드를 생성하고 관리합니다. 대화가 특정 주제에 관련될 때 AI 에이전트가 자동으로 스레드를 생성하여 메인 채널을 깔끔하게 유지할 수 있습니다.

discord_voice -- 음성 채널 도구

음성 채널의 기본적인 상호작용 기능을 제공합니다.

Telegram 전용 도구

telegram_keyboard -- 인라인 키보드 도구

Telegram의 가장 특징적인 상호작용 방식은 인라인 키보드입니다. 두 가지 키보드 유형을 지원합니다:

  • 인라인 키보드: 메시지 하단에 부착, 버튼 클릭 시 콜백 트리거
  • 응답 키보드: 사용자의 소프트 키보드를 대체하여 빠른 응답 옵션 제공

telegram_sticker -- 스티커 도구

스티커를 발송하고 관리합니다. AI 에이전트가 대화의 분위기에 맞는 적절한 스티커로 응답합니다.

telegram_poll -- 투표 도구

투표 메시지를 생성하며, 단일 선택과 다중 선택 모드를 지원합니다.

Slack 전용 도구

slack_blocks -- Block Kit 도구

Slack의 Block Kit은 강력한 메시지 구축 프레임워크입니다. 텍스트, 이미지, 버튼, 선택기, 날짜 선택기 등의 컴포넌트를 포함하는 복잡한 인터랙티브 메시지를 생성할 수 있습니다.

slack_workflow -- 워크플로 도구

Slack Workflow Builder와 통합하여 미리 정의된 워크플로를 트리거하거나 간단한 자동화 프로세스를 생성합니다.

slack_modal -- 모달 도구

Slack에서 모달 대화 상자를 열어 사용자의 구조화된 입력을 수집합니다.

WhatsApp 전용 도구

whatsapp_template -- 템플릿 메시지 도구

WhatsApp Business API는 사전 심사된 템플릿을 사용한 주도적 메시지 전송을 요구합니다.

whatsapp_list -- 리스트 메시지 도구

선택 가능한 리스트 항목이 포함된 인터랙티브 메시지를 발송합니다. 최대 10개 그룹, 각 그룹 최대 10개 옵션을 지원합니다.

whatsapp_location -- 위치 도구

지리적 위치 정보를 발송하고 수신합니다.

커스텀 채널 도구 개발

도구 등록

openclaw.registerChannelTool({
  channel: 'discord',
  name: 'discord_custom_tool',
  description: '커스텀 Discord 도구의 설명',
  parameters: {
    type: 'object',
    properties: {
      param1: { type: 'string', description: '파라미터 설명' }
    },
    required: ['param1']
  },
  execute: async (params, context) => {
    return { result: '작업 완료' };
  }
});

Context 객체

채널 도구의 실행 함수는 context 객체를 받으며, channel(채널 인스턴스), session(현재 세션), user(현재 사용자), abortSignal(중단 신호)을 포함합니다.

시스템 프롬프트 적응

채널 도구를 등록한 후, buildAgentSystemPrompt()의 확장 프롬프트 메커니즘을 통해 AI 에이전트에게 사용 안내를 제공하세요.

모범 사례

  1. 플랫폼 규범 준수: 각 플랫폼의 디자인 규범과 제한을 따릅니다
  2. 우아한 폴백: 기능 불가 시 크래시 대신 의미 있는 오류 정보를 반환합니다
  3. 비동기 안전성: 동시성과 타임아웃을 올바르게 처리합니다
  4. 사용자 개인정보: 최소 권한 원칙을 따릅니다

정리

채널 전용 도구는 OpenClaw의 다중 플랫폼 아키텍처에서 중요한 구성 요소입니다. 각 통신 플랫폼에 맞춤화된 도구를 제공함으로써 AI 에이전트가 서로 다른 환경에서도 네이티브 수준의 상호작용 경험을 제공할 수 있습니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다