Skip to content

图表与公式实战

All Writer 支持在 Markdown 中直接渲染 Mermaid 图表和 LaTeX 公式。写论文、技术方案、研究报告或产品文档时,你可以让 AI Agent 把复杂关系整理成「文字 + 图表 + 公式」的结构,而不是只输出大段说明。

当图表需要先梳理大量资料时,可以先让 explore_projectreview_projectresearch_context 子代理做只读摸底;子代理卡片会显示执行统计、子会话入口,并可把参考报告保存到 @system/@subagent/

什么时候用图表和公式

  • 流程复杂:用 Mermaid flowchart 表达阶段、分支、回退和人工确认。
  • 交互复杂:用 sequenceDiagram 表达用户、前端、后端、Worker、模型之间的调用顺序。
  • 状态复杂:用 stateDiagram-v2 表达草稿、审阅、发布、回滚等状态变化。
  • 需要推导:用 LaTeX 公式表达评分、成本、概率、指标口径和约束条件。
  • 需要复用:把常用图表规范写进 @system,让 Agent 后续自动按同一风格生成。

复杂流程图示例

下面示例展示「长文项目从资料进入到可审阅正文」的完整链路:资料先进入项目,Agent 读取设定和上下文,生成草稿后进入 Diff 审阅;如果质量不足,回到规划或资料补充。

markdown
```mermaid
flowchart TD
  Start([开始项目]) --> Template{选择模板?}
  Template -->|有合适模板| SystemSeed[生成目录与 @system 初稿]
  Template -->|空白项目| ManualSeed[手动创建目录与关键设定]

  SystemSeed --> Intake
  ManualSeed --> Intake

  subgraph Intake[资料进入]
    direction TB
    Upload[上传成稿/资料] --> Extract[设定抽取]
    Link[粘贴网页 URL] --> UrlMd[URL 转 Markdown]
    Notes[手写想法] --> Normalize[整理为项目资料]
    Extract --> SystemFiles[@system 文件]
    UrlMd --> SourceFiles[资料文件]
    Normalize --> SourceFiles
  end

  subgraph AgentLoop[Agent 协作循环]
    direction TB
    Plan[planning: 规划章节目标] --> Search{需要补资料?}
    Search -->|是| RAG[@base / @web 检索]
    Search -->|否| Draft[writing: 生成或续写]
    RAG --> Draft
    Draft --> Diff[Diff 审阅]
    Diff -->|接受| Review[review: 事实/逻辑/风格审阅]
    Diff -->|拒绝| Plan
    Review --> Gate{达到发布标准?}
    Gate -->|否| Fix[局部修订]
    Fix --> Diff
    Gate -->|是| Export[导出 Markdown / HTML / Word]
  end

  SystemFiles --> Plan
  SourceFiles --> Plan
  Export --> Done([完成阶段版本])

  classDef user fill:#f8fafc,stroke:#64748b,color:#0f172a;
  classDef agent fill:#eef2ff,stroke:#4f46e5,color:#312e81;
  classDef review fill:#ecfdf5,stroke:#059669,color:#064e3b;
  classDef risk fill:#fff7ed,stroke:#ea580c,color:#7c2d12;

  class Start,Template,ManualSeed,Upload,Link,Notes,Diff,Gate,Done user;
  class Extract,UrlMd,Normalize,Plan,RAG,Draft,Review,Fix agent;
  class Export,SystemFiles,SourceFiles review;
  class Search risk;
```

渲染效果:

mermaid
flowchart TD
  Start([开始项目]) --> Template{选择模板?}
  Template -->|有合适模板| SystemSeed[生成目录与 @system 初稿]
  Template -->|空白项目| ManualSeed[手动创建目录与关键设定]

  SystemSeed --> Intake
  ManualSeed --> Intake

  subgraph Intake[资料进入]
    direction TB
    Upload[上传成稿/资料] --> Extract[设定抽取]
    Link[粘贴网页 URL] --> UrlMd[URL 转 Markdown]
    Notes[手写想法] --> Normalize[整理为项目资料]
    Extract --> SystemFiles[@system 文件]
    UrlMd --> SourceFiles[资料文件]
    Normalize --> SourceFiles
  end

  subgraph AgentLoop[Agent 协作循环]
    direction TB
    Plan[planning: 规划章节目标] --> Search{需要补资料?}
    Search -->|是| RAG[@base / @web 检索]
    Search -->|否| Draft[writing: 生成或续写]
    RAG --> Draft
    Draft --> Diff[Diff 审阅]
    Diff -->|接受| Review[review: 事实/逻辑/风格审阅]
    Diff -->|拒绝| Plan
    Review --> Gate{达到发布标准?}
    Gate -->|否| Fix[局部修订]
    Fix --> Diff
    Gate -->|是| Export[导出 Markdown / HTML / Word]
  end

  SystemFiles --> Plan
  SourceFiles --> Plan
  Export --> Done([完成阶段版本])

  classDef user fill:#f8fafc,stroke:#64748b,color:#0f172a;
  classDef agent fill:#eef2ff,stroke:#4f46e5,color:#312e81;
  classDef review fill:#ecfdf5,stroke:#059669,color:#064e3b;
  classDef risk fill:#fff7ed,stroke:#ea580c,color:#7c2d12;

  class Start,Template,ManualSeed,Upload,Link,Notes,Diff,Gate,Done user;
  class Extract,UrlMd,Normalize,Plan,RAG,Draft,Review,Fix agent;
  class Export,SystemFiles,SourceFiles review;
  class Search risk;

复杂时序图示例

这个时序图适合放在产品或技术文档中,用来说明「用户发起 Agent 任务后,系统如何读取上下文、执行工具、生成 Diff 并等待用户确认」。

markdown
```mermaid
sequenceDiagram
  autonumber
  actor U as 用户
  participant UI as All Writer 前端
  participant API as 后端 API
  participant Q as Agent 队列
  participant A as AI Agent
  participant FS as 项目文件
  participant M as 模型服务

  U->>UI: 输入任务并选择阶段
  UI->>API: 发送消息、引用文件、当前草稿状态
  API->>Q: 创建 Agent 任务
  Q->>A: 分配任务

  A->>FS: 读取 @system 与目标文件
  A->>M: 请求规划下一步工具调用

  loop 工具调用循环
    alt 需要项目资料
      A->>FS: read_file / rag_search
      FS-->>A: 返回文件或检索片段
    else 需要外部资料
      A->>API: web_search / url_to_markdown
      API-->>A: 返回网页摘要或 Markdown
    else 需要修改正文
      A->>FS: edit_file / write_file
      FS-->>UI: 生成 Diff 预览
    end
    A->>M: 结合工具结果继续推理
  end

  A-->>UI: 输出总结、修改点和剩余风险
  UI-->>U: 展示回答与 Diff 队列
  U->>UI: 接受、拒绝或继续追问
```

渲染效果:

mermaid
sequenceDiagram
  autonumber
  actor U as 用户
  participant UI as All Writer 前端
  participant API as 后端 API
  participant Q as Agent 队列
  participant A as AI Agent
  participant FS as 项目文件
  participant M as 模型服务

  U->>UI: 输入任务并选择阶段
  UI->>API: 发送消息、引用文件、当前草稿状态
  API->>Q: 创建 Agent 任务
  Q->>A: 分配任务

  A->>FS: 读取 @system 与目标文件
  A->>M: 请求规划下一步工具调用

  loop 工具调用循环
    alt 需要项目资料
      A->>FS: read_file / rag_search
      FS-->>A: 返回文件或检索片段
    else 需要外部资料
      A->>API: web_search / url_to_markdown
      API-->>A: 返回网页摘要或 Markdown
    else 需要修改正文
      A->>FS: edit_file / write_file
      FS-->>UI: 生成 Diff 预览
    end
    A->>M: 结合工具结果继续推理
  end

  A-->>UI: 输出总结、修改点和剩余风险
  UI-->>U: 展示回答与 Diff 队列
  U->>UI: 接受、拒绝或继续追问

状态图示例

状态图适合描述一篇稿件在项目中的生命周期。

mermaid
stateDiagram-v2
  [*] --> 草稿
  草稿 --> 规划中: 请求 planning
  规划中 --> 待写作: 确认目录
  待写作 --> 生成中: 请求 writing
  生成中 --> 待审阅: 接受 Diff
  生成中 --> 草稿: 拒绝 Diff
  待审阅 --> 修订中: 请求 review
  修订中 --> 待审阅: 仍有问题
  修订中 --> 可导出: 通过质量门槛
  可导出 --> 已发布: 导出或发布
  已发布 --> 修订中: 发现新问题
  已发布 --> [*]

公式示例:质量评分

公式适合表达「指标如何计算」。例如给章节质量做一个可解释的加权评分:

markdown
$$
Q = 0.30S + 0.25L + 0.20F + 0.15C + 0.10R
$$

渲染效果:

$$ Q = 0.30S + 0.25L + 0.20F + 0.15C + 0.10R $$

其中:

符号含义
$S$结构完整度
$L$逻辑连贯性
$F$事实准确性
$C$风格一致性
$R$可读性

如果要把章节按风险分层,可以写成分段函数:

markdown
$$
Risk(Q)=
\begin{cases}
\text{低风险}, & Q \ge 85 \\
\text{中风险}, & 70 \le Q < 85 \\
\text{高风险}, & Q < 70
\end{cases}
$$

渲染效果:

$$ Risk(Q)= \begin{cases} \text{低风险}, & Q \ge 85 \ \text{中风险}, & 70 \le Q < 85 \ \text{高风险}, & Q < 70 \end{cases} $$

公式示例:成本估算

技术文档里也可以用公式说明 Agent 任务成本或工作量估算。下面这个公式把输入、输出、搜索和写入审阅成本拆开:

$$ C_{task} = \frac{T_{in}}{1000}P_

  • \frac{T_{out}}{1000}P_
  • N_{search}P_
  • N_{diff}P_{review} $$

约束条件可以写成:

$$ \begin{aligned} T_{in} &= T_{system} + T_{files} + T_{query} \ T_{out} &\le T_{max} \ N_{diff} &\le N_{files} \end{aligned} $$

这种写法比纯文字更容易让读者看懂变量关系,也便于后续维护口径。

让 Agent 帮你生成图表

你可以直接要求 Agent 在正文里生成 Mermaid 和公式,但要给清楚图表类型、复杂度和落点:

text
请用写作阶段修改 @技术方案.md 的“任务调度”小节。

要求:
1. 增加一个 Mermaid sequenceDiagram,参与者包含用户、前端、后端、队列、Agent、模型服务;
2. 图后用 2 段文字解释关键路径和失败回退;
3. 增加一个 LaTeX 成本估算公式,变量要在表格中解释;
4. 直接写入文件,结束后说明新增内容位置。

如果你已经有文字说明,也可以让 Agent 反向生成图表:

text
请阅读当前小节,把其中的流程整理为 Mermaid flowchart。
要求:
- 保留人工确认、失败回退和导出这 3 类分支;
- 节点名称使用中文;
- 不改变原文,只在段落后新增图表。

写作建议

  1. 图表不要孤立出现。图前说明问题,图后解释结论。
  2. Mermaid 节点文字尽量短,长说明放到正文里。
  3. 复杂图优先用 subgraph 分区,避免一张图变成线团。
  4. 公式里的变量要用表格解释,不要让读者猜。
  5. 经常使用的图表规范可以写进 @system/图表规范.md,让 Agent 后续保持一致。

相关文档