OpenClaw

OpenClaw Tlon 채널

분산형
고급

OpenClaw를 Urbit 위에 구축된 탈중앙화 메신저인 Tlon에 연결하세요. 이 통합을 통해 AI 어시스턴트가 Tlon의 피어 투 피어 네트워크에서 다이렉트 메시지와 그룹 멘션을 수신하고 응답할 수 있습니다. 중앙 서버도, 기업 계정도 필요 없이 Urbit 쉽 ID와 인증 코드만 있으면 됩니다. 주권 컴퓨팅 애호가와 데이터 소유권을 중시하는 조직에 적합합니다.

기본 정보
난이도고급
카테고리분산형
지원 기능 수1 / 6

Tlon 지원 기능

텍스트 메시지

지원

미디어 및 파일

미지원

리액션

미지원

스레드

미지원

음성 메시지

미지원

그룹 채팅

미지원

Tlon 사전 요구사항

  • OpenClaw Gateway가 설치되어 실행 중일 것
  • HTTP를 통해 접근 가능한 Urbit 쉽(플래닛, 스타 또는 코멧)이 실행 중일 것
  • 쉽의 인증 코드(쉽의 웹 인터페이스에서 획득 가능)
  • 서버에 Node.js 18+가 설치되어 있을 것

Tlon 빠른 설정

1

Tlon 플러그인 설치

'openclaw plugins install @openclaw/tlon'을 실행하여 Tlon 채널을 추가합니다. 또는 'openclaw onboard'나 'openclaw channels add'를 사용하고 플러그인 목록에서 Tlon을 선택합니다. 설치 후 Gateway를 재시작하세요.

2

Urbit 쉽 인증 정보 구성

Urbit 쉽 식별자(예: ~sampel-palnet), 쉽의 호스트 URL(예: http://localhost:8080), 인증 코드를 환경 변수로 설정합니다. openclaw.json 구성에서 ${URBIT_SHIP}, ${URBIT_URL}, ${URBIT_CODE}를 사용하여 참조합니다.

3

시작 및 테스트 메시지 전송

'openclaw start'로 Gateway를 재시작합니다. Urbit 쉽에서 Tlon 앱을 열고 봇의 쉽에 다이렉트 메시지를 보냅니다. 봇이 자동으로 복호화, 처리 및 응답합니다.

Tlon 구성 예시

config.json
{
  "channels": {
    "tlon": {
      "ship": "${URBIT_SHIP}",
      "url": "${URBIT_URL}",
      "code": "${URBIT_CODE}",
      "enabled": true
    }
  }
}

Tlon 상세 문서

아키텍처 개요

Tlon은 Urbit 위에 구축된 메시징 애플리케이션입니다. Urbit는 각 사용자가 자체 서버("쉽"이라고 함)를 운영하는 피어 투 피어 컴퓨팅 플랫폼입니다. 중앙 집중식 플랫폼과 달리, 데이터는 자신의 쉽에 저장되며 완전히 자신이 관리합니다. 메시지 흐름은 다음과 같습니다: 1. 사용자가 Tlon 그룹 채팅에서 DM을 보내거나 봇을 @ 멘션합니다 2. 메시지가 Urbit의 Ames 네트워크 프로토콜을 통해 봇의 쉽으로 전달됩니다 3. OpenClaw가 쉽의 HTTP API를 통해 메시지를 수신합니다 4. Gateway가 AI 에이전트를 통해 메시지를 처리하고 동일한 API를 통해 응답을 전송합니다 Urbit는 피어 투 피어 네트워크이므로 중단되거나 검열될 수 있는 중앙 서버가 없습니다. 각 쉽은 자체 상태를 유지하며, 메시지는 Ames 프로토콜을 통해 쉽 간에 직접 전달됩니다.
봇은 Urbit 쉽의 동반 프로세스로 실행됩니다. 외부 서비스가 아닌 쉽의 로컬 HTTP API를 통해 연결합니다.
Urbit 쉽은 영구적인 ID를 가집니다: ~sampel-palnet과 같은 플래닛은 네트워크상의 영구 주소입니다.

플러그인 설치

Tlon 채널은 코어 Gateway에 내장되지 않고 선택적 OpenClaw 플러그인으로 배포됩니다. 이를 통해 기본 설치를 경량으로 유지하면서 필요할 때 Tlon/Urbit 지원을 추가할 수 있습니다. 설치 방법: • **npm(권장):** 'openclaw plugins install @openclaw/tlon'을 실행하여 안정 릴리스를 설치합니다. • **로컬 개발:** 플러그인 저장소를 클론하고 'openclaw plugins install ./extensions/tlon'으로 로컬 디렉토리에서 설치합니다. • **대화형 설정:** 'openclaw onboard' 또는 'openclaw channels add'를 실행하고 목록에서 Tlon을 선택합니다. 설치 후 플러그인을 적용하려면 Gateway를 재시작하세요.
'openclaw plugins list'를 실행하여 Tlon 플러그인이 설치되고 활성 상태인지 확인하세요.

Urbit 쉽 설정 및 인증

OpenClaw를 Tlon에 연결하려면 Urbit 쉽에서 세 가지 정보가 필요합니다: 1. **쉽 식별자** — Urbit ID(예: ~sampel-palnet). 봇으로 작동할 쉽입니다. 2. **호스트 URL** — 쉽에 접근할 수 있는 HTTP 엔드포인트. Urbit은 기본적으로 포트 80을 사용하며, 포트 80이 사용 중이면 8080으로 대체합니다(예: http://localhost:8080). 실제 포트는 쉽의 시작 로그에서 확인하세요. 3. **인증 코드** — API 요청 인증에 사용되는 비밀 코드. 쉽의 웹 인터페이스 설정에서 찾거나 Dojo(Urbit의 명령줄)에서 '+code'를 실행하여 얻을 수 있습니다. OpenClaw는 이러한 인증 정보를 사용하여 쉽의 HTTP API로 인증하고 수신 메시지를 구독합니다.
openclaw.json
{
  "channels": {
    "tlon": {
      "ship": "${URBIT_SHIP}",
      "url": "${URBIT_URL}",
      "code": "${URBIT_CODE}"
    }
  }
}
인증 코드를 openclaw.json에 직접 하드코딩하지 마세요. 항상 환경 변수(예: ${URBIT_CODE})를 사용하고 셸이나 .env 파일에서 'export URBIT_CODE="sampel-ticlyt-migfun-falmel"'로 설정하세요.

자동 탐색 및 채널 고정

기본적으로 OpenClaw는 Urbit 쉽의 그룹 채널을 자동으로 탐색하여 봇이 참여한 모든 그룹에서 멘션에 응답할 수 있게 합니다. 자동 탐색을 비활성화하고 특정 채널을 수동으로 고정할 수도 있습니다. Tlon의 채널 경로는 chat/~host-ship/channel-name 형식입니다. 예를 들어, 'chat/~host-ship/general'은 ~host-ship이 호스팅하는 'general' 채팅 채널을 나타냅니다. 자동 탐색이 비활성화되면 고정된 채널만 모니터링됩니다. 봇이 모든 그룹이 아닌 특정 대화에만 참여하도록 하려면 유용합니다.
openclaw.json
{
  "channels": {
    "tlon": {
      "autoDiscovery": false,
      "channels": [
        "chat/~host-ship/general",
        "chat/~host-ship/support"
      ]
    }
  }
}
자동 탐색은 기본적으로 활성화되어 있습니다. autoDiscovery: false로 설정하면 봇이 고정된 채널로만 제한됩니다.
채널 경로는 chat/~host-ship/channel-name 형식을 사용합니다. 각 채널의 정확한 경로는 Tlon 앱에서 확인하세요.

DM 정책

DM(다이렉트 메시지) 정책은 Tlon을 통해 AI 어시스턴트와 상호 작용할 수 있는 사람을 제어합니다. Urbit 쉽은 영구적인 ID를 가지므로 접근 제어는 쉽 주소를 기반으로 합니다. OpenClaw는 Tlon 채널에 대해 다음 DM 정책을 지원합니다: • **open(기본값)** — 모든 쉽이 봇에 DM을 보낼 수 있습니다. Tlon DM은 양쪽 모두 Urbit 네트워크에 있어야 하므로 비교적 안전합니다. • **allowlist** — allowFrom에 나열된 쉽만 봇에 메시지를 보낼 수 있습니다. 나머지는 무시됩니다. allowFrom을 빈 배열로 설정하면 모든 쉽이 허용됩니다(open 모드와 동일). 특정 쉽 주소를 추가하여 접근을 제한합니다.
openclaw.json
{
  "channels": {
    "tlon": {
      "allowFrom": [
        "~sampel-palnet",
        "~timluc-miptev"
      ]
    }
  }
}

그룹 접근 제어

Tlon의 그룹 채널에는 자체 접근 제어 레이어가 있습니다. 기본적으로 그룹은 제한되어 있으며, 봇은 인가된 쉽이 명시적으로 나열된 그룹에서만 응답합니다. 각 그룹 채널은 다음을 구성할 수 있습니다: • **authorized** — 이 그룹에서 봇을 트리거할 수 있는 쉽 주소 목록 • **mode** — 'restricted'(인가된 쉽만) 또는 'open'(모든 그룹 멤버) 그룹에서 봇은 @ 멘션된 경우에만 응답합니다. 이를 통해 바쁜 그룹 채팅에서 봇이 모든 메시지에 답변하는 것을 방지합니다.
openclaw.json
{
  "channels": {
    "tlon": {
      "groups": {
        "chat/~host-ship/general": {
          "mode": "restricted",
          "authorized": ["~sampel-palnet"]
        },
        "chat/~host-ship/public": {
          "mode": "open"
        }
      }
    }
  }
}
제한 모드에서는 'authorized'에 나열된 쉽만 봇 응답을 트리거할 수 있습니다.
그룹 응답은 @ 멘션이 필요합니다. 오픈 모드에서도 봇은 일반 메시지에 응답하지 않습니다.

전달 대상(CLI 및 예약 작업)

OpenClaw는 CLI 또는 예약된 cron 작업을 통한 사전 메시지 전송을 지원합니다. Tlon 채널의 경우 DM과 그룹 채널 모두를 대상으로 할 수 있습니다. DM 전달 대상: • ~sampel-palnet — 이 쉽에 DM 전송 • dm/~sampel-palnet — 명시적 DM 형식 그룹 전달 대상: • chat/~host-ship/channel — 특정 그룹 채널에 게시 • group:~host-ship/channel — 대체 그룹 형식 특정 쉽이나 그룹 채널에 예약 알림, 경고 또는 정기 보고서를 보내는 데 유용합니다.
CLI examples
# Send a DM to a specific ship
openclaw send tlon ~sampel-palnet "Your daily report is ready."

# Post to a group channel
openclaw send tlon chat/~host-ship/general "System status: all clear."

미디어 처리 제한

현재 Tlon 통합은 텍스트 메시지만 지원합니다. 플러그인의 Urbit API 통합 제한으로 인해 리액션, 투표, 네이티브 미디어 업로드는 지원되지 않습니다. AI 에이전트가 미디어(이미지, 파일 등)를 포함한 응답을 생성할 때, 플러그인은 텍스트 전용 전달로 폴백합니다: • 이미지 — URL이 인라인으로 표시되는 대신 메시지 텍스트에 추가됩니다 • 파일 — 텍스트 응답에 다운로드 링크가 포함됩니다 • 리액션 — 미지원; 봇이 메시지에 리액션할 수 없습니다 • 스레드 — 미지원; 모든 답변이 메인 대화로 전송됩니다 Tlon 플랫폼이 발전함에 따라 향후 플러그인 업데이트에서 네이티브 미디어 지원이 추가될 수 있습니다.
AI 에이전트가 자주 이미지 응답을 생성하는 경우, 시스템 프롬프트에 Tlon 채널이 텍스트만 지원한다는 메모를 포함하는 것을 고려하세요.
메시지의 URL은 Tlon 앱에서 클릭할 수 있습니다. 사용자는 탭하여 브라우저에서 미디어 콘텐츠를 볼 수 있습니다.

Tlon 구성 참조

ship
Type: stringDefault: (required)

Urbit 쉽 식별자(예: ~sampel-palnet). 봇으로 작동할 쉽입니다.

url
Type: stringDefault: "http://localhost:8080"

Urbit 쉽에 접근 가능한 HTTP 엔드포인트

code
Type: stringDefault: (required)

Urbit 쉽 HTTP API 인증 코드. 환경 변수 참조를 사용하세요.

enabled
Type: booleanDefault: true

Tlon 채널 활성화 또는 비활성화

name
Type: stringDefault: ""

이 채널 인스턴스의 표시 이름

autoDiscovery
Type: booleanDefault: true

쉽의 모든 그룹 채널을 자동으로 탐색하고 모니터링

channels
Type: string[]Default: []

autoDiscovery가 비활성화된 경우 모니터링할 그룹 채널 경로 목록(예: chat/~host-ship/general)

allowFrom
Type: string[]Default: []

봇에 DM을 보낼 수 있는 쉽 주소 목록. 빈 배열은 모든 쉽을 허용합니다.

groups
Type: objectDefault: {}

그룹별 접근 제어 구성(모드 및 인가된 쉽 목록)

groups.<path>.mode
Type: stringDefault: "restricted"

그룹 접근 모드: 'restricted'(인가된 쉽만) 또는 'open'(모든 그룹 멤버)

groups.<path>.authorized
Type: string[]Default: []

이 그룹에서 봇을 트리거할 권한이 있는 쉽 주소 목록(모드가 'restricted'인 경우)

Tlon 자주 묻는 질문

Tlon 문제 해결

봇이 시작되지만 메시지를 수신하지 않음

쉽 URL 또는 인증 코드가 올바르지 않거나 쉽이 실행되고 있지 않을 수 있습니다.

브라우저에서 URL을 열어 쉽에 접근할 수 있는지 확인하세요. 인증 코드가 올바른지 확인하세요(Dojo에서 '+code' 실행). 환경 변수가 올바르게 내보내졌는지 확인: 'echo $URBIT_URL' 및 'echo $URBIT_CODE'.
오류: 인증 실패

인증 코드가 만료되었거나 올바르지 않습니다. Urbit 쉽은 인증 코드를 순환시킬 수 있습니다.

쉽의 웹 인터페이스(설정)에서 또는 Dojo에서 '+code'를 실행하여 새 인증 코드를 가져오세요. URBIT_CODE 환경 변수를 업데이트하고 Gateway를 재시작하세요.
봇이 DM에는 응답하지만 그룹 채널에는 응답하지 않음

자동 탐색이 비활성화되어 있고 그룹 채널이 고정되지 않았거나, 그룹 접근 제어가 발신자를 차단하고 있을 수 있습니다.

autoDiscovery가 false로 설정되어 있는지 확인하세요. 설정되어 있다면 그룹 채널을 channels 배열에 추가합니다. 발신자의 쉽이 그룹의 authorized 목록에 있는지 확인하세요(제한 모드의 경우). 그룹 응답에는 @ 멘션이 필요하다는 것을 기억하세요.
설치 후 플러그인을 찾을 수 없음

플러그인 설치 후 Gateway가 재시작되지 않았거나 설치가 조용히 실패했습니다.

'openclaw plugins list'를 실행하여 Tlon 플러그인이 설치되었는지 확인하세요. 목록에 없으면 'openclaw plugins install @openclaw/tlon'을 다시 실행하세요. 설치 후 'openclaw start'로 Gateway를 재시작하세요.
연결이 자주 끊어짐

네트워크 문제 또는 쉽의 과부하로 인해 Urbit 쉽의 HTTP API에 접근할 수 없을 수 있습니다.

쉽에 대한 네트워크 연결을 확인하세요. 원격으로 실행 중인 경우 HTTP 포트가 방화벽에 의해 차단되지 않았는지 확인하세요. 지연 시간을 최소화하기 위해 쉽과 동일한 머신에서 봇을 실행하는 것을 고려하세요. 쉽의 Dojo에서 오류 메시지를 확인하세요.