教程2026-10-28 · 智涌AI

OpenDuet:开源主动式 Agent,简报与自有电脑

OpenDuet:早间简报、自有电脑、网关审批、Intelligence 记忆、多频道

多数助手等你开口;主动式 Agent 会先把今天该你拍板的事递过来,自己在旁路把能做的做掉。CopilotKit 开源的 OpenDuet(MIT)就是这类模板:早间简报、在自有容器里继续干活(浏览器 + /workspace + shell)、做完或卡住再回来找你,发信 / 付款 / 签名 / 删除前先问准。本文按官方站点与 GitHub README 整理它是什么、架构怎么分层、以及官方 Quick start 怎么试。

说明:功能与步骤以 copilotkit.ai/openduet 与 GitHub CopilotKit/OpenDuet README 为准(查阅日 2026-10-28 北京时间)。仓库标注 early development;星数同日 GitHub API 约 886★。

它是什么

README 定义:开源、可自托管的主动式 Agent 模板——不等人问,用短简报开场;你走开后它在自己的电脑上继续;需要你时才回来。构建在 CopilotKit 的 OpenBot 平台之上:OpenBot 提供服务端、应用、每 Bot 一台电脑、审批边界、审计、登录以及 Slack / Teams 频道;OpenDuet 在其上叠早间简报、Tasks、Make,以及自己的 Bot 与 Skills(都在 openbot/examples/openduet 一包里)。官方产品页强调:任意工具走 MCP,任意已有 Agent 只要讲 AG-UI,频道可用自有 App / Slack / Microsoft Teams。

和站内 Claude Duet 一类「会先开口的助手」同一品类;README 写明 OpenDuet 是独立开源项目,与 Anthropic 无隶属或背书关系。

发信、付款、签名、删除:默认先给你看清要做什么,再选拒绝、允许一次或始终允许。

架构:谁在干活

README「How it works」把链路画成:

层职责
你所在的频道Web、Slack、Microsoft Teams:提问、答复、审批;收回早间简报与「这需要你」
OpenDuet / OpenBot 服务分流(要你处理 / 可等待)、审批、网关(策略 → 审计 → 执行);AG-UI 把回合交给 Agent
Agent任意讲 AG-UI 的端点(LangGraph、Mastra、CrewAI、Google ADK、手写等)
自有电脑每 Agent 一容器:Chromium、/workspace、浏览器配置、shell;你不在时继续跑
CopilotKit Intelligence线程与记忆(免费 Developer 方案可读 README 要求;无密钥服务不起)
PostgreSQL + pgvector策略、审批、审计、加密凭证

网关把所有工具调用过一遍:写操作(或无法判定为读的)要过策略;设为「先问」的会停住,展示具体动作与触发规则。对人发消息永远先问一次,并显示收件人与正文。站点登录要密码时,你在遮罩框里输入,密码直达站点,对话里只记「请求过密钥」;已存凭证加密且只写不读回。

今天能用的能力(README 表)

首次见面它会先开口:读近期邮件与本周日程,用三两条短气泡自我介绍并请你纠正;未接 Gmail/Calendar 时会诚实说暂时没有邮件,并给出连接卡片。

官方怎么试

依赖:Docker、Bun 1.3+、Node(给 npx)、模型密钥、CopilotKit Intelligence 项目。在仓库根目录:

git clone https://github.com/CopilotKit/OpenDuet.git
cd OpenDuet
cp .env.example .env
bun install
npx --yes copilotkit@latest login
npx --yes copilotkit@latest project select
bun openbot/scripts/setup-learning.ts

project select 会写入 Intelligence 相关键;setup-learning.ts 把密钥对齐到服务读取的 INTELLIGENCE_API_KEY 并确保 Learning 容器存在。默认 Bot 模型在 openbot/examples/openduet/model.yaml(README 写 OpenAI gpt-5.6-terra),也可改成 Anthropic 等(设 BOT_PROVIDER / ANTHROPIC_API_KEY / BOT_MODEL)。然后:

bash scripts/start.sh
# 浏览器打开 http://localhost:3010

脚本拉起 Postgres、各 Bot 电脑、迁移、API、routine worker 与前端。停用 bash scripts/stop.sh。无 Google 账号时,README 提供 fake Google 演示路径(测试用发明收件箱);生产勿开。遥测可用 COPILOTKIT_TELEMETRY_DISABLED=true 或 DO_NOT_TRACK=1 关闭。定制产品名 / Bot / 频道 / 模型 / Skills:复制 openbot/examples/openduet,改 yaml,用 TENANT_PACKAGE_DIR 指过去。

和「只会聊天」差在哪

对话式助手的默认循环是:你说一句、它回一句。OpenDuet 多了三条腿。一是主动开口:早间简报和「建议接手」卡片在你没打字时就出现。二是空间分离:真正干活的电脑是独立容器,不占用你本机桌面;你去开会时它仍可在 Chromium 里点页面、在 /workspace 写文件。三是策略门:网关按规则拦住发送 / 付款 / 签名 / 删除,并留下审计,不把「记得要谨慎」交给模型临场发挥。

产品页演示叙事(厂商示例):早间简报标出周五发不出货的订单 → Agent 起草给客户的说明 → 你点一次 Allow 才真正发出。这和「模型直接 SMTP」不同:人始终握有外发开关。站点还强调:自托管时策略、审批、审计与保存的登录态落在你自己的 Postgres;线程与记忆在 Intelligence;模型你自选。

若你已有用 LangGraph / Mastra / CrewAI 等写好的 Agent,只要它讲 AG-UI,就可以接到同一套频道与审批壳上——OpenDuet 卖的是「主动 + 可控」的外壳,不是绑死某一个编排框架。

常见坑

完成标准

最后

OpenDuet 把「主动」落成可自托管的默认行为:先分流、再后台干、关键动作必问、密码不进模型上下文。要从模板改成自家助手,优先改 openbot/examples/openduet 那一包,而不是 fork 整棵 OpenBot 乱改。代码与说明见 CopilotKit/OpenDuet 与 产品页。

关注公众号「智涌AI速递」

每天的 AI 快讯、实用教程和 AI项目实测,也会同步发到微信公众号。在微信里搜索「智涌AI速递」就能关注;不用微信的话,可以用 RSS 订阅本站。