# Agent Reach Channel Tiers Explained: Zero‑Config, Needs‑Free‑Key, and Needs‑Setup

> Understand Agent Reach channel tiers zero-config needs-free-key and needs-setup. Learn how each tier simplifies integration for active channels.

- Repository: [Pnant/Agent-Reach](https://github.com/Panniantong/Agent-Reach)
- Tags: deep-dive
- Published: 2026-06-06

---

**Agent Reach classifies every platform adapter into one of three channel tiers—zero-config, needs-free-key, or needs-setup—based on whether the user must install a binary, provide a free API token, or complete multi-step OAuth registration before the channel becomes active.**

The open-source Agent Reach framework (`Panniantong/Agent-Reach`) uses a tiered classification system to communicate exactly how much upfront work each platform integration requires. Understanding these **Agent Reach channel tiers** helps users quickly identify which adapters work out-of-the-box and which need additional credentials or complex configuration.

## What Are the Agent Reach Channel Tiers?

In [`agent_reach/channels/base.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/base.py), the base `Channel` class defines a `tier` attribute at line 24 that every concrete channel must set. This integer value places the adapter into one of three groups that determine the user onboarding experience.

### Tier 0 – Zero-Config

**Tier 0** channels are ready to use as soon as the required backend binary is present on the system. No API key, login cookie, or additional setup is required from the user.

For example, the YouTube channel in [`agent_reach/channels/youtube.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/youtube.py) (line 16) sets `tier = 0`. If `yt-dlp` or `ffmpeg` is installed and discoverable on `$PATH`, the channel is immediately active with no further configuration.

### Tier 1 – Needs Free Key

**Tier 1** channels require a free-to-obtain credential such as an API key, token, or login cookie. The user must copy this value into a configuration file or environment variable, but no complex registration flow is needed.

Concrete examples from the source code include:

- **Xueqiu** ([`agent_reach/channels/xueqiu.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/xueqiu.py), line 150) with `tier = 1`
- **Twitter** ([`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py), line 13) with `tier = 1`
- **Bilibili**, also classified as `tier = 1`

Users typically add these credentials to `~/.agent-reach/config.yaml` or export them as `AGENT_REACH_<CHANNEL>_TOKEN`.

### Tier 2 – Needs Setup

**Tier 2** channels demand a more involved configuration process such as OAuth app registration, client-secret files, or a running local callback service. The user must follow a multi-step installation guide before the channel becomes functional.

Notable Tier 2 implementations include:

- **LinkedIn** ([`agent_reach/channels/linkedin.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/linkedin.py), line 13) with `tier = 2`
- **Douyin**, also classified as `tier = 2`

These integrations often require creating an application on the platform, storing client IDs and secrets, and updating [`config.yaml`](https://github.com/Panniantong/Agent-Reach/blob/main/config.yaml) with the resulting values.

## How Tiers Are Defined in the Source Code

Each channel file inherits from the base class and explicitly declares its tier. The `Doctor` component in [`agent_reach/doctor.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/doctor.py) then aggregates these values at runtime to produce a human-readable status report. It groups channels by their tier and checks whether the required binaries, keys, or OAuth assets are present.

## Checking Your Channels with the Doctor Command

Agent Reach provides a built-in CLI health checker that displays a colour-coded summary of every channel grouped by tier. Run the following command:

```bash
python -m agent_reach.cli doctor

```

Typical output from the `doctor` command looks like this:

```text
✅ 装好即用：
  ✅ YouTube — 可提取视频信息和字幕
  ✅ Web — 内置

可选渠道（已安装）：
  ✅ Twitter — 已登录 (need free key)
  ✅ Xueqiu — 已配置 API key

还有 2 个可选渠道可以解锁（LinkedIn、Douyin），告诉你的 Agent「帮我装 LinkedIn」即可

```

In this report:

- **"✅ 装好即用"** lists Tier 0 channels that are ready for immediate use.
- **"可选渠道（已安装）"** lists Tier 1 or Tier 2 channels that already have the necessary free key or setup completed.
- **Missing credentials** produce a warning such as `[! ] Twitter — 需要提供 API token（请在 config.yaml 中添加 token）`.

## Summary

- Agent Reach organizes platform adapters into **three channel tiers** defined by the `tier` attribute in [`agent_reach/channels/base.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/base.py).
- **Tier 0 (zero-config)** channels like YouTube work immediately once the backend binary is on `$PATH`.
- **Tier 1 (needs-free-key)** channels like Xueqiu and Twitter require a free API token or cookie added to the config.
- **Tier 2 (needs-setup)** channels like LinkedIn and Douyin demand complex OAuth registration and client-secret configuration.
- The `python -m agent_reach.cli doctor` command generates a tier-grouped status report so users can see which channels are unlocked.

## Frequently Asked Questions

### What is a Tier 0 channel in Agent Reach?

A Tier 0 channel is a zero-config adapter that requires no API keys, tokens, or manual setup. As implemented in [`agent_reach/channels/youtube.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/youtube.py) (line 16), it becomes active as soon as its underlying binary—such as `yt-dlp` or `ffmpeg`—is installed and available on the system `$PATH`.

### How do I activate a Tier 1 channel?

To activate a Tier 1 channel, obtain the free API key or login cookie for the platform and supply it in `~/.agent-reach/config.yaml` or via an environment variable like `AGENT_REACH_<CHANNEL>_TOKEN`. The source code for Xueqiu ([`agent_reach/channels/xueqiu.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/xueqiu.py), line 150) and Twitter ([`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py), line 13) both follow this pattern.

### Why is LinkedIn classified as Tier 2?

LinkedIn is a Tier 2 channel because it requires a full OAuth application registration, including client ID and client secret generation, as reflected in [`agent_reach/channels/linkedin.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/linkedin.py) (line 13). Unlike Tier 1 integrations, simply pasting a free key is insufficient; the user must complete multi-step platform registration and configure callback services.

### How can I check which channels are unlocked?

Run `python -m agent_reach.cli doctor`. The `doctor` module in [`agent_reach/doctor.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/doctor.py) inspects every channel's tier, verifies the presence of required binaries or credentials, and prints a grouped report showing which channels are ready to use and which still need a free key or full setup.