Files
MyAiDesk/nomifun-tauri/docs/guides/intelligent-decision.zh.md
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

98 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 智能决策(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 可以监督长时间运行的终端目标。