---
description: >-
  后台循环，评估用户/系统任务相对于工作区的状态，
  并决定做什么。
icon: loader
---

# 潜意识循环

一个后台任务评估和执行系统。在每个周期 tick 上，它加载用户定义和系统任务列表，读取你工作区的当前状态，决定对每项做什么，然后要么自主行动，要么升级给你审批。

把它想象成智能体的空闲线程：你停止打字后仍在继续思考的部分。

***

## 一个 tick 如何工作

```text
┌─────────────────────────────────────────────────────────┐
│                    Heartbeat                            │
│           （tick 之间睡眠几分钟）                        │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────┐
│                  Subconscious Engine                     │
│                                                         │
│  1. 加载到期任务                                        │
│  2. 将每项标记为进行中                                 │
│  3. 构建情况报告（记忆 + 工作区）                       │
│  4. 用本地模型评估每个任务                             │
│  5. 执行决定（act / noop / escalate）                   │
│  6. 将结果写回活动日志                                 │
└─────────────────────────────────────────────────────────┘
                       │
           ┌───────────┼───────────┐
           ▼           ▼           ▼
         noop         act       escalate
        (skip)    (execute)   (deeper agent)
```

每个 tick 是独立的。如果一个 tick 在下一个开始时仍在运行（慢速模型调用、网络抖动），新的 tick 接管，旧的在进行中的条目被标记为已取消。Tick 永远不会堆叠。

***

## 任务类型

### 系统任务

引擎启动时自动播种。不能删除，只能禁用。默认覆盖你希望任何助手监视的事情：

* 检查已连接技能的错误或断开
* 审查新记忆更新中的可操作项目
* 监控系统健康（本地模型、记忆、连接）

你可以通过在 workspace 的 `HEARTBEAT.md` 文件中列出额外的系统任务来扩展，每行一个任务。

### 用户任务

你从 UI 手动添加的任何内容。切换开/关、编辑、删除。例如：

* "检查紧急邮件"（只读）
* "发送每日摘要到 Slack"（写意图）
* "总结 Notion 更新"（只读）

***

## 决策

对于每个到期任务，本地模型返回三个决策之一：

| 决策 | 含义 |
| -------- | --------------------------------------------------- |
| Skip | 现在没什么相关的 |
| Act | 发现了相关的东西，执行任务 |
| Escalate | 需要更深入的推理，交给云端智能体 |

决定如何执行取决于任务是否有**写意图**（它要求智能体执行一个操作）还是**只读**（它要求智能体查看和报告）：

```text
Decision: Skip
  → 记录"没什么新东西"，调度下一次运行

Decision: Act
  → 在本地模型上执行（读或写）

Decision: Escalate
  ├─ 写意图任务
  │   → 用完整权限运行云端智能体
  │   → 不需要批准（你明确要求了该操作）
  │
  └─ 只读任务
      → 用仅分析模式运行云端智能体
      → 如果智能体浮出未经请求的推荐操作
      │   → 为你审批创建升级卡片
      │   → 批准后 → 用完整权限重新运行
      └─ 否则 → 记录结果，完成
```

每个任务评估都带着彩色点和简短状态落在活动日志中：

| 状态 | 颜色 | 文本 |
| ----------------- | -------------- | ---------------------- |
| 进行中 | 蓝色（脉冲） | "评估中…" |
| 已行动 | 绿色 | 结果文本 |
| 已跳过 | 灰色 | "没什么新东西" |
| 等待批准 | 琥珀色 | "等待批准" |
| 失败 | 珊瑚色 | 错误消息 |
| 已取消 | 灰色 | "已取消" |
| 已忽略 | 灰色 | "已跳过" |

***

## 两个模型，一个循环

| 阶段 | 运行位置 | 为什么 |
| -------------------------------------- | ----------------------- | -------------------------------------------- |
| 每个任务评估（每个 tick） | 本地模型（Ollama） | 免费，无速率限制，适合端侧 |
| 仅文本执行（摘要、检查） | 本地模型 | 相同 |
| 工具使用执行（发送、发布…） | 云端智能体 | 工具、更大上下文、速率限制重试 |
| 升级读取的分析模式 | 云端智能体（只读） | 本地模型 defer 时更深入的推理 |

这种分割保持了循环便宜：只有当任务真正需要时你才为云端调用付费。

***

## 审批门

只有当智能体想要采取**你没有明确要求的写操作**时才需要审批。

| 任务意图 | 智能体想要写 | 需要审批？ |
| ------------------------------ | -------------------- | -------------------------- |
| "发送摘要到 Slack"（写） | 是 | 否，你要求的 |
| "检查紧急邮件"（读） | 否 | 否，只读结果 |
| "检查紧急邮件"（读） | 是（转发它们） | **是**，未经请求的写 |

审批流程：

1. 云端智能体以仅分析模式运行。
2. 它浮出一个推荐，例如 _"将 3 封紧急邮件转发到 #team-alerts。"_
3. 升级卡片出现在 UI 的**需要审批**下。
4. **继续**用完整权限重新运行。
5. **跳过**什么都不做。

与技能相关的升级（断开的集成、过期的 OAuth、缺失的范围）显示一个**在技能中修复**按钮，直接带你到技能页面而不是。

***

## 失败处理

失败计数器跟踪连续 tick 全评估步骤失败（本地模型宕机、网络断开）。任何成功 tick 将其重置为零，并在 UI 状态栏中以珊瑚色显示（当非零时）。

每任务失败不会触发此计数器，tick 本身仍被认为成功。

如果一个 tick 失败或被取消，引擎不会推进其"上次看到"时间戳，所以下一次成功 tick 覆盖相同的窗口。你工作区中的任何内容都不会被跳过。

***

## 配置

循环可在桌面 app 中配置：

* **启用 / 禁用。** 打开或关闭整个后台循环。
* **Tick 间隔。** tick 触发的频率。默认为 5 分钟；这也是最小值。
* **推理。** 本地模型是否在每个 tick 评估任务。如果你想仅通过手动**立即运行**按钮运行，则禁用。
* **上下文预算。** 情况报告一次可以传入多少工作区。默认值是合理的；为更丰富的上下文调高，为更紧密的成本调低。

***

## 在 UI 中

位于**智能 → 潜意识**。

* **状态栏。** 任务数、总 tick 数、上次 tick 时间、失败计数器（如果有）。
* **进行中的任务。** 系统任务（只读，带"默认"badge）和你自己的任务（切换 + 删除）。
* **需要审批。** 待处理升级的琥珀色卡片。每张有标题、描述和优先级。按钮：**继续**、**在技能中修复**（当相关时）、或**跳过**。
* **活动日志。** 每个任务评估的按时间顺序的 feed，彩色点 + 结果。当任何内容进行中时自动刷新。
* **立即运行。** 手动触发一个 tick。立即返回；UI 轮询结果。

***

## 另见

* [记忆树](obsidian-wiki/memory-tree.zh-CN.md)，情况报告从中读取。
* [从集成自动拉取](obsidian-wiki/auto-fetch.zh-CN.md)，tick 之间工作区如何保持新鲜。
* [本地 AI（可选）](model-routing/local-ai.zh-CN.md)，为评估提供支持的端侧模型。