这里写自定义目录标题
- 欢迎使用Markdown编辑器
-
- 一、从聊天机器人到智能体:范式跃迁
- 二、主流开发框架对比
- 三、工程实践的核心环节
-
- 3.1 工具定义与 Function Calling
- 3.2 结构化输出
- 3.3 安全护栏(Guardrails)
- 3.4 记忆系统设计
- 四、案例:企业级智能客服智能体
- 五、从 Demo 到生产的鸿沟
- 六、趋势与思考
- 新的改变
- 功能快捷键
- 合理的创建标题,有助于目录的生成
- 如何改变文本的样式
- 插入链接与图片
- 如何插入一段漂亮的代码片
- 生成一个适合你的列表
- 创建一个表格
-
- 设定内容居中、居左、居右
- SmartyPants
- 创建一个自定义列表
- 如何创建一个注脚
- 注释也是必不可少的
- KaTeX数学公式
- 新的甘特图功能,丰富你的文章
- UML图表
- 流程图
- FLowchart流程图
- 导出与导入
-
- 导出
- 导入
欢迎使用Markdown编辑器
你好! 这是你第一次使用# AI Agent 智能体开发:框架选型与工程实践指南
一、从聊天机器人到智能体:范式跃迁
过去我们把大模型当"对话引擎",问一句答一句。智能体(Agent)的出现改变了这个定位:模型不再是回答问题的人,而是自主完成任务的人。它接收一个目标,自行规划步骤、调用工具、获取信息、验证结果,直到任务完成。
一个完整的智能体包含四个核心能力模块:
规划(Planning):把复杂目标分解为可执行的子任务。优秀的多步推理能力让智能体能够"想清楚再做",而不是机械执行单步操作。
记忆(Memory):短期记忆保存当前任务上下文,长期记忆保存跨会话的知识与偏好。记忆是智能体"越用越懂你"的基础。
工具(Tools):通过函数调用与外部系统交互——查询数据库、调用 API、操作浏览器。工具是智能体从"会说"到"会做"的桥梁。
反思(Reflection):对执行结果进行评估与纠错,发现错误后调整策略重试。反思机制让智能体具备自我改进的能力。
这四者的组合,让智能体从"概率性的语言生成器"变成了"能承担实际工作的数字员工"。
二、主流开发框架对比
当前智能体开发框架呈现出百家争鸣的态势,各有侧重:
LangGraph:以图结构编排智能体逻辑,支持条件分支、循环、并行、人类介入等复杂控制流,工程化能力强,适合生产级复杂任务编排。它的低层设计给了开发者最大的控制权,也意味着更高的学习成本。目前企业级多智能体应用的主流选择。
CrewAI:以"角色扮演"为核心抽象,把智能体定义为具有角色、目标、背景故事的"团队成员",天然支持多智能体协作。上手快,适合任务分解清晰、角色边界明确的场景,如内容创作流水线、市场调研团队。
AutoGen:微软出品,主打"对话驱动"的多智能体协作。智能体之间通过对话交流、接力完成任务,灵活度高,适合需要动态交互的研究型场景。
Semantic Kernel:微软的另一套框架,深度整合 .NET 生态,强调与企业现有系统的融合,适合微软技术栈的企业。
Spring AI:Java 生态的适配方案,借鉴 LangChain 设计思路,让 Java 工程师能以熟悉的方式接入大模型能力。
选型建议:没有最好的框架,只有最匹配场景的框架。单智能体、逻辑简单优先选轻量方案;多智能体、控制流复杂优先 LangGraph;团队快速原型优先 CrewAI。更重要的是理解各框架背后的设计思想,因为换框架的成本远高于学框架的成本。
三、工程实践的核心环节
3.1 工具定义与 Function Calling
工具是智能体的"手脚",工具定义的规范性直接决定智能体的可靠程度。实践要点:
- 参数 schema 要精确:用强类型定义参数,包括类型、必填、枚举、描述。模糊的参数定义会让模型"自由发挥",产生大量无效调用。
-
- 工具描述要具体:模型靠描述理解工具的用途与适用场景。描述越清晰,工具被正确调用的概率越高。
-
- 错误处理要完备:工具可能失败——网络超时、参数非法、权限不足。每个工具都应返回结构化错误信息,让智能体理解失败原因并调整策略。 Function Calling 的完整流程是:模型判断需要工具 → 输出结构化调用请求 → 应用执行工具 → 结果回传 → 模型整合生成最终回答。工程上要特别注意超时控制与调用次数上限,防止智能体陷入无限循环。
3.2 结构化输出
让模型输出符合 schema 的 JSON,是智能体与业务系统对接的前提。当前主流的实现方式是 Structured Outputs:在提示词中声明输出格式,并配合模型的原生 JSON 模式约束。强类型框架(如 Pydantic)负责校验输出,不符合 schema 时自动重试。
结构化输出的价值不只是"格式正确",更在于把模型的概率输出转化为可编程的确定性数据结构,让下游系统可以安全消费。在金融、医疗等强合规场景,这一环是硬性要求。
3.3 安全护栏(Guardrails)
智能体的自主性越高,风险越大。生产级智能体必须建立多层防护:
格式层:校验输出是否符合 schema,非法输出拦截重试。
规则层:业务规则的硬约束,比如"工单金额必须为数字且大于零"“禁止输出包含敏感词的文本”。
语义层:用模型或规则引擎审查输出的业务合理性,比如"诊断结论与证据是否矛盾"。
三层校验层层递进,确保智能体的输出符合业务 SOP,而不是只靠模型自觉。这是从"Demo 能跑"到"生产可信"的关键一跃。
3.4 记忆系统设计
记忆系统是智能体长期价值的载体。设计时需要考虑:
- 短期记忆:当前会话的对话历史,通常用滑动窗口管理,超长时摘要压缩。
-
- 长期记忆:跨会话的用户偏好、历史结论、关键事实,存储在向量库中,按需检索注入。
-
- 记忆写入策略:不是所有对话都值得记住。需要设定写入规则——何时记录、记录什么、如何避免噪声污染记忆库。
四、案例:企业级智能客服智能体
以一个电商平台的智能客服为例,完整的工程架构如下:
意图层:用户消息先经过意图识别,区分售前咨询、订单查询、售后投诉、闲聊等类型,路由到不同的处理流程。
工具层:封装订单查询、物流跟踪、退换货申请、优惠券查询等 API 为工具。所有工具接入业务系统,实时获取数据。
决策层:模型基于对话历史与检索到的业务知识,决定调用哪个工具、如何组织回答。
护栏层:敏感词过滤、金额与政策校验、情绪升级机制(用户情绪激烈时转人工)。
学习层:收集失败案例,定期评估与优化提示词、工具描述与知识库。
这个架构的关键设计是"职责分离":业务逻辑沉淀在工具层,知识沉淀在知识库,模型只负责决策与表达。这样每一层都可以独立优化与验证。
五、从 Demo 到生产的鸿沟
很多团队在智能体开发中遭遇"Demo 陷阱":演示时惊艳全场,接入真实业务后频繁出错。差距往往来自这几个方面:
真实数据的复杂度:演示数据是精心挑选的,真实用户输入充满噪声、歧义与口语化表达。需要大量真实样本训练意图识别与提示词鲁棒性。
长尾场景覆盖:智能体的失败往往集中在低频但重要的长尾场景。建立完善的失败案例库,持续补充处理规则。
延迟与成本:Agent 的多步推理意味着多次模型调用,延迟和成本都数倍于单次问答。需要优化工具调用次数、引入缓存、选择性价比模型。
可观测性:生产环境必须能追踪智能体的每一步决策——它规划了什么、调用了什么工具、为什么失败。没有可观测性,排障就是大海捞针。
评估体系:为智能体建立端到端评测:任务完成率、工具调用正确率、错误恢复能力、平均耗时。每次迭代都以数据说话。
六、趋势与思考
智能体的演进路径大致清晰:从单智能体完成任务,到多智能体分工协作,再到智能体网络自治运行。产业界对智能体能力的划分已经形成共识——对话、路由、工具调用、多智能体协同、自主智能体,五个阶段逐级递进,当前产业能力集中在第三、第四阶段。
一个值得注意的转变是:开发范式从"确定性逻辑的堆砌"转向"概率性能力的引导"。业务专家从需求方变成"带教师傅",为智能体提供业务教材(SOP)并划定边界;技术人员从代码实现者变成"教务后勤",负责供给运行环境、记忆底座与技能装备;智能体则是一个需要持续纠偏的"数字员工"。这种新的研发生产关系,正在催生"Agent 产品工程师"这样的复合型岗位。
给开发者的建议:先把单智能体做到极致,再考虑多智能体;先把工具与护栏做扎实,再追求自主性;先建立评估体系,再谈持续优化。智能体的能力边界,本质上取决于你对业务的理解深度与工程纪律。
Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
功能快捷键
撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command + Shift + O 检查列表:Ctrl/Command + Shift + C 插入代码:Ctrl/Command + Shift + K 插入链接:Ctrl/Command + Shift + L 插入图片:Ctrl/Command + Shift + G 查找:Ctrl/Command + F 替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。 输入2次#,并按下space后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片: 
带尺寸的图片: ![]()
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
| 电脑 | $1600 |
| 手机 | $12 |
| 导管 | $1 |
设定内容居中、居左、居右
使用:———:居中 使用:———-居左 使用———-:居右
| 第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants 是一个文本转换工具,主要功能是将普通的 ASCII 标点符号自动转换为更美观的印刷体标点符号。例如:
| "引号" | “引号” | 直引号变弯引号 |
| '单引号' | ‘单引号’ | 直单引号变弯单引号 |
| — | – | 两个连字符变短破折号 |
| — | — | 三个连字符变长破折号 |
| … | … | 三个点变省略号 |
创建一个自定义列表
Markdown
HTML conversion tool
Authors
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示
Γ
(
n
)
=
(
n
−
1
)
!
∀
n
∈
N
\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N
Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ
(
z
)
=
∫
0
∞
t
z
−
1
e
−
t
d
t
.
\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.
Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
#mermaid-svg-bX26Jq43shHUf7Fa{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bX26Jq43shHUf7Fa .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bX26Jq43shHUf7Fa .error-icon{fill:#552222;}#mermaid-svg-bX26Jq43shHUf7Fa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bX26Jq43shHUf7Fa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bX26Jq43shHUf7Fa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bX26Jq43shHUf7Fa .marker.cross{stroke:#333333;}#mermaid-svg-bX26Jq43shHUf7Fa svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bX26Jq43shHUf7Fa p{margin:0;}#mermaid-svg-bX26Jq43shHUf7Fa .mermaid-main-font{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-bX26Jq43shHUf7Fa .exclude-range{fill:#eeeeee;}#mermaid-svg-bX26Jq43shHUf7Fa .section{stroke:none;opacity:0.2;}#mermaid-svg-bX26Jq43shHUf7Fa .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-bX26Jq43shHUf7Fa .section2{fill:#fff400;}#mermaid-svg-bX26Jq43shHUf7Fa .section1,#mermaid-svg-bX26Jq43shHUf7Fa .section3{fill:white;opacity:0.2;}#mermaid-svg-bX26Jq43shHUf7Fa .sectionTitle0{fill:#333;}#mermaid-svg-bX26Jq43shHUf7Fa .sectionTitle1{fill:#333;}#mermaid-svg-bX26Jq43shHUf7Fa .sectionTitle2{fill:#333;}#mermaid-svg-bX26Jq43shHUf7Fa .sectionTitle3{fill:#333;}#mermaid-svg-bX26Jq43shHUf7Fa .sectionTitle{text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-bX26Jq43shHUf7Fa .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-bX26Jq43shHUf7Fa .grid .tick text{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;}#mermaid-svg-bX26Jq43shHUf7Fa .grid path{stroke-width:0;}#mermaid-svg-bX26Jq43shHUf7Fa .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-bX26Jq43shHUf7Fa .task{stroke-width:2;}#mermaid-svg-bX26Jq43shHUf7Fa .taskText{text-anchor:middle;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutsideRight{fill:black;text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-bX26Jq43shHUf7Fa .task.clickable{cursor:pointer;}#mermaid-svg-bX26Jq43shHUf7Fa .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-bX26Jq43shHUf7Fa .taskText0,#mermaid-svg-bX26Jq43shHUf7Fa .taskText1,#mermaid-svg-bX26Jq43shHUf7Fa .taskText2,#mermaid-svg-bX26Jq43shHUf7Fa .taskText3{fill:white;}#mermaid-svg-bX26Jq43shHUf7Fa .task0,#mermaid-svg-bX26Jq43shHUf7Fa .task1,#mermaid-svg-bX26Jq43shHUf7Fa .task2,#mermaid-svg-bX26Jq43shHUf7Fa .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutside0,#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutside2{fill:black;}#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutside1,#mermaid-svg-bX26Jq43shHUf7Fa .taskTextOutside3{fill:black;}#mermaid-svg-bX26Jq43shHUf7Fa .active0,#mermaid-svg-bX26Jq43shHUf7Fa .active1,#mermaid-svg-bX26Jq43shHUf7Fa .active2,#mermaid-svg-bX26Jq43shHUf7Fa .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-bX26Jq43shHUf7Fa .activeText0,#mermaid-svg-bX26Jq43shHUf7Fa .activeText1,#mermaid-svg-bX26Jq43shHUf7Fa .activeText2,#mermaid-svg-bX26Jq43shHUf7Fa .activeText3{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .done0,#mermaid-svg-bX26Jq43shHUf7Fa .done1,#mermaid-svg-bX26Jq43shHUf7Fa .done2,#mermaid-svg-bX26Jq43shHUf7Fa .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-bX26Jq43shHUf7Fa .doneText0,#mermaid-svg-bX26Jq43shHUf7Fa .doneText1,#mermaid-svg-bX26Jq43shHUf7Fa .doneText2,#mermaid-svg-bX26Jq43shHUf7Fa .doneText3{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .doneText0.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneText0.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneText1.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneText1.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneText2.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneText2.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneText3.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .crit0,#mermaid-svg-bX26Jq43shHUf7Fa .crit1,#mermaid-svg-bX26Jq43shHUf7Fa .crit2,#mermaid-svg-bX26Jq43shHUf7Fa .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-bX26Jq43shHUf7Fa .activeCrit0,#mermaid-svg-bX26Jq43shHUf7Fa .activeCrit1,#mermaid-svg-bX26Jq43shHUf7Fa .activeCrit2,#mermaid-svg-bX26Jq43shHUf7Fa .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-bX26Jq43shHUf7Fa .doneCrit0,#mermaid-svg-bX26Jq43shHUf7Fa .doneCrit1,#mermaid-svg-bX26Jq43shHUf7Fa .doneCrit2,#mermaid-svg-bX26Jq43shHUf7Fa .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-bX26Jq43shHUf7Fa .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-bX26Jq43shHUf7Fa .milestoneText{font-style:italic;}#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText0,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText1,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText2,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText3{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText0.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText0.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText1.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText1.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText2.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText2.taskTextOutsideRight,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText3.taskTextOutsideLeft,#mermaid-svg-bX26Jq43shHUf7Fa .doneCritText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .vert{stroke:navy;}#mermaid-svg-bX26Jq43shHUf7Fa .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-bX26Jq43shHUf7Fa .activeCritText0,#mermaid-svg-bX26Jq43shHUf7Fa .activeCritText1,#mermaid-svg-bX26Jq43shHUf7Fa .activeCritText2,#mermaid-svg-bX26Jq43shHUf7Fa .activeCritText3{fill:black!important;}#mermaid-svg-bX26Jq43shHUf7Fa .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-bX26Jq43shHUf7Fa :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
2014-01-07
2014-01-09
2014-01-11
2014-01-13
2014-01-15
2014-01-17
2014-01-19
2014-01-21
已完成
进行中
计划一
计划二
现有任务
Adding GANTT diagram functionality to mermaid
- 关于 甘特图 语法,参考 这儿,
UML图表
可以使用UML图表进行渲染,例如下面产生的一个序列图:
王五
李四
张三
王五
李四
张三
#mermaid-svg-0T1QcFjZdpI92esE{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-0T1QcFjZdpI92esE .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-0T1QcFjZdpI92esE .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-0T1QcFjZdpI92esE .error-icon{fill:#552222;}#mermaid-svg-0T1QcFjZdpI92esE .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0T1QcFjZdpI92esE .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-0T1QcFjZdpI92esE .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0T1QcFjZdpI92esE .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0T1QcFjZdpI92esE .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-0T1QcFjZdpI92esE .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0T1QcFjZdpI92esE .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0T1QcFjZdpI92esE .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0T1QcFjZdpI92esE .marker.cross{stroke:#333333;}#mermaid-svg-0T1QcFjZdpI92esE svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0T1QcFjZdpI92esE p{margin:0;}#mermaid-svg-0T1QcFjZdpI92esE .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-0T1QcFjZdpI92esE text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-0T1QcFjZdpI92esE .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-0T1QcFjZdpI92esE .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-0T1QcFjZdpI92esE .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-0T1QcFjZdpI92esE .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-0T1QcFjZdpI92esE #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-0T1QcFjZdpI92esE .sequenceNumber{fill:white;}#mermaid-svg-0T1QcFjZdpI92esE #sequencenumber{fill:#333;}#mermaid-svg-0T1QcFjZdpI92esE #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-0T1QcFjZdpI92esE .messageText{fill:#333;stroke:none;}#mermaid-svg-0T1QcFjZdpI92esE .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-0T1QcFjZdpI92esE .labelText,#mermaid-svg-0T1QcFjZdpI92esE .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-0T1QcFjZdpI92esE .loopText,#mermaid-svg-0T1QcFjZdpI92esE .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-0T1QcFjZdpI92esE .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-0T1QcFjZdpI92esE .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-0T1QcFjZdpI92esE .noteText,#mermaid-svg-0T1QcFjZdpI92esE .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-0T1QcFjZdpI92esE .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-0T1QcFjZdpI92esE .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-0T1QcFjZdpI92esE .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-0T1QcFjZdpI92esE .actorPopupMenu{position:absolute;}#mermaid-svg-0T1QcFjZdpI92esE .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-0T1QcFjZdpI92esE .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-0T1QcFjZdpI92esE .actor-man circle,#mermaid-svg-0T1QcFjZdpI92esE line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-0T1QcFjZdpI92esE :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
李四想了很长时间, 文字太长了
不适合放在一行.
你好!李四, 最近怎么样?
你最近怎么样,王五?
我很好,谢谢!
我很好,谢谢!
打量着王五…
很好… 王五, 你怎么样?
- 关于 UML图表 语法,参考 这儿,
流程图
#mermaid-svg-DU78PdzU2WiHYfpY{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DU78PdzU2WiHYfpY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DU78PdzU2WiHYfpY .error-icon{fill:#552222;}#mermaid-svg-DU78PdzU2WiHYfpY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DU78PdzU2WiHYfpY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DU78PdzU2WiHYfpY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DU78PdzU2WiHYfpY .marker.cross{stroke:#333333;}#mermaid-svg-DU78PdzU2WiHYfpY svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DU78PdzU2WiHYfpY p{margin:0;}#mermaid-svg-DU78PdzU2WiHYfpY .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-DU78PdzU2WiHYfpY .cluster-label text{fill:#333;}#mermaid-svg-DU78PdzU2WiHYfpY .cluster-label span{color:#333;}#mermaid-svg-DU78PdzU2WiHYfpY .cluster-label span p{background-color:transparent;}#mermaid-svg-DU78PdzU2WiHYfpY .label text,#mermaid-svg-DU78PdzU2WiHYfpY span{fill:#333;color:#333;}#mermaid-svg-DU78PdzU2WiHYfpY .node rect,#mermaid-svg-DU78PdzU2WiHYfpY .node circle,#mermaid-svg-DU78PdzU2WiHYfpY .node ellipse,#mermaid-svg-DU78PdzU2WiHYfpY .node polygon,#mermaid-svg-DU78PdzU2WiHYfpY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DU78PdzU2WiHYfpY .rough-node .label text,#mermaid-svg-DU78PdzU2WiHYfpY .node .label text,#mermaid-svg-DU78PdzU2WiHYfpY .image-shape .label,#mermaid-svg-DU78PdzU2WiHYfpY .icon-shape .label{text-anchor:middle;}#mermaid-svg-DU78PdzU2WiHYfpY .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-DU78PdzU2WiHYfpY .rough-node .label,#mermaid-svg-DU78PdzU2WiHYfpY .node .label,#mermaid-svg-DU78PdzU2WiHYfpY .image-shape .label,#mermaid-svg-DU78PdzU2WiHYfpY .icon-shape .label{text-align:center;}#mermaid-svg-DU78PdzU2WiHYfpY .node.clickable{cursor:pointer;}#mermaid-svg-DU78PdzU2WiHYfpY .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-DU78PdzU2WiHYfpY .arrowheadPath{fill:#333333;}#mermaid-svg-DU78PdzU2WiHYfpY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-DU78PdzU2WiHYfpY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-DU78PdzU2WiHYfpY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DU78PdzU2WiHYfpY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DU78PdzU2WiHYfpY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DU78PdzU2WiHYfpY .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-DU78PdzU2WiHYfpY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-DU78PdzU2WiHYfpY .cluster text{fill:#333;}#mermaid-svg-DU78PdzU2WiHYfpY .cluster span{color:#333;}#mermaid-svg-DU78PdzU2WiHYfpY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-DU78PdzU2WiHYfpY .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DU78PdzU2WiHYfpY rect.text{fill:none;stroke-width:0;}#mermaid-svg-DU78PdzU2WiHYfpY .icon-shape,#mermaid-svg-DU78PdzU2WiHYfpY .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DU78PdzU2WiHYfpY .icon-shape p,#mermaid-svg-DU78PdzU2WiHYfpY .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-DU78PdzU2WiHYfpY .icon-shape .label rect,#mermaid-svg-DU78PdzU2WiHYfpY .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DU78PdzU2WiHYfpY .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-DU78PdzU2WiHYfpY .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-DU78PdzU2WiHYfpY :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
链接
长方形
圆
圆角长方形
菱形
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart.js的流程图语法:
Created with Raphaël 2.3.0
开始
我的操作
确认?
结束
yes
no
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 继续你的创作。
mermaid语法说明 ↩︎
注脚的解释 ↩︎


