AI・機械学習
Show HN: Channels SDK – どんなエージェントでもどんなチャネルにも(Slack, MS Teams)
Show HN: The Channels SDK – Bring Any Agent to Any Channel (Slack, MS Teams) (github.com)
要約
Channels SDKは、SlackやMicrosoft Teamsなどのワークフローが発生するチャネルに、AIエージェントをネイティブでインタラクティブなUIと共に統合できるツールキットです。このSDKを使用すると、エージェントは自身のツール、モデル、ビジネスロジックを維持したまま、チームが日常的に使用するコミュニケーションプラットフォーム上で動作できます。エージェントは会話を理解し、応答をストリーミングし、ツールを呼び出し、ファイルを操作し、インタラクティブなUIを表示し、人間の承認を待つことができます。
全文翻訳
Channels SDK どんなAIエージェントでも、Slack、Microsoft Teams、そして仕事が行われるチャネルに、ネイティブでインタラクティブなUIと共に持ち込みましょう。
Channelsを試す · SDKで構築 · OpenTagを探索
channels-sdk.demo.mp4
エージェントは、そのツール、モデル、ビジネスロジックを維持します。Channelsは、エージェントが人々と連携するためのネイティブな場所を提供します。
エージェントは、仕事が行われる場所に属します
Channelsは、AG-UI互換のエージェントを、チームがすでに使用しているコミュニケーションプラットフォームに接続します。エージェントは、会話を理解し、応答をストリーミングし、ツールを呼び出し、ファイルを操作し、インタラクティブなUIを表示し、人間の承認を待つことができます。
エージェントを持ち込む
ネイティブUIをレンダリングする
人々を管理下に置く
CopilotKitの組み込みエージェントを使用するか、LangGraph、CrewAI、Mastra、Pydantic AI、Google ADK、その他のAG-UIエージェントを接続します。メッセージを一度記述するだけで、ネイティブなSlack Block Kit、Teams Adaptive Cards、プラットフォーム固有のUIとしてレンダリングできます。エージェントがアクションを実行する前に、ボタン、選択肢、承認ゲートを会話に直接配置します。
1回のインタラクション、すべてのチャネルでネイティブに
Slack
Microsoft Teams
Discord
Channelsは、同じエージェントがすべてのコミュニケーションサーフェスでユーザーに会える世界のために構築されています。SlackとMicrosoft Teamsのマネージド接続はCopilotKit Intelligenceを通じて利用可能で、今後さらに多くのチャネルが追加される予定です。
構築前に試す
アプリ、ランタイム、またはプロバイダーの認証情報を設定せずに、SlackまたはMicrosoft Teamsで実際のChannelsエージェントを体験してください。Channelsを試す → プラットフォームを選択し、エクスペリエンスに参加して、エージェントがコンテキスト、ツール使用、ネイティブチャネルUIをどのように処理するかを確認してください。
最初のChannelを構築する
エージェントとアプリケーションロジックは、お客様のインフラストラクチャで実行されます。CopilotKit Intelligenceはプラットフォーム接続を管理し、各ターンを長時間実行されるChannelsプロセスに配信します。
最速のパス:コーディングエージェントにドライブさせる
Channelsエージェントの構築は、プロジェクト、エージェント、マネージドChannel、プロバイダーアプリ、長時間実行されるランタイムにまたがります。1つのガイドがエージェントをすべて通して案内します。
npx copilotkit@latest channels setup
これにより、channels-setupスキルがインストールされ、プロンプトが表示され、クリップボードにコピーされます。これをコーディングエージェントに貼り付けます。このスキルはポインターであり、エージェントが必要なときにcopilotkit.ai/channels-guide.mdからワークフローを取得するため、インストールされたスキルが数ヶ月前のものであっても手順は最新の状態に保たれます。ガイドは、どのプラットフォーム(SlackまたはMicrosoft Teams)とどのエージェントフレームワークを使用したいかを尋ねます。エージェントは、サインイン済みのセッションでSlackおよびIntelligenceコンソール自体を操作します。ブラウザまたはコンピューター使用ツールがまだない場合、まず追加するように求められます。これはフォールバックではなく、意図されたパスです。秘密情報を入力すると、クリックはエージェントが行います。
または、ディスクにSlackセットアップスキルをインストールする
ホストされているガイドをスキップして、すでに実行中のコーディングエージェントにSlackワークフローを直接配置します:
npx copilotkit@latest skills install --skill setup-slack-channel -y
-y は、ピッカーを開かずにそのスキルをインストールします。このスキルはSlackにスコープされています。Microsoft Teamsの場合は、上記のガイドを使用してください。
CLIはIntelligence側をカバーします:
copilotkit channels add --adapter slack
Channelを宣言し、アダプターをアタッチします。copilotkit channels status は、構成、コード、サーバーを比較します。
ブラウザに残るのは、プロバイダー側(Slackアプリの作成とワークスペースへのインストール)、およびプロジェクトAPIキーの発行です。CLIフラグは認証情報値を決して受け入れないため、ボットトークンと署名シークレットは.envファイル内に残り、お客様の手元に残ります。
不明なオプション '--skill'?
古いcopilotkit(グローバルにインストールされているか、npxキャッシュに残っている)が現在のCLIをシャドウしています。@latest を維持してください。これは、npx が既存のバージョンを再利用するのではなく、現在のバージョンを取得することを強制します。
以下の手順は、手動で行う場合と同じパスです。
1. 接続の構成
CopilotKit IntelligenceでChannelを作成し、Slackを接続します。次の手順のために、ChannelコードとプロジェクトスコープのIntelligence APIキーを保持してください。Node.js 22以降と長時間実行されるNodeプロセスまたはコンテナが必要です。
2. SDKのインストール
npm install @copilotkit/channels @copilotkit/runtime
npm install --save-dev tsx typescript @types/node
npm pkg set type=module
ChannelsとRuntimeは、テスト済みのペアとして一緒に提供されます。両方のパッケージを一緒にアップグレードしてください。
3. リスナーの作成
以下の例では、CopilotKitの組み込みエージェントを使用しています。makeAgent を、Channelのライフサイクルを変更せずに、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 }],
});
});
const intelligence = new CopilotKitIntelligence({
apiKey: required("INTELLIGENCE_API_KEY"),
});
const runtime = new CopilotRuntime({
agents: {},
intelligence,
identifyUser: () => ({ id: "channels-runtime", name: "Channels Runtime" }),
channels: [channel],
});
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)}`);
}
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、異なるエージェントフレームワーク、インタラクティブな承認、ファイル、または本番デプロイのガイダンスが必要ですか?Channelsドキュメントを続けて参照してください。エージェントにこれを実行させたいですか?上記の最速パスからnpx copilotkit@latest channels setup を実行してください。このガイドは、プロバイダーと検証の手順に加えて、この同じセットアップをカバーしています。
仕組み
各ターンは同じパスをたどります:
人がSlackまたはMicrosoft Teamsでアプリにメッセージを送信します。
CopilotKit Intelligenceがプラットフォームイベントを受信し、それをChannelsプロセスに配信します。
Channelsはお客様のエージェントをAG-UI上で実行し、ツールを実行し、結果をレンダリングします。
IntelligenceはネイティブプラットフォームUIを会話に返します。
お客様が実行するもの | CopilotKit Intelligenceが管理するもの
-------------------|----------------------------------
エージェント、モデル認証情報、ツール、ビジネスロジック | SlackおよびMicrosoft Teamsプラットフォーム認証情報
長時間実行されるChannelsリスナー | プラットフォームのインバウンドと認証済み配信
アプリケーションの状態、デプロイ、ログ | ランタイム登録、ヘルスチェック、再接続
SDKはオープンソースでMITライセンスです。CopilotKit IntelligenceはCopilotKitによってホストされるか、エンタープライズデプロイメント用にセルフホストできます。完全なChannelsアプリを見るOpenTagは、Channelsで構築されたオープンソースのセルフホスト型オンコールトリアージアシスタントです。これを使用して、