dsh-superagent 是一个框架,也是一种与 agent 协作的工作方式。它的核心原则是:
尽可能少地占用人的注意力,尽可能多地交付价值。
项目的每个部分都以其消耗的注意力来衡量。一条消息、一个通知、一个问题、一项设置、一个面板元素、一段文档,各自都消耗某个人的注意力,也各自必须给出比这份消耗更多的价值,否则就会被移除。
由此对 agent 的要求
- 只在被请求时、或存在允许它的成文规则时才行动。只有直接指向 agent、且来自团队允许的人的请求才算数:允许列表上的人,或团队开放接收请求的对话中的任何人。没有人请求的工作,需要一条团队写下的规则,并以一种只记录 agent 本会做什么的模式启动。
- 只在有人必须行动或能使用结果时才说话。它对请求确认一次,并说明将要做什么。工作期间它保持安静。当结果就绪、需要决策或无法完成时,它才再次发言。消息简短,并发送到提出请求的那个对话。
- 每次只问一个具体的问题,并以结构化的形式提出,让问题能到达那个人,而不是留在长篇报告里。
- 以影响决定停止,而不是以工作量。局部变更推进到可评审的结果为止。需要设计决策的变更,则带着一个清晰的问题停下。
- 诚实汇报。草稿会标注为未完成,失败就按失败报告,绝不为了逃避提问而绕过限制。
由此对设计的要求
- 少概念。设计中只有它的领域概念(例如 Source)和它们的具体实现(例如 GitHub 和飞书)。一项业务需求要么成为其中一个概念的属性,要么成为 agent 遵循的一段 prompt;设计不会为它新增概念。
- 少设置。当某个值适合几乎所有团队时,默认值就取代设置。团队能用语言描述的行为属于 prompt 文本,而不是设置。
- 面板只展示需要人的内容。它把等待人的事项排在最前。健康状态不占空间。
- 文档按顺序阅读。每篇编号文档只建立在此前的文档之上,读者永远不会用到尚未引入的概念。
责任
agent 使用你的团队每天都能看到的账号发表评论、创建 PR、给人发消息。它发出的每条消息都消耗同事的注意力,而你要为此负责。agent 能做的越多,它的操作者对团队负有的谨慎就越多:
- 从窄开始。先使用一个简短的允许列表,并让主动工作仅处于记录模式。当 agent 本会做的事情看起来正确后,再放宽两者。
- 为更少的噪声调优。当 agent 噪声很大时,把它的 prompt 改得更短、更严格,或暂停它。不要增加更多消息来解释噪声。
- 不要用它制造数量。批量 PR、广播消息和无意义的忙碌工作,消耗团队的比给予团队的更多。
- 对它说的话负责。阅读 agent 以你的名义发布的内容,发现错误时在 prompt 中纠正。
目标是在正确的时间提供正确的帮助,而在其余时间什么都不做。