> ## Documentation Index
> Fetch the complete documentation index at: https://docs.soloent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows（工作流）

> 将重复性写作任务封装为可复用的步骤文件，用一条命令驱动完整流程

Workflows 是 Markdown 文件，定义了一系列引导 Agent 完成复杂或重复任务的步骤。在编辑器中输入 `/` 加工作流文件名即可调用（例如 `/bookcover.md`）。

写作是一个工程，包含很多不同的阶段，为了提升写作的效果，每个阶段又可以细分成很多小的步骤。比如写完大纲、要写卷纲、要从卷纲再细化成章纲，章纲可能还需要 4-5 步来保证质量。这些任务往往需要记住十几个步骤、按正确顺序操作、逐一更新文件。漏掉一步就得重来。
Workflows 把这些多步流程变成一条命令。输入 `/chapteroutline.md`，Agent 就会加载故事设定、产出章纲、等待你确认后再继续。以后的每一章都可以复用这同一个命令。你只需要审阅和决策。

## 调用工作流

在对话框中输入 `/`，SoloEnt 会显示所有可用的工作流。继续输入文件名可以筛选，例如输入 `/book` 会匹配 `bookcover.md`。选中后按回车启动。

<img src="https://mintcdn.com/soloent/5L9WxA69eDjQqPG_/assets/images/workflows1.png?fit=max&auto=format&n=5L9WxA69eDjQqPG_&q=85&s=20328999988c058243a49c54c1bf5bd3" alt="在对话框输入 /bo，自动补全显示匹配的 bookcover.md 工作流" style={{ width: '70%' }} width="784" height="374" data-path="assets/images/workflows1.png" />

Agent 会按顺序执行每个步骤，需要你决策时会暂停等待。你可以随时在对话中中断工作流。

<Tip>
  完成一个新任务后，告诉 Agent："把刚才的流程整理成工作流文件。" Agent 会自动分析对话、提取步骤并生成工作流文件。你积累的经验直接变成可复用的自动化。
</Tip>

## 工作流存放位置

工作流可以存放在两个位置：你的写作项目目录，或系统全局目录。

**全局工作流**存放在系统级目录中，在所有项目中都可以调用。适合通用流程，例如封面提示词生成、通用作品审核流程、发行建议等。

**项目工作流**存放在项目根目录的 `.soloent/workflows/` 中。适合与这个项目绑定的流程，例如这本书的章纲节奏、这个系列的特定检查规则。

```text theme={null}
your-novel/
├── .soloent/
│   └── workflows/         # 项目工作流（仅限本项目）
│       └── chapteroutline.md
├── SOLOENT.md
├── chapters/
└── ...
```

<Warning>
  同名工作流中，项目工作流优先于全局工作流。
</Warning>

### 工作流开关

每个工作流都有独立的开关，控制它是否出现在 `/` 菜单中，无需删除文件。

如果不使用命令驱动，工作流不会自动运行。

## 创建工作流

<img src="https://mintcdn.com/soloent/5L9WxA69eDjQqPG_/assets/images/workflows2.png?fit=max&auto=format&n=5L9WxA69eDjQqPG_&q=85&s=45267b660f4fcf4a43fc8c8951facb8b" alt="Workflows 面板，显示全局工作流列表（bookcover.md、chapteroutline.md、outline.md）及各自的开关、编辑和删除控件" style={{ width: '70%' }} width="790" height="740" data-path="assets/images/workflows2.png" />

<Steps>
  <Step title="打开工作流菜单">
    点击 Agent 面板中的图标（左数第四个），切换到工作流管理器。
  </Step>

  <Step title="新建工作流文件">
    点击"New workflow file..."，输入文件名（例如 `bookcover`），点击“+”。文件会以 `.md` 扩展名创建。
  </Step>

  <Step title="编写工作流步骤">
    添加标题和步骤，用 Markdown 格式写下每个步骤要完成的事情。
  </Step>
</Steps>

## 工作流结构

工作流是一个带有标题和步骤的 Markdown 文件。文件名就是调用命令：`bookcover.md` 用 `/bookcover.md` 调用。

工作流要求的步骤可以有不同的详细程度：

* **高层指令**："分析小说大纲，提取主角性格特征"——让 Agent 决定如何执行
* **精确控制**：使用具体的格式要求或模板——当你需要固定输出时

## 工作流里可以写什么

### 自然语言指令

用普通文字写步骤，Agent 会理解并执行：

```markdown theme={null}
## 步骤 1：分析小说基础信息
读取 SOLOENT.md，提取：书名、主要人物、世界观基调、故事类型。
如果信息不足，向作者提问，等待回答后继续。

## 步骤 2：确认封面方向
根据故事基调，提议三种封面设计方向，等待作者选择。
```

这种方式适合步骤逻辑清晰但执行细节需要 Agent 灵活判断的场景。

### 精确模板控制

当你需要固定输出格式时，直接把模板写入工作流：

````markdown theme={null}
## 步骤 3：生成封面提示词

使用以下模板生成提示词，替换 `***` 部分：

```
请为我的小说"***"生成一张书封面。
尺寸：600×800 像素（印刷版请用 1800×2400）

设计元素：
- 背景：
- 色调：
- 意象：

排版：
- 书名：粗体优雅的衬线字体
- 作者名：简洁的无衬线字体

版式：
[顶部 20%] 留白与氛围
[中部 40%] 书名
[底部 30%] 作者名
[底部 10%] 可选 tagline
```
````

## 示例工作流

### 封面提示词生成

这个工作流先理解小说再生成封面提示词，避免直接生成的封面与故事气质脱节。

```markdown theme={null}
# 书籍封面提示词

为这本小说生成一张封面提示词。

## 步骤 1：理解小说
读取 SOLOENT.md，了解大纲和主要人物。如果没有 SOLOENT.md，或 SOLOENT.md 中没有完善的作品信息，请询问作者：
- 书名和作者名
- 故事类型和基调（明亮/阴暗/奇幻/现实……）
- 主要意象或标志性场景

## 步骤 2：生成封面提示词

使用以下模板，将所有 `***` 替换为具体内容：

请为我的小说"***"生成一张书封面。
尺寸：600×800 像素（印刷版请用 1800×2400）

设计元素：
- 背景：
- 色调：
- 意象：

排版：
- 书名：粗体优雅的衬线字体，轻微做旧质感
- 作者名：简洁的无衬线字体
- 可选 tagline：""

版式：
[顶部 20%] 留白与极光效果
[中部 40%] 书名
[底部 30%] 作者名
[底部 10%] 可选 tagline 小字
```

### 分批章纲生成

这个工作流将长篇小说的章纲拆分为多个批次，每批确认后再继续，防止 Agent 一次性输出过多难以审阅。

````markdown theme={null}
# 分批章纲生成

每次生成 5 章的详细章纲，按批次确认。

**每章字数锚定：2000-3000 字**

## 步骤 1：提议本批次章节

读取 SOLOENT.md 中的故事大纲，提议本批次章节范围（第 X 章到第 Y 章）：
- 明确本批次覆盖的章节编号
- 参考样板书的章节节奏（如：高潮前必须压抑 2 章）
- 为每章提供一句话概括

**等待作者确认概括，确认后进入下一步。**

## 步骤 2：细化每章章纲

对本批次的每章输出完整章纲，使用以下格式：

```markdown
## 第 X 章：[章节标题]

**章节梗概**：[一句话概括]

**场景拆解**：
- 场景 1：[发生了什么] + [写法指导：情绪基调、细节要求]
- 场景 2：[发生了什么] + [写法指导：情绪基调、细节要求]

**伏笔与线索**：
- 埋入：[新伏笔]（预计第 Y 章收回）
- 推进：[推进的已有线索]
- 收回：[收回的伏笔]（呼应第 Z 章）

**结尾钩子**：[悬念点]
```

**等待作者确认本批次，确认后进入步骤 3。**

## 步骤 3：设定回溯与动态修正

完成一批章纲后执行：

- **金手指检视**：检查现有设定能否支撑本卷爽点？如不能，提议修改方案
- **人设检视**：本卷是否需要新配角？主角是否有性格成长？

**等待作者确认后，回到步骤 1 继续下一批，或结束本卷章纲。**
````

## 如何写出有效的工作流

* **先写简单版。** 先用自然语言描述步骤，只在需要固定输出时才加入精确模板。
* **明确决策点。** 如果某步骤需要你做选择，明确写出："等待作者确认后继续。"
* **说明失败处理。** 告诉 Agent 出错时怎么做："如果信息不足，向作者提问，不要自行假设。"
* **保持聚焦。** `bookcover.md` 只做封面，`chapteroutline.md` 只做章纲。复杂流程拆成多个工作流独立运行。

<Warning>
  工作流以你的权限执行，会读取和修改你的项目文件。在运行来自外部来源的工作流之前，先检查其内容。
</Warning>

## Workflows 与 Commands 的区别

内置命令（`/review`、`/marketing`）是 SoloEnt 预置的工作流，由专业写作专家设计，开箱即用。Workflows 是你自己定义的工作流，完全根据你的项目和习惯定制。

两者可以互补：用内置命令完成标准化检查，用自定义工作流自动化你独有的创作流程。

## 故障排除

<AccordionGroup>
  <Accordion title="工作流不出现在 / 菜单中">
    **请检查以下几点：**

    * 工作流必须在 Workflows 面板中处于启用状态——已关闭的工作流不会出现在菜单中
    * 文件必须有 `.md` 扩展名，并放置在全局工作流目录或项目的 `.soloent/workflows/` 目录中
    * 如果刚刚创建了文件，尝试关闭并重新打开面板以刷新列表
  </Accordion>

  <Accordion title="Agent 跳过了某些步骤，或没有暂停等待确认">
    **Agent 会自动推进，除非明确告知要等待。**

    * 在每个决策节点加入明确的暂停指令："等待作者确认后继续"
    * 避免把所有步骤写成连续段落——拆分为独立的编号章节，让 Agent 将每节视为独立阶段
    * 如果某步骤被完全跳过，检查它是否可达（是否被 Agent 误读为示例的模板块里）
  </Accordion>

  <Accordion title="工作流找不到项目文件">
    **最可能的原因**：工作流中的文件路径与实际项目结构不一致。

    * 使用从项目根目录开始的相对路径（例如 `SOLOENT.md`、`chapters/ch-01.md`）
    * 如果工作流读取 `SOLOENT.md` 但该文件不存在，Agent 可能静默失败——添加回退指令："如果 SOLOENT.md 不存在，向作者询问所需信息"
    * 项目工作流在当前打开的项目目录上下文中运行——调用命令时确保打开了正确的项目
  </Accordion>

  <Accordion title="项目工作流没有覆盖同名的全局工作流">
    **项目工作流会优先生效，但前提是文件名完全一致。**

    * 确认文件名（含扩展名）完全相同：`chapteroutline.md` vs `chapteroutline.md`
    * 名称哪怕差一个字符，两个工作流就会同时独立存在，互不覆盖
    * 确认项目工作流保存在项目根目录的 `.soloent/workflows/` 中，而不是子目录里
  </Accordion>

  <Accordion title="工作流修改了我没有预期它会碰的文件">
    **工作流以你的完整权限运行，可以读取和修改项目中的任何文件。**

    * 运行前先仔细阅读工作流的步骤，尤其是来自外部来源的工作流
    * 如果某个文件被意外修改，检查是否有步骤包含宽泛的指令（如"更新所有章节文件"）——明确限定操作范围
    * 对于会写入输出文件的工作流，在步骤中指定精确的目标路径，防止 Agent 自行选择位置
  </Accordion>
</AccordionGroup>

## 更多高级技巧

<CardGroup cols={2}>
  <Card title="命令（Commands）" icon="terminal" href="/zh/tips/commands">
    了解 SoloEnt 内置的 /review 和 /marketing 命令
  </Card>

  <Card title="Rules（规则）" icon="scroll" href="/zh/tips/rules">
    用规则记录你的写作习惯，与工作流配合使用
  </Card>
</CardGroup>
