官网 · PyPI · npm · 面向 AI 编程助手的 SKILL.md · 参与贡献
English · 简体中文
最大的开源智能体框架各自造了 25 个以上的渠道适配器——但 issue 列表里仍有 8–15% 是渠道管道问题。
Caspian 把这一切收敛为一个 handler。
| 没有 Caspian | 用 Caspian |
|---|---|
| ```python # slack_bolt 应用 + socket 处理 # discord.py 客户端 + intents + 重连 # python-telegram-bot + webhook 服务 # smtplib/imap 轮询 + 线程逻辑 # 4 套鉴权流程、4 种消息格式、 # 4 条重试/退避路径、4 个去重缓存、 # 跨渠道身份 bug…… # 在你的智能体说出第一句话之前, # 先写约 1500 行管道代码 ``` | ```python cx.channels.add("email", via="self-host", ...) cx.channels.add("telegram", via="self-host", bot_token=TG, webhook_url=URL) cx.channels.add("slack", via="self-host", bot_token=SLACK, ...) @cx.on_message({"overlap": "queue"}) def handle(thread, msg, ctx): thread.post(agent(msg.text)) cx.run() # 托管 # 或 cx.listen("slack") / cx.handle(channel, body, headers) ``` |
|
**🧵 声明式规则,一个程序** `@cx.on_message({"channel": "telegram", "command": "help"})` — 按渠道、会话类型、命令、重叠策略和即时 ack 过滤。你的 bot 是数据:`cx.app.rules` 可离线检查和测试。 |
**🔐 Webhook 校验,永不缺席** Slack signing secret、Meta `X-Hub-Signature-256`、Telegram secret header、X CRC、签名邮件回调。签名不符一律拒绝。 |
|
**☁️ 托管或自托管** `cx.run()` 轮询网关,或 `via="self-host"` 自带 token 和 webhook/socket。handler 规则完全相同。 |
**🧪 每个渠道的离线 fake** 适配器消费各平台*真实*的入站消息格式 — Python + TypeScript 共 650+ 个测试,CI 零网络请求。 |
|
**⌨️ 输入指示、流式输出、富媒体** `thread.typing()`、`thread.stream()`(发一条再边写边改)、`thread.send_media()`、`thread.send_blocks()`、表情、置顶、转发和冷启动 DM。 |
**🤖 模型工具与 handler 同一表面** `cx.tools(thread)` 暴露 Command catalog(post、react、send-photo 等),schema 从 kernel 推导 — 与 handler 使用同一 API。 |
|
**🔌 分渠道包(TypeScript)** 导入 `caspian-sdk/telegram`、`caspian-sdk/discord`、`caspian-sdk/slack` 等,单独 parse/plan/execute,无需拉取整个 facade。 |
**📡 Socket 入站(Discord、Slack)** 无需公网 URL — `cx.listen("discord")` 或 `cx.listen("slack")` 通过 websocket 长连接(可选 extras)。 |