# OpenProse

> OpenProse 是一种面向多智能体 AI 会话、以 Markdown 为先的工作流格式。在 OpenClaw 中，它以插件形式提供，包含 /prose 斜杠命令和 Skills 包。

- 网址：https://funcoding.ai/agents/openclaw/prose/
- 来源：OpenClaw 官方文档原文（中文），MIT 许可，同步于 2026-10-11
- 官方原文：https://docs.openclaw.ai/zh-CN/prose

---
OpenProse 是一种可移植、Markdown 优先的工作流格式，用于编排 AI
会话。在 OpenClaw 中，它作为插件提供，会安装 OpenProse 技能
包和 `/prose` 斜杠命令。程序存放在 `.prose` 文件中，并可
通过显式控制流生成多个子智能体。

- [安装](#install)：启用 OpenProse 插件并重启 Gateway 网关。
- [运行程序](#slash-command)：使用 `/prose run` 执行 `.prose` 文件或远程程序。
- [编写程序](#example-parallel-research-and-synthesis)：使用并行和顺序步骤编写多智能体工作流。

## 安装

**启用插件**

OpenProse 已内置，但默认禁用。启用它：

```bash
openclaw plugins enable open-prose
```

**重启 Gateway 网关**

```bash
openclaw gateway restart
```

**验证**

```bash
openclaw plugins list | grep prose
```

你应该会看到 `open-prose` 已启用。现在可以在聊天中使用
`/prose` 技能命令。

在仓库检出目录中，可以直接安装该插件：
`openclaw plugins install ./extensions/open-prose`

## 斜杠命令

OpenProse 将 `/prose` 注册为用户可调用的技能命令：

```text
/prose help
/prose run <file.prose>
/prose run <handle/slug>
/prose run <https://example.com/file.prose>
/prose compile <file.prose>
/prose examples
/prose update
```

`/prose run <handle/slug>` 会解析为 `https://p.prose.md/<handle>/<slug>`。
直接 URL 会使用 `web_fetch` 工具按原样获取。

顶层远程运行是显式的。`.prose` 程序中的远程导入属于
传递性代码依赖：在 OpenProse 获取任何远程 `use` 目标之前，
它会显示解析后的导入列表，并要求操作员针对该次运行准确回复
`approve remote prose imports`。

## 功能

- 通过显式并行机制开展多智能体研究和综合。
- 可重复且审批安全的工作流（代码审查、事件分流、内容流水线）。
- 可在受支持的 Agent Runtimes 中运行的可复用 `.prose` 程序。

## 示例：并行研究和综合

```prose
# 由两个智能体并行执行研究和综合。

input topic: "我们应该研究什么？"

agent researcher:
  model: sonnet
  prompt: "你需要进行全面研究并引用来源。"

agent writer:
  model: opus
  prompt: "你需要撰写简明摘要。"

parallel:
  findings = session: researcher
    prompt: "研究 {topic}。"
  draft = session: writer
    prompt: "总结 {topic}。"

session "将研究结果和草稿合并为最终答案。"
  context: { findings, draft }
```

## OpenClaw 运行时映射

OpenProse 程序映射到 OpenClaw 原语：

| OpenProse 概念            | OpenClaw 工具                                    |
| ------------------------- | ----------------------------------------------- |
| 生成会话 / Task 工具      | `sessions_spawn`                                |
| 文件读取 / 写入           | `read` / `write`                                |
| Web 获取                  | `web_fetch`（需要 POST 时使用 `exec` + curl） |

<div class="callout callout-warning">

如果你的工具允许列表阻止 `sessions_spawn`、`read`、`write` 或
`web_fetch`，OpenProse 程序将会失败。请检查
[工具允许列表配置](https://funcoding.ai/agents/openclaw/gateway/config-tools/)。

</div>

## 文件位置

OpenProse 将状态保存在工作区的 `.prose/` 下：

```text
.prose/
├── .env                      # 配置（key=value），例如 OPENPROSE_POSTGRES_URL
├── runs/
│   └── {YYYYMMDD}-{HHMMSS}-{random}/
│       ├── program.prose     # 正在运行的程序副本
│       ├── state.md          # 执行状态
│       ├── bindings/
│       ├── imports/          # 嵌套的远程程序运行
│       └── agents/
└── agents/                   # 项目范围的持久化智能体
```

用户级持久化智能体（跨项目共享）位于：

```text
~/.prose/agents/
```

## 状态后端

<details>
<summary>文件系统（默认）</summary>

状态写入工作区中的 `.prose/runs/...`。无需额外
依赖。

</details>

<details>
<summary>上下文内</summary>

临时状态保存在上下文窗口中；使用 `--in-context` 选择。
适用于小型、短期运行的程序。

</details>

<details>
<summary>sqlite（实验性）</summary>

使用 `--state=sqlite` 选择。要求 `PATH` 中存在 `sqlite3` 二进制文件
（缺失时回退到文件系统）；状态存储在
`.prose/runs/{id}/state.db` 中。

</details>

<details>
<summary>postgres（实验性）</summary>

使用 `--state=postgres` 选择。要求 `psql`，并在
`OPENPROSE_POSTGRES_URL` 中提供连接字符串（在 `.prose/.env` 中设置）。

<div class="callout callout-warning">

Postgres 凭据会进入子智能体日志。请使用专用的
最小权限数据库。

</div>

</details>

## 安全

将 `.prose` 文件视为代码。运行前请审查这些文件，包括远程
`use` 导入。顶层 `/prose run https://...` 请求是显式的，但
传递性远程导入在获取或执行前需要逐次运行审批。使用 OpenClaw 工具允许列表和审批门槛来控制
副作用。对于确定性且受审批门槛控制的工作流，可与
[Lobster](https://funcoding.ai/agents/openclaw/tools/lobster/) 比较。

## 相关内容

- [Skills 参考](https://funcoding.ai/agents/openclaw/tools/skills/)：OpenProse 技能包的加载方式以及适用的门槛。
- [子智能体](https://funcoding.ai/agents/openclaw/tools/subagents/)：OpenClaw 的原生多智能体协调层。
- [文本转语音](https://funcoding.ai/agents/openclaw/tools/tts/)：为工作流添加音频输出。
- [斜杠命令](https://funcoding.ai/agents/openclaw/tools/slash-commands/)：所有可用的聊天命令，包括 /prose。

官方网站：[https://www.prose.md](https://www.prose.md)
