서문
개인 채팅 시나리오에서는 AI 어시스턴트가 모든 메시지에 응답하는 것이 합리적입니다. 하지만 그룹 채팅에서는 모든 메시지에 응답하면 채널이 도배될 뿐만 아니라 불필요한 API 호출이 대량으로 발생합니다. OpenClaw은 세밀한 그룹 채팅 동작 규칙 설정을 제공하여, AI가 어떤 조건에서 응답하는지, 어떻게 응답하는지, 누구에게 응답하는지를 제어할 수 있습니다.
그룹 채팅 규칙 개요
OpenClaw의 그룹 채팅 규칙 설정은 openclaw.json의 groupRules 섹션에 위치합니다:
{
"groupRules": {
"triggerMode": "mention",
"mentionName": ["AI봇", "AI", "bot"],
"commandPrefix": "/",
"replyToBot": true,
"ignoreOtherBots": true,
"cooldown": 0,
"maxResponseLength": 500,
"threadMode": "auto"
}
}
트리거 모드 상세 설명
triggerMode는 그룹 채팅 동작의 핵심 설정으로, AI가 어떤 조건에서 메시지를 처리하는지를 결정합니다.
mention 모드(기본값)
{
"groupRules": {
"triggerMode": "mention"
}
}
메시지에서 봇을 @멘션한 경우에만 응답합니다. 가장 많이 사용되는 모드로, 대부분의 그룹 채팅 시나리오에 적합합니다. 각 채널의 @멘션 방식:
| 채널 | 멘션 방식 |
|---|---|
| Telegram | @botusername |
| Discord | @Bot이름 또는 <@botid> |
| Slack | @Bot이름 |
@전화번호 |
|
| Matrix | @bot:server |
keyword 모드
{
"groupRules": {
"triggerMode": "keyword",
"mentionName": ["AI봇", "AI어시스턴트", "openclaw"]
}
}
메시지에 mentionName 목록의 키워드가 포함되면 응답을 트리거합니다. 키워드 매칭은 대소문자를 구분하지 않습니다. @멘션 기능을 사용하기 어려운 플랫폼에서 유용합니다.
command 모드
{
"groupRules": {
"triggerMode": "command",
"commandPrefix": "/"
}
}
지정된 접두사로 시작하는 메시지만 처리합니다. 예를 들어 사용자가 /ask 오늘 날씨 어때?를 보내면, OpenClaw이 접두사 뒤의 내용을 질문으로 추출합니다.
always 모드
{
"groupRules": {
"triggerMode": "always"
}
}
그룹 채팅의 모든 메시지에 응답합니다. 일반적으로 소규모 비공개 그룹에서만 사용합니다.
mixed 모드
{
"groupRules": {
"triggerMode": "mixed",
"mentionName": ["AI봇"],
"commandPrefix": "/"
}
}
@멘션, 키워드, 명령어 접두사 세 가지 트리거 방식을 동시에 지원하며, 하나라도 충족하면 응답합니다.
명령어 접두사 설정
AI 응답을 트리거하는 것 외에도, 명령어 접두사로 특정 명령을 실행할 수 있습니다:
{
"groupRules": {
"commandPrefix": "/",
"commands": {
"help": "도움말 표시",
"model": "현재 사용 중인 모델 전환",
"clear": "현재 대화 기록 삭제",
"status": "시스템 상태 표시"
}
}
}
사용자가 그룹 채팅에서 /help를 보내면, OpenClaw이 AI 모델에 전달하지 않고 도움말 정보를 반환합니다. /ask 질문 또는 알려진 명령어와 일치하지 않는 접두사 메시지는 AI에게 전달됩니다.
응답 동작 설정
인용 메시지에 응답 여부
{
"groupRules": {
"replyToBot": true,
"replyChainDepth": 3
}
}
replyToBot이 true이면, 사용자가 "답장" 기능으로 AI의 이전 메시지에 답장할 때 @멘션이 없어도 AI가 응답합니다. replyChainDepth는 답장 체인의 최대 추적 깊이를 제어합니다. 사용자가 다른 사용자가 AI에 답장한 메시지에 답장하는 경우에도 트리거할지 여부를 결정합니다.
다른 봇 무시
{
"groupRules": {
"ignoreOtherBots": true
}
}
그룹 내 다른 봇과의 "대화 루프"를 방지합니다. 활성화하면 OpenClaw이 다른 봇 계정의 메시지를 무시합니다.
쿨다운 시간
{
"groupRules": {
"cooldown": 5
}
}
두 번의 응답 사이의 최소 간격(초)입니다. 활발한 그룹 채팅에서 쿨다운 시간을 설정하면 AI 응답이 너무 밀집되는 것을 방지할 수 있습니다. 0으로 설정하면 쿨다운 제한이 없습니다.
응답 길이 제한
{
"groupRules": {
"maxResponseLength": 500
}
}
그룹 채팅에서 AI 응답의 최대 글자 수입니다. 초과 부분은 잘리고 "전체 답변은 개인 채팅에서 확인하세요"라는 안내가 추가됩니다. 이 제한은 그룹 채팅에서만 적용되며, 개인 채팅에는 영향을 미치지 않습니다.
스레드 모드
스레드/토픽을 지원하는 플랫폼(Slack, Discord, Telegram 슈퍼 그룹 등)에서 OpenClaw은 스레드 기능을 활용하여 대화를 구성할 수 있습니다:
{
"groupRules": {
"threadMode": "auto",
"autoCreateThread": true,
"threadTitle": "AI 대화"
}
}
| threadMode | 동작 |
|---|---|
"auto" |
사용자가 스레드에서 @AI하면 스레드 내에서 응답; 그렇지 않으면 메인 채널에서 응답 |
"always" |
항상 스레드에서 응답하며, 자동으로 스레드 생성 |
"never" |
항상 메인 채널에서 응답하며, 스레드 기능 사용 안 함 |
스레드 모드의 장점은 AI 대화를 독립 스레드에 집중시켜 그룹의 일반 토론을 방해하지 않는 것입니다.
채널별 규칙 재정의
서로 다른 그룹에는 서로 다른 규칙이 필요할 수 있습니다. OpenClaw은 채널 유형 또는 특정 그룹 ID별로 전역 그룹 채팅 규칙을 재정의할 수 있습니다:
{
"groupRules": {
"triggerMode": "mention",
"channelOverrides": {
"telegram": {
"triggerMode": "mixed",
"mentionName": ["AI봇"]
},
"discord": {
"triggerMode": "command",
"commandPrefix": "!"
}
},
"groupOverrides": {
"-100123456789": {
"triggerMode": "always",
"maxResponseLength": 1000
}
}
}
}
우선순위: groupOverrides(특정 그룹) > channelOverrides(채널 유형) > 전역 groupRules.
그룹 채팅 컨텍스트 처리
그룹 채팅의 컨텍스트 처리는 개인 채팅과 다릅니다. OpenClaw은 두 가지 그룹 채팅 컨텍스트 전략을 지원합니다:
{
"groupRules": {
"contextMode": "mention-thread",
"includeOtherUsers": false
}
}
| contextMode | 동작 |
|---|---|
"full" |
그룹 채팅의 모든 메시지(다른 사용자 포함)를 컨텍스트에 포함 |
"mention-thread" |
AI와 관련된 메시지 체인만 컨텍스트에 포함 |
"isolated" |
매번 @멘션을 독립 대화로 처리하며, 이전 기록을 유지하지 않음 |
includeOtherUsers는 다른 사용자(질문자가 아닌)의 메시지도 컨텍스트에 포함할지를 제어합니다. "팀 토론" 시나리오에서 이 옵션을 활성화하면 AI가 전체 토론 배경을 이해할 수 있습니다.
실전 설정 예시
기술 지원 그룹
{
"groupRules": {
"triggerMode": "mixed",
"mentionName": ["AI봇"],
"commandPrefix": "/ask",
"replyToBot": true,
"cooldown": 2,
"maxResponseLength": 800,
"threadMode": "always",
"contextMode": "mention-thread"
}
}
친구 잡담 그룹
{
"groupRules": {
"triggerMode": "keyword",
"mentionName": ["AI봇", "AI"],
"cooldown": 10,
"maxResponseLength": 300,
"contextMode": "isolated"
}
}
업무 협업 그룹
{
"groupRules": {
"triggerMode": "command",
"commandPrefix": "/",
"threadMode": "always",
"contextMode": "full",
"includeOtherUsers": true,
"maxResponseLength": 1500
}
}
그룹 채팅 규칙 디버깅
그룹 채팅에서 AI가 예상대로 응답하지 않는 경우, 디버그 로그를 활성화할 수 있습니다:
openclaw gateway --log-level debug
로그에서 group-rules 관련 항목을 검색하면 각 메시지의 트리거 판단 과정을 확인할 수 있습니다:
[DEBUG] group-rules: 메시지 출처 telegram 그룹 -100123456789
[DEBUG] group-rules: 트리거 모드=mention, @멘션 감지=false, 답장 체인 여부=false
[DEBUG] group-rules: 판정 결과: 건너뜀
정리
그룹 채팅 동작 규칙은 OpenClaw 멀티 채널 관리에서 가장 세밀한 조정이 필요한 부분입니다. 핵심은 적절한 트리거 모드를 선택하는 것입니다. 대부분의 시나리오에서 mention 모드가 최적의 출발점이며, 실제 그룹의 활발도와 용도에 따라 쿨다운 시간, 응답 길이, 컨텍스트 전략을 점진적으로 조정하세요. channelOverrides와 groupOverrides를 활용하여 각 그룹에 맞는 규칙을 커스터마이징하고, 일률적인 설정이 사용자 경험에 영향을 미치는 것을 방지하세요.