Skip to content

Commit 9d5719b

Browse files
Pigbibicodex
andauthored
docs: add AI autonomy architecture (#13)
* docs: add AI autonomy architecture Co-Authored-By: Codex <noreply@openai.com> * chore: fix autonomy doc whitespace Co-Authored-By: Codex <noreply@openai.com> --------- Co-authored-by: Codex <noreply@openai.com>
1 parent 15d58c2 commit 9d5719b

1 file changed

Lines changed: 379 additions & 0 deletions

File tree

docs/ai_autonomy_architecture.md

Lines changed: 379 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,379 @@
1+
# QuantStrategyLab AI Autonomy Architecture Draft
2+
3+
> 目标:评估当前 AIAuditBridge / Codex review-gate / monthly audit / dashboard-org-health / auto-merge / QSL 管理链路,是否足够支撑“策略智能监控优化、月度报告审计、健康状态检测、AI 自动修复、自动合并 PR”的无人值守目标。
4+
5+
## 结论
6+
7+
当前架构已经足以支撑**受控自动化**,但**还不足以直接支撑完全无人值守**
8+
9+
它已经把下面几件事做对了:
10+
11+
- 把 Codex / OpenAI / Anthropic 的调用边界收进 AIAuditBridge,而不是散落在各个源仓库里。
12+
- 用 OIDC、repo allowlist、workflow/ref allowlist、payload 校验、路径白名单、quota、health、review gate、guarded auto-merge 把高风险动作隔离开。
13+
- 把“能自动做”的范围收敛到了低风险文档、测试、月度报告类修复,以及有明确 policy 约束的 PR 自动合并。
14+
15+
但它仍然缺少几个让“无人值守”真正成立的条件:
16+
17+
- 健康检测还偏服务级,不是策略级和组织级闭环。
18+
- 月报审计与策略优化没有统一的持久化记忆和评价指标。
19+
- 自动修复可以产出补丁,但高风险变更仍必须人工审计。
20+
- 自动合并依赖源仓库自己的 CI / merge guard,AIAuditBridge 不能直接替代最终合并决策。
21+
- QSL / 版本管理 / internal dependency 管理仍应保持在它们自己的治理链路里,不应该被桥接层吞掉。
22+
23+
所以更准确的目标不是“完全无人值守”,而是:
24+
25+
> **低风险自动执行 + 中风险建议式执行 + 高风险人工审计 + 所有结果可追溯可回滚。**
26+
27+
---
28+
29+
## 1. 当前架构盘点
30+
31+
### 1.1 入口与职责
32+
33+
AIAuditBridge 是 QuantStrategyLab 的 AI 审计控制面,负责:
34+
35+
- 接收源仓库的月度审计 / PR review 请求;
36+
- 通过 GitHub Actions OIDC 认证来源;
37+
- 克隆源仓库并构造上下文;
38+
- 调用 Codex service,必要时回退到 OpenAI / Anthropic API;
39+
- 应用受控 patch、创建 PR、评论 issue、打标签、触发 guarded auto-merge。
40+
41+
### 1.2 已存在的主要构件
42+
43+
#### Workflow 层
44+
45+
- `codex_audit.yml`
46+
- 处理月度审计 / review_and_fix。
47+
- 支持 `provider=auto|api|anthropic|codex|openai`
48+
- 使用 `CODEX_AUDIT_SERVICE_URL` 指向服务端。
49+
- 支持 guarded auto-merge。
50+
51+
- `codex_pr_review.yml`
52+
- 处理 PR review。
53+
- 支持 Codex service + 直接 API fallback。
54+
- 上传诊断 artifact。
55+
56+
- `codex_review_gate.yml`
57+
- 把 Codex GitHub App review 变成 gate。
58+
- 具备 WAIT / REACT 两种模式。
59+
- 目标是让 review 结果真正影响 merge。
60+
61+
- `monthly-orchestrator.yml`
62+
- 生成月度审计 issue。
63+
- 验证目标仓库必须是 snapshot repositories。
64+
- 强调月审 issue 由源仓库自己 dispatch AIAuditBridge。
65+
66+
- `vps_codex_service_ops.yml`
67+
- 管理 VPS 上的 Codex audit service。
68+
- 说明服务端和 GitHub 端已经拆开。
69+
70+
#### 服务层
71+
72+
- `service/ai_gateway_service.py`
73+
- 统一 HTTP 服务。
74+
- OIDC 验证、限流、输入校验、job 管理、health/quota 接口。
75+
76+
- `service/adapters/codex_adapter.py`
77+
- 只负责在 VPS 上跑 `codex exec`
78+
79+
- `service/adapters/llm_adapter.py`
80+
- 负责 OpenAI / Anthropic API 调用。
81+
82+
- `service/autonomy.py`
83+
- 负责风险等级 + 置信度 -> 动作建议。
84+
85+
- `service/health.py`
86+
- 负责健康状态、延迟、错误率、降级判断。
87+
88+
- `service/quota.py`
89+
- 负责每 repo quota、成本估算、账单快照。
90+
91+
- `service/feedback.py`
92+
- 负责反馈记录、效果评估、shadow disagreement。
93+
94+
#### 桥接脚本层
95+
96+
- `scripts/run_monthly_codex_audit.py`
97+
- 月审主流程。
98+
- 包括 repo/task 校验、service patch contract、path guard、PR 创建、label 管理、auto-merge 请求、stale label cleanup。
99+
100+
- `scripts/run_codex_pr_review.py`
101+
- PR review 主流程。
102+
- service 失败时可按条件回退到 API review。
103+
104+
- `scripts/gate_codex_app_review.py`
105+
- 以 review gate 的形式保护合并。
106+
107+
### 1.3 已经具备的自动化能力
108+
109+
- 来源认证:OIDC / allowlist。
110+
- 资源控制:rate limit / quota。
111+
- 风险控制:path guard / policy / label gating。
112+
- 结果可追踪:issue comment、PR body、artifact、step summary。
113+
- 容错:Codex service 失败后可走 API fallback。
114+
- 变更应用:支持 patch response -> 本地应用 -> PR。
115+
- 合并保护:guarded auto-merge 不是直接绕过 GitHub protection。
116+
117+
---
118+
119+
## 2. 能自动处理 vs 必须人工审计的边界
120+
121+
### 2.1 可以自动处理的范围
122+
123+
适合自动执行的条件是:
124+
125+
1. 变更范围低风险;
126+
2. 变更目标明确;
127+
3. 有稳定 policy / gate;
128+
4. 失败后能安全回滚或重试;
129+
5. 不影响资金、策略核心逻辑、权限边界、版本治理。
130+
131+
当前可自动处理的典型场景:
132+
133+
- docs / tests / README 类变更;
134+
- 月度报告生成脚本、低风险辅助脚本;
135+
- 明确的 packaging / lint / warning 修复;
136+
- 低风险月度审计修复 PR;
137+
- Codex review / API review 的评论生成;
138+
- guarded auto-merge 条件满足时的受控打标与交给源仓 CI 合并。
139+
140+
### 2.2 必须人工审计的范围
141+
142+
这些场景不应交给无人值守直接合并:
143+
144+
- 策略核心逻辑、交易逻辑、信号生成逻辑;
145+
- 影响仓库基础架构或权限边界的修改;
146+
- `.github/codex_auto_merge_policy.json`、workflow、label policy、gate policy 变更;
147+
- 删除、重命名、复制文件,特别是跨目录调整;
148+
- 涉及 secrets、credentials、keys、token 的变更;
149+
- 任何 QSL 版本管理、internal dependency matrix、qslctl 相关治理文件;
150+
- 低置信度模型输出但影响面大;
151+
- 运行时 health 仅“看起来健康”但没有真实业务指标支撑的场景;
152+
- 任何需要跨仓确认的变更,例如消费者仓库与治理仓库之间的契约变动。
153+
154+
### 2.3 灰区:可以自动建议,但不应自动完成
155+
156+
这些适合“自动做前半段,人工做最后确认”:
157+
158+
- 月度 audit 结果总结;
159+
- 策略健康报告的初稿;
160+
- 变化解释、风险分析、建议动作;
161+
- 需要看历史效果再决定是否采纳的优化建议;
162+
- 复杂 PR review 的评论,但不自动 merge。
163+
164+
---
165+
166+
## 3. 关键缺口和优先级
167+
168+
### P0:必须补的缺口
169+
170+
#### 3.1 策略级与组织级指标缺失
171+
172+
现在 health/quota 主要是服务层健康,不足以回答:
173+
174+
- 哪个策略长期退化?
175+
- 哪类月审修复真正降低了人工介入?
176+
- 哪些 repo 反复触发高风险变更?
177+
- 自动修复是否真的提高了通过率?
178+
179+
缺少统一的、可持久化的 KPI / 回放数据。
180+
181+
#### 3.2 人工审计边界虽然存在,但缺少统一执行面
182+
183+
目前边界分散在:
184+
185+
- policy JSON;
186+
- workflow;
187+
- script 内的 path guard;
188+
- review gate。
189+
190+
问题是这些规则是“分散一致”,还不是“单点治理”。一旦某处漏改,就会出现策略漂移。
191+
192+
#### 3.3 自动合并的最终决定仍依赖外部 source CI
193+
194+
这是对的,但也说明 AIAuditBridge 本身还不能闭环完成“无人值守”。
195+
196+
它能请求 auto-merge,不能替代:
197+
198+
- 源仓库 CI;
199+
- branch protection;
200+
- merge queue / required checks;
201+
- 失败后的 retrigger 逻辑。
202+
203+
### P1:强烈建议补的缺口
204+
205+
#### 3.4 缺少统一的任务状态机
206+
207+
月度审计、PR review、修复、重试、回退、人工升级,这些状态现在是靠脚本和 GitHub 流程串起来的。
208+
209+
建议显式建模:
210+
211+
- `queued`
212+
- `running`
213+
- `reviewed`
214+
- `patch_applied`
215+
- `pr_opened`
216+
- `waiting_for_ci`
217+
- `auto_merge_requested`
218+
- `human_review_required`
219+
- `merged`
220+
- `failed`
221+
- `blocked`
222+
223+
#### 3.5 反馈回路还不够强
224+
225+
已有 `feedback.py`,但还没形成:
226+
227+
- 哪类问题最常复发;
228+
- 哪个 provider / model 组合最稳定;
229+
- 哪类变更最适合直接走 API fallback;
230+
- 哪些 low-risk 规则需要升级或收紧。
231+
232+
#### 3.6 Dashboard / org-health 还缺“决策联动”
233+
234+
健康面板如果只是展示状态,不足以支持无人值守。
235+
236+
它至少还需要:
237+
238+
- 健康异常自动降级到 review_only;
239+
- quota 低时自动降级模型;
240+
- 失败模式自动切换 provider 或暂停自动修复;
241+
- 对连续失败仓库自动升级人工审计。
242+
243+
### P2:可后置优化
244+
245+
#### 3.7 更细粒度的复杂度路由
246+
247+
现在有 low / medium / high 的复杂度路由,但还可以更精细地接入:
248+
249+
- repo 历史稳定性;
250+
- 变更类型;
251+
- 最近失败率;
252+
- 真实审批时延。
253+
254+
这类优化有价值,但不是无人值守的先决条件。
255+
256+
---
257+
258+
## 4. 可落地的阶段性改造计划
259+
260+
### Phase 1:先把“可无人值守的部分”界定清楚
261+
262+
目标:让系统明确知道什么能自动做,什么必须升级人工。
263+
264+
建议动作:
265+
266+
- 把自动化边界写成统一 policy 文档,并和代码测试绑定;
267+
- 把风险分类、label policy、workflow gate 的规则集中到一个共享配置入口;
268+
- 明确低风险 auto-merge 的文件集合和禁区;
269+
- 给每类任务加上标准状态输出和 step summary。
270+
271+
交付物:
272+
273+
- 统一的自治政策说明;
274+
- 可读的风险分级规则;
275+
- 每个任务的状态机输出。
276+
277+
### Phase 2:把反馈回路做实
278+
279+
目标:让系统不是“做完就走”,而是“做完能学”。
280+
281+
建议动作:
282+
283+
- 把每次月审 / PR review / auto-fix 的结果持久化;
284+
- 记录:问题类型、provider、模型、风险级别、是否需要人工、是否 merge 成功、是否复发;
285+
- 在 dashboard 上展示:
286+
- 自动处理成功率;
287+
- 人工升级率;
288+
- 重试成功率;
289+
- 最近 30 天回退次数;
290+
- 高风险变更占比。
291+
292+
交付物:
293+
294+
- 持久化反馈表;
295+
- 可查询的 org-health 指标;
296+
- 月报审计的历史对比。
297+
298+
### Phase 3:让健康检测影响决策
299+
300+
目标:把健康状态从“展示”变成“调度输入”。
301+
302+
建议动作:
303+
304+
- health degraded 时自动切换 review_only;
305+
- quota 紧张时优先低成本模型或延后任务;
306+
- 连续失败时强制人工审计;
307+
- 针对不同 repo 设置不同自治等级。
308+
309+
交付物:
310+
311+
- 健康驱动的执行降级策略;
312+
- repo 级别自治阈值。
313+
314+
### Phase 4:扩大自动修复,但只扩大低风险面
315+
316+
目标:提升无人值守覆盖率,但不放松安全门。
317+
318+
建议动作:
319+
320+
- 扩展 docs/tests/report helper 的自动修复能力;
321+
- 对 packaging/lint 类修复增加更强的自动测试和回归测试;
322+
- 对月审生成的 PR 增加标准化的 PR body / comment 模板;
323+
- 维持高风险路径默认人工审计。
324+
325+
交付物:
326+
327+
- 更高的低风险自动修复成功率;
328+
- 更稳定的 guarded auto-merge 命中率。
329+
330+
### Phase 5:再考虑组织级无人值守
331+
332+
只有在下面条件都满足后,才建议把“无人值守”从局部扩到组织级:
333+
334+
- 反馈数据稳定;
335+
- 高风险边界清晰;
336+
- 失败降级机制可自动生效;
337+
- 关键仓库的 merge gate 行为稳定;
338+
- 月审结果和人工审计结果长期一致。
339+
340+
---
341+
342+
## 5. 对“无人值守”目标的判断
343+
344+
### 可以放心推进的部分
345+
346+
- 月度审计 issue 的生成与调度;
347+
- 低风险 review / 修复;
348+
- 受控 auto-merge 请求;
349+
- 服务健康与 quota 监控;
350+
- 失败后 fallback 和 retry。
351+
352+
### 不能直接无人值守的部分
353+
354+
- 策略核心修改;
355+
- 任何治理 / policy / workflow 变更;
356+
- QSL 版本管理;
357+
- 最终 merge 决策;
358+
- 需要解释原因或承担业务风险的变更。
359+
360+
### 总体判断
361+
362+
当前架构更像是:
363+
364+
- **自动化执行层已经有了**
365+
- **自治决策层还不完整**
366+
- **组织级闭环还差一层数据和治理**
367+
368+
所以现在的最佳目标不是“完全无人值守”,而是:
369+
370+
> **把 60%~80% 的低风险审计与修复自动化,把高风险部分稳定地拦在人工审计门前。**
371+
372+
---
373+
374+
## 6. 建议的下一步
375+
376+
1. 先把这份架构草案定稿到仓库文档里。
377+
2. 再补一份“自治边界表”,把自动 / 人工 / 禁止 三类动作列清楚。
378+
3. 然后补指标持久化和 dashboard 视图。
379+
4. 最后再决定是否扩大 auto-merge 覆盖面。

0 commit comments

Comments
 (0)