让AI同事越用越聪明:OpenDots自动学习与技能投递配置全解(含15线程阈值说明)
【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots
OpenDots是一款开源的常驻 AI 同事(Dot)工作台,支持在 Web、语音通话和 Slack 之间无缝协作。开启它的自动学习(Automatic Learning)后,AI 同事会从你的日常对话中积累"证据",提炼成可复用的技能;再打开技能投递(Skill Delivery),这些技能就会被自动加载到后续任务中——真正做到越用越聪明。本文将用三步带你完成配置,并讲透15 个合格线程(15 eligible threads)这个默认学习触发阈值背后的机制。
什么是 OpenDots 的自动学习与技能投递
可以把整个机制拆成两个独立环节 🧠:
| 环节 | 做什么 | 在哪里发生 |
|---|---|---|
| 摄取(Ingestion) | 把你的对话作为证据收集进"学习容器",由 Intelligence 平台分析并产出技能提案 | 每次对话自动进行 |
| 投递(Delivery) | 把已审核发布的技能目录加载给 AI 同事,由模型自主决定加载哪些技能 | 每轮对话开始时 |
两个关键特性:
- 无需额外密钥:复用服务端已有的
INTELLIGENCE_API_KEY与可选的INTELLIGENCE_API_URL,不需要再申请任何模型密钥。 - 技能必须人工审核:平台只产出"技能提案",需要你在 Intelligence 中审核并发布;OpenDots 永远不会自动批准技能,安全性有保障。
配置自动学习的 3 个完整步骤
步骤 1:创建学习容器(Learning Container)
在同一个 Intelligence 项目的Learning中,为一个聚焦的工作流创建容器,例如research-workflow(研究工作流)。容器 ID 的命名规则很严格:
- 仅允许小写字母、数字和单个连字符,长度 1–64 位
- 不能以连字符开头/结尾,不能出现
--连续连字符
该规则由 src/shared/learning.ts 中的校验函数统一执行,不合法的 ID 会被直接拒绝保存。
步骤 2:在 Dot 设置中填入容器 ID
编辑对应 Dot,在Automatic Learning一栏填入刚才的容器 ID 并保存。注意:保存 ID 只是"配置路由",不会自动创建或校验远端容器——容器必须在 Intelligence 侧真实存在。
步骤 3:开启新对话,完成相关任务
保存后开始新的对话并持续完成相关工作流即可。这里有一个容易被忽略的机制——线程容器冻结:
- 每个对话在创建时绑定当时的容器 ID,之后保持不变(见 src/server/workspace.ts 的
bindThread实现) - 旧对话不会追溯纳入学习,包括本次集成之前创建的历史对话
- 修改或清空 Dot 的容器 ID,只影响新对话
- 适用范围覆盖:页面聊天(page chat)、定时与语音任务、以及新创建的 Slack 线程
Slack 侧的线程路由与权限校验逻辑在 src/server/learning.ts:只有工作区拥有者、且消息发往配置好的那个 Slack Dot 时,学习路由才会生效。
15 线程阈值是怎么工作的 🔍
这是自动学习里最常被问到的数字:
学习容器的默认自动触发阈值是 15 个合格线程(eligible threads)——当容器里累计 15 个符合条件的对话后,平台会自动触发一次学习流程,开始分析证据并产出技能提案。
理解它的三个要点:
- 可以不等满 15 个:你随时可以在 Intelligence 里手动运行学习,也可以配置定时调度(schedule),不必干等阈值。
- 以部署端的就绪计数为准:实际触发数以你部署环境中显示的 readiness 计数为准(官方说明见 docs/SETUP.md)。
- 阈值 ≠ 自动上线:即使学习触发并产出技能,技能仍需经过审核与发布才会进入可用目录。
开启技能投递并验证真实生效 ✅
让学好的技能真正"派上用场",需要再打开两个开关:
- 在 Intelligence 的容器上开启Skill delivery;
- 在 Dot 的设置中勾选Use published skills;
- 在一个已纳管的对话里发起新一轮对话。
此时 AI 同事会加载最新、已验证的已发布技能目录,模型会自主判断哪些技能与当前任务相关并加载(底层通过copilotkit_load_skill、copilotkit_read_skill_file等工具实现,相关逻辑见 src/server/dot-agent.ts)。
⚠️重要:勾选设置不等于打通链路。请务必检查该轮运行的工具调用记录,确认技能确实被加载和使用了。
技能投递配置的 4 个易踩坑细节
- 投递始终跟随对话的"原始容器":即使 Dot 后来指向了另一个容器,已纳管对话仍使用创建时绑定的容器投递技能。
- 投递开关作用于该 Dot 的所有对话:取消勾选后,从下一轮起停止投递;在学习进行中修改学习设置,也会立即中止当前工作。
- 摄取与投递相互独立:清空容器 ID不会把旧对话移出学习;想停止分析请到 Intelligence 里暂停 Learning。反之,关闭投递也不会停止证据收集。
- 失败即报错,不静默降级:如果技能投递被拒绝、或初始技能快照不可用,该轮会直接失败,而不是"悄悄没有技能地继续"。恢复投递或取消勾选Use published skills即可继续。
完整的官方配置说明在 docs/SETUP.md,线程冻结与迁移行为可通过 tests/learning.test.ts 的自动化测试对照验证。
相关文件资料速查
| 文件 | 说明 |
|---|---|
| docs/SETUP.md | 自动学习与技能投递官方配置指南 |
| src/shared/learning.ts | 容器 ID 与投递设置的校验规则 |
| src/server/learning.ts | 对话学习路由选择器(Web / Slack) |
| src/server/workspace.ts | 线程绑定与容器 ID 冻结 |
| src/server/dot-agent.ts | 技能目录加载与学习工具暴露 |
| tests/learning.test.ts | 学习配置相关的自动化测试 |
现在,打开 OpenDots 的 Dot 设置,填入你的第一个学习容器 ID 吧——从第 15 个合格对话开始,你的 AI 同事就会开始自己"学艺"了 🚀
【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考