VS Code 1.137 的 Agent Automations:定时任务进入预览,权限边界要先于 Prompt

VS Code 1.137 带来了一项很容易被低估的能力:Agent Automations 进入 Public Preview。开发者可以把一个带有 Prompt、工作区、模型和权限配置的 Agent 任务保存下来,手动运行,也可以按小时、每天或每周自动运行。

它适合处理“重复但需要判断”的工作,例如汇总最近的代码变化、整理 Issue、寻找潜在缺陷或检查文档。关键变化不是多了一个定时器,而是定时器会再次启动一个拥有文件读取、命令执行甚至修改权限的 Agent 会话。只要任务进入无人值守状态,Prompt 质量就不再是唯一问题,工作区、权限、运行主机、幂等性和用量预算都需要一起设计。

Agent Automations 具体能做什么

VS Code 官方更新说明把 Automations 定义为重复运行的 Agent 任务。打开 Agents window 后,侧边栏会出现 Automations 入口;可以从模板开始,也可以自己填写任务名称、Prompt 和调度计划。

目前的调度方式包括:

调度方式 适合的工作
Manual 先验证 Prompt 和首次运行结果
Hourly 需要较短反馈周期的仓库巡检或状态汇总
Daily 每日变更摘要、Issue 初筛、文档检查
Weekly 周报、依赖观察、长期问题盘点
On demand 不改变计划,临时手动触发一次

这项功能仍在 Preview,并且会逐步向用户开放。需要先启用 chat.automations.enabled 设置,然后在 Agents window 中进入 Automations。预览状态意味着设置入口、运行行为和可用 Agent 可能继续变化,不适合在没有回滚方案的情况下作为关键生产流程的唯一依赖。

它不是普通的 Cron

传统 Cron 通常只负责在某个时间启动脚本,脚本的权限和执行环境由服务器固定提供。Agent Automation 的配置对象更丰富:它会保存 Prompt、目标工作区、所选 Agent、模型和 Session configuration,还可能包含权限选项和 Git worktree 设置。

一次运行大致可以看成下面这条链路:

1
2
3
4
5
6
7
8
9
10
11
调度时间到达

加载保存的 Prompt 和 Session configuration

连接目标工作区或选择 No workspace

启动 Agent 会话

按权限读取文件、运行命令或修改内容

保存本次运行结果

VS Code 文档明确提醒,Automation 可以按照所选 Agent 的权限读取文件、运行命令和进行修改。保存 Automation 不会绕过组织策略,也不能保证未来每次运行都不需要审批。换句话说,调度计划只是“何时启动”,不是“自动获得一切权限”。

运行环境决定它会不会真的按时执行

本地 Automation 有一个与云端定时任务不同的前提:运行它的机器和 Agent 必须可用。官方文档说明,Agent Host-backed 的计划需要 Agent Host 进程保持运行;其他计划则需要 VS Code 窗口保持运行。关闭应用或让机器睡眠后,不能假设任务仍会像服务器上的 Cron 一样正常执行。

另外还有几个容易被忽略的调度行为:

  • 每日和每周计划使用本地时区;
  • 中断后,错过的计划可能触发一次 catch-up,但不保证每次错过的执行都被补回;
  • 同一个 Automation 一次只运行一个会话,不会因为计划重叠而并行启动多个相同任务;
  • 每次执行都会消耗所选 Agent 和模型对应的使用额度。

因此,开发团队在设计计划时要先回答两个问题:这台机器是否真的会在目标时间在线,以及漏跑一次任务会不会影响业务。如果任务具有生产影响,就应该准备一个有稳定运行时的替代方案,而不是把本地 VS Code 当成高可用调度器。

第一次不要直接设置成每天运行

官方文档建议先把 Schedule 设为 Manual,检查首次运行结果后,再改成 Hourly、Daily 或 Weekly。这个顺序非常重要,因为 Agent 的错误往往不是“任务没启动”,而是任务启动后理解错范围、调用了不合适的命令,或者生成了没人会消费的输出。

可以先用一个只读、范围明确的任务做验证:

1
2
3
4
汇总当前仓库最近 24 小时的提交和 Pull Request。
只读取 Git 历史、Pull Request 元数据和已有文档,不修改文件、不运行发布命令。
输出:变更摘要、可能需要人工关注的问题、信息来源和未确定事项。
如果没有足够信息,明确写出“无法判断”,不要猜测。

首次运行重点检查四件事:

  1. Agent 是否打开了预期的工作区。
  2. 读取范围是否超出了任务需要。
  3. 输出是否带有可核对的提交、Issue 或文件引用。
  4. 任务失败、无数据和权限不足时,结果是否清楚表达了状态。

只有当这四点都稳定后,才适合加入周期计划。

Prompt 要写成可重复执行的任务

一次性对话可以依赖上下文,定时 Automation 则不能假设上一次会话的记忆还在。Prompt 最好明确写出输入范围、输出格式、禁止操作和失败处理。

1
2
3
4
5
6
7
8
9
10
11
任务:生成过去 24 小时的仓库变更摘要。

范围:当前工作区的 Git 提交、Pull Request 和 Issue。
输出:
1. 变更摘要,按主题分组;
2. 需要人工确认的风险;
3. 引用的提交或链接;
4. 没有数据或无法判断的项目。

约束:只读,不修改文件,不安装依赖,不推送代码,不访问生产凭据。
重复运行:只覆盖本次报告,不修改历史报告。

其中“重复运行”尤其重要。周期任务可能因为手动触发、catch-up 或重复计划而多次运行。输出文件应使用稳定的日期键或写入独立目录,避免每次执行都追加一份重复内容;如果任务会写文件,最好先读取当前状态,再根据差异决定是否修改。

工作区、权限和隔离怎么选

VS Code Automations 创建表单允许选择目标工作区,也允许选择 No workspace。一个实用的选择规则是:

任务类型 建议配置
只做资料汇总或一般问答 No workspace,或只读工作区
读取仓库并生成报告 指定工作区,限制写入权限
自动修复代码 使用独立 Git worktree,要求测试和人工审查
需要发布或改动线上资源 不要直接交给无人值守 Automation

如果所选 Agent 支持,Git 工作区可以选择 New Worktree 和基准分支。这样任务产生的修改不会直接落在开发者当前分支上,尤其适合自动修复、批量重构和文档更新。

“有独立 worktree”不代表风险自动消失。Agent 仍可能运行命令、读取环境变量或访问网络,因此要同时收紧权限级别,并检查组织策略和审批规则。对于包含密钥、客户数据或内部配置的仓库,不要因为任务只是“整理 Issue”就默认开放完整文件和网络访问。

适合优先自动化的三类工作

变更摘要和交接信息

每天汇总过去一段时间的提交、Pull Request 和 Issue,输出面向开发者的变更摘要。这类任务结果容易人工核对,失败时也不会直接改变系统状态。

Issue 初筛

让 Agent 按既定标签和模板检查新 Issue,提取复现步骤、影响范围和缺失信息。自动化只负责整理和提出问题,不要在没有人工确认时自动关闭 Issue 或修改优先级。

文档和工程卫生检查

周期检查过期链接、缺失变更记录、重复配置或明显的文档漂移。第一阶段只生成报告,确认误报率后,再考虑让 Agent 在 worktree 中提交修改。

相反,自动发布、删除数据、修改生产配置、轮换凭据和直接合并代码,都不适合一开始交给本地预览功能承担。它们需要更明确的身份、审批、审计和恢复机制。

如何验收一个 Automation

可以用一周的试运行建立最小验收表:

  • 计划是否在预期时区触发;
  • 机器休眠或 VS Code 关闭后,任务如何表现;
  • 运行失败时是否产生明确的错误记录;
  • 输出是否重复、遗漏或引用过期信息;
  • Agent 是否执行了 Prompt 之外的命令;
  • 任务每次运行的模型、时间和使用量是否可追踪;
  • 产生代码修改时,是否留在 worktree 而不是当前工作分支。

这些问题比“Prompt 写得像不像人话”更能决定周期任务是否值得长期保留。对于真正重要的任务,还应把结果发送到已有的监控、Issue 或审批流程,而不是只留在某个本地 VS Code 窗口里。

结语

VS Code 1.137 的 Agent Automations 让开发者可以把一些重复的工程工作交给周期运行的 Agent,小时、天、周三种调度粒度覆盖了从频繁巡检到周报整理的常见场景。它最有价值的地方,是把 Prompt、工作区、模型和权限配置放在同一个可重复运行的任务里。

但它仍然是 Preview 功能,也依赖本地运行环境。更重要的是,每次自动运行都可能拥有真实的文件和命令权限。先用 Manual 验证,再使用最小权限、独立 worktree 和明确的输出约束,最后才设置周期计划,才能让 Agent Automations 成为工程流程的一部分,而不是一个会在夜里悄悄改文件的黑盒定时器。

参考来源

文章目录
  1. 1. Agent Automations 具体能做什么
  2. 2. 它不是普通的 Cron
  3. 3. 运行环境决定它会不会真的按时执行
  4. 4. 第一次不要直接设置成每天运行
  5. 5. Prompt 要写成可重复执行的任务
  6. 6. 工作区、权限和隔离怎么选
  7. 7. 适合优先自动化的三类工作
    1. 7.1. 变更摘要和交接信息
    2. 7.2. Issue 初筛
    3. 7.3. 文档和工程卫生检查
  8. 8. 如何验收一个 Automation
  9. 9. 结语
  10. 10. 参考来源
|