MetaGPT模拟软件公司的人员分工,让不同角色的AI Agent像团队一样协作完成开发任务,从产品经理到架构师到工程师各司其职。这篇文章带你了解它的角色协作流程、消息传递机制、SOP标准流程、适用场景和局限,适合研究多智能体协作和Agent范式的开发者参考,帮你理解多智能体协作的最佳实践和经验的总结。
需要学习MetaGPT角色协作,NLP前沿迭代极快,跟踪最新论文是必备能力。本篇涵盖AGI/世界模型/脑机接口/前沿论文,帮助你跟踪AI前沿趋势。
目录
可视化演示
可视化AI Agent角色协作流程、共享消息池通信机制与软件开发流水线,滑块调节SOP强度观察协作效率变化。
本节配有交互动效(进入视口后自动加载,约 3KB)。
角色协作:PM→架构师→工程师→QA各司其职 PM:需求分析与产品规划 架构:系统设计与技术选型 工程:编码实现与单元测试 Output = PM(Arch(Eng(QA(x)))) SOP标准流程驱动协作
MetaGPT的定义与核心动机
MetaGPT是由DeepWisdom团队于2023年提出的多智能体协作框架,其核心理念是模拟真实软件公司的组织结构,让多个AI Agent按照明确定义的角色分工协作完成软件开发任务。与传统多Agent框架(如CAMEL、AutoGen等)不同,MetaGPT的出发点并非简单地让多个Agent通过自然语言对话解决问题,而是借鉴人类组织中经过长期验证的标准作业流程(SOP, Standard Operating Procedure),将这种结构化的协作模式引入多Agent系统。MetaGPT的论文标题'Meta Programming for Multi-Agent Collaborative Framework'揭示了其核心思想:通过元编程的方式让Agent按照标准化流程产出结构化文档,而非自由对话。
MetaGPT的核心动机源于对现有多Agent通信机制的深刻反思。在传统的多Agent系统中,Agent之间通过自然语言进行自由对话来协作完成任务。这种方式存在严重的信息损失问题:自然语言本身具有模糊性和歧义性,Agent在对话过程中容易丢失关键信息、产生误解或偏离主题。研究表明,随着对话轮次的增加,信息保真度急剧下降,导致最终产出质量不稳定。这就像一群人没有明确分工和流程规范地自由讨论,虽然可能产生一些想法,但很难系统性地完成一个复杂的工程项目。
人类组织解决复杂任务的方式为MetaGPT提供了核心灵感。软件公司通过明确的组织架构(产品经理、架构师、工程师、测试工程师等角色)和标准化的工作流程(需求分析、架构设计、编码实现、测试验证等阶段)来保证协作质量。每个角色有明确的输入、输出和职责边界,角色之间通过标准化文档(PRD、设计文档、任务列表、代码、测试报告等)进行交接。这种SOP驱动的协作模式经过数十年的实践验证,能够有效控制信息损失、保证产出质量。MetaGPT正是将这种人类组织智慧'迁移'到了多Agent系统中。
从技术架构角度看,MetaGPT在LLM之上构建了一个'虚拟软件公司'的抽象层。这个抽象层包含三个核心组件:角色定义层(定义每个Agent的身份、职责和能力边界)、消息传递层(基于共享消息池的结构化文档传递机制)和工作流程层(定义角色之间的执行顺序和依赖关系的SOP流水线)。这三个组件共同构成了MetaGPT区别于其他多Agent框架的核心竞争力——不是让Agent更聪明地对话,而是让Agent按照经过验证的组织协作模式高效工作。
角色定义与SOP标准操作流程
MetaGPT定义了五个核心角色,每个角色对应软件公司中的一个关键岗位。产品经理(Product Manager)负责接收用户的自然语言需求,通过结构化分析输出标准化的产品需求文档(PRD)。架构师(Architect)基于PRD进行系统设计,输出包含技术选型、模块划分和接口规范的架构设计文档。项目经理(Project Manager)将架构设计拆分为可执行的任务列表,定义任务之间的依赖关系和优先级。工程师(Engineer)根据任务列表和架构设计编写代码实现。QA工程师(QA Engineer)编写测试用例对代码进行验证,输出测试报告并反馈发现的问题。
每个角色的SOP(标准操作流程)严格定义了三个关键要素:输入格式、处理逻辑和输出格式。以产品经理为例,其SOP规定:输入是用户的原始需求描述(自然语言),处理逻辑是通过结构化分析提取功能需求、用户画像、优先级等信息,输出是符合固定模板的PRD文档(必须包含功能列表、用户故事、非功能需求、验收标准等固定章节)。这种SOP约束确保了每个角色的产出是结构化、可预测、可被下游角色直接使用的。SOP不是由Agent自主生成的,而是框架设计者预先定义的固定规范,所有Agent必须严格遵守。
角色定义的技术实现基于Prompt Engineering和Action抽象。每个Role(角色)对象包含三个核心属性:profile(角色身份描述,用于设定LLM的角色prompt)、actions(该角色可以执行的动作列表,每个Action对应一个标准化的输出模板)和rc(Role Context,存储该角色可访问的上下文信息)。当角色需要执行任务时,它从Role Context中获取输入文档,按照Action定义的模板调用LLM生成结构化输出,然后将输出发布到共享消息池中。这种设计使得角色的行为高度可控——通过修改profile可以调整角色的专业倾向,通过修改Action模板可以调整输出格式。
SOP标准操作流程的引入带来了两个关键优势。第一是产出质量的可控性:由于每个角色的输出格式被SOP固定,LLM不会'自由发挥'遗漏关键信息,例如PRD必须包含功能列表和验收标准,架构文档必须包含接口规范。第二是角色间协作的可靠性:下游角色可以可靠地解析上游角色的输出,因为格式是标准化的。工程师不需要从一段模糊的自然语言描述中猜测架构设计,而是直接解析结构化的设计文档。这种确定性是多Agent系统从'玩具'走向'实用'的关键一步。
结构化消息传递与共享消息池
MetaGPT使用共享消息池(Shared Message Pool)作为Agent间通信的核心机制,这是一种基于发布-订阅模式(Publish-Subscribe Pattern)的结构化通信架构。所有Agent向消息池发布(Publish)自己产出的结构化文档,同时订阅(Subscribe)自己需要的文档类型。例如,架构师发布设计文档到消息池,工程师订阅设计文档从中获取编码所需的架构信息。这种解耦的通信方式使得Agent之间不需要直接知道彼此的存在,只需要知道'需要什么类型的文档'和'自己产出什么类型的文档'。
共享消息池中传递的不是自然语言对话,而是标准化的结构化文档。这些文档包括:PRD(产品需求文档,包含功能列表、用户画像、优先级等)、系统设计文档(包含技术选型、模块划分、接口定义等)、任务列表(包含任务名称、描述、依赖关系、负责角色等)、代码文件(按照架构设计实现的源代码)和测试报告(包含测试用例、执行结果、发现的缺陷等)。每种文档都有严格的Schema定义,确保所有Agent对文档格式有一致的理解。这种结构化文档传递是MetaGPT区别于CAMEL等自然语言对话框架的核心设计。
消息过滤机制是共享消息池的关键组件。由于消息池中包含所有角色发布的所有文档,每个角色需要根据自身的订阅规则从消息池中筛选出与自己相关的文档。MetaGPT通过消息标签(Message Tag)和角色订阅表(Subscription Table)实现高效的消息过滤。每条发布到消息池的文档都带有类型标签(如'PRD'、'DesignDoc'、'Code'等),每个角色维护一个订阅列表声明自己关心的文档类型。当角色执行动作时,它只从消息池中获取订阅列表匹配的文档,避免了信息过载。
结构化消息传递相比自然语言对话在信息保真度方面有显著优势。自然语言对话中,信息在多次转述后容易失真——就像'传话游戏'一样,原始信息经过多次传递后往往面目全非。而结构化文档传递中,每个角色直接访问原始文档,不需要中间角色的转述或总结。工程师直接读取架构师发布的设计文档,而不是通过项目经理的口头传达来了解架构设计。这种'一次发布、直接访问'的模式从根本上消除了信息在传递过程中的损失和失真,是MetaGPT协作质量高于纯对话式多Agent系统的技术基础。
软件开发流水线工作流程
MetaGPT的软件开发流水线严格模拟了真实软件公司的开发流程,形成一个串行的工作流:用户需求输入 -> 产品经理输出PRD -> 架构师基于PRD输出系统设计 -> 项目经理基于设计输出任务列表 -> 工程师基于任务和设计编写代码 -> QA工程师测试代码并输出测试报告。每个阶段的输出作为下一个阶段的输入,形成一条完整的文档驱动流水线。这种串行设计不是技术限制,而是刻意为之——它反映了软件工程中'先设计后编码'的基本原理,下游角色的工作质量直接依赖于上游角色的产出质量。
文档传递机制是流水线的核心驱动力。在每个阶段转换时,上游角色产出的结构化文档被发布到共享消息池中,下游角色从消息池中获取所需文档作为工作输入。具体来说,架构师从消息池获取PRD文档作为设计输入,项目经理从消息池获取设计文档作为任务拆分输入,工程师从消息池获取任务列表和设计文档作为编码输入,QA工程师从消息池获取代码和测试需求作为测试输入。这种基于文档的传递确保了每个角色都能获取完整、准确的上下文信息,不会因为信息遗漏而做出错误决策。
反馈循环是流水线中保证质量的关键机制。当QA工程师在测试阶段发现代码缺陷时,它会将缺陷描述和复现步骤以结构化的测试报告形式发布到消息池中。工程师从消息池获取测试报告,定位并修复代码中的问题,然后重新发布修复后的代码。这个'测试-反馈-修复'循环可能重复多次,直到所有测试用例通过。这种反馈机制模拟了真实软件开发中的Bug修复流程,通过QA和工程师之间的多轮协作逐步提升代码质量。MetaGPT还支持增量开发模式,在多轮迭代中逐步完善软件产品。
流水线中的并行度设计值得关注。虽然阶段之间是串行的(产品经理完成后架构师才开始),但同一阶段内部可以存在并行。例如,当项目经理将开发任务拆分为多个独立模块后,多个工程师Agent可以并行编写不同模块的代码。这种'阶段串行、阶段内并行'的设计在保证流程规范性的同时提升了执行效率。然而,整体并行度受限于SOP的串行阶段设计——这是MetaGPT为了提高产出质量而做出的有意取舍,用并行度换取了确定性和可控性。
SOP驱动的质量保证机制
MetaGPT的SOP不仅是工作流程规范,更是一套系统性的质量保证机制。SOP通过约束每个角色的输出格式来减少信息遗漏和Agent幻觉。当产品经理按照PRD模板输出需求文档时,模板中的必填字段(如功能列表、用户画像、验收标准)强制LLM生成完整的需求分析,不会因为'偷懒'而遗漏关键内容。同样,架构师的设计文档模板要求必须包含接口定义和模块划分,避免了架构设计中常见的'只画大饼不落地'问题。这种结构化约束比自由生成更可控,显著降低了LLM的幻觉风险。
下游角色对上游文档的隐式评审是SOP质量保证的另一重要环节。在流水线中,每个下游角色在使用上游文档时,实际上对上游产出进行了一次'评审'。例如,架构师在根据PRD进行设计时,如果发现PRD中某些需求描述不明确或存在矛盾,架构师会在设计文档中标注这些问题,这些问题最终会反馈给产品经理进行澄清。这种隐式评审机制类似于软件开发中的Code Review和Design Review,通过多角色的交叉检查提升整体产出质量。每个角色既是上游产出的消费者,也是上游质量的监督者。
结构化文档链的可追溯性是质量保证的重要支撑。在MetaGPT中,从用户原始需求到最终代码,每一步都有对应的结构化文档记录:PRD记录了需求分析过程,设计文档记录了架构决策,任务列表记录了任务拆分逻辑,代码实现了具体功能,测试报告记录了验证结果。当最终产品出现问题时,可以沿着文档链逆向追溯:代码Bug可以追溯到哪个任务,任务对应哪个设计模块,设计基于哪条需求。这种端到端的可追溯性在自然语言对话式多Agent系统中几乎不可能实现,因为对话记录难以结构化地关联到最终产出。
SOP驱动的质量保证与传统软件工程中的质量保证有着深刻的对应关系。传统软件开发中,ISO 9001等质量标准要求每个开发阶段有明确的输入、输出和评审流程;CMMI模型定义了从初始级到优化级的过程成熟度等级。MetaGPT将这些人类组织经过数十年积累的质量管理最佳实践'编码'到了多Agent系统中。SOP模板对应质量标准中的文档规范,流水线对应过程控制,反馈循环对应纠正措施,文档链对应质量记录。这种将人类组织管理智慧系统化的方法,是MetaGPT最具创新性的贡献之一。
MetaGPT的局限性与适用场景
MetaGPT的固定SOP流程是其最大的优势也是最大的局限。SOP的预定义性意味着工作流程在框架设计时就已确定,Agent无法根据具体任务的特点自主调整流程。例如,如果某个任务需要先进行用户研究再撰写PRD,或者需要敏捷迭代式开发(先快速原型再逐步完善),MetaGPT的标准SOP可能无法直接支持。虽然可以通过修改框架代码来自定义SOP,但这需要开发者对MetaGPT的内部机制有深入理解,增加了使用门槛。这种'刚性'与敏捷开发中'拥抱变化'的理念存在一定冲突。
多Agent多轮通信带来的Token开销是实际部署中不可忽视的问题。在MetaGPT的流水线中,一个中等复杂度的软件开发任务可能涉及5个角色、每个角色多轮LLM调用,总计消耗数万到数十万Token。这意味着显著的API调用成本和较长的执行时间(可能需要数分钟到数十分钟)。对于简单的编程任务(如'写一个排序算法'),使用MetaGPT相当于'杀鸡用牛刀'——直接让单个LLM生成代码可能更快更经济。MetaGPT的价值在于中大型项目的系统性开发,而非简单的一次性编码任务。
角色间的串行依赖限制了系统的整体效率和容错能力。在流水线中,如果某个角色(如架构师)的LLM调用失败或产出质量不达标,整个流水线都会被阻塞——下游角色无法在缺少上游输入的情况下继续工作。这种'链式依赖'使得系统的可靠性受限于最薄弱的环节。此外,串行执行意味着总执行时间等于所有角色执行时间之和,无法通过并行化大幅缩短。对于时间敏感的场景,这种串行设计可能是一个严重的瓶颈。
MetaGPT最适合的适用场景包括三类。第一是需求明确的中小型软件开发:当用户需求清晰且规模适中时(如'开发一个待办事项REST API'、'构建一个博客系统'),MetaGPT的SOP流水线能充分发挥其结构化协作的优势。第二是原型快速验证:创业团队或产品团队可以用MetaGPT快速将想法转化为可运行的原型代码,通过完整的PRD-设计-编码-测试流程验证产品可行性。第三是教学演示:MetaGPT模拟软件公司协作的方式非常适合用于教学,帮助学生理解软件开发流程、角色分工和文档驱动开发的重要性。理解这些局限性有助于在实际项目中合理选择是否使用MetaGPT。
AI 应用场景
自动化软件开发流水线
阶段:模型部署
解决的问题:解决单体Agent从零到一开发软件时缺乏系统性设计和质量保证的问题,通过多角色分工和SOP流程确保需求分析、架构设计、编码、测试各环节质量
具体案例:用户输入需求'开发一个待办事项REST API'。产品经理Agent分析需求输出PRD文档定义5个API端点和数据模型。架构师Agent根据PRD设计系统架构选择FastAPI+SQLite并定义接口规范。项目经理Agent将架构设计拆分为8个开发任务分配给工程师Agent。工程师Agent按任务编写代码实现API端点。QA工程师Agent编写测试用例运行测试发现DELETE接口未处理不存在的ID返回500错误,反馈给工程师修复。整个流程模拟了真实软件公司的开发流水线,每个角色的产出作为下一个角色的输入。
产品需求分析与技术评估协作
阶段:数据工程
解决的问题:解决单个Agent处理模糊需求时产出缺乏深度和一致性的问题,通过多角色专业分工提升需求分析和项目规划的专业性
具体案例:构建产品需求分析Agent团队。用户给出模糊需求'做一个帮人管理时间的应用',产品经理Agent通过结构化提问澄清需求生成PRD文档(功能列表、用户画像、优先级)。架构师Agent评估PRD技术可行性提出技术选型建议。项目经理Agent根据PRD和架构设计制定项目计划拆分里程碑。三个角色的结构化产出(PRD、技术评估、项目计划)形成完整的需求到执行的文档链,比单个Agent一次性生成所有文档质量更高且内部一致性更强。
多Agent代码审查与质量保障
阶段:监控运维
解决的问题:解决单个Agent代码审查难以覆盖安全、性能、可维护性等多维度问题的现状,通过多角色协作实现全方位代码质量保证
具体案例:在一个代码审查Agent团队中,安全工程师Agent审查代码中的安全漏洞(SQL注入、XSS等),性能工程师Agent分析算法复杂度和资源使用效率,架构师Agent检查代码是否符合设计规范和接口约定,QA工程师Agent验证测试覆盖率和边界条件处理。四个角色各自从专业角度输出结构化审查报告,汇总后形成全面的代码审查意见。这种多维度并行审查比单个Agent全面审查更专业更深入,每个角色聚焦自己的专业领域产出高质量审查意见。
技术文档自动化生成流水线
阶段:特征工程
解决的问题:解决技术文档编写耗时且容易遗漏关键信息的问题,通过多角色协作自动生成完整、准确、结构化的技术文档体系
具体案例:输入一个开源项目的代码仓库,MetaGPT的多Agent协作生成完整技术文档。架构师Agent分析代码结构输出系统架构文档和模块关系图描述。工程师Agent为每个模块生成API参考文档包含参数说明和使用示例。QA工程师Agent根据代码逻辑生成使用指南和常见问题文档。产品经理Agent从用户视角编写快速入门教程。四个角色的结构化文档互相引用保持一致性,最终形成包含架构文档、API参考、使用指南和入门教程的完整文档体系。
Python 演示
from metagpt.roles import Rolefrom metagpt.actions import Actionfrom metagpt.team import Team class WritePRD(Action): async def run(self, msg): return f"PRD: {msg}" class PM(Role): def __init__(self): super().__init__(profile="PM") self.set_actions([WritePRD]) team = Team()team.hire([PM()])
from metagpt.roles import Role导入MetaGPT的Role基类,所有自定义角色都需要继承此类from metagpt.actions import Action导入Action基类,每个具体动作(如写PRD、写代码)都需要继承此类from metagpt.team import Team导入Team类,用于组建和管理多角色协作团队空行分隔导入语句和类定义class WritePRD(Action):定义WritePRD动作类,继承自Action,表示'编写PRD'这一标准动作async def run(self, msg):实现run异步方法,接收消息参数msg,返回结构化PRD文档字符串return f"PRD: {msg}"返回格式化的PRD文档内容,实际场景中会调用LLM生成完整PRD空行分隔动作定义和角色定义class PM(Role):定义PM(产品经理)角色类,继承自Role基类def __init__(self):初始化方法,设置角色的身份描述和可用动作super().__init__(profile="PM")调用父类初始化,profile参数定义角色的专业身份为产品经理self.set_actions([WritePRD])通过set_actions为该角色绑定WritePRD动作,定义其能执行的标准操作空行分隔角色定义和团队组建team = Team()创建Team实例,作为多角色协作的容器和调度器team.hire([PM()])调用hire方法将产品经理角色加入团队,后续可继续添加其他角色
常见问答
MetaGPT与CAMEL、AutoGen等多Agent框架的核心区别是什么?
为什么MetaGPT选择串行流水线而非完全并行的协作模式?
MetaGPT中的共享消息池是如何工作的?
MetaGPT中角色的SOP是动态生成的还是预先定义的?
MetaGPT如何处理QA测试发现问题后的反馈循环?
MetaGPT适合处理哪些类型的任务?
MetaGPT中的角色定义包含哪些核心组件?
MetaGPT的结构化文档传递相比自然语言对话有什么优势?
MetaGPT的Token开销问题有多严重?
如何在MetaGPT中自定义一个新的角色?
MetaGPT的文档链可追溯性是如何实现的?
MetaGPT中多个工程师Agent能否并行工作?
常见误区
误区认为MetaGPT中Agent间用自然语言自由对话协作,和CAMEL等多Agent框架没有区别
正解MetaGPT的Agent间传递的是标准化的结构化文档(PRD、设计文档、任务列表、代码、测试报告),而非自然语言自由对话。SOP定义了每个角色的输入输出格式,文档按标准结构传递。这种结构化通信是MetaGPT区别于CAMEL等自然语言对话框架的核心设计,也是其信息保真度更高的原因。
为何常见:多数多Agent框架使用自然语言对话通信,容易默认MetaGPT也是如此,忽视了SOP驱动的结构化文档传递这一核心创新。
误区认为MetaGPT的SOP是Agent自主协商出来的,会根据任务动态调整
正解MetaGPT的SOP是预定义的固定流程,定义了每个角色的输入输出格式和工作顺序。它不支持Agent自主协商调整SOP——角色职责和文档格式在框架层面固定。如果任务需要非标准流程(如先做用户研究再写PRD,或敏捷迭代式开发),MetaGPT的固定SOP可能不适用,需要定制化修改框架。
为何常见:MetaGPT展示中Agent看起来在自主决策和协作,容易误以为SOP也是动态生成的,实际上SOP是框架设计者预设的固定规范。
误区认为MetaGPT中所有角色同时并行工作,各做各的
正解MetaGPT的流水线式SOP是串行流程——产品经理完成后架构师才开始,架构师完成后工程师才编码。虽然同一阶段可以有多个工程师并行编码,但阶段间是串行依赖的。这与完全并行的多Agent辩论系统不同,MetaGPT的并行度受限于SOP的串行阶段设计。
为何常见:看到多Agent协作的描述容易想象成所有人同时开工,忽视了SOP流水线的串行依赖关系——下游角色需要上游文档才能开始工作。
误区认为MetaGPT可以完全替代人工软件开发团队
正解MetaGPT是一个自动化辅助工具,生成的代码质量依赖于底层LLM的能力和SOP的设计质量。对于复杂业务逻辑、高安全性要求的系统、需要深度领域知识的场景,MetaGPT的产出仍需要人工审查和修改。它更适合原型验证、中小型项目和教学演示,而非直接用于生产级关键系统。
为何常见:MetaGPT的演示效果令人印象深刻,容易给人'AI可以完全替代程序员'的印象,忽视了当前LLM能力的局限性和实际软件工程的复杂性。
误区认为使用MetaGPT一定比单个Agent直接生成代码效果更好
正解MetaGPT的多角色协作有显著的Token开销和时间成本。对于简单的编程任务(如写一个排序算法、实现一个工具函数),直接使用单个LLM可能更快更经济。MetaGPT的优势体现在中大型项目的系统性开发中,当任务复杂度足以让单Agent难以兼顾需求分析、架构设计和代码质量时,多角色分工的价值才会显现。
为何常见:多Agent协作的概念很吸引人,容易认为'多就是好',忽视了不同任务规模适合不同解决方案的道理。简单任务用MetaGPT属于过度设计。
误区认为MetaGPT的共享消息池等同于传统的消息队列(如Kafka、RabbitMQ)
正解MetaGPT的共享消息池是一个内存级别的结构化文档存储空间,专为多Agent协作设计。它与传统消息队列的关键区别在于:(1)传递的是结构化文档而非原始消息;(2)支持基于文档类型的订阅过滤而非基于Topic的订阅;(3)文档可以被多次读取而非消费后删除;(4)主要用于同一任务内的Agent协作而非跨系统的消息传递。
为何常见:共享消息池使用了发布-订阅模式的概念,容易让人联想到传统消息中间件,但两者在设计目标、数据格式和使用场景上有本质区别。
参考来源
- paperMetaGPT: Meta Programming for Multi-Agent Collaborative FrameworkMetaGPT原始论文,由Hong等人于2023年发表,详细描述了框架的设计理念、SOP驱动的多Agent协作机制、结构化消息传递和软件开发流水线。
- webpageMetaGPT GitHub官方仓库MetaGPT的开源代码仓库,包含完整的框架实现、角色定义、SOP流程代码和使用示例。
- docMetaGPT官方文档MetaGPT官方文档站点,包含框架安装指南、API参考、角色自定义教程和SOP配置说明。
- paperCAMEL: Communicative Agents for Mind Exploration of Large Language Model SocietyCAMEL论文,描述了基于自然语言对话的多Agent协作框架,作为MetaGPT结构化文档传递方案的对比参考。
- paperAutoGen: Enabling Next-Gen LLM Applications via Multi-Agent ConversationAutoGen论文,描述了微软的多Agent对话框架,作为MetaGPT在多Agent协作领域的另一个重要参考和对比对象。
- videoMetaGPT多Agent协作框架详解MetaGPT框架的详细视频教程,演示了从安装配置到自定义角色开发的完整流程,包括SOP流水线的实际运行效果展示。