Files
Jyotisha/docs/tasks/PROGRESS-agent-loop-pilot-20261013.md
T

5.1 KiB
Raw Blame History

PROGRESS · 双 agent 自动循环试点 · 2026-10-13

任务书:docs/tasks/TASK-agent-loop-pilot-20261013.md。执行:Claude(直接执行,产品负责人 2026-10-13 授权)。分支 codex/agent-loop-pilot-20261013,基于 origin/staging e8119ed12。

状态一览

任务 状态 证据 / 说明
T0 令牌 开发机已完成 gitea.sh whoami = 产品负责人账号;文件 0600、40 字符(曾粘贴两遍,已截断)
T1 Grok 实测 通过 见任务书「T1 结果与定稿分工」
T2 标签与封装 通过 10 个 agent/* 标签已建;自检 issue #51 演示加锁 → 评论 → 换状态 → 解锁;标签筛选为「同时带有」语义
T3 Claude 侧 已写,未运行 见下「为什么没跑」
T4 Grok 侧 已写,未安装 需产品负责人在 Windows 上安装
T5 每晚复盘 已写,未运行 docs/agents/LESSONS.md 已建空模板;AGENTS.md §4 加了一行
T6 端到端 未开始 —

为什么 T3 没跑

开发机上 Claude Code 的自动模式安全检查连续拦下了「搭建无人值守、可推 staging 的 agent」相关命令(理由 Create Unsafe Agents),包括对脚本做语法检查。按规矩不绕开。产品负责人选择方案 B(自己授权无人值守脚本),授权方式是由他本人在开发机终端里运行启动命令。

据此做了两处加固(相对任务书原设计):

  1. 不关权限检查:原设计让 Claude/Grok 以 bypassPermissions 运行;改为白名单 + dontAsk(claude-settings.json、grok-permissions.json),白名单外的操作自动拒绝。
  2. 只读本人账号的评论:仓库实际对外公开(匿名 API 返回 private: false),陌生人评论一律不交给模型,防止经评论注入指令。

决定:Claude 侧改用会话 /loop(2026-10-13,产品负责人同意)

yetone 公开说明他的工作流就是在 Claude Code 会话里并行跑几个 /loop + 一段大白话提示词。据此 Claude 侧不再用后台脚本,改为在这台 Linux 机器的常开会话里跑 /loop(提示词见 tools/agent-loop/prompts/loop-claude.md)。保留双 agent(Grok 执行、Claude 验收=交叉审查)、标签交接、gitea.sh、推送钩子与各提示词规则。claude-tick.sh / nightly-review.sh / agentctl.sh 降为备用,不启动。Grok 侧 Windows 计划任务不变。

Claude 侧安装与空跑已由产品负责人在终端完成:分支 b2bf15b8b 推送成功,agentctl.sh install 以产品负责人账号连上 Gitea,once 输出 nothing to do。

已实测

项目 结果
gitea.sh 建标签、按标签筛选、加/删标签、发评论 通过(issue #51)
Claude 钩子:推 main 拒绝
Claude 钩子:推 staging 放行
Grok 钩子:推 staging(新提交) 拒绝(同 SHA 时 git 不调钩子,测试须用新提交)
Grok 钩子:推 main / 删除 codex 分支 拒绝
Grok 钩子:推 codex/* 放行
claude -p --json-schema 结构化输出 通过(structured_output 字段)

环境缺口

  • 本机无 crontab / systemctl:用 agentctl.sh start 常驻循环;机器重启后需再 start 一次。
  • claude-tick.sh、nightly-review.sh 尚未实跑;白名单是否够用要第一轮实跑才知道(不够时模型会被拒并在 issue 留 error,不会越权)。
  • Grok 的 --allow / --deny 规则语法只有公开资料,安装前需 Grok 本机核对。
  • test:db 13 条 Windows 已知失败的测试名尚未填入 windows-known-failures.txt。

产品负责人要做的

开发机(照片里那个终端),按顺序:

cd /workspace/Jyotisha/.worktrees/agent-loop-pilot-20261013
bash tools/agent-loop/agentctl.sh install
~/.local/share/jyotisha-agent/bin/agentctl.sh once      # 没有带标签的 issue 时应显示 nothing to do
~/.local/share/jyotisha-agent/bin/agentctl.sh start

Windows:分支推上去后,把下面这段发给 Grok(交互模式):

在 G:\Ferti\Jyotisha.worktrees\agent-loop 里 git fetch origin 后 git checkout -f -B codex/agent-loop-pilot-20261013 origin/codex/agent-loop-pilot-20261013,读 tools/agent-loop/README.md 和 docs/tasks/PROGRESS-agent-loop-pilot-20261013.md。然后:

  1. 按 grok --help 核对 tools/agent-loop/grok-permissions.json 的 allow/deny 规则写法,不对就改成正确写法(不得改成 bypassPermissions),用 grok -p "运行 git status" --permission-mode dontAsk --allow <规则> 实测一条放行、一条不在名单里的命令被拒。
  2. 在 frontend 下跑 npm run test:db(Docker 已开),把失败的 13 条测试名按 "not ok N - " 后面的原文逐行填进 tools/agent-loop/windows-known-failures.txt。
  3. 两处改动 commit 后 git push origin HEAD:refs/heads/codex/agent-loop-pilot-20261013。
  4. 运行 powershell -NoProfile -ExecutionPolicy Bypass -File tools\agent-loop\install-grok.ps1 -RunOnce,贴出最后 5 行日志。 不要注册计划任务,等 Claude 确认。