Skip to main content

다중 채널 통합

자동 형식 조정 기능을 갖춘 35개 이상의 채널 등 모든 메시징 플랫폼에서 에이전트에 액세스하세요.

지원되는 채널

iMessage 심층 통합

무료 오픈 소스 macOS 릴레이인 BlueBubbles를 통해 iMessage에 연결하세요. Myrm은 기본 iMessage 환경을 위해 전체 BlueBubbles Private API을 구현합니다.

설정

  1. iMessage가 활성화된 macOS 컴퓨터에 BlueBubbles를 설치합니다.
  2. GUI에서 설정 > 채널 > iMessage로 이동합니다.
  3. BlueBubbles API URL비밀번호를 입력하세요.
  4. 선택적으로 Webhook URL을 제공합니다. 에이전트는 연결 시 이를 자동으로 등록합니다.
  5. 인용된 답변, 읽음 확인 및 입력 표시에 대해 BlueBubbles에서 비공개 API를 활성화합니다.

우아한 저하

BlueBubbles Private API 또는 해당 도우미 프로세스를 사용할 수 없는 경우 이를 필요로 하는 모든 기능(입력 표시기, 읽음 확인, 인용된 응답)이 자동으로 건너뛰어집니다. 낭비되는 네트워크 요청도 없고 로그에 오류도 없습니다. 기본 메시징은 중단 없이 계속 작동합니다.

설정

플랫폼을 연결하려면 GUI에서 설정 > 채널로 이동하세요. 각 채널에는 연결 상태 표시기가 있는 자체 구성 패널이 있습니다. API 자격 증명이 필요한 채널(DingTalk, Slack, Discord, WeCom 등)의 경우 개발자 포털 링크가 구성 양식 아래에 표시됩니다. 이를 클릭하면 봇/앱을 생성하고 자격 증명을 얻을 수 있는 플랫폼의 개발자 콘솔로 직접 이동할 수 있습니다. 12개 채널에는 직접 링크가 있습니다. 4개의 추가 채널에 텍스트 안내가 표시됩니다.

공용 Ingress 안내

일부 채널은 플랫폼이 웹훅 콜백을 공용 URL로 푸시하는 방식으로 메시지를 받습니다(LINE, Teams, WeChat Official, Zalo, SMS(Twilio), GitHub는 공개 주소가 필요합니다). 다른 채널은 아웃바운드로 연결되며 공개 주소가 필요 없습니다(Feishu WebSocket, Telegram 롱폴링, Email IMAP, IRC/Matrix). Myrm은 구성하기 전에 어떤 채널이 공용 주소를 필요로 하는지 알려줍니다: 이를 통해 “웹훅이 도착하지 않는” 디버깅 세션을 없앨 수 있습니다. 연결 전에 해당 채널이 공개 주소가 필요한지, 어디서 설정해야 하는지 정확히 알 수 있습니다.
정직한 경계: Ingress 안내는 채널별 전송 분류일 뿐이며 실시간 연결 테스트가 아닙니다. 웹훅 전달은 여전히 터널/프록시가 플랫폼에서 접근 가능해야 합니다.

WeChat(iLink를 통해)

QR 코드 로그인을 통해 1분 안에 개인 WeChat 계정을 연결하세요:
  1. GUI에서 설정 > 채널 > WeChat으로 이동합니다.
  2. Scan to Connect를 클릭하면 QR 코드 대화상자가 나타납니다.
  3. 휴대폰에서 WeChat을 열고 QR 코드를 스캔하세요.
  4. 휴대폰에서 확인하세요. 대화는 실시간으로 업데이트됩니다(SSE 스트리밍).
  5. 완료 - WeChat이 연결되었습니다
로그인 흐름은 QR 생성 → 스캔 대기 → 확인 → 연결 등 실시간 상태 업데이트를 제공합니다. QR 코드가 만료되면 재시도를 클릭하여 새로운 QR 코드를 생성하세요. 타이핑 표시기 신뢰성: iLink 타이핑 티켓은 600초 후에 만료됩니다. 장기 실행 에이전트 작업(>10분)의 경우 시스템은 드리프트 안전을 위한 단조 시계를 사용하여 만료되기 전에(540초 임계값, 60초 안전 버퍼) 티켓을 사전에 새로 고칩니다. 이렇게 하면 에이전트가 완료되면 “입력 중…” 표시가 항상 사라지며 입력이 정지된 상태가 되지 않습니다.

WeChat 공식 계정(초안 게시)

구독/서비스 계정(개인 WeChat 아님)의 경우 AppID + AppSecret을 구성하고 WebUI 확인 후 형식이 지정된 HTML을 드래프트 상자에 푸시합니다. 전체 가이드: WeChat 공식 계정 게시.
  1. 설정 → 채널 → WeChat 공식 — AppID, AppSecret, IP 화이트리스트, 테스트 연결.
  2. wechat-article-formatter.wechat.html 아티팩트로 볼트 마크다운 형식을 지정합니다.
  3. 채팅에서 미리보기 → WeChat Draft로 푸시(제목 + 표지, 첫 번째 인라인 이미지 자동 제안)
  4. mp.weixin.qq.com 초안 상자에서 수동으로 게시하세요.
Draft push is HITL only — no Agent draft tool (Prompt Cache–friendly, no accidental mass send).

WhatsApp(Baileys를 통해)

  1. GUI에서 설정 > 채널 > WhatsApp으로 이동합니다.
  2. 스캔하여 연결을 클릭하세요. — WeChat과 동일한 QR 코드 대화 상자
  3. 휴대폰에서 WhatsApp 열기 → 연결된 장치 → QR 코드 스캔
  4. 자동으로 연결이 설정됩니다.
WeChat과 WhatsApp 모두 동일한 AsyncLoginProtocol, 즉 채널 전반에 걸쳐 일관된 UX를 사용합니다.

이메일(IMAP + SMTP)

  1. 설정 > 채널 > 이메일을 엽니다.
  2. IMAP(받은 편지함) 및 SMTP(발신 편지함) 서버, 포트 및 자격 증명 구성
  3. 저장 - 폴링이 자동으로 시작됩니다.
스마트 전달 이메일 구문 분석: 모든 이메일을 에이전트에 전달하면 자동으로 원본 이메일 내용에서 지침을 분리합니다.
  • Gmail, Outlook, QQ Mail, 163 Mail, Foxmail 및 기타 주요 클라이언트 지원
  • 3단계 감지: 제목 접두어(Fwd:/FW:/转发:/轉發:) → 본문 구분자 → MIME 첨부
  • 전달할 때 “expense this” 또는 “translate to English”라고만 작성하세요. 상담원은 귀하의 지시사항과 전체 원본 이메일을 모두 본 다음 정확하게 실행합니다.
  • 적응형 문자 집합 디코딩(gb2312/GBK/UTF-8)을 통한 전체 CJK 이메일 클라이언트 지원
스마트 HTML 정리: 이메일에 HTML(Amazon 주문, Jira 알림, Outlook 서식 있는 텍스트)만 포함된 경우 콘텐츠는 자동으로 정리 마크다운으로 변환됩니다. 즉, 콘텐츠 크기를 65~74%(측정) 줄이면서 테이블, 링크 및 목록을 보존하므로 에이전트가 더 빠르고 정확하게 이해할 수 있습니다. 다중 에이전트 이메일 라우팅: 여러 에이전트가 구성된 경우 슬래시 명령으로 이메일 본문을 시작하여 특정 에이전트로 라우팅합니다.
  • /coder review this PR → “코더” 에이전트로 라우팅
  • /accountant expense this → 귀하의 “회계사” 대리인에게 전달됩니다.
  • 명령 없음 → 기본 에이전트로 라우팅

텔레그램

텔레그램을 연결하는 두 가지 경로 — 상황에 맞는 것을 선택하세요: 경로 A: 온보딩 마법사(처음 사용자에게 권장) 초기 설정 마법사에서 모델 및 라우팅 기본 설정을 구성한 후 Telegram Personal Assistant 단계가 나타납니다.
  1. 봇 토큰을 붙여넣습니다(@BotFather에서 하나 가져옴).
  2. 선택적으로 Webhook URL을 입력합니다(공용 도메인 뒤의 VPS/클라우드 배포에만 필요함)
  3. 선택적으로 어시스턴트의 이름을 지정합니다(기본값은 Myrm Assistant).
  4. 활성화를 클릭합니다. 시스템이 토큰을 원자적으로 검증하고, 자격 증명을 작성하고, DM 정책을 “공개”로 설정하고, 기본 에이전트를 바인딩합니다.
단계가 실패하면 모든 변경 사항이 자동으로 롤백됩니다. 즉, 절반만 구성된 상태가 아닙니다. 또한 마법사는 동시 제출을 적절하게 처리합니다. 다른 요청이 이미 진행 중인 경우 자동으로 재시도하고 원시 오류 대신 친숙한 메시지를 표시합니다. 경로 B: 설정 페이지(나중에 텔레그램 추가용)
  1. 설정 > 채널 > 텔레그램으로 이동합니다.
  2. 봇 토큰과 선택적으로 Webhook URL을 입력하세요.
  3. 저장 - 봇이 연결되어 메시지 수신을 시작합니다.
Webhook 대 폴링: 웹훅 URL이 없으면 봇은 긴 폴링을 사용합니다(로컬/데스크탑 설정에 적합). Webhook URL을 사용하여 Telegram은 업데이트를 서버에 푸시합니다(인터넷에서 봇에 접근할 수 있어야 하는 VPS/클라우드 배포에 필요). 리치 메시지 렌더링: Telegram은 Bot API 10.1을 통해 기본 리치 메시지를 지원합니다. — 테이블, LaTeX 수식 및 중첩 목록은 기본적으로 렌더링됩니다. 자세한 내용은 텔레그램 리치 메시지를 참조하세요.

SMS(Twilio)

  1. 설정 > 채널 > SMS를 엽니다.
  2. Twilio 계정 SID, 인증 토큰전화번호(E.164 형식, 예: +15551234567)를 입력합니다.
  3. 자동 생성된 Webhook URL을 복사하여 Twilio 콘솔 > 전화번호 > 메시징 웹훅에 붙여넣습니다.
  4. 연결 테스트를 클릭하여 확인합니다.
  • 양방향 : 모든 전화에서 SMS 수신 → 에이전트 프로세스 → SMS를 통해 응답
  • 긴 메시지는 자연스러운 경계에서 자동으로 분할됩니다(세그먼트당 최대 1600자).
  • Twilio 서명 확인은 합법적인 메시지만 처리되도록 보장합니다.

메시지 유형

모든 채널은 다음을 지원합니다.
  • 플랫폼에 적합한 형식의 문자 메시지
  • 이미지/문서/오디오/비디오 첨부 파일(MediaType 열거형)
  • 자동 유형 감지 기능을 갖춘 파일 업로드

양방향 파일 전송

에이전트가 생성한 파일은 IM 채널에 자동으로 푸시되므로 수동으로 다운로드할 필요가 없습니다.

인바운드(사용자 → 상담원)

IM을 통해 에이전트에게 문서(PDF, Excel, Word 등)를 보내면 해당 내용이 자동으로 추출되어 LLM 컨텍스트에 삽입됩니다. 에이전트는 파일 읽기 도구를 호출할 필요 없이 파일을 즉시 이해합니다.

아웃바운드(상담원 → 사용자)

상담원이 파일(차트, 보고서, 스프레드시트, 컴파일된 문서)을 생성하면 자동으로 채팅에 미디어 첨부 파일로 전달됩니다. 지원되는 아티팩트 유형에는 코드 실행, 파일 쓰기 또는 문서 생성 도구를 통해 생성된 모든 파일이 포함됩니다.

아티팩트 딥 링크

대화형 아티팩트(HTML 페이지, PDF, 문서)의 경우 에이전트는 원시 파일을 보내는 대신 IM 메시지에 클릭 가능한 딥 링크 버튼을 자동으로 생성합니다. 버튼을 탭하면 사용자 브라우저에서 아티팩트가 직접 열립니다. 다운로드가 필요하지 않습니다.

채널 인식 출력 적응

Myrm은 3중 레이어 아키텍처를 사용하여 모든 플랫폼에서 출력이 깔끔하고 올바른 형식인지 확인합니다.

아웃바운드 소음 필터링

각 채널에는 사용자가 보는 콘텐츠를 제어하는 자체 RenderStyle 구성이 있습니다. 기본적으로 IM 사용자는 진행률 레이블, 최종 결과 및 결정 프롬프트만 수신하며 도구 호출 매개변수, 추론 토큰 또는 사고 태그는 없습니다. strip_thinking_tags() 기능은 누출되는 모든 LLM 사고 블록을 제거하는 추가 안전망을 제공합니다. 진행률 라벨은 입력 요약으로 강화되므로 에이전트가 수행하는 작업을 정확하게 확인할 수 있습니다.
  • 🔍 Searching: AI coding tools 2025 (단순히 “웹 검색 중…”이 아님)
  • 📄 Reading: config/settings.yaml (단지 “파일을 읽는 중…”이 아님)
  • ⏳ **notion_query** — Search meeting notes(사용자 정의 MCP 도구가 자동으로 적용됨)
모든 도구가 포함됩니다. 등록된 도구는 특정 작업을 표시하고, 등록되지 않은 도구(구성한 모든 MCP 서버 포함)는 입력 추출을 통해 일반적인 대체 기능을 가져옵니다. API 속도 제한을 피하기 위해 업데이트가 제한됩니다(최소 2초 간격).

사전 지침(channel_output_hints)

에이전트 초기화 시 채널별 형식 힌트가 시스템 프롬프트에 삽입됩니다. 이는 플랫폼이 콘텐츠를 생성하기 전에 플랫폼이 지원하는 것이 무엇인지 LLM에 알려줍니다.
  • 텔레그램: 테이블, LaTeX 및 중첩 목록은 Bot API 10.1 리치 메시지를 통해 기본적으로 렌더링됩니다. 힌트는 Rich를 사용할 수 없을 때만 활성화됩니다.
  • WhatsApp: “마크다운은 렌더링되지 않습니다. 일반 텍스트만 사용하세요.”
  • Discord: “2000자가 넘는 메시지는 자동으로 분할됩니다.”
  • 음성: “대화 중인 사람에게 말하듯이 말하세요.”
28개의 채널 힌트가 사전 구성되어 있으며 KV 캐시에 안전합니다(초기화 시 한 번 주입됨).

IM 행동 페르소나(자동 삽입)

제한된 IM 채널(메시지 편집 없음, 마크다운 지원 없음)의 경우 시스템은 자동으로 행동 전략을 주입합니다.
  • 간결한 채팅 스타일: 교과서가 아닌 채팅 대화 같은 답변
  • 긴 콘텐츠 → 파일 + 요약: 최대 200자를 초과하는 콘텐츠는 작업공간 파일에 기록됩니다. IM 답글에는 한 문장 요약 + 아티팩트 딥 링크만 포함됩니다.
  • 집중적 설명: 사용자 의도가 불분명할 때 최대 1~2개의 주요 질문을 묻습니다.
자동 실행 채널: WeChat iLink, WeChat Official, Signal, iMessage, LINE, SMS, OneBot(QQ), IRC, Zalo, Voice(총 10개) 제로 구성 필요 — ChannelCapabilities에서 자동으로 감지됩니다. Markdown 또는 편집 지원 채널(Telegram, Discord, Slack 등)은 영향을 받지 않습니다.

사후 형식 다운그레이드(렌더러)

LLM이 힌트를 무시하더라도 렌더링 파이프라인은 형식 다운그레이드를 적용합니다.
  • supports_tables=false → 글머리 기호 목록으로 변환된 마크다운 테이블
  • supports_latex=false → 일반 텍스트로 제거된 LaTeX 수식
  • IM 채널에서 HTML/SVG 코드 블록이 짧은 자리 표시자로 대체되었습니다.
  • 출처가 없을 때 고아 인용 마커가 자동으로 정리됩니다.

메시지당 비용 표시

enableCostEstimation이 활성화되면(기본값: true) IM 채널의 각 에이전트 응답에는 사용된 모델, 토큰 수 및 예상 비용을 보여주는 비용 바닥글이 포함됩니다.``` 💰 claude-sonnet-4-20250514 | 2.5k tokens | ~$0.0035
Webhook 채널은 구조화된 JSON을 사용자가 지정한 URL에 게시하여 외부 시스템에 결과를 전달할 수 있습니다.

원격 승인(HITL)

IM 채널을 통해 에이전트를 원격으로 제어할 때 위험성이 높은 도구 호출(파일 편집, 셸 명령)은 업계 유일의 IM 기반 HITL 시스템인 채널 내 승인 프롬프트를 트리거합니다.

작동 방식

  1. 에이전트가 위험한 도구 호출을 발견했습니다.
  2. 승인/거부 버튼이 포함된 메시지가 IM 채널로 전송됩니다.
  3. 일괄 명령을 승인, 거부 또는 사용합니다.
  4. 귀하의 결정에 따라 상담원이 재개되거나 중단됩니다.

승인 방법

대화형 버튼(ActionButton)

대화형 요소(Telegram InlineKeyboard, Slack Block Kit, Discord 버튼, Feishu 카드, MS Teams 적응형 카드)를 지원하는 채널의 승인 프롬프트에는 기본 승인/거부 버튼이 포함됩니다. 버튼을 클릭하면:
  1. 데이터베이스에서 승인을 해결합니다. (PENDING 전용 - 중복 클릭은 안전하게 무시됩니다.)
  2. 원본 메시지를 편집하여 결과를 표시합니다(예: “Alice가 승인함”)
  3. 중단된 에이전트를 자동으로 재개합니다.
이는 WebUI 승인과 함께 작동합니다. 두 경로 모두 동일한 영구 기록으로 이어집니다.

보안

  • 그룹 채팅 보호: 원래 요청자 또는 구성된 공동 승인자만 승인할 수 있습니다.
  • 멱등성 보호: 이미 해결된 승인은 다시 해결하거나 상태를 뒤집을 수 없습니다(DB 수준 PENDING 확인).
  • 타임아웃 가드: 응답하지 않은 승인 자동 거부(구성 가능)
  • 지속적 허용 목록: ‘항상 허용’ 결정은 다시 시작해도 유지됩니다.
  • 재시도 방지: 3회 거부 후 에이전트가 재시도를 중지합니다.

아웃바운드 HITL(초안 검토)

기업 판매 및 고객 서비스 시나리오의 경우 AI가 생성한 답변을 보내기 전에 사람의 검토가 필요할 수 있습니다. Myrm의 아웃바운드 HITL은 상담원의 답변을 초안으로 가로채어 명시적인 승인이 필요합니다.

구성

각 주제는 설정 → 채널 라우팅을 통해 독립적으로 구성할 수 있습니다.

작동 방식

  1. IM 채널에 메시지 도착 → 에이전트가 응답 생성
  2. 응답을 가로채서 ApprovalRecord으로 저장합니다(전송되지 않음).
  3. 검토자는 WebUI Approval Drawer 또는 IM ActionButton에서 초안을 봅니다.
  4. 승인 → 해당 채널에 메시지가 전송됩니다.
  5. 거부 → 메시지가 삭제됩니다.
  6. 시간 초과 → 자동 전송 또는 자동 거부 구성 가능

리뷰 채널

  • WebUI Approval Drawer: 원본 고객 메시지, AI 생성 초안, 채널/주제 정보 표시
  • IM ActionButtons: 채널 승인 알림의 승인/거부 버튼

사용 사례

지능형 무음 필터링

에이전트의 시스템 프롬프트에 “주의가 필요한 항목이 없을 때 [SILENT]로 답장”과 같은 지침이 포함되어 있으면 Myrm은 전달되기 전에 이러한 자동 응답을 자동으로 감지하고 필터링합니다.
  • 그룹 채팅: 상담원이 언급되고 확인되며 주목할 만한 내용이 발견되지 않음 → 메시지가 전송되지 않음(소음 없음)
  • 예약된 작업: 정기 확인이 정상으로 돌아옴 → 자동으로 자동으로 실행, 문제가 발견된 경우에만 푸시
  • 자리 표시자 정리: “처리 중…” 자리 표시자 메시지가 자동으로 제거됩니다.

탐지 규칙

이렇게 하면 “필요할 때만 알림” 환경이 보장됩니다. 에이전트는 의미 있는 말이 있을 때만 IM 채널에 메시지를 보냅니다.

깊은 Feishu 통합

Myrm의 Feishu 지원은 기본적인 메시징 그 이상입니다. 내장된 SDK는 6개의 기능 모듈을 깊이 통합하여 Feishu 문서, 스프레드시트, Wiki 및 댓글을 대화에서 직접 작동할 수 있도록 해줍니다.

지원되는 기능

일반적인 작업 흐름

시나리오: 회의록 읽기 → 작업 항목 추출 → 스프레드시트에 쓰기``` User: Please read last week’s project meeting minutes, extract all action items, and write them to the project tracking Bitable