@agentproto/routine

中文文档
0.4.1发布于 2026/11/01Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 6251

@agentproto/routine — AIP-41 ROUTINE.md 参考执行. 用于声明重复或事件驱动的引用动作、工作流程或工具的标记下+前题格式。 从"什么"(目标)中去掉"何时"(时间表). 支持括号

中文使用文档
文档目录6 节
  1. 使用量
  2. 运行时桥(SPEC)
  3. 决定
  4. /routines/* 命名碰撞(已解决)
  5. Specs-repo后继(此处未应用——单独repo,每简)
  6. 许可证

@ agentproto/ 常规

AIP-41 (中文(简体) ) ROUTINE.md 参考执行。 用于声明重复或事件驱动的引用动作、工作流程或工具的标记下+前题格式。 从"什么"(目标)中去掉"何时"(时间表). 支持 cron / 间隔 / 日历 / 手动 / 事件驱动的调度, 包含重试, jitter, 追赶策略, 身份归属, 失败路径 .

状态:0.1.0-α. 生成者 scripts/scaffold-aip.mjs —— 说 build() 财务报告和审定财务报表 validate() 尸体是TODO的.

谱: 页:1

使用量

import { defineRoutine } from "@agentproto/routine"

const x = defineRoutine({
  id: "my-routine",
  description: "Short purpose.",
  // ...
})

运行时桥(SPEC)

defineRoutine编号 :parseRoutineManifest 仅高于 验证 (单位:千美元) ROUTINE.md。 。 。 . 在这段之前,什么也没有 @agentproto/runtime 读取 .routines/*/ ROUTINE.md 并把它变成活的预定工作—— packages/worktree/ routines/worktree-gc/ROUTINE.md (已发运) enabled:false 公关编号626 惰性。 这个部分是桥的设计 使它真实, 侦察 写入任何代码之前的源代码 :

  • routineFrontmatterSchema.target 财务报告和审定财务报表 .schedule 曾经 z.any() (单位:千美元)packages/routine/src/schema.ts:16)——完全没有验证.
  • 守护进程唯一的现场日程安排是 CronScheduler (单位:千美元)packages/runtime/src/cron-scheduler.ts: 一个20秒的循环 职业持续 ~/.agentproto/cron-jobs.json,带有动作类型 command | agent | prompt-session (单位:千美元)cron-scheduler.ts:50-72和证明 agent- 有型路径( 镜像) worktree-investigator-weekly 内 cron_list) (中文(简体) ). cron_run (单位:千美元)orchestration-tools.ts:1750立即开工, 绕过它的时间表——模式 routine_trigger 镜相相相.
  • 没有持续、可地址的“ 按名称调用任何守护进程工具” 登记. McpServer (单位:千美元)@modelcontextprotocol/sdk)为 没有 一个网关 这里的单通.. mcpServerFactory 内 packages/runtime/src/index.ts 构造 a 新鲜 McpServer 重新运行 registerXTools(...) 通过 百分比 /mcp 连接 (单位:千美元)index.ts:1211),所以没有长寿服务器 参考文献可以活过阴茎 它的注册工具在 下划线前置、未申报 _registeredTools 地图——伸入其中 已经是先例了,不是在这里发明的: packages/runtime/src/__tests__/tool-subset.test.ts:20-26 铸造 server as unknown as { _registeredTools?: ... } 以返回工具名称 出来测试单位。 桥重用同样的铸造 调用 (单位:千美元) 处理者,不只是列出一个.

决定

  1. AIP-41 申报表层 ——没有新的显式原始.
  2. 目标种类 —— 说 target.tool 是通用路径( registrarr ) 守护进程 工具名称,任何工具. target.agent 财务报告和审定财务报表 target.workflow 这是糖 下到工具调用 :
    • target.tool = { tool, inputs? } ——即时派遣.
    • target.agent = { adapter, prompt, model?, cwd?, ...any other agent_start field } ∗ 以 tool:"agent_start" 与这些 字段为 inputs,对照代理 start 自身的输入方案验证 (单位:千美元)packages/runtime/src/agent-start-schema.ts· ; wait ) (删除). 新的目标类型—— TargetAgent 目前AIP-41草案中不存在 target: TargetAction | TargetWorkflow | TargetTool 工会 (单位:千美元)packages/routine/src/types.ts:46) (中文(简体) ). 标记为 specs-repo 后续 下面;这个repo的计谋是故意先于草案的.
    • target.workflow = { workflow: string | { file, ref, inline }, inputs? } (单位:千美元) 现有 AIP-41外形) workflow.file (或一条赤线, 作为文件路径处理) 发送为 tool:"workflow_run_file" 与 { path, input }。 。 。 . ref编号 :inline 子窗体为 未执行 —— 说 在这个运行时间中没有“ 通过 id 注册运行已保存的工作流程 ” (单位:千美元)workflow_start 使用内线 stages 数组,它不能解决 保存定义)—— reconcile()编号 :trigger() 报告清楚 不支持- 形状错误 而不是沉默不动.
    • target.action (AIP-39行动参考)得到验证,但 未发送 ——在此运行时间不存在动作解析器. 相同的“ clear 错误 ” , 不是 沉默的"治疗.
    • 所有三种发送的种类都折叠到 不变 { tool, inputs } 双人, 所以书记官有一条行刑路线 (单位:千美元)routineTargetToToolCall),不是三个.
  3. 司马收紧 —— 说 target 从 z.any() 改为 z.union 联 合 国 四个对象计划(工具/代理人/工作流程/动作——见 schema.ts, (中文(简体) ), .strict() 除外 target.agent内在对象, 它通过额外 agent_start 字段通过运行时间验证. z.union 而不是说 z.discriminatedUnion 因为 变体被区分为: 哪个键存在 (单位:千美元)tool 对 agent 对 workflow 对 action,而不是一个共同的字面歧视领域——添加 它本身就是一种改变. schedule 是故意的,这是故意的 左边 z.any(): 仅 target 用于收紧案情摘要的范围,以及 ScheduleCron- 只有zod计划会拒绝其他四种计划 该类型已存在文档。 相反, routine-registrar.ts 运行时守护符 schedule.kind === "cron" 和解决 schedule.kind === "event" (b) 其余种类为: 报告为明显的“ 尚未支持的” 跳过, 不是验证失败 分析时间.
  4. 调度机制——一个共享 dispatchTool,而不是四个铃声 包装. createGateway (单位:千美元)index.ts建造一个懒惰的、, 内部缓存 McpServer 通过 现有 mcpServerFactory() (同样的) 注册通过一个真实 /mcp 连接得到.. worktree_gc, (中文(简体) ), agent_start, (中文(简体) ), workflow_start, (中文(简体) ), workflow_run_file,以及所有其他 守护进程工具在上面着陆),和 a dispatchTool(name, inputs) 关闭 进入其 _registeredTools[name].handler(inputs, {}) - 同样的铸造品 作为 tool-subset.test.ts,现在负载而不是只测试。 已建成 懒惰( 第一次) "tool"- 点燃/起火,而不是在靴子上),所以它增加了没有 当没有例行公事发生时 靴子会停放 此单个函数是交接的 改为 两者 CronScheduler (新设) kind:"tool" 动作, 实际排定 火灾)和 RoutineRegistrar.trigger() (供点火使用)——1 发送执行,两个呼叫者.
  5. 书记官长 (单位:千美元)packages/runtime/src/routine-registrar.ts(b) —— reconcile() 扫描 <workspace>/.routines/*/ROUTINE.md,每个验证 通过 parseRoutineManifest,并每张 enabled:true + 键 schedule.kind:"cron" 常规创建一个 CronScheduler 任务标记 label:"routine:<id>"; 一种会消失或转动的常规 enabled:false 已删除其标记的工作; 程序已解决 {schedule, action} 更改后被删除旧工作,再换一个新的 创建( 删除后再创建, CronScheduler 没有 update()) (中文(简体) ). 一个 enabled:true + 键 schedule.kind:"event" 程序解为反应 反之,反应接线会重新装入跑者绑定的套装 在每一个传球。 在网关启动时呼叫一次;可根据需要召回(无) 记录为后续,而不是默默放弃). 收集文件解析/ 目标错误, 只跳过该文件, 不 整个扫描. A 类 target.workflow 目标绑定在同一工作空间:一个相对 file 决心,在它之下,派遣者 workflow_run_file 调用运行 与 cwd 准备 input.repoRoot 除非 程序已设置一个( 明确 repoRoot 总是赢). 一直这样 一个工作空间的例行公事 从沉默的目标守护进程活动 工作空间.
  6. routine_trigger (MCP工具,镜像) cron_run页:1 POST /routine-defs/:id/trigger (HTTP,镜像) POST /cron/:id/run(b) —— 将常规的新鲜度重新划分,将其目标确定为工具呼叫,以及 电话 dispatchTool 直接 (不是通过注册工作):工作 即使是一个被禁用的程序或一个 reconcile() 还没有看到,和 绕过调度和 enabled 旗帜,与 cron_run 绕过现有任务的时间表( e)cron-scheduler.ts:514-519 没有 active 请检查url=值 (帮助).

/routines/* 命名碰撞(已解决)

这座桥的人工火力路线住在 /routine-defs/:id/trigger, (中文(简体) ), 没有 /routines/:id/trigger - 最初是为了避免混淆AIP-41 常规 id 有 RoutineRunner 在同一条上运行 id /routines/* 前缀. 这场相撞现已无实际意义: routine_start编号 :routine_status编号 : routine_cancel编号 :routine_escalation_resolve 联合国 /routines/* 运行 路线(不相关的临时路线) RoutineRunner (原始内容)已删除 (PLAN.md B3阶段). GET /routines 现在只服务于这个 书记官 list(),以及 /routine-defs/* 保留它自己的前缀.

Specs-repo后继(此处未应用——单独repo,每简)

  • 文档 target.agent (单位:千美元){ adapter, prompt, model?, cwd? }作为 一级AIP-41目标类型 resources/aip-41/draft/ROUTINE.schema.json 上游——这个repo's types.ts编号 :schema.ts 在生成之前 这个形状的草稿.
  • 考虑记录 schedule.kind 数值 cron 作为5月部分 在v1运行时, 因为这个桥只执行 cron (间隔时间 / 日历 / 手动 / 事件在此解析但未安排 .

许可证

麻省理工学院——见 自由主义。 。 。 .

版本与发布记录

@agentproto/routine 共发布 14 个版本,首次发布于 2026/06/16;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/11/014 天前
0.4.02026/10/279 天前
0.3.32026/10/2314 天前
0.3.22026/10/1918 天前
0.3.12026/09/301 个月前
0.3.02026/09/271 个月前

关于 @agentproto/routine 的常见问题

@agentproto/routine 是什么?

@agentproto/routine — AIP-41 ROUTINE.md 参考执行. 用于声明重复或事件驱动的引用动作、工作流程或工具的标记下+前题格式。 从"什么"(目标)中去掉"何时"(时间表). 支持括号

如何安装 @agentproto/routine?

在项目目录运行 npm install @agentproto/routine,或使用 pnpm add / yarn add / bun add。

@agentproto/routine 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agentproto/routine 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agentproto/routine 可以商用吗?

@agentproto/routine 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@agentproto/routine 的下载量有多少?

根据 npm 官方下载统计,@agentproto/routine 在 2026/10/05 – 2026/11/03 这 30 天内被下载 6,251 次,日均约 208 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agentproto/routine 还在维护吗?

最新版本 0.4.1 发布于 2026/11/01(4 天前);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2026/06/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。