> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 채널 개요

> FIM One을 외부 메시징 플랫폼에 연결하여 알림, 승인 및 양방향 에이전트 상호작용을 지원합니다.

**채널**은 FIM One과 외부 메시징 플랫폼(Feishu(Lark), Slack, DingTalk, Teams 등) 간의 다리입니다. 채널을 통해 에이전트는 다음을 수행할 수 있습니다:

* **아웃바운드 메시지 전송**(상태 업데이트, 아티팩트, 보고서).
* **인바운드 메시지 수신**(사용자가 그룹 채팅에서 질문을 하면 에이전트가 답변).
* **민감한 도구 호출을 인터랙티브 카드로 전달되는 인간 승인 뒤에 배치**.

채널은 개별 사용자가 아닌 **조직**에 범위가 지정됩니다. 모든 조직 관리자는 채널을 생성, 편집 및 비활성화할 수 있습니다.

## 채널이 조직 범위인 이유

채널은 외부 IM 플랫폼에서 조직의 **정체성**입니다 — 개인의 핫라인이 아닙니다. 에이전트가 Feishu 그룹에 카드를 게시할 때, 메시지는 채널을 구성한 조직의 권한을 가집니다: 봇은 해당 조직의 Feishu 테넌트에 등록되고, 그룹 멤버는 해당 조직 내의 동료이며, 승인 / 감사 추적은 해당 조직에 속합니다.

FIM One은 이 매핑을 일대일로 반영합니다:

| FIM One          | 외부 IM 플랫폼                              |
| ---------------- | -------------------------------------- |
| **조직**           | Feishu 테넌트 / 엔터프라이즈 (및 관리자)            |
| **채널**           | 해당 테넌트가 소유한 봇 + 그룹 채팅                  |
| **조직 멤버**        | 승인, 알림 수신 또는 카드에 반응할 수 있는 해당 테넌트 내의 사람 |
| **에이전트 (조직 게시)** | 조직을 대신하여 행동하는 AI 워커                    |

개인 에이전트 (미게시, 단일 사용자가 소유)는 의도적으로 채널에 접근할 수 없습니다. 개인 에이전트가 조직의 채널에 메시지를 보내는 것은 조직을 사칭하는 것입니다 — 감사 위험 및 거버넌스 위반입니다. 에이전트를 조직에 게시하는 것이 해당 에이전트가 채널을 통해 조직을 대신하여 말할 권리를 얻는 방법입니다.

이 제약은 균일하게 적용됩니다: `FeishuGateHook` (승인 라우팅)과 완료 알림 (에이전트 구성 채널) 모두 동일한 조직 정체성 경계를 존중합니다.

## 지원되는 플랫폼

| Platform                  | Status  | Inbound | Outbound | Approval card            |
| ------------------------- | ------- | ------- | -------- | ------------------------ |
| [Feishu (Lark)](./feishu) | GA      | Yes     | Yes      | Yes (`feishu_gate` hook) |
| Slack                     | Planned | —       | —        | —                        |
| DingTalk                  | Planned | —       | —        | —                        |

## 채널이 Hook과 상호작용하는 방식

`feishu_gate` hook은 Feishu 채널의 주요 소비자입니다. 에이전트가 `requires_confirmation: true`로 표시된 도구를 호출하려고 할 때, hook은:

1. 조직의 활성 Feishu 채널을 해결합니다.
2. 도구 이름과 인수가 포함된 대화형 승인 카드를 렌더링합니다.
3. 카드를 구성된 그룹 채팅(`chat_id`)에 게시합니다.
4. 그룹 멤버가 **Approve** 또는 **Reject**를 탭할 때까지 도구 호출을 일시 중단합니다.
5. 판정에 따라 도구를 재개(또는 중단)하고 SSE를 통해 결정을 다시 스트리밍합니다.

`model_config_json.hooks.class_hooks = ["feishu_gate"]`를 통해 에이전트에 hook을 연결하거나, 에이전트 편집기에서 토글합니다.

## 채널 생성

1. **조직 소유자** 또는 **관리자**로 로그인합니다.
2. **조직 설정 → 채널 → 새 채널**로 이동합니다.
3. 채널 유형을 선택하고(예: Feishu), 자격 증명을 입력하고, 대상 채팅을 선택한 후 저장합니다.
4. **테스트 메시지 전송**을 클릭하여 양방향 연결을 확인합니다.

각 채널 유형은 고유한 자격 증명 형식과 이벤트 구독 프로세스를 가지고 있습니다. 정확한 단계는 플랫폼별 가이드를 따르세요:

* [Feishu (Lark) 설정](./feishu)

## 보안 참고사항

* 앱 시크릿과 암호화 키는 백엔드의 `FERNET_SECRET_KEY`를 사용하여 **저장 시 암호화**됩니다.
* 콜백 엔드포인트(`/api/channels/{id}/callback`)는 이벤트에 대해 작동하기 전에 저장된 `encrypt_key` / `verification_token`에 대해 **모든 서명을 검증**합니다.
* 대상 그룹 채팅의 멤버만 승인 카드를 승인하거나 거부할 수 있습니다 — FIM One은 메시징 플랫폼이 이미 부여한 것 이상의 추가 권한을 부여하지 않습니다.
