Skip to content

hesorchen/galatea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Galatea

License: MIT Claude Code Codex exec English

目标驱动的自主迭代 Skill——制定一个可量化的标准,由 Agent 无人值守地反复迭代、自评、剪枝、探索、验证,逐轮逼近,直到达成目标。

名字取自皮格马利翁神话里的少女像 Galatea——工匠依照心中的理想反复打磨象牙像,直到她足够完美。

它解决什么问题

让 Agent 对一个开放/主观目标长时间自动跑,最大的坑不是模型不够强,而是没有合格的裁判:当 Agent 既当运动员又当裁判,它会倾向于宣告虚假进展来满足循环,越跑越偏(经典的自主 agent 漂移)。

Galatea 把 Agent 对用户的依赖压缩到一开始的任务目标制定,锁定目标后,就启动多 Agent 自主探索、优化、评估、对抗验证,直到达成目标。

设计要点

  • 两阶段:Phase 0 与你共创并冻结 rubric;Phase 1 无人值守循环,只读这份冻结标准。
  • 裁判与执行分离:每轮由一个独立裁判 agent 按 rubric 打分,做改动的 agent 不给自己打分,杜绝放水。
  • 每轮全新上下文 + 落盘记忆:循环由外层引擎重启进程(fresh context,抗上下文污染),跨轮记忆全靠磁盘上的 state.md / log.md
  • 不打断:需要决策的写入 pending.md 继续,绝不挂起等人。
  • 四个旋钮:自主度(只提案 / 客观自改 / 全自动)、影响边界(禁碰的目录与操作)、运行配置(由用户显式指定后端 / 模型模式 / flags;模型模式可选默认模型或显式模型,不自动推断)、收敛后行为(停 / 精修 / 转目标)。
  • 停滞熔断:连续多轮无进展(无新 commit)自动停机,防止空转烧光预算。
  • 关键事件通知:收敛 / 需你决策 / 熔断 / 连续失败时,通过你配置的通道(如邮件)主动通知——无人值守也不脱节。
  • rubric 冻结前质量自检:烂标准 = 烂裁判 = 整轮白烧,所以冻结前先过一遍 rubric 自身的质量清单。
  • 分级对抗机制:高风险节点(判达标 / 宣告收敛 / 卡死)才升级多 sub-agent 对抗——验收用 Prosecutor 红队 vs Defender 仲裁防假进展,规划用 2 Planner 互挑刺防钻牛角尖;普通小步轮次保持轻量,不烧冤枉钱。
  • 资源最大化 + 安全红线:鼓励充分调动算力(并行子 agent)、已装 skill、MCP、工具,不重复造轮子;同时设一条凌驾一切的环境安全红线——无人值守 + 跳过权限下,绝不做破坏性 / 不可逆 / 越界 / 外发操作,拿不准就交还用户。
  • 运行总览:任何方式结束(收敛 / 熔断 / 轮数耗尽 / 失败)后自动生成 run-report.md(markdown 流程视角总览:任务流转图 + 逐轮状态变化 + rubric 状态流转 + 关键决策),无人值守跑完一张流转图看清全程。

适用 / 不适用

适用:有目标、能定义「合格」、可迭代有反馈的任务——把一批文档优化到符合规范、把模块测试全部跑绿、产出一份覆盖到位的调研报告、定位并修掉一个可复现 bug、把一份方案迭代到能支撑决策。

不适用:一次性小改;标准根本写不出来的纯主观任务(审美/文风,应改用「生成 N 个变体让人挑」);高破坏性不可回退的操作。

安装

把下面对应的一段话复制给你的 Agent,它会自动克隆并装好这个 skill:

Claude Code:

帮我安装 Galatea skill:把 https://github.com/hesorchen/galatea.git 克隆到 ~/.claude/skills/galatea,完成后提醒我重启会话即可调用。

Codex:

帮我安装 Galatea skill:把 https://github.com/hesorchen/galatea.git 克隆到 ~/.codex/skills/galatea,完成后提醒我重启会话即可调用。

Claude Code 手动安装:

git clone https://github.com/hesorchen/galatea.git ~/.claude/skills/galatea

Codex 手动安装:

git clone https://github.com/hesorchen/galatea.git ~/.codex/skills/galatea

装完重启会话(skill 列表在启动时扫描目录),之后说「galatea」或直接描述一个目标即可触发。

用法

  1. 发起调用并说明目标。

  2. Phase 0:Skill 会为本目标新建一个 git 管理的专属任务目录,然后和你一起把目标拆成可裁判的 rubric,确认并冻结,生成单轮指令 iterate-prompt.md。(若目标是改造已有仓库,则在该仓库内工作。)

  3. Phase 1:用 Phase 0 生成的 galatea-run.sh 启动无人值守循环(建议跑在常驻环境 / tmux 里,断连不影响)。这个脚本会固化你显式选择的后端、模型模式、flags 与 PATH 修正;不要依赖引擎自动猜。

    模型模式有两种:

    • default:不传 --model,使用 claude / codex CLI 当前配置的默认模型,适合不知道可用模型列表时使用。
    • explicit:在 flags 中追加 --model <模型名>,适合已经知道要固定哪个模型时使用。

    Codex 默认模型示例:

    export GALATEA_AGENT_BACKEND=codex
    export GALATEA_CODEX_FLAGS='--dangerously-bypass-approvals-and-sandbox'
    bash engine/loop.sh <目标专属目录> [最大轮数]

    Codex 显式模型示例:

    export GALATEA_AGENT_BACKEND=codex
    export GALATEA_CODEX_FLAGS='--dangerously-bypass-approvals-and-sandbox --model gpt-5.5'
    bash engine/loop.sh <目标专属目录> [最大轮数]

    Claude Code 默认模型示例:

    export GALATEA_AGENT_BACKEND=claude
    export GALATEA_CLAUDE_FLAGS='--dangerously-skip-permissions'
    bash engine/loop.sh <目标专属目录> [最大轮数]

    Claude Code 显式模型示例:

    export GALATEA_AGENT_BACKEND=claude
    export GALATEA_CLAUDE_FLAGS='--dangerously-skip-permissions --model claude-opus-4-8'
    bash engine/loop.sh <目标专属目录> [最大轮数]

    如果后端命令不在默认 PATH,把用户指定的 export PATH=...:$PATH 写进 galatea-run.sh。引擎会反复以全新上下文执行单轮指令;撞用量上限自动指数退避,连续多轮无进展自动熔断停机,收敛后自动退出。每轮输出落 <目标专属目录>/logs/ 便于复盘。 关键事件通知:设环境变量 GALATEA_NOTIFY_CMD 指向你的通知命令即可(见 engine/notify.sh 内的邮件示例)。

安全提醒

  • 无人值守循环依赖跳过交互式确认:Claude 默认用 --dangerously-skip-permissions,Codex 默认用 codex exec --dangerously-bypass-approvals-and-sandbox务必先在 Phase 0 划清影响边界(禁 push / 禁删 / 禁碰的目录),并在隔离环境中运行。
  • 默认每轮通过的改动会 git commit 作为 checkpoint,跑坏了可回退。

目录结构

galatea/
├─ SKILL.md                  # 核心:Phase 0 共创协议 + Phase 1 循环规范 + 行为约束
├─ engine/
│  ├─ loop.sh                # 外层循环引擎(fresh context 重启 + 用量退避 + 收敛退出)
│  ├─ circuit_breaker.sh     # 停滞熔断:连续多轮无进展自动停机
│  └─ notify.sh              # 关键事件通知(GALATEA_NOTIFY_CMD,内含邮件示例)
├─ templates/                # 各产出文件的初始模板
│  ├─ rubric.template.md     # 可裁判标准(Phase 0 冻结)
│  ├─ iterate-prompt.template.md   # 单轮指令(Phase 1 反复执行)
│  ├─ finalize-prompt.template.md  # 收敛后收尾指令
│  ├─ galatea-run.template.sh      # 启动脚本(固化后端 / 模型模式 / flags)
│  ├─ state.template.md      # 跨轮记忆:当前状态
│  ├─ log.template.md        # 跨轮记忆:逐轮日志
│  ├─ pending.template.md    # 需你决策的事项
│  ├─ run-report.template.md # 运行总览报告
│  └─ gitignore.template     # 任务目录的 .gitignore
├─ README.md
├─ README.en.md              # 英文版
└─ LICENSE

状态

v1.0.0。欢迎 issue / PR。

License

MIT

About

目标驱动的自主迭代 Skill——制定一个可量化的标准,由 Agent 无人值守地反复迭代、自评、剪枝、探索、验证,逐轮逼近,直到达成目标。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages