内容
代理循环
自主改进的新鲜上下文循环,适用于您可以编码工作。
 | [尝试重放](https://agentloop-replay.vercel.app) - 实时仪表盘上的实际记录运行
## 它是什么
在 ChatGPT 中规划目标,然后让它运行。AgentLoop 是一个用于编码代理的本地编排守护进程:每个循环启动一个新的工作进程,工作在项目文件中继续进行,新评判者强制执行您的整个运行过程都可以在盘上观察。
它的存在运行编码代理意味着在聊天和终端之间传输计划一整天,而质量在您停止监视的那一刻就会下降。
您的标准ELINES.md 中,评判者每周期强制执行它们,这样您就可以在不需要亲自监督的情况下监督工作。
## 为什么是顺序新鲜上下文
长时间运行的聊天会时的假设和无关的上下文上下文腐烂。AgentLoop工作进程和评判会话启动一个新的 `codex exec` 进程,因此之前的聊天历史不会随之而来。持久的上下文是项目本身和具体的评判修复。这使得循环有界,更容易无人值太可能花费令牌重新增长的对话。
循环故意是顺序的。独立的队列运行到 `maxConcurrent`,但一个循环不会创建一个并行的集群,跨越同一个项目。
```text
ChatGPT -> MCP -> 守护进程 -> 工作进程/评判循环 -> 仪表盘
```
## 工作原理
- **调度** 向 `POST /api/dispatch` 发送一次性任务从待处理移动到运行中再到完成,带有记录和仪表盘取消。
- **循环** 按项目循环运行。工作进程PLAN.md` 和 `STATE.md`,进行一次增量,更新状态,然后退出。新鲜的评判者然后读取 `PLAN.md`、`GUIDELINES.md`、工作进程输出和项目文件。下一个工作进程是一个新进程。
- **润色模式** 是一个可选的循环标志:在第一次 PASS 之后,剩余的循环变为润色循环,评判者重新验证指南并提出每个循环的一个改进,直到其判定为 SHIP。
- **评判合约** 要求最后一行精确为 `VERDICT: PASS` 或 `VERDICT: FAIL - <具体修复>`。FAIL 成为进程的注入修复注释;PASS 结束循环,除色模式开启。润色循环以 `VERDICT: IMPROVE - <一个改进>` 或 `VERDICT: SHIP` 结束。`maxCycles` 限制在 1 到 10 之间,默认为 3。
- **文件是内存**。`PLAN.md`、`STATE.md` 和 `GUIDELINES.md` 承载目标、进度和规则。循环项目需要 `PLAN.md`;缺少的 `STATE.md` 和 `GUIDELINES.md` 文件会自动播种。
- **消息讲述运行**。连接的聊天客户端可以通过桥发送 `info`、`question` 或 `results` 消息。它们出现在仪表盘的消息。
守护进程是普通的 Node,没有包依赖。任务状态、结果、记录、事件和消息 JSON 或 NDJSON 文件。仪表盘是一个位于 `http://127.0.0.17` 的本地 HTML 文件。
## 使用 Codex 构建Loop 起初是我自己的瓶颈。我是在 ChatGPT 规划架构和 Codex 执行任务之间的中继,在多个项目中传输计划,每当我离开时质量就会下降。简单的重试循环不是没有标准的循环会腐上下文,并且永远不会改进。解决方法是将人类判断转移到系统本身,因此我设计了顺序新鲜、文件即内存模型、严格的评判合约和 rubricUIDELINES 模式仿循环中的严格人类。带有 GPT-5.6 的 Codex CLI 将该设计变成了可用的代码:守护进程、文件系统存储、循环引擎、评判者、桥和仪表盘连接,大约每个部分一个专注的会话。工作流程是在 ChatGPT 中规划,在 Codex 会话中执行,用 Codex 审查并带有自动化审查器,然后是前向修复提交。
然后,AgentLoop 将 Codex CLI 运行为其工作进程和评判引擎。Codex 构建了一个驱动 Codex 的工具。
## 快速入门
要求:
- Node.js 18 或更新版本
- Git
- 已安装并认证的 Codex CLI,且 `codex` 可在 `PATH` 上使用
Windows:
```powershell
git clone https://github.com/aiedwardyi/AgentLoop.git
cd AgentLoop
node src\daemon.js
```
打开 `http://127.0.0.1:5757`。选择 **+ 新建**,输入标题和提示,然后选择 **调度任务**。不需要安装依赖。
## 连接 ChatGPT
这是可选的:一旦连接,您就可以从聊天中规划和启动机器上的实际工作,而无需打开终端。
1. 在仪表盘中,打开 **连接器** 并选择 **开始**。
2. 在端口 5758 上公开本地桥。例如:
```powershell
cloudflared tunnel --url http://127.0.0.1:5758
```
3. 从连接器弹出窗口复制认证连接器 URL。将本地主机替换为隧道主机,同时保留 `/mcp?key=...`。
```text
https://<您的隧道主机>/mcp?key=<来自连接牌>
```
将此视为秘密;令牌 state/mcp-token 中 - 删除该文件并重启桥以旋转它。
4. 将该 URL 添加为 ChatGPT 自定义连接器,然后用普通英语描述任务只监听 `127.0.0.1:5758`,使用令牌,并公开 `agentloop_status`、`dispatch_task`、`start_loop` 和 `send_message`。
## 尝试演示循环
在守护进程运行的情况下,选择 **+ 新建** 并使用循环表单:
- **项目:** `examples/starter`
- **最大循环次数:** `3`
- 选择 **开始循环**
循环 1 故意只实现正常的输入路径。评判者读取 `GUIDELINES.md`,拒绝缺少的命令行需求,并发出 FAIL。循环 2 修复,完成实用程序,应该在 **正在运行** 中查看循环进度,在 **事件** 中查看评判判决。打开已完成的任务以查看其记录。通过桥发送的消息出现在 **消息** 中。
## 配置
`config.json` 包含本地运行时设置:
| 键 | 默认值 | 用途 |
| --- | --- | --- |
| `dashboardPort` | `5757` | 本地仪表盘端口。 |
| `maxConcurrent` | `2` | 最大并发队列任务或循环。 |
| `taskTimeoutMin` | `45` | 每个工作进程或评的超时时间(分钟)。 |
| `defaultEngine` | `codex` | 默认循环引擎。此版本仅接受 ``。 |
| `mcpBridge.port` | `` | 本地 MCP端口。 |
| `model` | `gpt-5-ter(未设置时) | 工作进程和评可选默认模型。 |
已发货的 `config.json` 包含上述除可选的 `model` 键之外的所有键。
## 支持的平台
路径:
```powershell
node src\daemon.js
```
macOS 和 Linux 使用等效命令:
```bash
node src/daemon.js
```
在所有平台上,首先安装并认证 Codex CLI。守护进程和桥绑定到环回地址,因此需要隧道来托管连接器。
## 路线图
- **研究循环**。循环首先收集来源,然后根据明确的规则写入 - 报告、文档、简报。
- **双向消息**。仪表盘已经从聊天客户端接收问题;从面板中回答会关闭循环。
- **操作系统级沙盒**。工作进程当前受到提示限制;真正的沙盒会加强长时间守的运行。
- **更多引擎**。引擎层按设计是可插拔的。Codex 首先发货。
## 许可证
MIT。参见](LICENSE)。