OpenClaw Matrix 채널
OpenClaw를 Matrix(오픈 연합 통신 프로토콜)에 연결합니다. 이 통합을 통해 AI 어시스턴트는 모든 홈서버(matrix.org, Element 또는 자체 호스팅)의 Matrix 룸 및 다이렉트 메시지에 참여할 수 있습니다. OpenClaw는 Matrix Client-Server API를 통해 연결하며 Rust crypto SDK를 통한 선택적 종단 간 암호화(E2EE)를 지원합니다. Matrix 채널은 플러그인으로 제공되며 연합, 스레드, 리액션 및 리치 미디어를 지원합니다.
Matrix 지원 기능
텍스트 메시지
지원
미디어 및 파일
지원
리액션
지원
스레드
지원
음성 메시지
미지원
그룹 채팅
지원
Matrix 사전 요구사항
- 모든 홈서버(matrix.org, Element 또는 자체 호스팅)의 활성 Matrix 계정
- Matrix 플러그인 설치: openclaw plugins install @openclaw/matrix
- 실행 및 구성된 OpenClaw Gateway
- 서버에 Node.js 18+ 설치됨
Matrix 빠른 설정
Matrix 플러그인 설치
Matrix 채널은 별도의 플러그인으로 제공됩니다. 'openclaw plugins install @openclaw/matrix'로 설치합니다. 플러그인은 npm 레지스트리에서 다운로드되어 자동으로 활성화됩니다.
Matrix 자격 증명 얻기
액세스 토큰 또는 사용자명/비밀번호가 필요합니다. 액세스 토큰의 경우: curl을 사용하여 홈서버의 로그인 엔드포인트를 호출하고 토큰을 복사합니다. 사용자명/비밀번호의 경우: Gateway가 자동으로 로그인하고 토큰을 ~/.openclaw/credentials/matrix/credentials.json에 저장합니다.
Matrix 채널 구성 추가
홈서버 URL과 자격 증명이 포함된 Matrix 채널 구성을 ~/.openclaw/openclaw.json에 추가합니다. 환경 변수 MATRIX_HOMESERVER, MATRIX_ACCESS_TOKEN, MATRIX_USER_ID, MATRIX_PASSWORD도 사용할 수 있습니다.
Gateway 시작 및 테스트
'openclaw gateway'를 실행하여 서비스를 시작합니다. 다른 계정에서 Matrix 봇 사용자에게 다이렉트 메시지를 보냅니다. 기본 페어링 정책을 사용하는 경우 터미널에서 'openclaw pairing approve matrix <code>'를 통해 발신자를 승인합니다.
Matrix 구성 예시
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"accessToken": "your_access_token_here",
"dmPolicy": "pairing"
}
}
}Matrix 상세 문서
아키텍처 개요
인증 방법
# 액세스 토큰 방식
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"accessToken": "syt_xxx..."
}
}
}
# 사용자명/비밀번호 방식
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"userId": "@bot:example.org",
"password": "your_password"
}
}
}DM 정책
{
"channels": {
"matrix": {
"dmPolicy": "allowlist",
"dm": {
"allowFrom": ["@alice:matrix.org", "@bob:example.org"]
}
}
}
}그룹 채팅(룸) 지원
{
"channels": {
"matrix": {
"groupPolicy": "allowlist",
"groups": {
"!abc123:matrix.org": {
"allow": true,
"requireMention": false,
"users": ["@alice:matrix.org"]
},
"#team-chat:example.org": {
"allow": true
}
},
"autoJoin": "allowlist"
}
}
}종단 간 암호화(E2EE)
{
"channels": {
"matrix": {
"encryption": true
}
}
}연합 및 홈서버 선택
스레드 및 응답 모드
{
"channels": {
"matrix": {
"threadReplies": "always",
"replyToMode": "reference"
}
}
}미디어 처리 및 파일 업로드
{
"channels": {
"matrix": {
"mediaMaxMb": 50
}
}
}리액션 및 리치 기능
{
"channels": {
"matrix": {
"actions": {
"reactions": true,
"messages": true,
"pins": false
}
}
}
}자체 호스팅 AI에 Matrix를 선택하는 이유
Matrix 구성 참조
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Matrix 채널 활성화 또는 비활성화 |
| homeserver | string | "https://matrix.org" | Matrix 홈서버 URL(예: https://matrix.org, https://element.io) |
| accessToken | string | "" | 인증용 Matrix 액세스 토큰(권장 방법) |
| userId | string | "" | Matrix 사용자 ID(예: @bot:matrix.org) — 비밀번호 인증과 함께 사용 |
| password | string | "" | Matrix 계정 비밀번호 — userId와 함께 로그인에 사용 |
| encryption | boolean | false | Rust crypto SDK를 통한 종단 간 암호화 활성화 |
| dmPolicy | string | "pairing" | DM 액세스 정책: pairing, allowlist, open 또는 disabled |
| dm.allowFrom | array | [] | DM이 허용되는 Matrix 사용자 ID(예: [@alice:matrix.org]) |
| groupPolicy | string | "allowlist" | 룸 정책: allowlist 또는 disabled |
| groups | object | {} | 룸별 구성(룸 ID 또는 별칭을 키로 사용) |
| groups.<roomId>.allow | boolean | false | 봇이 이 룸에 참여하도록 허용 |
| groups.<roomId>.requireMention | boolean | true | 이 룸에서 응답을 트리거하려면 봇 멘션 필요 |
| groups.<roomId>.users | array | [] | 룸별 사용자 허용 목록(Matrix 사용자 ID) |
| autoJoin | string | "allowlist" | 룸 초대 자동 참여: always, allowlist 또는 off |
| textChunkLimit | number | 4096 | 아웃바운드 메시지당 최대 문자 수 |
| chunkMode | string | "length" | 긴 응답 분할 방법: length(하드 제한) 또는 newline(단락 경계) |
| threadReplies | string | "inbound" | 스레드 동작: off, inbound(읽기 전용) 또는 always(읽기 + 생성) |
| replyToMode | string | "reference" | 응답 메타데이터 첨부 모드 |
| mediaMaxMb | number | 50 | 최대 미디어 파일 크기(메가바이트) |
| actions.reactions | boolean | true | 에이전트가 리액션을 보내고 읽을 수 있도록 허용 |
| actions.messages | boolean | true | 에이전트가 메시지를 읽고 보내고 편집하고 삭제할 수 있도록 허용 |
| actions.pins | boolean | true | 에이전트가 메시지를 고정하거나 고정 해제할 수 있도록 허용 |
| actions.memberInfo | boolean | true | 에이전트가 룸 멤버 정보를 조회할 수 있도록 허용 |
| actions.channelInfo | boolean | true | 에이전트가 룸/채널 정보를 검색할 수 있도록 허용 |
Matrix 채널 활성화 또는 비활성화
Matrix 홈서버 URL(예: https://matrix.org, https://element.io)
인증용 Matrix 액세스 토큰(권장 방법)
Matrix 사용자 ID(예: @bot:matrix.org) — 비밀번호 인증과 함께 사용
Matrix 계정 비밀번호 — userId와 함께 로그인에 사용
Rust crypto SDK를 통한 종단 간 암호화 활성화
DM 액세스 정책: pairing, allowlist, open 또는 disabled
DM이 허용되는 Matrix 사용자 ID(예: [@alice:matrix.org])
룸 정책: allowlist 또는 disabled
룸별 구성(룸 ID 또는 별칭을 키로 사용)
봇이 이 룸에 참여하도록 허용
이 룸에서 응답을 트리거하려면 봇 멘션 필요
룸별 사용자 허용 목록(Matrix 사용자 ID)
룸 초대 자동 참여: always, allowlist 또는 off
아웃바운드 메시지당 최대 문자 수
긴 응답 분할 방법: length(하드 제한) 또는 newline(단락 경계)
스레드 동작: off, inbound(읽기 전용) 또는 always(읽기 + 생성)
응답 메타데이터 첨부 모드
최대 미디어 파일 크기(메가바이트)
에이전트가 리액션을 보내고 읽을 수 있도록 허용
에이전트가 메시지를 읽고 보내고 편집하고 삭제할 수 있도록 허용
에이전트가 메시지를 고정하거나 고정 해제할 수 있도록 허용
에이전트가 룸 멤버 정보를 조회할 수 있도록 허용
에이전트가 룸/채널 정보를 검색할 수 있도록 허용
Matrix 자주 묻는 질문
Matrix 문제 해결
DM 정책이 메시지를 차단하거나 봇이 룸에 없음
기기가 확인되지 않았거나 암호화 모듈 로드 실패
홈서버에서 토큰이 취소되거나 무효화됨
룸이 허용 목록에 없거나 requireMention이 활성화됨
홈서버 연결 또는 연합 문제
npm 레지스트리 액세스 또는 Node.js 버전 비호환성