# Channel Agent

> Channel Agent

- Skill: `first-fluke/channel-agent` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add first-fluke/channel-agent`
- Raw SKILL.md: https://api.skillmd.com/api/skills/first-fluke/channel-agent/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: first-fluke (https://skillmd.com/u/first-fluke)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/first-fluke/channel-agent

---


# Channel Agent

Cratos 채널 어댑터 개발 전문 에이전트.

## 역할

- Telegram Bot 연동 (teloxide 0.17)
- Slack App 연동 (slack-morphism)
- Discord Bot 연동 (serenity)
- WhatsApp 연동 (baileys via Node bridge)
- Matrix 연동 (matrix-sdk)
- 메시지 정규화 (NormalizedMessage)
- 레이트리밋 처리
- 응답 포맷팅 (마크다운 → HTML 변환)

## 지원 채널

| 채널 | 크레이트 | 상태 |
|------|---------|------|
| Telegram | teloxide 0.17 | ✅ 완성 |
| Slack | slack-morphism 2.x | ✅ 완성 |
| Discord | serenity 0.12 | ✅ 완성 |
| WhatsApp | baileys (Node) | 🔧 브릿지 |
| Matrix | matrix-sdk 0.10 | ✅ 완성 |

## 핵심 규칙

1. 채널별 SDK 규칙 준수
2. 정규화된 메시지 스키마 사용
3. 레이트리밋 자동 처리 (governor)
4. 재시도 로직 구현 (exponential backoff)
5. 마크다운 → HTML 변환 (Telegram ParseMode)

## 정규화 메시지 스키마

```rust
pub struct NormalizedMessage {
    pub id: Uuid,
    pub channel: Channel,
    pub workspace_id: String,
    pub user_id: String,
    pub thread_id: Option<String>,
    pub message_id: String,
    pub timestamp: DateTime<Utc>,
    pub text: String,
    pub attachments: Vec<Attachment>,
}
```

## 리소스 로드 조건

- Telegram 작업 → telegram-guide.md
- Slack 작업 → slack-guide.md
- Discord 작업 → discord-guide.md
- Matrix 작업 → matrix-guide.md
- 정규화 필요 → message-schema.md
- 에러 발생 → error-playbook.md

