CopilotKit เปิดตัว Channels SDK ไลบรารีโอเพนซอร์ส เชื่อมต่อ AI Agent สู่ Slack และ Teams ได้ทันที

CopilotKit ได้เปิดตัว Channels SDK ไลบรารีโอเพนซอร์สที่ช่วยให้นักพัฒนาสามารถนำ AI Agent ที่มีอยู่แล้วไปใช้งานบนแพลตฟอร์มรับส่งข้อความต่างๆ ได้ทันที ภายใต้แนวคิดที่ว่าหากคุณมีเอเจนต์ที่พร้อมด้วยโมเดลและตรรกะทางธุรกิจอยู่แล้ว Channels จะทำหน้าที่เป็นตัวกลางให้เอเจนต์เหล่านั้นทำงานร่วมกับมนุษย์ได้สะดวกขึ้น โดยไม่ต้องพัฒนาโค้ดใหม่สำหรับทุกแพลตฟอร์ม
ปัจจุบันระบบรองรับการทำงานบน Slack และ Microsoft Teams ในฐานะช่วงการเข้าถึงล่วงหน้า (Early Access) ส่วนแพลตฟอร์มอื่นๆ อย่าง Discord และ Google Chat กำลังอยู่ในแผนพัฒนาลำดับถัดไป โดยนักพัฒนาสามารถติดตั้งใช้งานผ่านแพ็คเกจ npm ได้ง่ายๆ ดังนี้
npm install @copilotkit/channels @copilotkit/runtimeการเชื่อมต่อเอเจนต์ใช้โปรโตคอล AG-UI ซึ่งเป็นมาตรฐานที่ CopilotKit ดูแลอยู่ ทำให้รองรับทั้ง LangGraph, CrewAI, Mastra, Pydantic AI, Google ADK ไปจนถึงเอเจนต์ที่เขียนขึ้นเองผ่าน HTTP โดยที่เลเยอร์การจัดการ (Orchestration Layer) ของคุณยังคงทำงานอยู่ที่เดิมโดยไม่ต้องแก้ไข

จุดเด่นที่สำคัญคือ Channels ทำหน้าที่เป็นเพียงตัวกลางในการรับส่ง (Transport) และเป็นเป้าหมายในการแสดงผล (Rendering Target) เท่านั้น ไม่ได้ทำหน้าที่เป็นเอเจนต์ตัวที่สอง ข้อดีคือคุณเขียนคำสั่งแสดงผลเพียงครั้งเดียว แต่ตัวเชื่อมต่อจะแปลงผลลัพธ์ให้อยู่ในรูปแบบดั้งเดิมของแต่ละแพลตฟอร์มโดยอัตโนมัติ เช่น Block Kit ใน Slack หรือ Adaptive Cards ใน Teams แทนที่จะเป็นเพียงข้อความธรรมดาทั่วไป
สำหรับการทำงานในหนึ่งรอบ (Turn) นั้น เริ่มจากเมื่อมีผู้ใช้ส่งข้อความใน Slack หรือ Teams ระบบ CopilotKit Intelligence จะรับเหตุการณ์และส่งต่อไปยังกระบวนการ Channels ของคุณ เพื่อรันเอเจนต์ผ่าน AG-UI และแสดงผลลัพธ์กลับไปยังแพลตฟอร์มในรูปแบบ UI ดั้งเดิมที่สวยงามและโต้ตอบได้

ในส่วนของการแสดงผล (Rendering) ระบบใช้ JSX แปลงเป็นรูปแบบกลาง (Serializable Intermediate Representation) ก่อนจะส่งให้ตัวเชื่อมต่อแปลเป็น UI ของแต่ละแพลตฟอร์มอีกครั้ง นอกจากนี้ยังมีระบบจัดการการโต้ตอบผ่าน Action Store เพื่อให้ปุ่มหรือเมนูต่างๆ ทำงานได้อย่างถูกต้อง
ข้อกำหนดรันไทม์ (The Runtime Contract)
การบริหารจัดการวงจรชีวิตของระบบ (Lifecycle) จะถูกควบคุมโดยตัวรันไทม์แทนที่จะใช้คำสั่งเริ่มทำงานแบบทั่วไป นักพัฒนาสามารถตั้งค่าการเชื่อมต่อได้ดังนี้:
import { createChannel } from "@copilotkit/channels";
import { CopilotRuntime, CopilotKitIntelligence } from "@copilotkit/runtime/v2";
import { createCopilotNodeListener } from "@copilotkit/runtime/v2/node";
const channel = createChannel({
name: process.env.CHANNEL_CODE,
provider: "slack",
agent: makeAgent,
});
const runtime = new CopilotRuntime({
agents: {},
intelligence: new CopilotKitIntelligence({ apiKey: process.env.INTELLIGENCE_API_KEY }),
identifyUser: () => ({ id: "channels-runtime", name: "Channels Runtime" }),
channels: [channel],
});
const listener = createCopilotNodeListener({ runtime, basePath: "/api/copilotkit" });
await listener.channels.ready({ timeoutMs: 30_000 });รันไทม์รองรับ listener ทั้งสำหรับ Node, Hono และ Express โดยฟังก์ชัน createChannel ยังเปิดให้ตั้งค่าเพิ่มเติมได้มากมาย เช่น การกำหนดเครื่องมือ (tools), บริบท (context) และคอมโพเนนต์ JSX ซึ่งจะช่วยให้ระบบสามารถแสดงผลใหม่และเรียกใช้ตัวจัดการซ้ำได้แม้จะมีการเริ่มระบบใหม่ไปแล้วก็ตาม
เอเจนต์ที่รันผ่าน Channel สามารถทำได้ตั้งแต่การสร้าง Generative UI ที่ปรับเปลี่ยนตามงาน, ระบบ Human-in-the-loop เพื่อขออนุมัติก่อนทำรายการสำคัญ, การสั่งการผ่านเครื่องมือต่างๆ เช่น การจองประชุมหรือเปิด Pull Request รวมถึงการจดจำประวัติการสนทนาข้ามแพลตฟอร์ม และรองรับการสั่งงานผ่าน Slash Commands หรือการ Tag ชื่อเอเจนต์
สรุปประเด็นสำคัญของ @copilotkit/channels 0.5.0 คือการเปิดให้ใช้งานภายใต้ลิขสิทธิ์ MIT โดยต้องใช้ API Key ของ CopilotKit Intelligence และต้องการสภาพแวดล้อม Node.js 22 ขึ้นไปที่เป็นโปรเจกต์แบบ ESM โดยจำเป็นต้องรันเป็นกระบวนการที่ทำงานต่อเนื่อง (Long-running process) เพื่อรักษาการเชื่อมต่อไว้ให้คงที่เสมอ
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
