Repository navigation
v1.5.5 — ⚡ 执行模块 · 执行状态机与按需加载
⚡ 执行模块——执行状态机与按需加载:本版给每个 Agent 节点装上执行状态机(SKILL.state 协议:ΔΣt 由代码确定性合并、推理轨迹合并后即弃、行为可溯),并让工具按需检索加载(不再全量注入上下文);阵型调度消费面接线、LangGraph 降为可选依赖。MCP 工具 104(无增减)· 5642 tests · MIT。
TL;DR (EN): Execution module — execution state machine & on-demand loading. This release adds a per-node execution state machine (SKILL.state protocol: ΔΣt deterministically merged in code, reasoning traces merged-then-discarded, every action traceable) and task-relevance tool retrieval (no more full tool-schema injection), plus formation scheduling wiring and LangGraph demoted to optional. MCP tools 104 · 5642 tests · MIT.
⚡ Install / Upgrade
# 新装(五形态任选:FDE 插件 / Skill / MCP / CLI / GitHub Action)
curl -fsSL https://raw.githubusercontent.com/KongFangXun/sofagent/refs/tags/v1.5.5/install.sh | bash
# 已装用户升级到本版
npx @sofagent/audit@v1.5.5 --doctor🔨 核心变更
⚙️ 全节点执行状态机(SKILL.state 协议收编)
- 每步 prompt 只带三段结构化状态(P + Σt + ot),ΔΣt 状态补丁由运行时代码确定性合并校验——不走消息历史滚雪球,推理轨迹合并后即弃而行为可溯(S466/S471)
- fail-closed 三处:非法/混合补丁批整批拒绝(不部分应用)/ 假完成信号须 todo 收敛 / 完成词不得绕过状态校验
- 降级双路径:
SOFAGENT_STATEFUL_EXEC=off全局一键回退 legacy;连续补丁拒绝自动降级(S467)
🔍 Tool search 按需加载(OpenAI Agents API 启发)
- 按任务描述检索 top-5 相关工具注入上下文(BM25 + 中文 2-gram 分词)——未命中工具不进初始注入面,注册面去重与 tool-registry 唯一性同口径(S469)
- 显式指定工具同样受域白名单约束(显式 ∩ 域内;域外剔除计偏离留痕)
- 权限面不受影响:ToolGate 判定先于检索(v1.4.8 权限语义零漂移)
🛰️ 多 Agent 阵型调度(阵型库消费面接线)
team.yml声明formation:即装配内置阵型(六阵型);三态行为锁:模板兜底 / 显式覆盖(偏离记录)/ 非法名 fail-closed 报六合法值(S465)- 交接边落 decision-log 可按 team-id 查询;
formation.json拓扑与 handoffs 留痕;模板兜底态首成员自动为 leader - MCP
team_create走真实createTeam()装配路径(此前只解析不落地)
🧹 编排依赖治理(langgraph 降为可选)
@langchain/langgraph迁至 optionalDependencies:dsh-only 裁剪安装态零 LangGraph 静态 import(静态传染链切断)- 运行时动态 import 全量收敛至
dynamicLangGraph()单一入口;缺失时三入口(loop / 激活链 / hitl-resolve)显式报错并透传安装/切换指引(S468)
📖 README 理念主线重写(万物皆可 FDEing)
- 双语理念主线四段结构:打法层 FDEing · 判定层 S1M · 治理层 harness 三层各归其位、各司其职不互替(S470)
- 与
PHILOSOPHY三域三因子口径一致;旧理念关键词零残留(负向断言锁)
🔒 BugFix(上版遗留)
- 审计链密钥丢失不再误判为「篡改」(写入侧拒绝自动生成新密钥并明示恢复路径);CLI 非 TTY 下破坏性操作不再自动确认
- 安装链 tag 漂移修复(bootstrap 三件套同源);崩溃兜底退出码 4 与「用错目录」单义区分
- 阶段三盲审 12 项修复收口:章四生产断线三连 / protocol fail-closed / dynamicLangGraph 单一入口 / S465 断言补强
✅ 质量验证
| 检查项 | 结果 |
|---|---|
| npm test | 5642 tests 全绿 ✅(@发版时点) |
| acceptance-test | 477/477 passed · SKIP: 0 · EXIT: 0 ✅(@发版时点) |
| shellcheck | 零 error ✅ |
| check-version | 139/139 全绿 ✅(1 项发版窗口态跳过 · @发版时点) |
| 回归检查 | 85 维度 ✅(@发版时点) |
| release-gate | verdict=PASS-WITH-CONDITIONS(P1 五项已闭环)✅ |
| fresh-eyes | 16 视角 + 盲审双轮闭环 ✅ |
⚠️ 破坏性变更
- loop barrel 的 7 个运行时符号改异步入口
loadLoopGraphRuntime():消费方须await(MCPhitl_resolve已同步迁移;SDK 侧迁移指引见开发日志第五章) @langchain/langgraph移至 optionalDependencies——使用 langgraph 执行后端的安装需显式安装该依赖(dsh 后端用户无感)- MCP 工具数 104 → 104(无新增;
team_create行为增强:真实装配阵型并落 formation.json)
🔗 深入了解
| 想看什么 | 链接 |
|---|---|
| 全部变更明细 | CHANGELOG |
| 执行状态机与编排依赖 | ARCHITECTURE |
| 上手指南 | HANDBOOK |
| 有问题 / 晒场景 | Discussions |
📖 详细开发日志