
Poke 介绍单会话智能体设计:主对话保持团队上下文连续
来源标题:A brief history of single-session agents
Poke 提出单会话智能体设计,用一个持久主对话承载团队积累的理解,独立 Worker 执行具体任务。该设计针对多对话并行时信息割裂、重复交代背景的问题,让后续工作能基于团队已有认知启动。Poke 同时使用子智能体分工与单会话两种机制。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
想象一个团队同时开着四十个对话。其中一个对话里,有人让 agent 准备一份客户提案。另一个对话里,同事在询问交付时间预估。第三个人则在确认同一个功能能否在本月上线。
每个对话都从一段背景说明开始。客户是谁,我们承诺了什么,昨天做了什么决定。Agent 们开始干活,但各自看到的只是局部。最终有人发现,提案里承诺的日期,工程讨论早就已经排除了。
然后一个 Task 结束了,它所在的对话归于沉寂。一周后,另一个人启动相关的工作,又把背景重新解释了一遍。
在构建我们的 agent 时,我们不断回到这个场景。我们希望下一项工作能从团队已经学到的东西开始。这引导我们走向单会话设计:一个持久的主对话,加上独立的 Worker 执行各自的任务。
Subagent 有助于拆分工作。单会话回答的是另一个问题:对这项工作的理解,随时间推移存放在哪里?两者我们都会用。主对话给团队连续性;Worker 给每项任务独立运行的空间。
Poke 给个人 agent 一个简单的家:一个人,一个对话(2025 年 9 月)。它把一个人的邮件、日历和文件连接到一个文本对话中。要求起草回复或重新安排会议,可以与上一个请求从同一个地方开始。这让对话成为一个人日常推进时可以随时回到的锚点。个人关系是这段体验的中心,也给了我们一个跨不同任务保持连续性的具体范例。
Claude Tag 把一个 Claude 带入某个频道(2026 年 6 月 23 日)。频道里的任何人都可以 @ 同一个 agent,查看它的工作,并从同事停下的地方接着做。Claude 会随时间记住相关信息,并使用管理员开放的工具。发布说明还提到,在获得许可时可以从其他频道和来源学习。我们感兴趣的是共享对话:人们可以在已经讨论工作的地方直接委派工作。我们自己的设计把团队的主对话作为回归点,贯穿于汇入其中的各种讨论和 Task。
我们选择探索“一个团队,一个对话”。范围跟随团队跨讨论的工作。关于交付的决定可以影响提案,即使这些工作是从不同地方开始的。
2025-09 Poke 个人对话 2026-04-28 Bridge 文章发布 2026-06-23 Claude Tag 共享频道 2026-10-01 Comma 团队对话 2026-10-31 DeepSeek Super-agent 系统协调 单会话 agent 时间线 2025-09 Poke 个人对话 2026-04-28 Bridge 文章发布 2026-06-23 Claude Tag 共享频道 2026-10-01 Comma 团队对话 2026-10-31 DeepSeek Super-agent 系统协调 个人对话、共享频道,以及团队的主对话。
2026 年 4 月 28 日,我们发表了第一篇相关文章,介绍我们的前一个产品 Bridge,把探索的这一部分放在 Poke 之后、Claude Tag 之前。我们在当前产品 Comma(2026 年 10 月 1 日)中延续了这项工作,这一设计今天就在那里运行。
DeepSeek-Harness 在 2026 年 10 月 31 日加入了另一项探索:Super-agent。它在群聊中的主动工作呼应了同一个方向:把协调从人转移到系统中。它的研究原型遵循自己的设计。
DeepSeek 的设计文章 §8.4 留了两个开放问题:云侧被攻破或 prompt injection 暴露已连接的设备,以及凭据通过模型上下文泄露。我们目前对内容的处理方式是 IFC:声明来源,检查目标读者,拒绝不允许的发送,并在需要时寻求限定范围的人工批准。
凭据走另一条路径。模型只给出凭据引用;执行层解析并注入其值,不把它返回给模型。
设想一位新同事加入提案工作。他们加入团队其他人一直在用的同一个主对话。他们可以看到那里共享的决定,询问某个日期为什么变了,并直接接手工作,而不必向三个人要三份总结。工作区成员身份让他们能访问这个共享对话;而决定背后的材料,访问权限仍然遵循该材料自身的权限设置。
一个完成的 Task 保留其结果和历史。也许团队了解到某个客户要求一种特殊的导出格式。报告回到 Router,之后的提案可以引用这个发现及其来源。Task 结束了,但团队仍然有一个地方可以回到它学到的东西。
并行工作让这条回归路径变得重要。一个 Worker 可能在阅读客户需求,另一个在调查技术限制。如果他们的发现经过层层转述才到达团队,重要的限定条件可能会消失。每个 Task 都把发现连同来源一起报告回来。Router 在同一个主上下文中接收它们。
这让我们有理由把 harness 拆成两种角色。一个负责跟踪团队正在进行的对话。其他的执行各自的任务。
我们给一个工作区配一个常驻 Router。它持有团队的主上下文,随着请求到达、决定变化、结果返回而跟随对话。关于提案的请求,与已经在进行的交付讨论处在同一个上下文中。每条进来的消息都带有其来源对话和消息标识。Router 跨讨论共享上下文,同时跟踪每个输入来自哪里。
Router 把定义好的任务交给 Worker。每个 Task 启动一个新的 Worker 会话,带上该任务的指令和交接信息。其他 Worker 的历史留在各自的会话里。多个 Worker 可以同时调查不同的问题。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。