Files
fengqun/docs/AGNET_FRAMEWORK_INPUT_OUTPUT_LOGIC.zh-CN.md
gongzhiyongandOmX a4d771ede5 Define numeric swarm acceptance gates
Add a concrete 0-100 swarmness/compliance score, local large-scale stress, and 3000 TPM budget acceptance so the repo can say when it is a swarm by measured criteria instead of prose alone.

Constraint: user required Chinese docs, explicit scenarios, parameters, formulas, pass/fail lines, and git upload.

Rejected: prose-only PASS reports | they did not answer whether the system is a swarm with a concrete score.

Confidence: high

Scope-risk: moderate

Directive: keep production runtime claims separate from local minimal swarm acceptance scores.

Tested: py_compile swarm_minimal examples tests; unittest discover -s tests 45 tests; run_swarm_compliance_score.py; run_tpm_budget_acceptance.py; run_academic_standard_evaluation.py; git diff --check; docs/script secret-pattern scan.

Not-tested: live S07 and production Kubernetes/NewAPI provider-rate-limit stress were not rerun in this upload step.

Co-authored-by: OmX <omx@oh-my-codex.dev>
2026-05-17 18:19:24 +08:00

11 KiB

Agnet 框架逻辑与实现过程说明

这份说明只从 Agnet 的输入、输出、交接和收敛角度解释当前框架逻辑,不展开源码,不写命令,不贴实现代码。

指标测试的统一阈值见 AGENT_SWARM_INDICATOR_TEST_MATRIX.zh-CN.md。本文件描述输入输出链路如何工作;“到多少值算成功”以该矩阵和 SCORING_AND_ACCEPTANCE_FORMULAS.zh-CN.md 为准。

一句话逻辑

当前框架不是让一个模型一次性回答完整问题,而是把一个复杂目标拆成连续的 Agnet 输入。每个 Agnet 接收“当前任务输入”和“上一位 Agnet 的输出摘要”,生成自己的输出,再把这个输出变成下一位 Agnet 的输入条件。最后,框架先做输出质量门和多轮质量共识,再根据评分选择最终可接受输出作为收敛结果。

被测场景是什么

本轮使用的外部场景是 FastAPI 项目的响应序列化与 OpenAPI 依赖链审查。FastAPI 是一个 Python API 框架,核心价值是让开发者通过类型标注和数据模型构建接口,并自动生成接口文档。

选择这个场景的原因是:它不是一个单点问题。响应模型、依赖注入、参数元数据、数据序列化、OpenAPI 文档生成和测试覆盖会互相影响。一个 Agnet 很容易只看到局部,所以需要多个 Agnet 按顺序承接。

本轮验证的重点不是给 FastAPI 上游提交真实补丁,而是验证蜂群框架是否能把外部复杂代码问题变成连续输入输出链,并保留每一步的交接证据。

框架的输入如何形成

最初输入不是简单一句“帮我分析 FastAPI”,而是一个带约束的任务包。这个任务包包含四类信息。

第一类是目标输入:要求审查 FastAPI 响应序列化与 OpenAPI 依赖链,目标必须固定在外部 FastAPI 项目,不能把当前仓库当成被测对象。

第二类是范围输入:告诉 Agnet 重点围绕路由、依赖注入、OpenAPI 生成、响应模型序列化、编码器和测试覆盖,不允许泛化成普通调度系统问题。

第三类是交接输入:从第二步开始,每个 Agnet 都会收到上一位 Agnet 的阶段标记和上一位 Agnet 的输出摘要。也就是说,后续 Agnet 不是从空白开始,而是从前一个输出继续。

第四类是验收输入:每一步都必须产生自己的阶段标记,除第一步外必须承接前一步,最终输出必须能体现不变量、依赖图、复杂度、反例、修正策略、文件级计划和验收判断。

第五类是质量门输入:如果模型输出拒答、角色拒绝、偏题、转向当前仓库或没有承接前一步,框架会把它判为低质量输出。低质量输出不能直接进入通过结论,而是触发重试或切换模型。

Agnet 的分工如何发生

当前框架把一个完整复杂任务拆成七个连续 Agnet。每个 Agnet 的输入和输出关系如下。

Agnet 输入 期望输出 实际输出评价
Agnet 01 起始目标、外部项目范围、禁止自测边界 问题边界、不变量、风险、下一步交接摘要 完成了边界定义,明确目标是 FastAPI 外部项目,并给出下一步依赖图分析方向
Agnet 02 Agnet 01 的输出摘要,以及建立依赖图的任务 路由、依赖注入、OpenAPI、序列化之间的依赖图 新最小版本中通过质量感知重试和模型接手,输出通过交接质量门
Agnet 03 Agnet 02 的输出摘要,以及跨文件风险定位任务 响应模型、依赖参数、编码器、OpenAPI schema 之间的风险路径 继续围绕 FastAPI 外部项目展开,形成了跨文件风险分析
Agnet 04 Agnet 03 的输出摘要,以及构造反例任务 响应过滤、默认值、nullable、依赖参数和 schema 不一致的反例 输出了反例方向,使问题从抽象风险进入可验证失败场景
Agnet 05 Agnet 04 的输出摘要,以及修正策略任务 修改策略、兼容性约束、恢复路径 新最小版本中通过质量门约束,输出通过交接质量门
Agnet 06 Agnet 05 的输出摘要,以及文件级计划任务 具体到文件层面的修正计划和测试计划 重新把链路拉回 FastAPI 文件级计划,承担了恢复连续性的作用
Agnet 07 Agnet 06 的输出摘要,以及最终验收任务 验收命令、失败判定、可合并结论、最终收敛输出 形成最终验收判断,并成为本轮收敛选择的主要输出

这张表说明了当前框架的最新状态:链路不仅跑通,而且已经把“拒答、角色拒绝、偏题、本仓库漂移、没有承接上一步”纳入质量门。旧 run 中 Agnet 02 和 Agnet 05 暴露过异构模型不接受蜂群角色的问题;新最小版本已经把这类输出改成扣分、重试、换模型和质量共识验收。

输出如何变成下一步输入

每一步 Agnet 输出后,框架会抽取一个阶段摘要。这个摘要不是给人看的普通总结,而是下一位 Agnet 的上下文输入。

因此,Agnet 01 的输出会变成 Agnet 02 的前置条件;Agnet 02 即使输出质量不足,也会留下一个可审计的交接痕迹;Agnet 03 会在这个基础上继续推进;后续步骤依次重复这个过程。

这里的关键不是“模型说它交接了”,而是框架能回答三个问题。

第一,下一位 Agnet 收到了什么输入。它收到当前任务要求,也收到上一阶段摘要。

第二,当前 Agnet 输出了什么。它输出阶段结论、风险、反例、修正策略或验收判断。

第三,这个输出有没有被后续步骤使用。后续 Agnet 的输入中包含上一阶段摘要,最终报告也保留每一步的交接证据。

实现过程按输入输出看

第一步,先把用户目标改写成标准任务输入。用户想验证的是“蜂群 Agnet 能不能处理复杂代码任务”,所以任务输入被固定为外部 FastAPI 项目,而不是当前仓库。

第二步,把标准任务输入拆成七段连续输入。每段输入都只解决一个阶段问题,避免一个 Agnet 同时做边界、分析、反例、修正、验收。

第三步,让每个 Agnet 接收两部分输入:本阶段任务输入,以及上一阶段输出摘要。这样可以验证真正的上下文承接,而不是七个模型各说各话。

第四步,收集每个 Agnet 的输出。输出不是只看最终文字是否好看,而是看是否包含本阶段标记、是否承接前一步、是否仍然围绕 FastAPI 外部项目、是否给出下一步可用信息。

第五步,对输出进行评分。评分偏向连续性、目标一致性、可交接性和最终可验收性。输出偏题、拒答或只声明能力边界时,会被重罚,不能靠普通高分混进最终结果。

当前输入输出链的关键成功值是:每个 Agnet 输出质量分 Q >= 0.72 且关键项全通过;STEP-01 到 STEP-07 共 7 个任务全部完成;最终接受分 accepted_score >= 0.75;质量共识至少 2 轮;任一模型拒答、角色拒绝、偏题或漂移到本仓库时,风险输出分固定降为 0.12 并触发重试或 fallback。

第六步,如果输出不合格,框架先进行同模型重试;仍不合格时,切换到 fallback 模型接手当前步骤。只有通过质量门的输出才会成为下一步摘要。

第七步,把每一步输出沉淀成共享状态、观测记录和评分记录。这样最终报告可以追溯“谁接了什么输入、谁输出了什么、谁把结论交给了下一步”。

第八步,做多角色质量共识。当前最小版本引入了三个审查 Agnet 角色:交接连续性审查、输出质量审查、最终收敛审查。第一轮只形成候选,第二轮才允许达成接受结论。

第九步,做最终收敛。当前最小框架仍保留最高分输出作为最终接受文本,但它不再是单独门槛;必须先通过输出质量门和多轮质量共识门。

当前框架逻辑的优点

它已经能把复杂目标拆成连续输入输出链。用户可以看到每一步 Agnet 收到什么任务、输出了什么内容、下一步如何接手。

它已经能处理模型质量问题。遇到拒答、角色拒绝或偏题输出时,框架会重罚该输出,触发重试或换模型,并把质量门结果写入验收报告。

它已经能形成可追溯收敛。最终结果不是聊天窗口里临时拼出来的,而是从已完成 Agnet 输出中选择,并保留评分、观测、多轮质量共识和最终 artifact 证据。

已修复的最小版本问题

第一,收敛不再只看最高分。最新 S07 live run 在最高分输出之前增加了多角色质量共识门,第一轮未收敛,第二轮才接受外部 FastAPI 推理链。

第二,评分已经加强。模型拒答、角色拒绝、偏题、本仓库漂移和缺少交接信息都会触发质量风险,分数会被重罚,不能靠链路继续自动通过。

第三,补救路径已经接入。当前步骤输出不合格时,框架会先重试,再切换到 fallback 模型接手,避免低质量输出直接污染下一步输入。

第四,交接质量已经成为单独指标。每一步都要同时满足当前阶段标记、上一阶段标记、外部仓库、固定 commit、FastAPI 技术语义、下一步交接和非拒答输出。

仍保留的边界

当前最小版本已经补入互相质询的代码级验收:Agnet 可以先提出反驳,再生成修正,最后重新投票。它仍不是生产级长对话辩论系统,因为质询还运行在本地确定性验收场景中,没有接入真实 runtime 的动态任务图。

当前补救方式包括重试、换模型、候选融合和质询修正,但还没有自动创建新的补充任务。也就是说,它能修复当前候选和当前步骤输出质量问题,但还没有把“补充 Agnet”扩展成动态任务图。

当前已经有候选融合的最小代码能力,可以把多个有效候选去重合并;S07 live 外部链路仍保留质量门后的最高分收敛作为主路径。下一阶段要把候选融合接入 live 外部链路和真实平台收敛,而不只作为本地确定性验收能力。

结论

当前框架的核心逻辑是:用户目标先变成标准化任务输入,再被拆成多个连续 Agnet 输入;每个 Agnet 的输出都会变成下一步输入的一部分;输出必须先通过质量门和多轮质量共识,最终再通过评分收敛形成接受结果。

从输入输出角度看,最新最小版本已经修复了三项关键不足:不再只靠最高分收敛,不再放过拒答或偏题输出,交接质量也从“有记录”升级为“有质量判定”。本轮又补上了 3/5/7 并发 claim、候选融合、反驳-修正-再投票的本地最小代码验收;剩余工作是把这些能力接入真实 runtime、动态补充任务和生产级平台链路。