DeepSeek 发布了一款编程代理原型,用于测试早期功能。它负责一个 GitHub 仓库,执行请求的任务,并将结果返回原始对话。团队可通过允许名单和规则决定谁能分派任务,以及代理应先审查哪些消息。

1. 在单个仓库中工作,通过网页面板请求人工介入

dsh-superagent 是面向代理运行基础设施 DeepSeek Harness 的套件。它接收 GitHub 请求,也可选择连接协作工具 Feishu。每项任务都有独立的对话会话和文件夹,并通过拉取请求等代码变更审查方式返回结果。网页面板会汇总需要人工回复或审查的事项。

安装时,可请编程代理阅读仓库中的 SETUP.md,并协助完成设置。代理会逐一提问,展示完整计划,再进行安装和配置。团队可设置接收请求的对象以及启动任务的规则。

2. 允许名单和规则控制任务启动

启动任务的权限和允许范围,由代理运行系统管理的允许名单、规则及各任务权限记录决定。评论是工作资料,允许名单则相当于准入名册。获准人员点名代理,就构成明确请求。也可通过各对话范围的设置,明确允许名单外人员的点名请求。其他人员或已登记机器人的消息,会按设置成为审查候选或被忽略。

已启动任务中的对话,可通过独立路径传给执行代理。这种转发会补充上下文,但不会扩大权限。执行代理在获派范围内处理任务,或退回超出范围的请求。机器人消息和自动检查结果可作为上下文传入现有任务,但不会重新唤醒已结束的任务。

3. 通过评估模式和团队规则调节自动启动

基于规则的自主任务默认从观察开始。默认模式会记录审查候选的评估结果,但不会自动启动任务。团队可查看记录后切换到自动模式。明确获准的请求在任何模式下都会得到处理。

在自动模式下,要批准候选请求,必须逐一评估已启用的规则,并至少符合其中一项。规则不仅决定是否启动,也决定执行方式。例如,审查规则可指定合并代码前所需的审查人员和批准。对于无关对话等明显不符合规则的候选,可不作详细评估而直接忽略。

策略版本包含规则、自动启动模式和各来源的策略。策略变更时,会将正在进行的评估重新置于等待状态,并向受影响的任务发送变更通知。正在执行的任务不会仅因策略变更就立即被撤销权限,但恢复已结束任务前,会重新确认其是否符合当前策略。

4. 任务在独立会话中执行,并按条件恢复

每项任务使用专属会话和文件夹。若文件夹尚不存在,就执行一次预设的准备命令。准备命令有 10 分钟时限,常见配置是利用 git worktree 这一可创建独立工作目录的 Git 功能建立检出目录。若未配置准备命令,则从空文件夹开始。

内部结构会接收请求,经策略和评估环节后连接到任务执行环节。下面原样摘录原文结构图的前 10 行。

flowchart TB
  plugins[Source plugins] -->|SourceContext| engine
  tools[Session tools] --> engine
  http[Management routes] --> engine
  engine[Engine] -->|Repositories| store[Store]
  engine -->|Policy| policy[Policy]
  engine -->|SourceScope| registry[SourceRegistry]
  engine -->|Assessor| assessor[MasterAssessor]
  engine -->|Executor| executor[DshExecutor]
  assessor -->|decide| engine

当有人在该任务的对话中发送后续消息时,已结束的任务也可能继续。恢复前会确认原始对话仍属于接收范围,并根据批准依据重新检查当前允许名单和规则等。若重新验证失败,权限将被撤销;等待中的消息若未由其他任务负责,则会返回新一轮评估。

停止方式也有所区分。人在对话中要求停止时,该请求会像普通消息一样接受评估;面板的停止功能则直接中止该任务。被人工中止的任务,未经重新批准不会恢复。

5. 减少关注负担,但增加策略管理责任

代理先对请求分类,再在各任务的独立空间内处理,可减轻人工每次启动任务的负担。相应地,团队的职责会从处理单个请求,转向管理允许对象和规则,以及审查评估记录。观察模式只记录评估而不自动执行,让团队有机会判断哪些请求适合自动交付。

不过,执行代理会以操作人员账户运行命令,无需批准;专属文件夹或命令衔接配置并非安全隔离机制。该仓库以研究原型而非正式产品的形式发布,说明了可能存在的缺陷及与内部版本的差异,并建议在引入前审查,针对环境进行调整。

这一原型的引入价值,与其说在于增加自主执行,不如说在于让团队先设计可交付任务的范围和启动权限。