A channel is a chat platform bound to a project — a closed set of three, not an open field. Here is the real state of each one, including the parts a marketing page usually leaves out.
默认启用,无需标志位。从 dashboard 或 CLI 连接,将 bot 邀请到频道并提及它。本页其余内容均描述 Slack。
对每个项目都已开启,无需开关。租户管理员只需同意一次,或者项目使用自己的机器人应用。会话和身份规则与 Slack 相同。
项目收件箱:发送到该地址的消息会启动会话,回复会继续该会话。在 Customize → Feature flags 中按项目选择启用。功能真实存在,但尚未完成。
Telegram、WhatsApp、SMS 和 Discord 都不是频道;本页不会暗示它们已进入无法承诺的路线图。也没有可自建频道的 API——平台列表是一个封闭枚举。现有的是签名 webhook 触发器;相比兜售“可扩展”这个词,我们更愿意坦诚说明它的限制。
诚实的替代方案 →线程中的第一条消息会创建会话。之后该线程中的每条消息都会到达同一个会话——即使 sandbox 在夜间停止运行,即使启动会话的人已经下班。这个映射是数据库中的唯一索引,而不是两个服务约定遵守的规则。
要针对 main 创建变更请求吗?
launch-note.md · +64 −0
在 bot 已受邀加入的频道中,或通过私信。没有任务的单独提及会收到添加任务的提醒,而不是创建一个无人请求的会话。
Kortix 会创建分支并启动自己的隔离云端计算机,过程与从 dashboard 或 CLI 启动会话完全相同。你会在自己的消息上看到反应,而不是看到 bot 发来一句“正在处理”。
它拥有 shell、文件系统、网络,以及其 agent block 授予它的连接器和秘密。线程是你查看进度的地方,机器是实际工作的地方。
回复会流入它启动的消息,并出现在提问所在的线程中。两个人都可以观看,无需打开任何东西。
同一个全新线程同时到达的两个事件不会产生两个会话:第二个事件会加入第一个,并作为后续消息传递。一个 Slack 工作区绑定到多个项目时,首次提及会显示项目选择器,而不是擅自猜测。
在已配置共享 Slack 应用的主机上,运行 kortix channels connect 会打印安装链接,三次点击即可完成。在没有共享应用的部署中,同一命令会自动回退到手动模式,并提供可粘贴的应用清单。
# 托管模式:打开安装链接,然后选择工作区$ kortix channels connect --wait→ 已连接:slack 工作区 acme-hq # 自托管?同一命令会回退到手动模式$ kortix channels manifest > slack-app.json$ kortix channels connect --manual \--bot-token xoxb-... --signing-secret ... # 检查状态,或断开连接$ kortix channels status$ kortix channels disconnect只有当答案能回到提问所在的位置时,连接频道才有价值。文件可以双向传递,而代理需要你做出的决定会以线程中的按钮呈现,而不是让你跳转到其他地方。
回复会作为一条逐步填充的消息出现在主题中,而不是一堵更新消息墙。代理会完成这条消息,而不是在下面再发一条。
拖入主题的文件会被拉取到代理的云端计算机。代理生成的文件会上传回同一个主题。你要的演示文稿会出现在你指定的位置。
代理需要决定时,会发布带按钮的卡片,而不是让一次执行永久阻塞。你的点击就是裁决,会话会从该决定继续,并留在同一主题中。
有一个必须如实说明的限制:卡片包含决定和返回 Kortix 的链接。读取变更请求的实际 diff 要在 Web 应用中完成,因为 diff 就该在那里查看——Slack 不是代码审查工具,我们不会假装它是。
在 Slack 中将这些内容作为 /kortix <command> 输入,或在私信中以纯文本发送。通常你原本需要打开控制台完成的操作,在频道中一行命令即可完成。
Slack 中的消息不会获得任何控制台会话没有的权限。变化的只是界面,底层权限不会改变。
没有自定义频道 API——平台列表是封闭枚举,我们不会把缺口包装成插件系统。当前提供的是一个带签名的 webhook 触发器,每个对话启动一个会话。它很好地解决了入站部分,我们也会明确告诉你它无法完成什么。
# 任意对话来源,无需编写特定频道代码triggers:- 标识: support-inbox type: webhook agent: support secret_env: WEBHOOK_SECRET # 每个对话一个会话,而不是每条消息一个会话 session_mode: keyed session_key: "{{ body.data.conversation_id }}" # 忽略代理自己发出的消息 filter: "body.data.direction": "inbound" prompt: "{{ body.data.text }}"每个对话一个会话。session_key 从载荷中渲染,因此单个触发器可以为每个聊天、客户或代码库分别创建会话——独立的线程,而不是混在一起的记录。
如果来源同时报告对话双方的消息,代理会在回复自己时再次触发。filter 会以 200 响应丢弃这些投递,不创建会话。与每个 Kortix webhook 一样,使用 HMAC-SHA256 签名。
没有回复中继。真正的频道会替你将答案传回;这里代理必须通过你授予它的连接器自行发送出站消息。入站已解决,出站由你接线。