OpenClaw

OpenClaw Feishu / Lark 채널

엔터프라이즈
보통

WebSocket 기반 이벤트 구독을 사용하여 OpenClaw를 Feishu(飞书) 또는 Lark에 연결합니다. 이 기업용 통합을 통해 AI 어시스턴트가 Feishu/Lark(ByteDance의 기업 협업 플랫폼)에서 개인 메시지와 그룹 채팅을 처리할 수 있습니다. OpenClaw는 Feishu 오픈 플랫폼의 롱 커넥션(WebSocket) 모드로 연결되므로 공개 URL이나 Webhook 엔드포인트가 필요 없습니다. Feishu 앱을 만들고 App ID와 App Secret을 입력하기만 하면 어시스턴트가 시작됩니다.

기본 정보
난이도보통
카테고리엔터프라이즈
지원 기능 수3 / 6

Feishu / Lark 지원 기능

텍스트 메시지

지원

미디어 및 파일

지원

리액션

미지원

스레드

미지원

음성 메시지

미지원

그룹 채팅

지원

Feishu / Lark 사전 요구사항

  • Feishu(feishu.cn) 또는 Lark(larksuite.com) 테넌트 계정(앱 생성 권한 필요)
  • Feishu 플러그인 설치: openclaw plugins install @openclaw/feishu
  • OpenClaw Gateway 실행 및 구성 완료
  • 서버에 Node.js 18+ 설치

Feishu / Lark 빠른 설정

1

Feishu/Lark 앱 생성

Feishu 오픈 플랫폼(open.feishu.cn/app) 또는 Lark 개발자 콘솔(open.larksuite.com/app)에 접속합니다. 새 기업 앱을 만들고 이름, 설명, 아이콘을 설정합니다. 인증 정보 페이지에서 App ID(형식: cli_xxx)와 App Secret을 복사합니다.

2

권한 및 봇 기능 구성

앱의 권한 관리에서 필요한 권한을 일괄 가져옵니다. 앱 기능 > 봇에서 봇 기능을 활성화합니다. 이벤트 구독에서 '롱 커넥션 사용'(WebSocket 모드)을 선택하고 im.message.receive_v1 이벤트를 추가합니다. 버전 관리 및 릴리스를 통해 앱을 게시합니다.

3

OpenClaw에 Feishu 채널 구성 추가

'openclaw channels add'를 실행하고 Feishu를 선택하거나, ~/.openclaw/openclaw.json에 수동으로 채널 구성을 추가하고 appId와 appSecret을 입력합니다. 환경 변수 FEISHU_APP_ID와 FEISHU_APP_SECRET도 사용할 수 있습니다.

4

Gateway 시작 및 테스트

'openclaw gateway'를 실행하여 서비스를 시작합니다. Feishu에서 봇에게 개인 메시지를 보냅니다. 기본 페어링 정책을 사용하는 경우 터미널에서 'openclaw pairing approve feishu <code>'로 발신자를 승인합니다.

Feishu / Lark 구성 예시

config.json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "dmPolicy": "pairing",
      "accounts": {
        "main": {
          "appId": "cli_xxx",
          "appSecret": "YOUR_APP_SECRET",
          "botName": "My AI Assistant"
        }
      }
    }
  }
}

Feishu / Lark 상세 문서

아키텍처 개요

OpenClaw는 Feishu 오픈 플랫폼의 WebSocket 롱 커넥션 모드로 Feishu에 연결됩니다. 기존 Webhook과 달리 공개 URL이나 방화벽 구성이 필요 없습니다 — Gateway가 Feishu 서버에 대한 WebSocket 연결을 능동적으로 시작하고 실시간으로 이벤트를 수신합니다. 메시지 흐름: 사용자가 Feishu에서 메시지 전송 → Feishu 오픈 플랫폼 → WebSocket으로 Gateway에 푸시 → OpenClaw가 AI로 처리 → Feishu Bot API를 통해 응답 → Feishu에서 메시지 전달. 이 아키텍처는 NAT 또는 기업 방화벽 뒤의 셀프 호스팅 배포에 이상적입니다. 인바운드 연결이 전혀 필요 없습니다.
WebSocket 모드(롱 커넥션) 권장 — 공개 URL 불필요, SSL 인증서 불필요, 방화벽 뒤에서 작동합니다.
Feishu 플러그인은 'openclaw plugins install @openclaw/feishu'로 별도 설치하여 코어 Gateway를 경량으로 유지합니다.

Feishu 앱 생성 및 인증 정보 획득

Feishu 통합 설정을 위해 Feishu 오픈 플랫폼에서 앱을 생성해야 합니다: 1. open.feishu.cn/app(Lark 사용자는 open.larksuite.com/app)에 접속하여 새 기업 앱을 생성. 2. 인증 정보 및 기본 정보 페이지에서 App ID(형식: cli_xxx)와 App Secret을 복사. 3. 권한 관리에서 필요한 메시징 권한을 일괄 가져오기. 주요 권한: im:message, im:message:send_as_bot, im:chat. 4. 앱 기능 > 봇에서 봇 기능을 활성화하고 봇 이름과 설명을 설정. 5. 이벤트 구독에서 '롱 커넥션 사용'(WebSocket 모드)을 선택하고 im.message.receive_v1 이벤트를 추가. 6. 버전 관리 및 릴리스를 통해 앱을 게시. 메시지를 수신하려면 앱이 게시되고 승인되어야 합니다.
terminal
# 환경 변수 사용
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="your_app_secret"

# 또는 CLI 마법사 사용
openclaw channels add
App Secret을 안전하게 보관하세요. 버전 관리에 커밋하지 마세요. 프로덕션 환경에서는 환경 변수(FEISHU_APP_SECRET)를 사용하세요. 유출 시 Feishu 오픈 플랫폼 콘솔에서 즉시 재설정하세요.

Feishu vs Lark 구성

Feishu(feishu.cn)는 중국 내수용, Lark(larksuite.com)는 국제 버전입니다. 동일한 프로토콜을 사용하지만 다른 API 엔드포인트에 연결됩니다. 기본적으로 OpenClaw는 Feishu(국내) API에 연결됩니다. Lark 국제 버전을 사용하는 경우 구성에서 domain을 'lark'로 설정하면 모든 API 호출이 자동으로 Lark 엔드포인트로 전환됩니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "domain": "lark",
      "accounts": {
        "main": {
          "appId": "cli_xxx",
          "appSecret": "YOUR_APP_SECRET"
        }
      }
    }
  }
}
국내 사용자는 'feishu'(기본값), 국제 사용자는 'lark'를 사용합니다. domain 설정은 API 엔드포인트에 영향을 미치며 앱 생성 플랫폼에는 영향을 미치지 않습니다.

DM 정책

DM(개인 메시지) 정책은 AI 어시스턴트와 개인 채팅할 수 있는 사용자를 제어합니다. OpenClaw는 네 가지 정책을 지원합니다: • pairing(기본값) — 새 사용자는 페어링 과정을 거쳐야 합니다. 메시지를 보내면 페어링 코드를 받고, CLI에서 승인 또는 거부합니다. • allowlist — allowFrom에 명시적으로 나열된 Feishu Open ID만 봇에 메시지를 보낼 수 있습니다. • open — 누구나 응답을 받을 수 있습니다. 주의하여 사용하세요. • disabled — DM 기능을 완전히 끕니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "dmPolicy": "allowlist",
      "allowFrom": ["ou_xxx", "ou_yyy"]
    }
  }
}
사용자의 Open ID(형식: ou_xxx)를 찾으려면 사용자에게 봇에 DM을 보내도록 하고 Gateway 로그를 확인하거나 'openclaw pairing list feishu'를 사용하세요.

그룹 채팅 관리

OpenClaw는 Feishu 그룹 채팅을 지원하며 유연한 접근 제어를 제공합니다: • open(기본값) — 그룹 멤버가 봇을 @멘션하면 응답. • allowlist — 그룹 내 승인된 사용자만 봇과 상호작용 가능. • disabled — 그룹 메시지를 완전히 무시. 기본적으로 그룹에서 봇은 @멘션(requireMention: true)이 필요합니다. 그룹 ID(형식: oc_xxx)는 Gateway 로그에서 확인할 수 있습니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "groupPolicy": "open",
      "requireMention": true
    }
  }
}
그룹 ID(oc_xxx)를 찾으려면 Gateway를 시작하고 그룹에서 봇을 @멘션한 후 로그를 확인하세요: openclaw logs --follow

스트리밍 응답(인터랙티브 카드)

OpenClaw는 Feishu 인터랙티브 카드를 사용한 스트리밍 AI 응답을 지원합니다. 활성화되면 봇이 초기 카드를 보내고 AI가 응답을 생성함에 따라 점진적으로 업데이트됩니다 — ChatGPT의 실시간 텍스트 출력과 유사한 경험입니다. 완전한 응답을 기다렸다가 보내는 것보다 더 나은 사용자 경험을 제공합니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "streaming": true
    }
  }
}
스트리밍은 기본적으로 활성화되어 있습니다. streaming: false로 설정하면 비활성화되어 완전한 일반 텍스트 메시지로 전송됩니다.

메시지 유형 및 미디어 지원

OpenClaw는 다양한 Feishu 메시지 유형을 처리합니다: 수신: 텍스트 메시지, 리치 텍스트(게시물), 이미지, 파일, 오디오, 비디오, 스티커. 송신: 텍스트 메시지, 이미지, 파일, 오디오. 리치 텍스트 지원은 제한적입니다. 미디어 파일에는 크기 제한이 있습니다. 기본 최대 다운로드 크기는 30MB(mediaMaxMb)입니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "mediaMaxMb": 30,
      "textChunkLimit": 2000
    }
  }
}

다중 계정 및 멀티 에이전트 라우팅

OpenClaw는 여러 Feishu 봇 계정의 동시 실행을 지원합니다. 각 계정에는 고유한 App ID, App Secret, 봇 이름이 있습니다. 멀티 에이전트 라우팅도 구성할 수 있으며, 피어 기반 바인딩으로 서로 다른 AI 에이전트가 서로 다른 대화를 처리합니다.
openclaw.json
{
  "channels": {
    "feishu": {
      "accounts": {
        "support": {
          "appId": "cli_aaa",
          "appSecret": "secret_a",
          "botName": "Support Bot"
        },
        "hr": {
          "appId": "cli_bbb",
          "appSecret": "secret_b",
          "botName": "HR Bot"
        }
      }
    }
  }
}

유용한 명령어

OpenClaw는 Feishu 봇 관리를 위한 내장 명령어를 제공합니다: • /status — 현재 봇 상태 및 연결 정보 표시 • /reset — 현재 대화 세션 초기화 • /model — 현재 AI 모델 표시 또는 전환 • openclaw gateway status — Gateway 연결 상태 확인 • openclaw gateway restart — Gateway 서비스 재시작 • openclaw logs --follow — 실시간 Gateway 로그 보기 • openclaw pairing list feishu — 모든 승인 및 대기 중인 페어링 목록 • openclaw pairing approve feishu <code> — 대기 중인 페어링 요청 승인

Feishu / Lark 구성 참조

enabled
Type: booleanDefault: true

Feishu 채널 활성화/비활성화

domain
Type: stringDefault: "feishu"

API 도메인: 국내용 'feishu'(feishu.cn), 국제용 'lark'(larksuite.com)

dmPolicy
Type: stringDefault: "pairing"

봇에 DM할 수 있는 사용자를 제어. 옵션: pairing, allowlist, open, disabled

allowFrom
Type: string[]Default: []

dmPolicy가 'allowlist'일 때 DM을 허용할 Open ID(ou_xxx) 목록

groupPolicy
Type: stringDefault: "open"

그룹 채팅 정책. 옵션: open, allowlist, disabled

requireMention
Type: booleanDefault: true

그룹 채팅에서 봇이 응답하기 위해 @멘션이 필요한지 여부

streaming
Type: booleanDefault: true

인터랙티브 카드를 통한 스트리밍 AI 응답 활성화

textChunkLimit
Type: numberDefault: 2000

텍스트 메시지당 최대 문자 수

mediaMaxMb
Type: numberDefault: 30

업로드/다운로드 최대 미디어 파일 크기(MB)

accounts.<id>.appId
Type: stringDefault: ""

Feishu App ID(형식: cli_xxx), 오픈 플랫폼 콘솔에서 획득

accounts.<id>.appSecret
Type: stringDefault: ""

Feishu App Secret, 오픈 플랫폼 콘솔에서 획득

accounts.<id>.botName
Type: stringDefault: ""

Feishu 채팅에서의 봇 표시 이름

historyLimit
Type: numberDefault: 50

AI 컨텍스트에 포함할 최근 메시지 수

Feishu / Lark 자주 묻는 질문

Feishu / Lark 문제 해결

그룹 채팅에서 봇이 응답하지 않음

봇이 그룹에 추가되지 않았거나 @멘션이 작동하지 않거나 groupPolicy가 'disabled'로 설정되어 있을 수 있습니다.

봇이 그룹에 추가되었는지 확인하세요. groupPolicy가 'disabled'가 아닌지 확인하세요. 이름으로 봇을 @멘션해 보세요. 'openclaw logs --follow'로 Gateway 로그를 확인하세요.
메시지가 전혀 수신되지 않음 — 봇이 완전히 무응답

앱이 게시되지 않았거나 이벤트 구독이 구성되지 않았거나 권한이 부족할 수 있습니다.

버전 관리 및 릴리스에서 앱이 게시 및 승인되었는지 확인하세요. 이벤트 구독에서 '롱 커넥션'이 선택되고 im.message.receive_v1 이벤트가 추가되었는지 확인하세요. Gateway가 실행 중인지 확인: openclaw gateway status.
메시지 전송 실패

im:message:send_as_bot 권한이 부여되지 않았거나 앱이 게시되지 않았을 수 있습니다.

앱 권한 관리에서 im:message:send_as_bot 권한이 부여되었는지 확인하세요. 최근 권한을 추가한 경우 앱을 다시 게시하세요. Gateway 로그에서 구체적인 오류 메시지를 확인하세요.
App Secret 유출

App Secret이 실수로 버전 관리에 커밋되었거나 안전하지 않은 방식으로 공유되었습니다.

Feishu 오픈 플랫폼 콘솔(인증 정보 페이지)에서 즉시 App Secret을 재설정하세요. 새 시크릿으로 OpenClaw 구성 또는 환경 변수를 업데이트하세요. 'openclaw gateway restart'로 Gateway를 재시작하세요.
WebSocket 연결이 자주 끊김

네트워크 불안정 또는 방화벽이 롱 커넥션 WebSocket을 방해하고 있습니다.

서버 네트워크 안정성을 확인하세요. 방화벽이 아웃바운드 WebSocket 연결을 허용하는지 확인하세요. Gateway는 자동으로 재연결하지만 빈번한 끊김은 네트워크 문제를 나타낼 수 있습니다.