mcpField
L
long-term-campaigns

long-term-campaigns

github.com/ikatkovAgent 工作流0186 次安装1 周前更新
代码仓库

关于 long-term-campaigns

long-term-campaigns 是用于让 Agent 持续执行长期观察任务的技能,面向需要跨会话保留状态和证据的工作。它规定独立任务目录、依赖预检、不可变快照与明确的阻塞和完成条件。

主要功能

  1. 01按目标隔离活动目录
  2. 02规定活动文档与状态文件
  3. 03运行前检查工具和凭据
  4. 04保存快照并比较基线
  5. 05定义升级、阻塞与完成规则

适用场景

  1. 01跨多个 Agent 会话持续监测发布
  2. 02按固定流程收集并比较证据
  3. 03凭据失效时阻止活动继续运行

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ikatkov/agent-skills --skill long-term-campaigns

安装后在 Claude Code 中输入/long-term-campaigns确认已加载。

附带文件agents/openai.yaml

详细介绍

长期 Campaign

将 /Users/igor/work/long-term-campaigns 视为持久可信来源。Agent 会话、工作区和 VM 都是围绕它运行的一次性工作进程。

Campaign 隔离

  • 每个新目标都创建一个新的子文件夹:<ticket-or-system>-<short-slug>。
  • 只有当新请求延续相同目标且完成标准不变时,才复用文件夹。
  • 绝不要将 Campaign 状态直接放在根目录中,也不要混合无关的 Campaign。
  • 创建文件夹前先检查现有子文件夹。不要修改同级的其他 Campaign。

从 Agent 会话访问

  • 在本地 Conductor 工作区中,直接读取和更新该文件夹。
  • 在云端工作区中,使用 Conductor 的 Mac 命令桥接。说明持久文件仅存在于用户的 Mac 上。
  • 绝不要将凭据、令牌、Cookie 或原始密钥复制到 Campaign 文件夹、提示词、快照、日志或报告中。

必需工具与凭据策略

  • 将 Campaign 运行手册声明为必需的所有工具、连接器、CLI 会话、凭据和权限,都视为每次计划运行时必须可用。
  • 收集证据或执行 Campaign 操作前,预检所有必需依赖项。如果名义上的登录状态可能已过期,就实际测试访问路径;例如,发出无害的经过身份验证的 GCP 请求,而不是仅凭 gcloud auth list 显示了账户就认定可用。
  • 如果任何必需预检失败、过期或无法以非交互方式续期,立即停止该 Campaign 运行。不要使用不完整的采集器继续运行,不要悄悄减少数据源,也不要将缺失证据解释为正常。
  • 将失败的预检作为原始证据持久化,标记 Campaign 为 blocked,更新下次检查时间,释放其锁,并明确报错指出必须恢复的具体访问权限类别。绝不要记录密钥值。
  • 定期过期的 CLI 会话(包括 GCP 身份验证)属于需要续期的阻碍,不是可以变通处理的预期情况。

必需的 Campaign 布局

至少创建:

<campaign>/
├── CAMPAIGN.md
├── RUNBOOK.md
├── state.json
├── logs/
├── prompts/
│   └── DAILY.md
├── reports/
└── snapshots/

CAMPAIGN.md 记录稳定约定:

  • 目标及其重要性;
  • 范围和明确排除项;
  • 权威链接和标识符;
  • 预期结果及可能的回归;
  • 可观察的完成标准;
  • 观察窗口、最低证据要求和过期策略;
  • 无人值守 Agent 可以执行的操作。默认设为只读。

RUNBOOK.md 记录可复现的流程:

  • 凭据和工具预检;
  • 精确的采集命令或脚本;
  • 解释规则、阈值和比较窗口;
  • 如何区分未知/无数据与正常;
  • 升级处理条件和恢复步骤;
  • 最终报告的存放位置。

state.json 只记录当前的机器可读状态。包括 Campaign 阶段、上次成功运行时间、下次检查时间、最新不可变快照、连续失败次数、当前阻碍,以及最终报告状态。将历史记录保存在快照和报告中,不要无限扩充此文件。

prompts/DAILY.md 告知新 Agent 如何执行一个有界的观察轮次。描述能力和结果,而不是要求使用特定模型或编码客户端。

交接 Campaign

  1. 阅读此技能,并检查根目录中是否已有目标相同的 Campaign。
  2. 如果目标是新的,就创建一个新的子文件夹。
  3. 总结决策和已核实的事实;不要把完整聊天记录作为主要交接内容。
  4. 记录可用于复现每项声明所需的时间戳、环境、提交 SHA、部署边界、查询和来源链接。
  5. 在 state.json 中写明当前确切阶段和下一步操作。
  6. 将可复用的确定性采集写入脚本。将 Agent 的判断留在每日提示词和报告中。
  7. 明确调度器何时应停止。没有结束条件的周期性 Campaign 并不完整。
  8. 验证仅凭 Campaign 文件夹,新 Agent 就能继续工作,而无需询问之前发生了什么。

运行每日观察

  1. 获取每个活动的锁,避免两个运行同时更新状态。
  2. 在收集数据前,预先检查所有必需的工具、凭据、连接器和权限,包括针对可刷新的 CLI 会话发送无害的身份验证请求。
  3. 如果任何预检查失败,遵循必需的工具和凭据策略:持久化记录阻碍因素,停止运行,并明确报告失败。
  4. 以确定的方式收集证据,并写入新的带日期且不可变的快照。
  5. 对照声明的基线、发布边界、预期和先前快照进行比较。
  6. 以原子方式更新 state.json,仅在证据或阶段发生实质变化时才撰写简短的每日报告。
  7. 如果护栏被突破,则连同证据和首个失败边界一起升级处理。除非 CAMPAIGN.md 明确授权,否则不要修改生产环境或外部系统。

每次运行优先启动一个新的 Agent。持久化文件承载连续性;聊天记忆不能。

完成活动

  • 仅当满足可观察的完成标准和最低证据窗口后,才将其标记为完成。
  • 撰写最终报告,说明发生了哪些变化、证据能证明什么、无法证明什么、样本量、检查过的回归,以及任何待处理的负责人/操作。
  • 禁用其计划任务,同时保留文件夹和不可变证据。
  • 如果证据不足,应明确延长活动,而不是在没有数据的情况下报告成功或失败。

评论

支持 Markdown