?)
DeepCode 如何创建并管理 interval 定时 Automationscheduler 运行条件与 Run 历史【免费下载链接】DeepCodeDeepCode: Open Agentic Coding (Agent Harness Loop Engineering Multi-Agent Orchestration)项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCodeDeepCode 的 Automation 可以把一段 Agent 指令按固定间隔反复执行创建一个--schedule interval的定义后只要有一个启用了 scheduler 的 DeepCode Desktop 或 App Server 进程保持运行系统就会按--interval-seconds设定的周期自动发起 Run。本文围绕deepcode automationCLI说明如何创建一个 interval 定时 Automation、确认 scheduler 的运行条件并用分页查询管理定义与 Run 历史。所有命令来自 Headless and Automation 指南调度语义与 Automation Architecture 一致。准备条件安装、初始化与 Project trust按照文档开始之前需要安装并初始化 DeepCode配置好模型连接并至少在 DeepCode 中打开一次目标仓库uv tool install --python 3.12 deepcode-hku deepcode init cd 你的项目 deepcode其中你的项目是占位符替换为你要运行 Automation 的仓库目录。Automation 命令要求目标 Project 已经完成 trust。首次 Agent 运行需要显式确认 Project trust——Trust 只确认 DeepCode 可以在哪个工作区执行不代表授予无限制工具权限。如果项目未信任CLI 会给出ProjectNotTrustedError提示先显式信任 Project且该命令本身不会授予 trust。创建一个 interval Automation创建命令需要指定名称、--prompt提交给共享 Agent 运行时的指令、调度类型和间隔秒数deepcode automation create 仓库维护 \ --workspace . \ --prompt 修复失败的测试并验证结果。 \ --schedule interval \ --interval-seconds 3600参数说明--workspace .从当前目录解析 Project也可以用互斥的--project project-id直接指定已存在的 Project。--project/--workspace只对list和create有效其他子命令传入会报错。--schedule可选manual或interval--schedule-kind是同一参数的别名不传时默认manual。--interval-seconds设置间隔秒数文档示例使用3600每小时一次。如果需要创建时就暂停调度可以加上--disabled标志创建出一个 interval 已处于暂停状态的 Automation。创建成功后会输出 Automation 名称、状态status、调度类型、id和它关联的规范 GoalthreadIDinterval 类型还会打印一句提示interval 调度只在 scheduler-enabled 的 Desktop 或 App Server 保持活跃时执行。记下id后续管理命令都依赖它。scheduler 的运行条件interval 何时才会真正执行这是 interval Automation 与普通脚本最容易混淆的一点创建命令本身不会启动任何后台进程。必须有一个 scheduler-enabled 的运行时保持活跃启用了 scheduler 的 DeepCode Desktop 或 App Server 进程。文档明确说明短暂的 Automation 管理命令create/list/runs 等不会创建后台 scheduler交互式 CLI/TUI 和DeepCodeApplication默认也不常驻 scheduler长驻的 App Server 才会显式启用它Desktop 通过该 App Server 进程获得调度能力。同一数据库同一时间只有一个进程触发到期 occurrenceAutomationScheduler通过跨进程 leader lease 保证这一点其他进程作为 standby在 owner 退出后接管。interval 的节拍锚定在持久化的 nominal deadline 上错过的 tick 会合并为一个 occurrence不会补跑多次。如果更早的 Run 尚未结束到期的 occurrence 会被记录为 skipped不会叠加执行。暂停 interval 不等于失去手动触发能力activation 状态只控制 interval 调度pause之后仍可通过Run now即deepcode automation run手动触发。manual 类型定义则始终处于 enabled。用deepcode automation list --workspace . --json返回的schedulerActive字段可以判断当前数据库是否存在活跃的 scheduler 进程便于脚本判断“定时是否真的在跑”。管理定义list / update / enable / disable / delete日常管理使用以下命令automation-id替换为 create 输出中的 iddeepcode automation list --workspace . deepcode automation update automation-id --prompt 更新后的指令 deepcode automation enable automation-id deepcode automation disable automation-id deepcode automation delete automation-idupdate至少需要一个变更字段--name、--prompt、--schedule可同时改调度类型例如把 interval 改回 manual或--interval-seconds。修改指令会生成一个新的不可变 revision已经开跑的 Run 继续持有它开始时的 revision。enable/disable只切换 interval 调度的激活状态启用 / 暂停不会移除手动触发路径。delete是退役操作定义被退役后从定义列表中排除但其规范 Thread、Session 和持久 Run 历史仍然保留、仍可按 Automation ID 查询。删除定义不会删除仓库文件。交互终端下delete会要求确认当 stdin 非交互例如在脚本里时必须显式加--yes否则会直接报错退出。list的人类可读输出会展示每条定义的STATUS、SCHEDULEinterval 类型显示为every 3600s、最近一次 Run 的状态没有 Run 时显示never以及名称和 ID并附同一句 scheduler 运行条件提示。手动触发 Run 与查询 Run 历史手动触发一次 Rundeepcode automation run automation-idrun会在前台等待这次持久 Run 结束settle文档说明它不会施加任意产品超时。调用方可能重试同一请求时传入--request-id 幂等键作为幂等键重试同一个 request 会收敛到同一个 Occurrence、Run、Goal 和初始 Turn不会产生重复执行。输出包含 Run ID、状态、所属thread以及非空时的goal、turn和detail。退出码可作为脚本判断依据Run 状态为completed时返回 0否则返回 1。分页查询 Run 历史deepcode automation runs automation-id --limit 100 --offset 0runs子命令以表格列出历史STATUS、TRIGGER、SCHEDULED FOR和 Run ID。列表和 Run 历史都是分页查询--limit取值范围 1-500、默认 100--offset是零基偏移、默认 0。当还有更多结果时人类可读模式会打印类似More Runs are available; continue with --offset next_offset.的提示把提示里的 offset 填入下一次查询即可翻页--json模式下对应hasMore和nextOffset字段。验证定时是否按预期工作的完整闭环是list确认定义状态与schedulerActive为真 → 等待一个周期 →runs查看新出现的 scheduled Run 及其状态 → 需要看对话、工具调用、审批和证据时打开该 Run 关联的规范 Goal ThreadDesktop 中通过Open Thread进入。排查与限制未信任 Project创建或启用 Automation 前必须先在 DeepCode 中显式信任目标 Project错误信息会明确说明该命令不会代授 trust。interval 定义了但从不自动执行先确认是否有一个 scheduler-enabled 的 Desktop 或 App Server 保持运行automation list --json的schedulerActive为 false 时interval 调度不会触发但run手动触发仍可用。出现AUTOMATION_BOOTSTRAP_PENDING创建时数据库提交成功但本地 Session 物化失败会返回该错误文档明确它是故意不可重试的——应刷新或重新打开 DeepCode而不是再次发起 create 请求。执行权限Automation 不能提升自身权限Skill 也不能每个 Turn 会快照工作区的显式权限配置否则使用安全的default模式。审批可以来自另一个已连接的 DeepCode 客户端。删除 Session 的关联限制属于 Automation 的 Session 不能被直接删除需要先把 Automation 退役或移除。所有 Automation 命令都可以加--json获取机器可读输出deepcode 命令 --help可查看完整参数。完整的生命周期、幂等键语义、故障恢复与并发围栏细节见 AUTOMATION_ARCHITECTURE.mdCLI 实现可参考 cli/automation_cli.pyDesktop 侧的对应界面说明见 desktop/README.md。【免费下载链接】DeepCodeDeepCode: Open Agentic Coding (Agent Harness Loop Engineering Multi-Agent Orchestration)项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考