技术阅读路径

全文核心问题
运行宿主模块接口、配置与两个 Store 分别拥有什么
冻结案例怎样恢复原 Run,而不是新建替代执行
风险账本资格、风险义务与纠正怎样进入提交链
只读交付谁能读取报告,用户事实为什么不是订单

启动与依赖先确定所有权

不可变 Settings 在加载时确定进程角色、源码身份、数据库路径和认证条件。应用 SQLite 与 M-Agent SQLite 必须是不同文件;迁移、健康和后台心跳也分别检查,livez 不等于整条业务已就绪。1

bootstrap 组装模块拥有的 framework 与 ledger 接口。业务模块不自行解释 SQLAlchemy 事务或框架持久化,适配器负责具体机制。这项取舍降低业务规则对基础设施的耦合,但需要明确的接口契约。

冻结的不只是业务编号

输入内容、AgentDefinition、版本 bundle、时钟和账户范围共同限定执行。业务对象、框架 Run、决策事件与报告版本分别拥有身份。先持久化业务映射,再进入框架检查点,才能在中断后找到原执行。1

当前适配器对非终态调用 runner.resume_run(run_id),并核对原始输入和定义快照;无法确认旧执行时不能悄悄创建一个新 Run 替代。当前版本为 M-Agent 0.5.1,历史 0.5.0 仅按原 Run 的明确兼容契约处理。

阶段结论不能压成一个 SUCCESS

宿主依次处理资格、组合授权、持仓以及保护阶段;运行状态、业务结果、提交、发布、通知和纠正状态不是同一条轴。拒绝或受限可能是正确业务结果,不一定意味着框架故障。1

运行、风险事实与报告交付
业务与框架拥有独立存储;报告来自已提交事实,用户声明不进入券商订单通道。

当前回撤、总敞口压力、流动性与到期义务、发行人集中度阶段都需要匹配的合成证据和明确策略。页面不公开私人政策阈值,也不把合成资格检查写成现实授权。

风险义务跨过单次运行

风险保护不是重新运行一次就清零。待完成义务绑定范围、快照和条件;外部纠正或更严格约束可能改变后续判断。假设成交、未完成订单或旧证明不能直接解除义务。阶段结果先成为已提交事实,再支持报告。1

这种持续记录增加状态管理成本,但避免把“计划减少风险”当成“风险已经解除”。最新本地提交已接入合法执行计划、目标合取和报告展示,后续修订仍是未提交的在途工作;本次未核实其完整验收结果。实现入口见风险账本全文。

重放和读取沿已有事实继续

已有正式报告时直接返回,不重新运行模型。已有已提交事实而投影缺失时接续报告处理;未完成执行则按冻结身份恢复。应用事件与 Run Store 没有共享事务,不能再把某个应用提交失败概括成“两边所有记录都归零”。1

历史报告读取的是存储版本,不按当前规则临时重建旧结论。这样用户能够区分“当时怎样判断”和“今天条件改变后怎样判断”。

可信主体控制读取与用户事实

Passkey session 只解决身份认证。服务端根据账户授权、权限与报告范围形成主体,默认无账户范围;USER 与 SHADOW 隔离不是前端隐藏。拒绝读取会留下有界审计,不泄露原始报告内容。2

用户事实另有权限、同源和 CSRF 检查,可表达已读、确认与非权威执行声明;幂等键重复返回同一事实,冲突拒绝。没有证券买卖参数和券商回调,不写入订单。

来源与范围

本地集成修订 f575cc02ad9ccec0a84d7bcc1523c41b7b8f9455,快照日期 2026-09-08。本次未重跑上游测试或真实业务;当前所有案例仍是 D0 合成契约。最终效果是可追溯、可恢复且账户范围受控的个人决策支持,成立条件见设计页与迭代记录,证据范围见实验验证。

参考资料

  1. 运行与决策契约。 ↩ ↩ ↩ ↩ ↩

  2. 报告与用户事实隔离。 ↩