
2026/08/07 1:05
Show HN: チャンネルズ SDK をご紹介します。あらゆるエージェントを(Slack や Microsoft Teams など)あらゆるチャネルへ連携させることができます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Channels SDK は、Slack Block Kit や Teams Adaptive Cards などのネイティブ UI コンポーネントを使用して、Slack、Microsoft Teams、Discord などのコミュニケーションプラットフォームにネイティブでインタラクティブな AI エージェントを埋め込むことを開発者に可能にします。CopilotKit Intelligence を介して、LangGraph、CrewAI、Mastra、Pydantic AI、Google ADK など、AG-UI 互換のフレームワークと接続され、ユーザーロジックから分離したプラットフォーム認証情報を安全に管理します。開発者は、初期設定や複雑なセットアップの壁なしで、エージェントの文脈理解能力、ツール使用機能、UI 能力を迅速にテストできます。本番デプロイメントについては、SDK はホスティングサービス(MIT ライセンスのオープンソースセルフホストインスタンを含)およびエンタープライズ環境の両方をサポートしており、OpenTag のオンコールタリッジアシスタントでの成功事例がこれを示しています。セットアップには Node.js 22 以上と特定の依存関係(
@copilotkit/channels、@copilotkit/runtime)が必要で、copilotkit channels add --adapter slack といった CLI ツールがエージェント統合を促進します。開発が進化するにつれて、追加チャンネルへのサポートが予定されており、互換性を維持するために開発者はスキルフラグが最新であることを確認する必要があります。本文
CopilotKit で AI エージェントを Slack や Teams に導入しよう
CopilotKit を活用すれば、Slack、Microsoft Teams、Discord など、実際の業務が行われるチャネルへ AI エージェントを導入できます。ネイティブかつインタラクティブなユーザーインターフェース(UI)を提供し、エージェントはツールやモデル、ビジネスロジックを維持したまま、利用者と対話し続けることが可能です。
導入の概要:ネイティブ UI と人の統制
Channels は、人々と協業するためのネイティブの場所を提供します。
- エージェントの導入:
- CopilotKit の組み込みエージェントを使用。
- LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK など、他の AG-UI エージェントとの接続も可能。
- ネイティブ UI のレンダリング:
- メッセージを記述するだけで、Slack Block Kit や Teams Adaptive Cards などのプラットフォーム固有の UI に変換されます。
- 人の統制:
- エージェントが行動する前に、ユーザーによる承認ゲートや選択操作を会話内に配置可能で、常に人間のコントロール下におけます。
多チャネル対応と体験環境
Channels は、あらゆるコミュニケーションプラットフォームでエージェントを動作させるように設計されています。
- 対応プラットフォーム: Slack, Microsoft Teams, Discord など。
- CopilotKit Intelligence: Slack および Teams については CopilotKit が接続管理を行い、将来的に更多なチャネルに対応予定です。
構築前の体験環境
アプリ構成やランタイム設定なしで、即座にエージェントを試せます。
- [Channels を試してみる]: プラットフォームを選択し、コンテキスト処理やツール利用を確認できます。
セットアップ:最速のパス(コード生成エージェント)
エージェントとアプリケーションロジックは独自のインフラ上で動作します。CopilotKit Intelligence がプラットフォーム接続を管理し、長期的な実行プロセスへ配信します。
手順:ガイドを使ってセットアップ
プロジェクト作成からランタイム設定までをガイドに任せるのが最も速い方法です。
npx copilotkit@latest channels setup
動作の流れ:
スキルがインストールされ、クリップボードにセットアッププロンプトがコピーされます。channels-setup- そのプロンプトをコーディングエージェントに貼り付けます。
- 仕組み: 安裝されたスキル(例:数ヶ月前のもの)でも、
から最新のワークフローを参照するため、常に最新の状態を維持します。copilotkit.ai/channels-guide.md- ガイドはプラットフォーム(Slack/Teams)やエージェントフレームワークを選択させます。
- ブラウザやコンピュータ操作ツールの設定がない場合でも、意図されたパスとしてサポートされます。
- 重要: シークレットの入力とクリック操作をあなたが担当し、エージェントはそれらを自動化します。
代替案:CLI だけで Slack をセットアップする ホストされたガイドを使わずに既存のエージェントに直接設定を適用したい場合:
npx copilotkit@latest skills install --skill setup-slack-channel -y
フラグ:確認画面なしで即座にインストール。-y- 注意:これは Slack 専用です。Teams の場合はガイドを使用してください。
CLI コマンドによる管理:
: チャネルの宣言とアダプター接続。copilotkit channels add --adapter slack
: 構成、コード、サーバー状態の確認。copilotkit channels status
注意点: ブラウザではプロバイダーアプリ作成や API キー発行の手動操作が必要です。CLI は認証情報の受け渡しを行わないため、bot トークンなどは
ファイルで管理してください。 トラブルシューティング: 未知のオプション.envが表示される場合は、グローバルにインストールされている古い--skillの影響がある可能性があります。常にcopilotkitを指定してください。@latest
セットアップ:手動による構築手順
完全な制御下でのセットアップ手順です。
1. 接続を構成する
- CopilotKit Intelligence でチャネルを作成し、Slack と接続します。
- 取得した
とChannel Code
を保管してください。Intelligence API キー - 環境要件: Node.js 22 以降、および長期的に動作する Node プロセスまたはコンテナが必要です。
2. SDK をインストールする
Channels と Runtime はテスト済みペアとして提供されています。両方のパッケージを同時にアップグレードしてください。
npm install @copilotkit/channels @copilotkit/runtime npm install --save-dev tsx typescript @types/node npm pkg set type=module
3. リスナーを作成する
channel.ts など、エージェントとチャネルを定義します。例では組み込みエージェントを使用していますが、makeAgent を他の AG-UI 互換ファクトリに置換可能です。
channel.ts
import { createServer } from "node:http"; import { createChannel } from "@copilotkit/channels"; import { BuiltInAgent, CopilotKitIntelligence, CopilotRuntime, } from "@copilotkit/runtime/v2"; import { createCopilotNodeListener } from "@copilotkit/runtime/v2/node"; // 環境変数の確認ヘルパー function required(name: string): string { const value = process.env[name]; if (!value) throw new Error(`Missing required environment variable: ${name}`); return value; } // エージェント作成関数 function makeAgent(threadId: string) { const agent = new BuiltInAgent({ model: "openai:gpt-5.4-mini" }); agent.threadId = threadId; return agent; } // チャネルの定義 const channel = createChannel({ name: required("CHANNEL_CODE"), identifyUser: "platform", agent: makeAgent, }); // メッセージ受信時の処理 channel.onMessage(async ({ thread, message }) => { await thread.runAgent({ prompt: message.contentParts?.length ? [ ...(message.text ? [{ type: "text" as const, text: message.text }] : []), ...message.contentParts, ] : message.text, context: [{ description: "Originating platform", value: message.platform }], }); }); // Intelligence の初期化 const intelligence = new CopilotKitIntelligence({ apiKey: required("INTELLIGENCE_API_KEY"), }); // ランタイムの初期化 const runtime = new CopilotRuntime({ agents: {}, intelligence, identifyUser: () => ({ id: "channels-runtime", name: "Channels Runtime", }), channels: [channel], }); // Node リスナーの作成 const listener = createCopilotNodeListener({ runtime, basePath: "/api/copilotkit", }); const channels = listener.channels; if (!channels) throw new Error("Channels control surface was not created."); // サーバーとシャットダウン処理 const server = createServer(listener); const shutdown = async () => { await channels.stop(); if (server.listening) server.close(); }; process.once("SIGINT", shutdown); process.once("SIGTERM", shutdown); // チャネルの起動確認 await channels.ready({ timeoutMs: 30_000 }); const status = channels.status(); if (status.overall !== "online") { throw new Error(`Channel is not online: ${JSON.stringify(status)}`); } // サーバーを起動(ポートは .env で指定可) const port = Number(process.env.PORT ?? 3000); server.listen(port, () => { console.log(`Channel online; lifecycle server listening on :${port}`); });
4. 実行を開始する
ファイル設定:.env
OPENAI_API_KEY=<openai-api-key> INTELLIGENCE_API_KEY=<project-api-key> CHANNEL_CODE=<channel-code-from-intelligence> PORT=3000
実行コマンド:
node --env-file=.env --import tsx channel.ts
Intelligence が Online と報告したら、アプリを Slack のチャンネルへ招待し、メッセージを送信してください。エージェントはスレッド内で即座に応答します。
必要か? 上記の手動手順や Microsoft Teams 対応、他フレームワーク連携が不要なら、最速のパス
を実行してガイドに従ってください。npx copilotkit@latest channels setup
仕組みと責任の分担
各ターンは以下のパスをたどります:
- ユーザーが Slack または Teams にメッセージを送信。
- CopilotKit Intelligence がプラットフォームイベントを受け取り、Channels プロセスへ配信。
- Channels は AG-UI を通じてエージェントを実行し、ツールを起動して結果をレンダリング。
- Intelligence がネイティブ UI で返信を表示。
責任の分担表
| カテゴリ | あなたが実行する | CopilotKit Intelligence が管理する |
|---|---|---|
| コア機能 | エージェント、モデル認証情報、ツール、ビジネスロジック | Slack および Teams のプラットフォーム認証情報 |
| インフラ | 長期的に動作する Channels リスナー(サーバー等) | プラットフォーム接続と認証付き配信 |
| 運用 | アプリケーションの状態、デプロイメント、ログ | ランタイム登録、ヘルスチェック、再接続 |
- SDK: オープンソース(MIT ライセンス)。
- Intelligence: CopilotKit によってホストするか、エンタープライズ用にはセルフホスト可能です。
チャンネルアプリの完全版:OpenTag
OpenTag は Channels で構築された、オープンソースのセルフホスト型オンコールトリアドサスタです。研究用として以下の完全なアプリケーションを確認できます。
- AG-UI 経由の Python LangGraph エージェント接続
- ネイティブな Slack および Microsoft Teams 体験
- ファイルに意識的なプロンプトと生成型 UI
- Linear や Notion への書き込み前、人間の承認プロセス
- プロダクション形状の Node ランタイムおよびエージェントサービス
[OpenTag ソースを探索する]
デベロッパーリソース
| 目的 | スタート地点 |
|---|---|
| セットアップなしで体験する | [Channels を試してみる] |
| コーディングエージェントで構築する | |
| 最初の Channel を構築する | [Channels ドキュメント] |
| SDK 実装を調べる | [CopilotKit の Channels ソース] |
| パッケージをインストールする | [@copilotkit/channels on npm] |
| 完全なアプリケーションを研究する | [OpenTag] |
| 既存エージェントを接続する | [AG-UI インテグレーション] |
| プロトコルを理解する | [AG-UI] |
ライセンス
MIT © CopilotKit