본문으로 건너뛰기

메시징 플랫폼

메시징 채널을 사용하면 이미 쓰는 서비스에서 Anyy 상주 Gateway와 대화할 수 있습니다. 구성된 각 계정에는 자체 연결 프로필, 자격 증명, 다이렉트/그룹 접근 정책이 있습니다.

지원 플랫폼​

현재 채널 카탈로그는 다음을 구현합니다.

플랫폼연결
TelegramBot API 롱 폴링
DiscordBot Gateway
SlackSocket Mode
WhatsAppBusiness Cloud API 웹훅
FacebookMessenger 웹훅
이메일TLS를 통한 IMAP 수신과 SMTP 발신
SMSTwilio 웹훅 및 REST
DingTalkStream 연결
Feishu / Lark기본 장기 연결. 기존 웹훅 계정 업데이트 가능
Weixin / WeChatQR 확인 롱 폴링
QQ BotWebSocket Gateway
IRCTLS 및 SASL
LINEMessaging API 웹훅

설정 마법사가 설치 버전의 권위 있는 카탈로그입니다. 마법사에서 미지원으로 표시한 항목은 추측한 구성을 추가하는 것만으로 활성화할 수 없습니다.

빠른 설정​

선택한 프로필의 상주 Gateway를 시작하고 대화형 채널 마법사를 엽니다.

anyy gateway start
anyy setup channel

마법사는 실행 중인 Gateway 카탈로그를 읽습니다. 플랫폼을 선택하고 CLI 정책 선택지를 포함해 실제 제공되는 입력을 채우세요. 기록 전에 요약을 검토합니다. 구성되지 않은 플랫폼에는 기본 연결 프로필을 사용하며 일반적인 프로필 전환 선택기는 제공하지 않습니다. 현재 설정 인터페이스는 해당 플랫폼 계정이 없을 때만 계정을 만들고 기존 계정은 업데이트합니다.

비대화형 터미널에서 플랫폼 없는 명령은 카탈로그를 출력합니다. 플랫폼 이름을 붙이면 비대화형 구성을 선택합니다. anyy setup channel telegram은 Telegram 전용 마법사를 열지 않습니다. 설정과 메시징 모두에 상주 Gateway를 사용 가능하게 유지하세요.

먼저 로컬 채팅을 확인하세요

채널을 추가하기 전에 Dashboard나 TUI에서 기본 모델을 구성하고 테스트하세요. 모델/공급자 문제와 메시징 연결 문제를 구분할 수 있습니다.

Dashboard 설정​

Dashboard → Channel에서 저장 계정과 사용 가능한 플랫폼 유형을 확인합니다. ‘구성됨’은 이 프로필에 저장되었다는 뜻이며 반드시 연결되었다는 뜻은 아닙니다. 여기서 다음을 할 수 있습니다.

  • 계정 추가.
  • 플랫폼 기본 구성 항목 사용.
  • 비밀이 아닌 필드와 자격 증명 입력.
  • 해당 계정의 Dashboard 작업이 제공하는 필드 편집.
  • 계정 상세 정보와 상태 확인.
  • 채널 다시 로드.
  • 연결 제거.

Weixin / WeChat은 Dashboard에 QR 로그인과 연결된 계정의 발신자 접근 양식을 제공합니다. 다른 플랫폼의 Dashboard/TUI 자격 증명 양식에는 CLI의 DM/그룹 정책 입력이 없습니다. 변경하려면 대화형 터미널에서 anyy setup channel을 사용하세요. 카탈로그가 특정 인터페이스에서 제공하지 않는 작업을 선언할 수도 있습니다. Feishu 전환이 그 예입니다.

접근과 페어링​

채널 프로필은 개방 접근, 페어링, 허용 목록, 멘션 전용 그룹 접근, 수신 비활성화 등의 정책을 제공할 수 있습니다. 사용 가능한 선택지는 플랫폼 계약에 따라 다릅니다.

현재 발신자 목록 입력은 연결된 Weixin 접근 양식과 IRC CLI 마법사에 있습니다. 다른 발신자/그룹 목록도 이미 존재하면 사용할 수 있지만 현재 설정 작업은 해당 항목을 편집하지 않습니다. allowlist를 선택해도 목록은 채워지지 않습니다. 목록이 비어 있거나 일치하지 않으면 발신자를 거부합니다. 추가 --set 키를 추측하거나 state.db를 편집하지 마세요.

페어링 요청 관리는 CLI에서 가능합니다. 현재 Dashboard 채널 페이지에는 페어링 승인 목록이 없습니다. 대기 요청을 나열합니다.

anyy channel pairing list

요청 ID로 승인하거나 거부합니다.

anyy channel pairing approve --request REQUEST_ID
anyy channel pairing reject --request REQUEST_ID

대화형으로 입력한 코드로 발신자의 페어링 요청을 승인합니다.

anyy channel pairing approve --prompt-code \
--channel telegram --account personal

기존 권한을 취소합니다.

anyy channel pairing revoke --grant GRANT_ID --reason "access removed"
페어링은 비서 접근 권한을 부여합니다

승인 전에 사람/계정과 플랫폼을 확인하세요. 권한 부여는 채널 정책 아래의 대화 접근과 활성화된 비서 기능을 노출할 수 있습니다.

대화 범위​

Anyy는 현재 계정, 상대방, 스레드 경로가 같으면 연결된 세션을 재사용합니다. 공용 방은 대화 컨텍스트를 공유합니다. 플랫폼 응답 컨텍스트는 다릅니다. Slack과 Discord는 스레드를 보존하고 현재 WhatsApp과 Email 경로는 수신 메시지 식별자도 사용합니다. 따라서 같은 연락처의 메시지가 언제나 Anyy 세션 하나를 공유하지는 않습니다.

/new는 현재 경로에 새 세션을 만들고 /stop은 활성 실행을 중단합니다. 명령 응답 실패가 확정된 로컬 작업을 취소하지는 않습니다. 계정을 재생성하거나 정체성을 바꿔도 대체 연결에 과거 응답을 재전송할 권한이 생기지 않습니다.

상태와 다시 로드​

플랫폼 하나를 확인합니다.

anyy channel doctor telegram

실행 중인 Gateway에서 채널 구성을 다시 로드합니다.

anyy channel reload

다른 프로그램에 구조화 출력이 필요하면 지원되는 doctor, pairing-list, reload 명령에 --json을 추가하세요. 로컬 작업 영수증, 어댑터 기능 선언, 관찰한 메시지 전달은 별개의 사실입니다. 배포 카탈로그는 실행 가능한 프로필에 미리 보기 표시를 할 수 있습니다. 실제 계정과 필요한 각 기능을 테스트하세요.

플랫폼 수락은 수신자가 읽었다는 뜻이 아닙니다. 확인 없는 전송은 sent_unconfirmed로 남을 수 있습니다. 새 최종 응답은 외부 효과 전에 안전하다고 알려진 실패에만 재시도합니다. 부분 또는 불확실한 전송은 전체가 자동 반복되지 않습니다. 다른 사본을 요청하기 전에 대화를 확인하세요. 다시 로드는 과거 기록을 재전송하지 않고 현재 계정을 조정합니다.

비대화형 설정​

자동화는 채널 작업 계약으로 플랫폼 하나를 구성할 수 있습니다.

anyy setup channel CHANNEL \
[--set INPUT=VALUE] \
[--sensitive-fd INPUT=FD] \
[--external-locator-fd INPUT=FD]

이미 구성된 Telegram 계정은 예를 들어 anyy setup channel telegram --set dm_policy=pairing --set group_policy=mention으로 정책을 업데이트할 수 있습니다. 새 계정을 만들려면 선언된 자격 증명도 필요합니다.

비밀이 아닌 입력에는 --set을 사용하세요. 자격 증명에는 3 이상의 전용 열린 디스크립터와 --sensitive-fd를 사용하여 프로세스 인수나 셸 기록에 값이 나타나지 않게 하세요. 선택 입력이 지원하면 --external-locator-fd로 외부 관리 비밀정보 위치를 제공합니다.

정확한 입력 ID는 선택한 플랫폼/프로필이 정의하며 설정 흐름에 표시됩니다. 다른 채널에서 필드 이름을 추측하지 마세요.

웹훅 플랫폼​

WhatsApp, Facebook, SMS, LINE, Feishu 웹훅 프로필에는 수신 웹훅 전달이 필요합니다. 설정 계약은 플랫폼별 콜백 필드와 검증 자격 증명을 요구합니다.

공유 웹훅 리스너는 기본적으로 비활성화됩니다. 선택한 프로필의 config.yaml에서 활성화하세요.

channel_webhooks:
enabled: true
listen: 127.0.0.1:8770

이 시작 설정을 바꾼 후 Gateway를 다시 시작하세요. anyy channel reload만으로 비활성 리스너를 시작할 수는 없습니다. 플랫폼의 정확한 /channels/PLATFORM/ACCOUNT_ID/webhook 경로를 Dashboard 포트가 아닌 이 리스너로 HTTPS를 통해 라우팅하세요. 본문과 서명 헤더를 보존하고 검증 비밀정보를 비공개로 유지하며 플랫폼 구독/권한을 완료하세요. Twilio는 원래 공개 URL도 검증합니다.

문제 해결​

문제해결
계정은 저장되지만 수신하지 못함anyy gateway status와 anyy channel doctor CHANNEL 실행
롱 폴링/WebSocket 채널 연결 끊김자격 증명/네트워크 접근 수정 후 anyy channel reload
웹훅 검증 실패공개 HTTPS 라우팅, 콜백 URL, 서명 비밀정보, 플랫폼 구독 확인
다이렉트 메시지 무시DM 정책, 페어링 상태, 허용 목록 검토
그룹 메시지 무시그룹 정책과 멘션 필요 여부 검토
잘못된 사람을 페어링함즉시 권한을 취소하고 대기/활성 접근 검토