> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/gong-neng/workflows.md).

# 工作流

<figure><img src="/files/d7067775145070d6b03fc3fa604dd92e8df05168" alt=""><figcaption><p>视觉画布上的一个工作流。智能体提出图结构；你审核每一步并保存。</p></figcaption></figure>

聊天适合一次性的请求。 **工作流** 用于你希望完成的事情 *每次*：对每封新的支持邮件进行分流，归档每个提到你团队的 Linear 工单，每周一 9 点发布摘要。深受 [n8n](https://n8n.io) 和 [Zapier](https://zapier.com)，工作流是一个已保存、带类型的步骤图，你可以在画布上看到它，并且它会在无人干预下运行。它由开源的 [tinyflows](https://github.com/tinyhumansai/tinyflows) 引擎以及与 OpenHuman 其余部分相同的信任与审批机制提供支持。与 n8n 和 Zapier 的不同之处在于：图不是由你构建，而是由智能体构建。

## 智能体构建，你审批

你不需要拖拽方块就能开始。在聊天中描述自动化，例如 *“每当有新邮件来自客户时，先总结，然后发到我的 Slack”*，智能体会使用其 `propose_workflow` 工具来起草完整的工作流图。该提案会以 **工作流提案卡** 的形式出现在聊天中，并附带每一步的通俗英文摘要。

两项设计保障使其安全：

* 该 `propose_workflow` 工具 **只会验证并描述** 一个候选图。它本身绝不可能创建或启用某个流程。
* 该 **只有** 从提案到 *新的* 已保存工作流的路径是你点击 **保存并启用** 卡片上的该按钮。这会调用 `flows_create` RPC，直接从应用中发起，而不是由智能体发起。

一个有意的例外：当 *你* 开始构建时（Workflows 页面提示栏会先创建该流程并为其打开副驾），构建智能体可能会用其 `save_workflow` 工具完成剩余工作——它会把构建好的图写入那个 **已经存在的** 流程上，前提是先进行一次沙盒干运行。它仍然不能自行创建流程，不能启用或禁用流程，也不能更改审批门槛，而真正的测试运行始终需要你先明确确认。

## 工作流由什么组成

工作流图由 **12 种节点类型**：且只有一个 `触发器`，再加上任意组合的 `智能体` （一次包含工具使用的完整智能体回合）， `工具调用`, `HTTP 请求`, `代码` （JavaScript 或 Python）， `条件`, `分支`, `转换`, `拆分输出`, `合并`, `输出解析器`，以及 `子工作流`.

触发器有几种类型。当前可用的有：

* **定时**：由 cron 支持；流程按计划触发，并在每次应用启动时重新注册自身。
* **应用事件**：一个实时的 [触发器](/openhuman/zh/gong-neng/integrations/triggers.md) 来自已连接集成（新的 Gmail 线程、Notion 变更、Linear 工单），由工具包 + 触发器 slug 匹配。
* **手动**：Workflows 页面上的运行按钮或 `flows_run` RPC。
* **继续**：继续一个暂停在审批门槛处的运行。

每个流程的分发锁意味着一次定时触发爆发绝不会并发运行同一流程两次。

## 信任、审批与人工介入

每次流程运行都在专用信任来源（`TrustedAutomation → Workflow`）下执行。原因是：该流程的 *动作* （它调用哪些工具、访问哪些 URL）是你在保存时批准的静态图配置。运行时触发载荷（Webhook 正文、入站事件）保持 **不受信任**：它可以为这些预先声明的动作提供参数，但绝不会引入新的动作。

此外，每个流程都有一个 **“要求对外发动作审批”** 开关。开启后，运行中的每个产生外部影响的工具或 HTTP 调用都会停在 [审批门槛](/openhuman/zh/gong-neng/approval-gate.md) 处，并等待真实决定。该运行的信任根不会自动允许任何事情。

当运行暂停时，你会收到一张 **流程审批卡** 的通知，其中列出流程和待处理步骤。批准后会恢复运行（通过 `flows_resume`）并精确从停止处继续。运行是持久化且有检查点的，所以“今天稍后”也没问题。

## 观看它运行

* **`/flows`**：Workflows 中心，显示每个流程及其启用开关、上次运行状态（`已完成` / `待审批` / `失败`），以及一个运行按钮。
* **`/flows/:id`**：一个只读的 **画布视图** 的工作流图，以节点和边的形式渲染，让你清楚看到自己批准了什么。
* **运行检查器**：一个抽屉面板，逐步显示每次运行（节点标签、输出内容和最终状态），每 2 秒实时轮询一次，直到运行结束。
* 完整 **运行历史** 按每个流程持久化：状态、开始/结束时间、待审批项、错误以及重建的逐步输出。

## RPC 接口（供开发者使用）

该 `flows` 域（`src/openhuman/flows/`）下公开 10 个控制器，位于 `openhuman.flows_*`: `创建`, `获取`, `列表`, `更新`, `删除`, `设置启用状态`, `运行`, `继续`, `列出运行`, `获取运行`。参见 [智能体执行框架](/openhuman/zh/kai-fa/architecture/agent-harness.md) 页面，了解流程运行如何共享 tinyagents 执行栈。

## 另见

* [触发器](/openhuman/zh/gong-neng/integrations/triggers.md)：触发的实时应用事件 `app_event` 工作流。
* [审批门槛](/openhuman/zh/gong-neng/approval-gate.md)：待审批项如何展示以及如何过期。
* [Cron 与调度](/openhuman/zh/gong-neng/native-tools/cron.md)：一次性和重复性的智能体任务（工作流是其结构化的多步升级版）。
* [潜意识循环](/openhuman/zh/gong-neng/subconscious.md)：补充事件驱动工作流的后台感知层。
