Telegram
このガイドでは、Telegram 上で Qwen Code チャンネルをセットアップする方法について説明します。
前提条件
- Telegram アカウント
- Telegram ボットトークン(下記参照)
ボットの作成
- Telegram を開き、@BotFather を検索します
/newbotを送信し、画面の指示に従って名前とユーザー名を選択します- BotFather からボットトークンが発行されます。安全に保管してください
ユーザー ID の確認
senderPolicy: "allowlist" または "pairing" を使用するには、Telegram ユーザー ID(数値のID、ユーザー名ではありません)が必要です。
最も簡単な確認方法:
- Telegram で @userinfobot を検索します
- 任意のメッセージを送信すると、ユーザー ID が返信されます
設定
~/.qwen/settings.json にチャンネルを追加します:
{
"channels": {
"my-telegram": {
"type": "telegram",
"token": "$TELEGRAM_BOT_TOKEN",
"senderPolicy": "allowlist",
"allowedUsers": ["YOUR_USER_ID"],
"sessionScope": "user",
"cwd": "/path/to/your/project",
"instructions": "You are a concise coding assistant responding via Telegram. Keep responses short.",
"groupPolicy": "disabled",
"groups": {
"*": { "requireMention": true }
}
}
}
}ボットトークンを環境変数として設定します:
export TELEGRAM_BOT_TOKEN=<your-token-from-botfather>または、実行前に読み込まれる .env ファイルに追加します。
実行
# Telegram チャンネルのみ起動
qwen channel start my-telegram
# 設定されたすべてのチャンネルをまとめて起動
qwen channel startその後、Telegram でボットを開き、メッセージを送信します。すぐに “Working…” と表示され、続いてエージェントの応答が返ってきます。
グループチャット
Telegram グループでボットを使用する場合:
- チャンネル設定で
groupPolicyを"allowlist"または"open"に設定します - BotFather でプライバシーモードを無効にします:
/mybots→ ボットを選択 → Bot Settings → Group Privacy → Turn Off - ボットをグループに追加します。すでにグループにいる場合は、一度削除してから再追加してください(Telegram は参加時のプライバシー設定をキャッシュします)
groupPolicy: "allowlist"を使用する場合は、設定のgroupsにグループのチャット ID を追加します
デフォルトでは、ボットはグループ内で @メンションまたは返信があった場合のみ応答します。特定のグループで "requireMention": false を設定すると、すべてのメッセージに応答するようになります(専用タスクグループに便利です)。詳細はグループチャットを参照してください。
画像とファイル
テキストだけでなく、写真やドキュメントをボットに送信できます。
写真: 写真を送信すると、エージェントはビジョン機能を使用して分析します。これにはマルチモーダルモデルが必要です。チャンネル設定に "model": "qwen3.5-plus"(または他のビジョン対応モデル)を追加してください。写真のキャプションはメッセージテキストとして渡されます。
ドキュメント: PDF、コードファイル、その他のドキュメントを送信します。ボットはファイルをダウンロードしてローカルに保存し、エージェントがファイルツールで読み取れるようにします。これは任意のモデルで動作します。Telegram のファイルサイズ制限は20MBです。
ヒント
- インストラクションは簡潔に — Telegram のメッセージ文字数制限は4096文字です。「応答は短く」などの指示を追加すると、エージェントが制限内に収まりやすくなります。
sessionScope: "user"を使用 — これにより、ユーザーごとに個別の会話が割り当てられます。/clearで会話をリセットできます。- アクセスを制限 — 固定ユーザーには
senderPolicy: "allowlist"を、新しいユーザーが CLI で承認するコードを使ってアクセスをリクエストできるようにするには"pairing"を使用します。詳細はDMペアリングを参照してください。
メッセージフォーマット
エージェントのマークダウン応答は自動的に Telegram 互換の HTML に変換されます。コードブロック、太字、斜体、リンク、リストがすべてサポートされています。
トラブルシューティング
ボットが応答しない
- ボットトークンが正しく、環境変数が設定されているか確認してください
senderPolicy: "allowlist"を使用している場合、ユーザー ID がallowedUsersに含まれているか、"pairing"を使用している場合は承認されているか確認してください- ターミナルの出力でエラーを確認してください
グループでボットが応答しない
groupPolicyが"allowlist"または"open"に設定されているか確認してください(デフォルトは"disabled")"allowlist"を使用している場合、グループのチャット ID がgroups設定に含まれているか確認してください- BotFather で Group Privacy がオフになっていることを確認してください。これがないと、ボットはグループ内の非コマンドメッセージを認識できません
- プライバシーモードを変更した後、すでにグループにいるボットは一度削除してから再追加してください
- デフォルトではボットは @メンションまたは返信が必要です。
@yourbotname helloでテストしてください
「メッセージの処理中に問題が発生しました」
通常、エージェントでエラーが発生したことを意味します。ターミナルの出力で詳細を確認してください。
ボットの応答に時間がかかる
エージェントが複数のツール呼び出し(ファイル読み取り、検索など)を実行している可能性があります。“Working…” インジケータはエージェントが処理中であることを示します。複雑なタスクには1分以上かかることがあります。