图表与公式实战
All Writer 支持在 Markdown 中直接渲染 Mermaid 图表和 LaTeX 公式。写论文、技术方案、研究报告或产品文档时,你可以让 AI Agent 把复杂关系整理成「文字 + 图表 + 公式」的结构,而不是只输出大段说明。
当图表需要先梳理大量资料时,可以先让 explore_project、review_project 或 research_context 子代理做只读摸底;子代理卡片会显示执行统计、子会话入口,并可把参考报告保存到 @system/@subagent/。
什么时候用图表和公式
- 流程复杂:用 Mermaid
flowchart表达阶段、分支、回退和人工确认。 - 交互复杂:用
sequenceDiagram表达用户、前端、后端、Worker、模型之间的调用顺序。 - 状态复杂:用
stateDiagram-v2表达草稿、审阅、发布、回滚等状态变化。 - 需要推导:用 LaTeX 公式表达评分、成本、概率、指标口径和约束条件。
- 需要复用:把常用图表规范写进
@system,让 Agent 后续自动按同一风格生成。
复杂流程图示例
下面示例展示「长文项目从资料进入到可审阅正文」的完整链路:资料先进入项目,Agent 读取设定和上下文,生成草稿后进入 Diff 审阅;如果质量不足,回到规划或资料补充。
```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;
```渲染效果:
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 并等待用户确认」。
```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: 接受、拒绝或继续追问
```渲染效果:
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: 接受、拒绝或继续追问状态图示例
状态图适合描述一篇稿件在项目中的生命周期。
stateDiagram-v2
[*] --> 草稿
草稿 --> 规划中: 请求 planning
规划中 --> 待写作: 确认目录
待写作 --> 生成中: 请求 writing
生成中 --> 待审阅: 接受 Diff
生成中 --> 草稿: 拒绝 Diff
待审阅 --> 修订中: 请求 review
修订中 --> 待审阅: 仍有问题
修订中 --> 可导出: 通过质量门槛
可导出 --> 已发布: 导出或发布
已发布 --> 修订中: 发现新问题
已发布 --> [*]公式示例:质量评分
公式适合表达「指标如何计算」。例如给章节质量做一个可解释的加权评分:
$$
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$ | 可读性 |
如果要把章节按风险分层,可以写成分段函数:
$$
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 和公式,但要给清楚图表类型、复杂度和落点:
请用写作阶段修改 @技术方案.md 的“任务调度”小节。
要求:
1. 增加一个 Mermaid sequenceDiagram,参与者包含用户、前端、后端、队列、Agent、模型服务;
2. 图后用 2 段文字解释关键路径和失败回退;
3. 增加一个 LaTeX 成本估算公式,变量要在表格中解释;
4. 直接写入文件,结束后说明新增内容位置。如果你已经有文字说明,也可以让 Agent 反向生成图表:
请阅读当前小节,把其中的流程整理为 Mermaid flowchart。
要求:
- 保留人工确认、失败回退和导出这 3 类分支;
- 节点名称使用中文;
- 不改变原文,只在段落后新增图表。写作建议
- 图表不要孤立出现。图前说明问题,图后解释结论。
- Mermaid 节点文字尽量短,长说明放到正文里。
- 复杂图优先用
subgraph分区,避免一张图变成线团。 - 公式里的变量要用表格解释,不要让读者猜。
- 经常使用的图表规范可以写进
@system/图表规范.md,让 Agent 后续保持一致。