新闻详情

新闻详情

首页 / 资讯中心 / 详情

深入gnhf编排器架构:状态机如何让AI代理整夜循环不丢一行代码

发布时间:2026/9/25 4:25:39来源:尧图网络
深入gnhf编排器架构:状态机如何让AI代理整夜循环不丢一行代码
深入gnhf编排器架构状态机如何让AI代理整夜循环不丢一行代码【免费下载链接】gnhfBefore I go to bed, I tell my agents: good night, have fun项目地址: https://gitcode.com/gh_mirrors/gn/gnhfgnhfgood night, have fun是一个 AI 代理过夜运行编排器睡前一条命令它就让编码代理Claude Code、Codex、Copilot 等朝着你的目标整夜循环工作——每一轮迭代完成一小步可验证的改动成功即自动提交失败即自动回滚。你醒来时得到的是一条装满干净提交的分支和一份完整日志。它的核心秘密就是 orchestrator.ts 里那台精心设计的状态机。 gnhf 编排器AI 代理的“过夜模式”传统用法是你在终端里盯着 AI 写代码它一卡壳、一出错就得你接手。gnhf 换了一个思路——把“盯着”这件事交给状态机。你只需在一个 Git 仓库里执行一条命令gnhf 在不改变功能的前提下降低代码库的复杂度然后安心睡觉。gnhf 会自动校验工作区是否干净并创建独立的gnhf/分支每轮迭代生成一份提示词调用你配置的代理默认claude解析代理返回的结构化结果agents/types.ts决定提交还是回滚直到达到迭代上限、token 上限、你设定的停止条件或你按下停止整个运行过程由Orchestrator类驱动它继承自 Node.js 的EventEmitter通过事件把状态推送给终端界面renderer.ts所以你能实时看到迭代数、token 消耗和提交计数。 核心状态机驱动整夜循环的 4 个状态gnhf 的状态机定义在 orchestrator.ts 的OrchestratorState接口中只有 4 个主状态状态含义触发条件running正在执行某轮迭代每次迭代开始时waiting指数退避中暂停等待代理连续硬错误后aborted运行已中止达到上限或连续失败连续 3 次失败、token 超限、永久错误stopped优雅停止完成两次 CtrlC 或 SIGTERM主循环的逻辑非常直白orchestrator.ts迭代前检查是否达到--max-iterations或--max-tokens是则中止执行迭代构建提示词 → 调用代理 → 等待结构化结果迭代后检查记录成败 → 判断是否触发--stop-when停止条件失败熔断连续失败达到maxConsecutiveFailures默认 3 次立即中止退避等待有硬错误时按60秒 × 2^(n-1)指数等待然后回到第 1 步这个“检查—执行—检查”的节奏正是状态机不丢工作的第一个原因任何异常都只会把循环推回安全点而不是带着脏状态继续跑。✅ 每轮提交与回滚“不丢一行代码”是如何保证的这是 gnhf 最巧妙的部分。每轮迭代结束时的处置逻辑成功→ 立即git add -A并创建独立提交git.ts并把本轮摘要、关键改动、关键学习追加到notes.md代理自报失败→git reset --hard硬回滚git.ts工作区恢复原样代理崩溃硬错误→ 同样回滚并进入退避等待提交本身失败→ 唯一不立即回滚的情况gnhf 保留未提交的工作并在下一轮提示词里注入“修复指令”让下一轮代理先修好提交再继续orchestrator.ts也就是说代理的任何胡作非为都只存活到那一轮迭代结束。成功的工作被固化为提交失败的工作被彻底清除。你早上醒来时分支上的每一个提交都是“成功过验证的工作”可以逐个 cherry-pick 或 revert互不牵连。还有一个细节提交时强制关闭 GPG 签名-c commit.gpgsignfalse避免自动循环被密码弹窗卡死——这是为“无人值守”场景专门做的防御。⚠️ 故障处理三级故障分级与指数退避整夜运行最怕的不是单次失败而是“雪崩式失败”。gnhf 的解法是把故障分成三类各给不同的待遇orchestrator.ts代理自报失败successfalse说明循环本身健康只是这一步走不通 → 直接进下一轮不等待硬错误代理进程崩溃、网络超时等环境可能暂时性出问题 → 触发指数退避第 1 次等 60 秒、第 2 次 2 分钟、第 3 次 4 分钟……orchestrator.ts永久错误如 Claude 额度用尽重试毫无意义 → 立即中止并打印运行日志路径另外两个保命设计零进展熔断一轮既没改文件、也没产生新学习 自报失败计入连续失败防止代理在原地打转烧 tokentoken 上限中途拦截--max-tokens达到时立刻中止当前迭代账单不会失控同时 gnhf 会默认开启防休眠sleep.tsmacOS 用caffeinate、Linux 用systemd-inhibit、Windows 用SetThreadExecutionState保证机器不会在你睡着时自己“下班”。 优雅中断两次 CtrlC两种结局过夜运行必然要处理“我想停”这个场景。gnhf 的中断本身也是一台状态机interrupt-state.ts你的操作状态机处置结果第 1 次 CtrlCrequest-graceful-stop让当前迭代跑完或提前结束退避等待再干净退出第 2 次 CtrlCforce-stop立即中止回滚未提交内容SIGTERMforce-stop立即强停已中止状态下再按exit直接退出界面优雅停止的关键在于它只标记、不抢跑orchestrator.ts。状态机先记下gracefulStopRequested等主循环在迭代间隙自然收敛后才真正停机。这样即使你半夜被闹钟吵醒按了一下 CtrlC也不会出现“提交提交到一半”的半成品状态。 notes.md跨迭代的共享记忆状态机保证“不丢代码”那“不丢上下文”呢答案是一个纯文本文件notes.md每轮迭代前代理被要求先读notes.md了解历史iteration-prompt.ts每轮结束后编排器自动把摘要、关键改动、关键学习追加进去run.ts所有提示词、停止条件、提交规范等元数据都保存在.gnhf/runs/runId/下并且被本地忽略不会污染你的分支这让每一轮代理都像是“从昨晚接着干的人”而不是失忆的陌生人。 关键源码路径速查想深挖实现从这几个文件入手状态机主循环src/core/orchestrator.ts运行元数据与 notes.mdsrc/core/run.ts中断状态机src/core/interrupt-state.tsGit 提交与回滚src/core/git.ts迭代提示词模板src/templates/iteration-prompt.ts代理输出 schemasrc/core/agents/types.tsCLI 入口src/cli.ts代理技能说明skills/gnhf/SKILL.md 快速上手 gnhf 过夜运行安装npm install -g gnhf准备在 Git 仓库中确保工作区干净空目录请先git init启动执行gnhf 你的目标建议加上限更安心gnhf reduce complexity of the codebase --max-iterations 10 --max-tokens 5000000进阶--worktree可让多个代理在隔离 worktree 中同时干活--stop-when支持用自然语言设定停止条件在已有gnhf/分支上重跑gnhf即可断点续跑一次运行结束后gnhf 会打印退出摘要分支、耗时、迭代数、token 总量、diff 统计和复盘命令。从此你只需要在睡前说一句good night, have fun。【免费下载链接】gnhfBefore I go to bed, I tell my agents: good night, have fun项目地址: https://gitcode.com/gh_mirrors/gn/gnhf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

WeiXinMPSDK 高级接口实战指南:AppId 与 AccessToken 的自动识别调用机制 2026/9/25 5:35:45

WeiXinMPSDK 高级接口实战指南:AppId 与 AccessToken 的自动识别调用机制

后端即时通讯金融科技 【免费下载链接】WeiXinMPSDK 微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 …

阅读更多 →
【Dify】智能简历筛选与语义分析应用 2026/9/25 5:35:45

【Dify】智能简历筛选与语义分析应用

自动化与智能化简历筛选已成为招聘流程提升效率的重要方向。简历文件数量庞大、信息结构多样,传统人工处理耗时费力,容易出现筛选误差。 本文介绍一种基于多模型与自动化节点的智能简历筛选工作流,覆盖批量导入、文本抽取、结构化分析到语义筛查与结果导出,助力高效实现精…

阅读更多 →
rsuite Avatar 头像组件 bordered 边框属性实战指南:从示例到源码实现 2026/9/25 5:35:45

rsuite Avatar 头像组件 bordered 边框属性实战指南:从示例到源码实现

前端UI组件 【免费下载链接】rsuite 🧱 A suite of React components . 项目地址: https://gitcode.com/gh_mirrors/rs/rsuite 点击查看 免费下载 导读 bordered 是 rsuite Avatar(头像)组件自 5.59.0 版本起提供的属性&#x…

阅读更多 →
工具调用已足够,现在基于 pkg/testing/README.md 及其源码完成文章编写。 2026/9/25 5:35:45

工具调用已足够,现在基于 pkg/testing/README.md 及其源码完成文章编写。

编程语言编译器语言运行时标准库开发工具 【免费下载链接】sdk The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/sdk1/sdk 点击查看 免费下载 <output文章> Dart S…

阅读更多 →
基于昇腾Atlas 300V 24G的YOLO模型部署与调优实践 2026/9/25 5:35:38

基于昇腾Atlas 300V 24G的YOLO模型部署与调优实践

如果你在网上搜“atlas部署yolo”&#xff0c;大概率会刷到一堆华为昇腾的官方文档和别人的踩坑记录。但说句实在话&#xff0c;很多人第一次拿到Atlas 300V 24G这块卡的时候&#xff0c;连它到底算不算显卡都没搞明白。我先直接回答那个被问烂了的问题&#xff1a;它是运算加速…

阅读更多 →
6步上手reBot-DevArm机械臂:Jetson Orin Nano具身智能边缘部署实战指南 2026/9/25 5:35:38

6步上手reBot-DevArm机械臂:Jetson Orin Nano具身智能边缘部署实战指南

6步上手reBot-DevArm机械臂&#xff1a;Jetson Orin Nano具身智能边缘部署实战指南 【免费下载链接】reBot-DevArm Open Source Robotic Arm for All Developers 项目地址: https://gitcode.com/gh_mirrors/re/reBot-DevArm reBot-DevArm 是一个面向具身智能的 100% 全开…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉