vpp-ai-platform/docs/01-principles.md
stewart hu 11f19a661a Integrate peer review findings into architecture docs
- 01: add eight testable hard invariants (self-approval ban, duty
  separation, digest-bound approvals, permit-only effects, LLM-less
  degraded operation)
- 03: approval staleness model — proposal digest, FRESH_CHECK/STALE
  states, APPROVED→AUTHORIZED split with revocable ExecutionPermit;
  gateways accept permits, never bare plans
- 05: rules packaged as versioned, testable Policy Packs pinned in
  proposal lineage
- 02: approval workbench reshaped into a Case Desk (DecisionCase as
  the operator's accountability unit)
- 10 (new): cross-province federation boundary — signed artifacts
  only, plus three phase-1 no-rework reservations
- 08: add M5 shadow-run milestone as phase-1 acceptance form
- 00/04/07: object table, doc map, and walkthrough consistency updates
- add brainstorming.md (peer review source document)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr

🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 20:44:12 -04:00

5.6 KiB
Raw Permalink Blame History

01 · 架构原则

以下九条原则是全部设计决策的裁判标准。评审任何模块设计、任何 PR 时,先对照本篇。

P1 两平面分离

认知平面(LLM 智能体,分钟~天)与控制平面(确定性执行,秒级)严格分离, 唯一通道是可信执行链。LLM 永远不出现在秒级控制路径上。

推论: 边缘终端断连时依然能在最近一次批准的包络内自治运行(见 P9)。

P2 LLM 不算数

大模型负责意图理解、约束组装、工具选择、流程编排与结果解释; 申报价格、调度量、控制设定值等一切数字,必须来自专业模型工具层 (预测模型、优化求解器、仿真引擎),且工具输出原样进入 Proposal,不经 LLM 转写。

反例判据: 若某个申报数字的来源无法追溯到某次工具调用的输出,即为架构违规。

P3 包络自治(分级授权)

化解「事事人工审批」与「协同决策响应 ≤ 3 分钟」的矛盾:

  • 人工审批的对象是包络(Envelope)——策略级授权(价格/电量边界、可控用户集、有效期),走多级审批高规格流程;
  • 包络内的单笔动作经规则校核 + 仿真验证后自动放行,全程留痕;
  • 包络外或校核/仿真告警的动作,升级人工审批。

先例: 与电网调度对 AGC 机组的「调节死区内自治」授权模型同构——不是新信任模型,是既有模型向 VPP 资源的延伸。

自治拨盘: 新业务上线初期包络可设为空集(等价于全人工),随复盘数据积累逐步放宽。

P4 对象化通信

智能体之间不进行自由文本对话。协作只通过事件总线上的类型化、带版本号的业务对象 (Proposal、ResourceProfile、PositionLedger 等,见 00 篇 §4),由 Runtime 统一路由。

收益: 协作即数据,数据即审计;事件日志直接成为复盘的原始材料。

P5 一切皆可审计

事件溯源(event sourcing)为默认持久化模式。每个 Proposal 携带完整血缘: 发起 Agent、触发源、引用的工具调用及其版本、命中的规则、仿真结果、审批人/包络、执行反馈。 满足等保合规「操作留痕、合规可审计」要求。

P6 提供商抽象

所有 LLM 调用经统一抽象层(模型路由器),面向能力(语义理解/规划/生成)而非厂商 API 编程。 开发期用商用 API,交付期切换光明电力大模型适配器(预期本地化部署),业务代码零改动。 提示词、工具定义、评测集均按可迁移标准维护(见 08 篇)。

P7 约束级联(多时间尺度协同)

年度 → 月度 → 日前 → 日内 → 实时不是五套系统,而是一条约束级联: 上层的决策成为下层的约束。级联状态集中于共享的 PositionLedger(持仓账本), 所有 Agent 经 Runtime 读写,禁止在各 Agent 内部私存持仓状态。

推论: 偏差复盘 = 逐时间尺度对比账本计划值与计量实际值,账本天然是结算对账主干。

P8 数据分层存储

不用一个库解决所有问题:时序库(遥测曲线)、关系库(合同/用户/市场结果)、 向量库(规则/政策/设备约束文档,RAG)、特征库(喂预测模型)、事件日志(审计与复盘)。 各库有明确的写入方和消费方(见 05 篇)。

P9 边缘自治

边缘控制终端在包络内就地闭环(秒级响应、断连续行), 仅接受经可信执行链下发的计划/包络更新,并持续回传执行反馈。 省级平台失联 ≠ 资源失控。


硬性不变式(Invariants)

原则是设计导向,以下不变式是可测试的硬约束——违反任何一条即为缺陷, 每条都应有对应的自动化测试或审计检查:

# 不变式 落点
I1 AI 不得批准自己的建议;审批人身份与发起链路强制分离 03 篇状态机权限校验
I2 操作、审批、管理三类职责在权限体系中分离(separation of duties) 06 篇权限对接
I3 审批绑定 Proposal 的不可变摘要(digest)与有效窗口;实质证据、约束或预期效果变化后审批自动失效 03 篇审批绑定
I4 任何外部效果(申报/控制)只凭执行许可(ExecutionPermit)受理,许可有时效、可吊销 03 篇授权环节、04 篇网关
I5 外部效果幂等(重发不重执行)并产生持久回执 04/06 篇适配器与执行引擎
I6 LLM 不可用时系统降级可运行:预测、优化、校核、审批、申报、控制全链路不依赖 LLM 存活 P1/P2 的运行时验证
I7 任何历史决策可从留存证据完整重放(输入快照 + 规则版本 + 模型/求解器版本 + 审批记录) P5、05 篇快照机制
I8 运营事实的权威存储是领域数据库,不是智能体记忆 02 篇记忆体系

注:本节不变式与另一份独立评审(brainstorming.md)的结论互相印证—— 两份独立设计收敛于同一组约束,是架构方向正确性的有力佐证。

原则间的张力与取舍备忘

张力 取舍
P3 自治效率 vs 安全底线 包络审批规格从严,包络内动作从宽;仿真告警一票升级人工
P4 对象化 vs 大模型灵活性 自由文本仅存在于「人 ↔ Agent」交互面;「Agent ↔ Agent」一律对象化
P6 抽象层 vs 光明大模型特有能力 抽象层按能力最小公倍数设计;光明特有能力(电力语义)以可选扩展点接入,降级可运行