mcpField
I
interactive-bot

interactive-bot

github.com/terrylica生産性2113 回インストール今日更新
リポジトリ

interactive-bot について

Gmail Commander Telegram ボットの利用方法とコード保守を開発者向けに説明するスキルです。Gmail コマンド、自由入力のエージェント振り分け、実行時の安全対策を扱います。

主な機能

  1. 01Gmail のスラッシュコマンド
  2. 02自由入力のエージェント振り分け
  3. 03Gmail MCP ツールの呼び出し
  4. 04同時実行・タイムアウト・サーキットブレーカー制御
  5. 05Telegram の認証チェック

活用シーン

  1. 01Gmail の受信トレイの確認と検索
  2. 02メールの作成・返信・下書き管理
  3. 03自然言語によるメール操作の依頼

MCP 対応

自由入力メッセージは Agent SDK 経由で振り分けられ、メールの一覧、検索、読み取り、下書き作成を行う 4 つの Gmail MCP ツールを利用します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/terrylica/cc-skills --skill interactive-bot

インストール後、Claude Code で/interactive-botを入力して読み込まれたか確認します。

同梱ファイルreferences/evolution-log.md

詳細

インタラクティブボット

Gmail Commander の Telegram ボットです。メールにアクセスするスラッシュコマンドと、AI を活用した自由入力のルーティングに対応します。このスキルでは、ボットの機能とコードの場所について説明します。実行中のボットの操作については、bot-process-control を参照してください。

進化するスキル:このスキルは使用を通じて改善されます。説明が間違っている場合、パラメーターが変わった場合、または回避策が必要になった場合は、先延ばしにせず、ただちにこのファイルを修正してください。実際に再現できる問題がある場合にのみ更新してください。

実行場所

ボットは常時稼働している Mac mini 上のプライベートな Restate テナントで動作します。このテナントは scripts/bot.ts から buildBot() をインポートし、独自の永続的な Telegram getUpdates チェーンを持ち、各更新を返された grammY ボットの bot.handleUpdate() に渡します。ワークステーション上のデーモンはありません。ノートパソコンの launchd ジョブは 2026-09-24 に廃止されました。

本番用ボットのトークンを使って「テスト」するために、scripts/bot.ts を直接起動しないでください。Telegram では、1 つのトークンにつき getUpdates のコンシューマーは 1 つのみ許可されています。そのため、2 つ目のポーラーを起動すると、デプロイ済みのボットで 409 Conflict が発生します。別のボットトークンを使ってテストするか、buildBot() をインポートしてコードを実行してください。

必須の事前確認

ステップ 1:ボットのコードが存在し、引き続き buildBot をエクスポートしていることを確認する
PLUGIN="$HOME/.claude/plugins/marketplaces/cc-skills/plugins/gmail-commander"
ls -la "$PLUGIN/scripts/bot.ts" 2>/dev/null || echo "SCRIPT_NOT_FOUND"
grep -n "export async function buildBot" "$PLUGIN/scripts/bot.ts" || echo "buildBot EXPORT MISSING — the deployment depends on it"

ボットコマンド(サイドバーメニュー)

コマンド説明
/inbox受信トレイの最近のメールを表示します
/searchメールを検索します(Gmail クエリ構文)
/readID を指定してメールを読みます
/compose新しいメールを作成します
/replyメールに返信します
/abort現在の作成/返信操作をキャンセルします
/drafts下書きメールの一覧を表示します
/digest直近 N 時間分を今すぐトリアージします(デフォルトは 6 時間)
/statusボットのステータスと統計情報を表示します
/helpすべてのコマンドを表示します

2 層のコマンドシステム

第 1 層 — 決定論的:スラッシュコマンドは Gmail CLI を直接呼び出します(GMAIL_CLI_BIN で指定されたバイナリを実行する scripts/lib/gmail-client.ts 経由)。

第 2 層 — インテリジェント:自由入力のメッセージは Agent SDK(HAIKU_MODEL)を経由し、4 つの Gmail MCP ツール(list、search、read、draft)を使ってルーティングされます。

安全制御

  • ミューテックス:同時に実行できるエージェントクエリは 1 つです
  • タイムアウト:クエリごとに AGENT_TIMEOUT_MS を適用します(デフォルトは 2 分)
  • サーキットブレーカー:3 回連続で失敗すると、エージェントを 10 分間無効にします
  • 汚染防止:すべてのエージェント応答でスキル汚染を検出します
  • 認証ガード:認証済みの TELEGRAM_CHAT_ID にのみ応答します

ソースマップ

対象ファイル
配線、作成/返信のセッションフローscripts/bot.ts(buildBot())
コマンド一覧とハンドラーscripts/lib/commands.ts
インラインキーボードのコールバック、セッションストアscripts/lib/callbacks.ts
自由入力のルーティング、MCP ツールscripts/lib/agent-router.ts
メールのレンダリング、HTML エスケープscripts/lib/telegram-format.ts
メッセージの分割(4096 文字の上限)scripts/lib/telegram-chunk.ts

変更後のチェックリスト

  • YAML フロントマターが有効(説明文にコロンがない)
  • トリガーキーワードが最新である
  • パスのパターンにハードコードされたパスではなく $HOME を使っている
  • インポート時に buildBot() が引き続きトランスポートを開始せず、PID ロックも取得しない

実行後の振り返り

このスキルの実行後、タスクを終える前に振り返ります。

  1. 現在地を確認します。 — 編集する前に、この SKILL.md の正規パスを特定します。
  2. 何が失敗しましたか? — 原因となった指示を修正します。
  3. 予想以上にうまくいったことは何ですか? — 推奨プラクティスにします。
  4. 何にずれがありましたか? — 現状と合わなくなったスクリプト、参照、依存関係を修正します。
  5. 記録します。 — 発生のきっかけ、修正内容、根拠を含む進化ログのエントリーを追加します。

先延ばしにしないでください。次回の実行では、ここに残した内容が引き継がれます。

コメント