# 潜意识循环

一个用于后台任务评估和执行的系统。在周期性节拍中，它会加载用户定义任务和系统任务列表，读取你工作区的当前状态，决定如何处理每一项，然后要么自主执行，要么升级给你审批。

可以把它看作智能体的空闲线程：当你停止输入后，它仍会继续思考的那一部分。

***

## 节拍如何工作

```
┌─────────────────────────────────────────────────────────┐
│                    心跳                                │
│           （在每个节拍之间休眠几分钟）                │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────┐
│                  潜意识引擎                            │
│                                                         │
│  1. 加载到期任务                                       │
│  2. 将每一项标记为进行中                               │
│  3. 构建情况报告（记忆 + 工作区）                      │
│  4. 用本地模型评估每个任务                             │
│  5. 执行决定（执行 / 不执行 / 升级）                   │
│  6. 将结果写回活动日志                                 │
└─────────────────────────────────────────────────────────┘
                       │
           ┌───────────┼───────────┐
           ▼           ▼           ▼
         不执行       执行      升级
        （跳过）    （执行）   （更深层智能体）
```

每个节拍都是独立的。如果某个节拍在下一个节拍开始时仍在运行（例如本地模型调用较慢、网络短暂中断），新的节拍会接管，旧节拍中所有进行中的条目会被标记为已取消。节拍不会叠加。

***

## 任务类型

### 系统任务

引擎启动时自动播种。不能删除，只能禁用。默认项涵盖了你希望任何助手都会监控的内容：

* 检查已连接技能是否有错误或断开连接
* 查看新的记忆更新，寻找可执行项
* 监控系统健康状况（本地模型、记忆、连接）

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

### 用户任务

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

* “检查紧急邮件”（只读）
* “向 Slack 发送每日摘要”（写入意图）
* “汇总 Notion 更新”（只读）

***

## 决定

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

| 决定 | 含义               |
| -- | ---------------- |
| 跳过 | 当前没有相关内容         |
| 执行 | 找到了相关内容，执行任务     |
| 升级 | 需要更深入的推理，交给云端智能体 |

该决定如何执行，取决于任务是否具有 **写入意图** （它请求智能体采取某种行动），或者是 **只读** （它请求智能体查看并报告）：

```
决定：跳过
  → 记录“没有新内容”，安排下次运行

决定：执行
  → 在本地模型上执行（读或写）

决定：升级
  ├─ 写入意图任务
  │   → 以完整权限运行云端智能体
  │   → 无需审批（这是你明确要求的操作）
  │
  └─ 只读任务
      → 以仅分析模式运行云端智能体
      → 如果智能体提出了未请求的推荐操作
      │   → 创建一张升级卡，供你审批
      │   → 审批后 → 以完整权限重新运行
      └─ 否则 → 记录结果，完成
```

每次任务评估都会进入活动日志，带有一个彩色圆点和简短状态：

| 状态   | 颜色     | 文本      |
| ---- | ------ | ------- |
| 进行中  | 蓝色（脉冲） | “正在评估…” |
| 已执行  | 绿色     | 结果文本    |
| 已跳过  | 灰色     | “没有新内容” |
| 等待审批 | 琥珀色    | “等待审批”  |
| 失败   | 珊瑚色    | 错误信息    |
| 已取消  | 灰色     | “已取消”   |
| 已忽略  | 灰色     | “已跳过”   |

***

## 两个模型，一个循环

| 阶段                | 运行位置         | 原因                |
| ----------------- | ------------ | ----------------- |
| 逐任务评估（每个节拍）       | 本地模型（Ollama） | 免费、无速率限制、在设备上运行良好 |
| 纯文本执行（摘要、检查）      | 本地模型         | 相同                |
| 使用工具的执行（发送、发布，……） | 云端智能体        | 工具、更大的上下文、速率限制重试  |
| 针对升级读取的分析模式       | 云端智能体（只读）    | 当本地模型放弃时进行更深层推理   |

这种拆分让循环成本更低：只有当任务确实需要云端调用时，你才需要付费。

***

## 审批门槛

只有当智能体想要执行一项 **你未明确要求的写入操作**.

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

审批流程：

1. 云端智能体以仅分析模式运行。
2. 它会给出一条建议，例如 *“将 3 封紧急邮件转发到 #team-alerts。”*
3. 界面中会出现一张升级卡，位于 **需要审批**.
4. **继续执行** 会以完整权限重新运行。
5. **跳过** 不会执行任何操作。

与技能相关的升级（集成损坏、OAuth 过期、缺少权限范围）会显示一个 **在技能中修复** 按钮，直接带你进入技能页面。

***

## 故障处理

故障计数器会跟踪整个评估步骤连续失败的节拍次数（本地模型不可用、网络中断）。任何一次成功的节拍都会将其重置为零，当数值非零时，它会以珊瑚色显示在界面状态栏中。

单个任务的失败不会触发这个计数器，节拍本身仍被视为成功。

如果某个节拍失败或被取消，引擎不会推进其“最后查看”时间戳，因此下一次成功的节拍会覆盖相同的时间窗口。你的工作区中不会有任何内容被跳过。

***

## 配置

该循环可在桌面应用中配置：

* **启用 / 禁用。** 打开或关闭整个后台循环。
* **节拍间隔。** 节拍触发的频率。默认为 5 分钟；这也是最小值。
* **推理。** 本地模型是否在每个节拍评估任务。如果你更愿意只通过手动的 **立即运行** 按钮来执行任务，可以关闭它。
* **上下文预算。** 一次可以传入多少工作区情况报告。默认值已经足够合理；如果需要更丰富的上下文可以提高它，如果想控制成本则可以降低它。

***

## 在界面中

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

* **状态栏。** 任务数量、总节拍数、上次节拍时间、故障计数器（如果有）。
* **活动任务。** 系统任务（只读，带“默认”徽章）和你自己的任务（切换 + 删除）。
* **需要审批。** 用于待处理升级的琥珀色卡片。每张都有标题、描述和优先级。按钮： **继续执行**, **在技能中修复** （在适用时），或 **跳过**.
* **活动日志。** 按时间顺序排列的每次任务评估记录，彩色圆点 + 结果。在任何内容进行中时会自动刷新。
* **立即运行。** 手动触发一个节拍。会立即返回；界面会轮询结果。

***

## 另请参见

* [记忆树](/openhuman/zh/gong-neng/obsidian-wiki/memory-tree.md)，情况报告从这里读取。
* [从集成自动获取](/openhuman/zh/gong-neng/obsidian-wiki/auto-fetch.md)，工作区如何在两个节拍之间保持最新。
* [本地 AI（可选）](/openhuman/zh/gong-neng/model-routing/local-ai.md)，用于驱动评估的设备端模型。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tinyhumans.gitbook.io/openhuman/zh/gong-neng/subconscious.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
