mcpField
L
loop

loop

github.com/alirezarezvaniAgent 工作流28.9k1.6k 次安装2 天前更新
代码仓库

关于 loop

用于为指定实验启动定期执行任务的技能,可按间隔重复运行实验,并支持停止循环。它读取实验配置、策略和历史结果,每次执行一轮;任务到期后可重新启动并沿用已有结果。

主要功能

  1. 01按设定间隔安排实验循环
  2. 02支持分钟、小时及日历周期
  3. 03每次定时任务执行一轮实验
  4. 04保存循环元数据并可停止任务
  5. 05实验结果在重新启动后保留

适用场景

  1. 01定期运行 API 性能实验
  2. 02让长周期实验按日或周继续执行
  3. 03停止已启动的实验循环
  4. 04任务自动到期后恢复未完成实验

安装

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill loop

安装后在 Claude Code 中输入/loop确认已加载。

详细介绍

/ar:loop — 自主实验循环

按用户选定的间隔启动一个周期性实验循环。

用法

/ar:loop engineering/api-speed             # Start loop (prompts for interval)
/ar:loop engineering/api-speed 10m         # Every 10 minutes
/ar:loop engineering/api-speed 1h          # Every hour
/ar:loop engineering/api-speed daily       # Daily at ~9am
/ar:loop engineering/api-speed weekly      # Weekly on Monday ~9am
/ar:loop engineering/api-speed monthly     # Monthly on 1st ~9am
/ar:loop stop engineering/api-speed        # Stop an active loop

功能说明

第 1 步:确定实验

如果未指定实验,则列出所有实验,由用户选择。

第 2 步:选择间隔

如果参数中未提供间隔,则列出以下选项:

Select loop interval:
  1. Every 10 minutes  (rapid — stay and watch)
  2. Every hour         (background — check back later)
  3. Daily at ~9am      (overnight experiments)
  4. Weekly on Monday   (long-running experiments)
  5. Monthly on 1st     (slow experiments)

映射为 cron 表达式:

间隔Cron 表达式简写
10 分钟*/10 * * * *10m
1 小时7 * * * *1h
每天57 8 * * *daily
每周57 8 * * 1weekly
每月57 8 1 * *monthly
第 3 步:创建周期性任务

使用 CronCreate,并以下面的提示词创建(填入实验详情):

You are running autoresearch experiment "{domain}/{name}".

1. Read .autoresearch/{domain}/{name}/config.cfg for: target, evaluate_cmd, metric, metric_direction
2. Read .autoresearch/{domain}/{name}/program.md for strategy and constraints
3. Read .autoresearch/{domain}/{name}/results.tsv for experiment history
4. Run: git checkout autoresearch/{domain}/{name}

Then do exactly ONE iteration:
- Review results.tsv: what worked, what failed, what hasn't been tried
- Edit the target file with ONE change (strategy escalation based on run count)
- Commit: git add {target} && git commit -m "experiment: {description}"
- Evaluate: python {skill_path}/scripts/run_experiment.py --experiment {domain}/{name} --single
- Read the output (KEEP/DISCARD/CRASH)

Rules:
- ONE change per experiment
- NEVER modify the evaluator
- If 5 consecutive crashes in results.tsv, delete this cron job (CronDelete) and alert
- After every 10 experiments, update Strategy section of program.md

Current best metric: {read from results.tsv or "no baseline yet"}
Total experiments so far: {count from results.tsv}
第 4 步:保存循环元数据

写入 .autoresearch/{domain}/{name}/loop.json:

{
  "cron_id": "{id from CronCreate}",
  "interval": "{user selection}",
  "started": "{ISO timestamp}",
  "experiment": "{domain}/{name}"
}
第 5 步:向用户确认
Loop started for {domain}/{name}
  Interval: {interval description}
  Cron ID: {id}
  Auto-expires: 3 days (CronCreate limit)

  To check progress: /ar:ar-status
  To stop the loop:  /ar:loop stop {domain}/{name}

  Note: Recurring jobs auto-expire after 3 days.
  Run /ar:loop again to restart after expiry.

停止循环

当用户运行 /ar:loop stop {experiment} 时:

  1. 读取 .autoresearch/{domain}/{name}/loop.json,获取 cron ID
  2. 使用该 ID 调用 CronDelete
  3. 删除 loop.json
  4. 确认:"已停止 {experiment} 的循环。已完成 {n} 次实验。"

重要限制

  • 3 天自动过期:CronCreate 任务会在 3 天后过期。对于更长的实验,用户需要重新运行 /ar:loop 来重启。结果会被保留,新循环会从旧循环停止的地方继续。
  • 每个实验只能有一个循环:请勿为同一实验启动多个循环。
  • 并发实验:只有在位于不同 git 分支上时,多个实验才能同时循环运行(默认情况下确实如此,每个实验都会使用 autoresearch/{domain}/{name})。

评论

支持 Markdown