Deterministic Agent Loop Engineering

让 Agent 持续把一件事做下去

SCTL 是一个面向长期 Agent 工程的确定性循环系统。
它不要求一个 Agent 永远记住所有事情,而是让每一次执行都从经过整理的项目上下文继续开始。
Agent 可以更换,任务可以跨越多轮迭代。
真正持续存在的,是项目本身。

sctl — deterministic agent loop
> Loading project definition...
> Loading previous progress reports...
> Role: Architect
> Context restored.
> Executing next iteration...
> Progress committed to git.
>
PROJECT DEFINITION
ARCHITECT
PROGRAMMER
AUDITOR
PROGRESS REPORT
GIT CONTEXT
NEXT ITERATION

每一次执行都是临时的。
每一次有效进展都会留下。

为长期任务设计,而不是为一次对话设计

传统 Agent 的连续性依赖越来越长的上下文。
SCTL 采用另一种方式:

让 Agent 完成一次明确的工作,将真正重要的结果浓缩成项目进展,再交给下一位 Agent。

因此,一个庞大的执行过程可以不断被压缩成清晰、可继续使用的上下文。

六项核心能力

Planet
01

持久项目定义

项目,而不是 Agent,是长期存在的主体

项目的目标、原则、约束和初始定义被长期保存。不同 Agent 可以进入和退出,而项目定义保持稳定。

02

确定性循环

把复杂执行变成可重复的工程流程

每轮执行按照预先定义的角色与顺序推进。Agent 不需要自己决定整个组织结构,只需要完成当前角色应该完成的工作。

03

多角色协作

架构、实现、审计,职责明确

一个典型循环由不同 Agent 身份组成:架构管理 → 程序员 → 审计 → 架构管理 → 程序员 → …… 每个角色拥有自己的行为约束与任务边界。

04

上下文浓缩

不保存全部过程,只保存真正影响下一步的信息

一次 Agent 执行可能产生大量上下文。执行结束后,其中真正重要的决策、变化、问题和下一步工作被整理成简洁的进展汇报。几十行信息即可承载一次大型执行产生的有效状态。

05

Git 项目记忆

让项目状态成为可追踪的工程资产

项目定义、重要决策和每轮工作汇报被持续写入专属 Git 项目。因此项目拥有清晰的历史、版本和演进路径。Agent 不承担长期记忆。项目仓库承担。

06

可审计执行

每一个阶段都能被下一角色重新检查

开发不是单向输出。架构设计可以被实现验证,实现结果可以被审计检查,发现的问题重新进入下一轮循环。让长期执行保持方向,而不是随着 Agent 更换逐渐漂移。

Agent 可以即用即丢。
项目的方向和进展不能丢。

SCTL 并不尝试制造一个拥有无限上下文的 Agent。

它尝试建立一种更简单的长期执行结构:

让短生命周期的智能执行单元,在稳定的工程规则和持续积累的项目上下文中工作。

一个循环,只做几件确定的事情

1

读取

Agent 获得:

  • 项目初始定义
  • 历史进展汇报
  • 当前角色提示词

它不需要重新理解整个项目历史。

2

执行

Agent 只承担当前身份对应的职责。

架构管理

检查整体设计、定义下一阶段任务、处理结构性问题。

程序员

按照已有设计实现和修改项目。

审计

检查实现是否符合项目目标、架构要求和既有约束。

3

浓缩

一次执行结束以后,将大量过程压缩成少量真正重要的信息:

  • 完成了什么
  • 修改了什么
  • 为什么这样修改
  • 当前存在什么问题
  • 下一位 Agent 必须知道什么
4

提交

进展汇报与项目变化进入 Git。

当前 Agent 的使命结束。下一位 Agent 从新的项目状态继续执行。

一个高精度的执行放大器

SCTL 不是为了让 Agent 自由地产生越来越多想法。
它首先要求人定义:什么值得长期执行。

然后通过角色、循环、上下文和审计机制,让 Agent 更连续、更稳定地执行已经定义的价值。

适用于

长期软件工程

持续经历设计、开发、测试和重构的项目。

复杂自动化任务

需要多阶段执行,并且不能依赖单次 Agent 上下文完成的任务。

Agent 工程实验

研究角色分工、上下文管理和长期 Agent 执行方式。

高连续性项目

需要跨越大量 Agent 会话仍然保持目标、约束和工程状态一致的项目。

让下一位 Agent 从正确的地方继续

不是重新开始。不是重新解释整个项目。
而是读取已经被验证和浓缩的上下文,然后继续执行。