Mattermost는 오픈소스 팀 협업 플랫폼으로, Slack의 자체 호스팅 대안으로 자주 사용됩니다. 프라이빗 배포를 지원하므로, 데이터 보안에 대한 엄격한 요구사항이 있는 기업과 조직에 매우 적합합니다. OpenClaw은 플러그인 시스템을 통해 Mattermost 채널을 지원하여, Mattermost에서 직접 AI 에이전트와 상호작용할 수 있습니다.
사전 준비
설정을 시작하기 전에 다음 조건을 확인하세요:
- OpenClaw 인스턴스가 배포되어 정상 실행 중
- 접근 가능한 Mattermost 서버(자체 호스팅 또는 클라우드 호스팅 모두 가능)
- Mattermost 시스템 관리자 권한(Bot 계정 생성용)
- Mattermost 서버 버전 5.0 이상 권장
Mattermost Bot 계정 생성
Mattermost 관리 콘솔에 로그인하여 "통합" > "Bot 계정" 페이지로 이동합니다. "Bot 계정 만들기"를 클릭하고 사용자명, 표시 이름, 설명을 입력합니다. 생성 후 시스템이 Access Token을 생성하므로, 이 토큰을 안전하게 보관하세요. 한 번만 표시됩니다.
Mattermost 인스턴스에서 Bot 계정 기능이 활성화되지 않은 경우, 먼저 시스템 콘솔의 "통합" > "Bot 계정"에서 "Bot 계정 생성 활성화"를 true로 설정하세요.
또한, "통합" > "통합 관리"에서 "수신 Webhook 활성화"와 "발신 Webhook 활성화"가 모두 켜져 있는지 확인하세요.
Mattermost 플러그인 설치
OpenClaw 플러그인 시스템으로 Mattermost 지원을 설치합니다:
openclaw plugin install mattermost
그런 다음 대화형 로그인 명령어로 설정합니다:
openclaw channels login mattermost
시스템이 Mattermost 서버 주소, Bot의 Access Token 등의 정보를 입력하도록 안내합니다.
openclaw.json 설정
openclaw.json에서 직접 수동으로 설정할 수도 있습니다:
{
"channels": {
"mattermost": {
"enabled": true,
"serverUrl": "https://mattermost.your-company.com",
"token": "your-bot-access-token",
"teamName": "your-team-name"
}
}
}
serverUrl은 Mattermost 서버의 전체 주소, token은 Bot 생성 시 받은 Access Token, teamName은 Bot이 속한 팀의 이름입니다.
WebSocket 연결 모드
Mattermost 플러그인은 기본적으로 WebSocket 연결을 사용하여 실시간으로 메시지를 수신합니다. 이는 OpenClaw이 Mattermost 서버에 능동적으로 연결하므로, 추가 webhook 콜백 주소를 설정할 필요가 없다는 의미입니다. 이 모드는 방화벽 뒤의 자체 호스팅 환경에 매우 적합합니다. 아웃바운드 연결만 필요하기 때문입니다.
연결이 설정되면 OpenClaw은 Bot이 멘션되거나 DM을 받는 이벤트를 자동으로 수신하고, 메시지를 AI 모델에 전달하여 처리합니다.
채널 및 개인 채팅 동작
Mattermost에서 Bot은 개인 채팅 메시지와 채널의 @멘션 메시지를 동시에 처리할 수 있습니다. 기본 동작은 다음과 같습니다:
- 개인 채팅(Direct Message): Bot이 받은 모든 메시지에 응답
- 공개/비공개 채널: Bot이 @멘션 메시지에만 응답
설정에서 이러한 동작을 커스터마이징할 수 있습니다:
{
"channels": {
"mattermost": {
"respondToDirectMessages": true,
"respondToMentions": true,
"respondToAll": false
}
}
}
respondToAll을 true로 설정하면 Bot이 소속 채널의 모든 메시지에 응답하지만, 활발한 채널에서는 대량의 API 호출이 발생할 수 있으므로 신중하게 사용하세요.
슬래시 명령어 통합
Mattermost는 커스텀 슬래시 명령어를 지원하므로, OpenClaw을 가리키는 슬래시 명령어를 생성하여 사용자가 /ask와 같은 방식으로 AI를 호출할 수 있습니다. Mattermost 관리 콘솔의 "통합" > "슬래시 명령어"에서 새 명령어를 생성하고, 요청 URL을 OpenClaw의 Mattermost webhook 엔드포인트로 지정하면 됩니다.
보안 및 권한 제어
OpenClaw의 allowlist 기능을 활용하면, AI와 상호작용할 수 있는 Mattermost 사용자를 정밀하게 제어할 수 있습니다:
{
"channels": {
"mattermost": {
"allowlist": ["username1", "username2"],
"allowedChannels": ["channel-id-1", "channel-id-2"]
}
}
}
allowlist는 상호작용 가능한 사용자를 제한하고, allowedChannels는 Bot이 지정된 채널에서만 응답하도록 합니다. 이는 AI 사용 비용과 범위를 제어하는 데 매우 유용합니다.
OpenClaw의 DM 페어링 기능과 결합하여, 사용자가 먼저 개인 채팅에서 신원 인증을 완료하도록 요구할 수도 있습니다.
멀티 채널 공존
Mattermost 채널은 OpenClaw의 다른 채널과 동시에 운영할 수 있습니다. 설정 파일에서 여러 채널을 동시에 활성화하면 동일한 AI 백엔드를 공유합니다. 예를 들어, 내부 팀 커뮤니케이션용으로 Mattermost를, 외부 커뮤니티 지원용으로 Telegram을 동시에 운영할 수 있습니다. 모든 채널의 메시지는 독립적으로 처리되어 서로 영향을 미치지 않습니다.
문제 해결
Bot이 Mattermost 서버에 연결할 수 없는 경우, 먼저 서버 주소가 올바른지, Token이 유효한지 확인합니다. 다음 명령어로 연결 가능성을 테스트할 수 있습니다:
curl -H "Authorization: Bearer your-token" https://mattermost.your-company.com/api/v4/users/me
Bot의 사용자 정보가 반환되면 인증에 문제가 없습니다. WebSocket이 자주 연결 끊김이 발생하면, 네트워크 환경에 프록시나 방화벽이 장시간 연결을 방해하는지 확인하고, 필요한 경우 WebSocket의 ping 간격 매개변수를 설정하세요.