메뉴
HN
Hacker News • 50일 전

Channels SDK: 모든 AI 에이전트를 슬랙·팀즈에 연동

IMP
7/10
핵심 요약

개발된 AI 에이전트의 비즈니스 로직과 도구를 그대로 유지하면서, 슬랙(Slack)이나 마이크로소프트 팀즈(MS Teams) 등 업무용 커뮤니케이션 채널에 네이티브 UI로 손쉽게 연동해 주는 오픈소스 SDK입니다. 코딩 에이전트가 CLI와 설정을 자동으로 구동하게 하여 복잡한 연동 설정을 크게 단순화했으며, 개발자가 실제 업무 환경에 AI를 빠르게 도입할 수 있게 돕는 것이 핵심입니다.

번역된 본문

Channels SDK: 어떤 에이전트든 업무가 이루어지는 채널(슬랙, MS 팀즈 등)로 가져오세요.

Channels SDK를 통해 어떤 AI 에이전트든 슬랙(Slack), 마이크로소프트 팀즈(MS Teams) 그리고 실제 업무가 이루어지는 채널로 가져오세요. 네이티브 대화형 UI를 제공합니다.

  • Channels 체험하기
  • SDK로 구축하기
  • OpenTag 탐색하기

[channels-sdk.demo.mp4]

개발자님의 에이전트는 기존의 도구, 모델, 비즈니스 로직을 그대로 유지합니다. Channels는 사람들과 소통할 수 있는 에이전트만의 자연스러운 작업 공간을 제공합니다.

에이전트는 업무가 이루어지는 곳에 속해야 합니다. Channels는 AG-UI 호환 에이전트를 팀에서 이미 사용 중인 커뮤니케이션 플랫폼에 연결합니다. 에이전트는 대화 맥락을 이해하고, 응답을 스트리밍하며, 도구를 호출하고, 파일을 처리하고, 대화형 UI를 렌더링하고, 최종 승인을 위해 대기할 수 있습니다.

  • 에이전트 연동하기: CopilotKit의 내장 에이전트를 사용하거나 LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK 및 기타 AG-UI 에이전트를 연결하세요.
  • 네이티브 UI 렌더링: 메시지를 한 번만 정의하면 슬랙 Block Kit, 팀즈 Adaptive Cards 및 플랫폼별 UI로 자동 렌더링됩니다.
  • 제어권 유지: 에이전트가 작업을 수행하기 전에 버튼, 선택지, 승인 게이트를 대화창에 직접 배치하여 사용자가 통제할 수 있게 하세요.

모든 채널에 네이티브로 적용되는 단일 인터페이스 Slack, Microsoft Teams, Discord 등 동일한 에이전트가 모든 커뮤니케이션 환경에서 사용자를 만날 수 있는 세상을 위해 Channels가 구축되었습니다. CopilotKit Intelligence를 통해 슬랙과 마이크로소프트 팀즈를 위한 관리형 연결을 제공하며, 더 많은 채널이 지원될 예정입니다.

구축하기 전에 먼저 체험해 보세요 앱, 런타임 또는 제공자 자격 증명을 구성할 필요 없이 슬랙이나 마이크로소프트 팀즈에서 실제 Channels 에이전트를 경험해 보세요. 플랫폼을 선택하고 체험에 참여하여 에이전트가 컨텍스트, 도구 사용, 네이티브 채널 UI를 어떻게 처리하는지 확인하세요.

첫 번째 Channel 구축하기 개발자님의 에이전트와 애플리케이션 로직은 자체 인프라에서 실행됩니다. CopilotKit Intelligence는 플랫폼 연결을 관리하고 각 작업 턴을 장기 실행 중인 Channels 프로세스로 전달합니다.

가장 빠른 방법: 코딩 에이전트가 주도하게 두기 Channels 에이전트 구축에는 프로젝트, 에이전트, 관리형 Channel, 제공자 앱, 장기 실행 런타임 등이 포함됩니다. 단 하나의 가이드가 코딩 에이전트에게 이 모든 과정을 안내합니다.

npx copilotkit@latest channels setup

이 명령어는 channels-setup 스킬을 설치하고, 프롬프트를 출력한 후 클립보드에 복사합니다. 코딩 에이전트에 이 내용을 붙여넣기 하세요. 이 스킬은 포인터 역할을 하므로, 설치된 스킬이 몇 달 되었더라도 에이전트가 필요할 때 copilotkit.ai/channels-guide.md에서 최신 워크플로우를 가져오므로 단계가 항상 최신 상태로 유지됩니다. 이 가이드는 원하는 플랫폼(슬랙 또는 마이크로소프트 팀즈)과 에이전트 프레임워크를 묻습니다. 코딩 에이전트는 로그인된 세션을 통해 슬랙 및 Intelligence 콘솔을 직접 구동합니다. 브라우저나 컴퓨터 사용 도구가 아직 없다면 먼저 추가하라는 메시지가 표시되며, 이는 대체 수단이 아닌 기본 경로입니다. 개발자가 직접 비밀 키를 입력하고, 클릭 작업은 에이전트가 수행합니다.

또는 디스크에 슬랙 설정 스킬 설치하기 호스팅된 가이드를 건너뛰고, 실행 중인 코딩 에이전트에 직접 슬랙 워크플로우를 설치하려면 다음을 실행하세요:

npx copilotkit@latest skills install --skill setup-slack-channel -y

-y 플래그는 선택기를 열지 않고 해당 스킬만 설치합니다. 이 스킬은 슬랙에만 해당됩니다. 마이크로소프트 팀즈의 경우 위의 가이드를 사용하세요. CLI는 Intelligence 측면을 다룹니다. copilotkit channels add --adapter slack은 Channel을 선언하고 어댑터를 연결하며, copilotkit channels status는 구성, 코드 및 서버를 비교합니다. 브라우저에서 수행해야 하는 유일한 작업은 제공자 측면, 즉 슬랙 앱을 만들고 워크스페이스에 설치하고 프로젝트 API 키를 발급받는 것뿐입니다. 어떤 CLI 플래그도 자격 증명 값을 직접 입력받지 않으므로, 봇 토큰과 서명 비밀키는 개발자님의 .env 파일 및 관리 하에 안전하게 남게 됩니다.

'--skill' 알 수 없는 옵션 에러가 나오나요? 전역으로 설치되거나 npx 캐시에 남아있는 구버전의 copilotkit이 최신 CLI를 가리고 있는 것입니다. @latest 를 유지하세요. 이것이 npx가 이미 가지고 있는 버전을 재사용하는 대신 최신 버전을 강제로 가져오게 만듭니다. 아래 단계는 수동으로 수행하는 동일한 경로입니다.

  1. 연결 구성하기 CopilotKit Intelligence에서 Channel을 만들고 슬랙에 연결합니다. 다음 단계를 위해 Channel 코드와 프로젝트 범위의 Intelligence API 키를 보관하세요. Node.js 22 이상 및 장기 실행되는 Node 프로세스 또는 컨테이너가 필요합니다.
  2. 설치...
원문 보기
원문 보기 (영어)
Channels SDK Bring any AI agent into Slack, Microsoft Teams, and the channels where work happens — with native, interactive UI. Try Channels · Build with the SDK · Explore OpenTag channels-sdk.demo.mp4 Your agent keeps its tools, model, and business logic. Channels gives it a native place to work with people. Your agent belongs where work happens Channels connects an AG-UI-compatible agent to the communication platforms your team already uses. The agent can understand the conversation, stream a response, call tools, work with files, render interactive UI, and pause for human approval. Bring your agent Render native UI Keep people in control Use CopilotKit's built-in agent or connect LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK, and other AG-UI agents. Describe a message once and render it as native Slack Block Kit, Teams Adaptive Cards, and platform-specific UI. Put buttons, choices, and approval gates directly into the conversation before an agent acts. One interaction, native to every channel Slack Microsoft Teams Discord Channels is built for a world where the same agent can meet users across every communication surface. Managed connections for Slack and Microsoft Teams are available through CopilotKit Intelligence, with more channels on the way. Try it before you build it Experience a real Channels agent in Slack or Microsoft Teams without configuring an app, runtime, or provider credentials. Try Channels → Choose a platform, join the experience, and see how an agent handles context, tool use, and native channel UI. Build your first Channel Your agent and application logic run in your infrastructure. CopilotKit Intelligence manages the platform connection and delivers each turn to your long-running Channels process. Fastest path: let your coding agent drive Building a Channels agent spans a project, an agent, a managed Channel, a provider app, and a long-running runtime. One guide walks your agent through all of it. npx copilotkit@latest channels setup That installs the channels-setup skill, prints a prompt, and copies it to your clipboard. Paste it into your coding agent. The skill is a pointer — it fetches the workflow from copilotkit.ai/channels-guide.md when your agent needs it, so the steps are current even if the installed skill is months old. The guide asks which platform you want, Slack or Microsoft Teams, and which agent framework. Your agent drives the Slack and Intelligence consoles itself, in your own signed-in session. If it has no browser or computer-use tool yet, it will ask you to add one first — that is the intended path, not a fallback. You type the secrets; it does the clicking. Or install the Slack setup skill on disk Skip the hosted guide and put the Slack workflow directly in the coding agent you are already running in: npx copilotkit@latest skills install --skill setup-slack-channel -y -y installs that one skill without opening a picker. The skill is scoped to Slack — for Microsoft Teams, use the guide above. The CLI covers the Intelligence side: copilotkit channels add --adapter slack declares the Channel and attaches the adapter, and copilotkit channels status compares your configuration, your code, and the server. What stays in the browser is the provider side — creating the Slack app and installing it into a workspace — plus issuing the project API key. No CLI flag accepts a credential value, so the bot token and signing secret stay in your .env and with you. Unknown option '--skill' ? An older copilotkit — globally installed or left in the npx cache — is shadowing the current CLI. Keep the @latest ; that is what forces npx to fetch the current version instead of reusing what it already has. The steps below are the same path, done by hand. 1. Configure the connection Create a Channel in CopilotKit Intelligence and connect Slack. Keep the Channel Code and project-scoped Intelligence API key for the next steps. You need Node.js 22 or later and a long-running Node process or container. 2. Install the SDK npm install @copilotkit/channels @copilotkit/runtime npm install --save-dev tsx typescript @types/node npm pkg set type=module Channels and Runtime ship together as a tested pair. Upgrade both packages together. 3. Create the listener The example below uses CopilotKit's built-in agent. Replace makeAgent with any AG-UI-compatible agent factory without changing the Channel lifecycle. // 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. Start it # .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 When Intelligence reports Online , invite the app to a Slack channel and mention it. Your agent now receives the conversation and responds in the thread. Want Microsoft Teams, a different agent framework, interactive approvals, files, or production deployment guidance? Continue in the Channels documentation . Rather have your agent do it? Run npx copilotkit@latest channels setup from Fastest path above. The guide covers this same setup plus the provider and verification steps. How it works Every turn follows the same path: A person messages your app in Slack or Microsoft Teams. CopilotKit Intelligence receives the platform event and delivers it to your Channels process. Channels runs your agent over AG-UI, executes tools, and renders the result. Intelligence sends native platform UI back into the conversation. You run CopilotKit Intelligence manages Your agent, model credentials, tools, and business logic Slack and Microsoft Teams platform credentials The long-running Channels listener Platform ingress and credentialed delivery Application state, deployment, and logs Runtime registration, health, and reconnects The SDK i