Update: 将子项目从 submodule 转为完整内容

- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
This commit is contained in:
freedak
2026-07-04 19:20:46 +08:00
parent 54d6465fa7
commit f7a720204a
3360 changed files with 802660 additions and 3 deletions
@@ -0,0 +1,97 @@
# 智能决策(IDMM
**IDMM**——Intelligent Decision-Making Mode,智能决策模式——是 Nomi 面向
无人值守任务的稳定性层。它是一个**会话监督器**,盯守每一轮对话,一旦停滞
立即介入,让长时间自动化任务跑到终态,而不是卡在一次提供商抖动、或一个
不再向前推进的模型上。
如果说 [AutoWork](autowork-requirements.zh.md) 是推动工作**向前**的引擎,
IDMM 就是让每一轮持续**运转**的守卫。两者天生互补:AutoWork 负责认领并执行
需求,IDMM 则确保它启动的每一轮都真的能跑完。
> IDMM 是一个**可选**的监督器(`nomifun-idmm` crate)。在会话头部——与开启
> AutoWork 相同的位置——按会话开启。
## 为什么需要它
智能体对话失败,绝大多数是无聊、可恢复的方式,而不是什么有趣的原因:
- 提供商返回一次瞬时的 `429` / `5xx`,对话本会就此放弃;
- 模型反复重试同一个失败调用,陷入循环;
- 模型在某个工具调用上空转,迟迟不决定下一步;
- 对话干脆陷入沉默,最终撞上硬性超时。
交互式会话里,你自己推一把就好。但**无人值守**的会话——通宵跑的 AutoWork
队列、定时任务、多智能协同里的某个队友——没有人盯着。IDMM 就是那个盯守者。
## 两个层级
检测到停滞时,IDMM 会用能解决问题的、最省的手段去化解,必要时才逐级升级。
### 规则层(无需 LLM
一套确定性策略**完全不调用模型**就能处理常见的机械性停滞——又快又省:
- **提供商故障**——瞬时错误与限流被吸收,对话在合理退避下重试,而不是直接
失败。
- **重试循环**——识别并打断反复出现的相同重试。
- **工具空转**——对于不断重复发起同一工具调用却毫无进展的模型,把它拉回
正轨。
大多数介入都到此为止,不会进入下一层。
### 旁路模型层(备用模型)
当停滞确实是一个*决策*问题——主模型卡住了、规则无法化解——IDMM 会请一个
**轻量旁路模型**做出下一步决策,让会话不至于死锁。旁路模型是一个小而便宜的
「第二意见」模型:它唯一的职责是把这一轮解开,而不是接管整个工作。
这就是产品语境里的**旁路模型(Sidecar)**:一个待在主智能体旁边、仅在需要
时才介入的模型。
## 会话守卫与会话保活
规则层与旁路模型合在一起,构成了**会话守卫(Session guard**IDMM 在故障与
决策停滞中保活目标,并把这一轮护送到终态。这正是 Nomi 所说的「会话保活」
——不是一个傻乎乎的心跳,而是一个主动的监督器,去解决那个本会让对话卡死的
根因。
## 它如何与 AutoWork 协同
IDMM 与 AutoWork 相互独立、彼此互补:
- **AutoWork** 认领下一条需求、注入、等待这一轮跑完、并完成它。
- 当 AutoWork 启动一轮时,会请求 IDMM(若已接入)在这一轮期间**确保对该目标
的监督**。
- **IDMM** 让这一轮不至于卡住,从而干净地抵达 `done` / `failed`,而不是超时。
最终效果是:AutoWork 提供向前的推进力,IDMM 提供存活性。一个队列可以无人值守
地跑上数小时,单次的瞬时失败不再让整轮任务中止。
```
AutoWork: 认领 ─▶ 注入 ─▶ [ 对话运行 ] ─▶ 完成(done/failed
│ 确保监督
IDMM 守卫 ──▶ 规则层 ──▶ (升级)──▶ 旁路模型
```
每层策略的细节和介入日志 API 见 `crates/backend/nomifun-idmm/`
## 开启方式
IDMM 在**会话头部**开启,与 AutoWork 是同一处控制入口。对你打算无人值守长跑
的会话或终端目标打开它即可。规则层无需任何配置;旁路模型层会从你配置好的
提供商里使用一个轻量模型。
## 何时使用
- **建议开启**:任何无人值守的长跑——AutoWork 队列、定时
[cron](scheduled-tasks.zh.md))任务、通宵批处理,或长时间运行的终端型
agent 会话。
- **可以不开**:你自己盯着、随时能介入的短交互会话。
## 另请参阅
- [AutoWork 与需求](autowork-requirements.zh.md)——IDMM 最常守护的引擎。
- [定时任务](scheduled-tasks.zh.md)——受益于监督的无人值守任务。
- [终端](terminal.zh.md)——IDMM 可以监督长时间运行的终端目标。