尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

多智能体大模型如何实现自适应协作:元认知策略优化与持续学习实践

多智能体大模型如何实现自适应协作:元认知策略优化与持续学习实践 1. 项目概述当大模型学会“思考”如何与人协作最近在折腾多智能体大语言模型Multi-Agent LLMs的应用时我遇到了一个挺有意思的瓶颈我们费劲心思设计了一套协作流程让几个AI智能体各司其职比如一个负责规划一个负责执行一个负责审核。这套流程在特定任务上跑得挺好但一旦任务场景变了或者人类用户提出了新的、更复杂的要求整个系统的表现就直线下降显得特别“笨”。要么是智能体之间沟通效率低下要么是它们无法理解人类意图的微妙变化协作起来磕磕绊绊。这让我意识到我们构建的智能体系统本质上还是静态的、预设好的“剧本”缺乏一种核心能力——自适应协作。这正是“Adaptive Collaboration with Humans: Metacognitive Policy Optimization for Multi-Agent LLMs with Continual Learning”这个标题所指向的核心问题。它不是一个具体的工具或框架而是一套旨在解决上述困境的方法论和优化思路。简单来说它想让一群大模型智能体不仅能完成任务还能在与人协作的过程中动态地“学习”如何更好地协作。这里的“学习”不是指训练模型参数那成本太高了而是优化它们内部的协作策略——比如什么时候该由哪个智能体发言如何解读人类模糊的指令遇到分歧时该遵循什么决策流程这套方法的核心武器是“元认知策略优化”。你可以把它想象成给每个智能体装上一个“策略大脑”。这个大脑不直接处理任务内容那是底层大模型干的活而是观察整个协作过程包括人类反馈评估当前策略的效果然后调整未来的协作行为。比如它发现当人类说“再快一点”时如果让规划智能体先简化步骤再让执行智能体加速效果比直接让执行智能体蛮干要好。那么它就会记住并强化这种策略。这整个过程是在一个持续学习Continual Learning的框架下进行的意味着系统能随着与人类的一次次互动不断积累经验优化协作策略而不会忘记之前学到的有效方法。对于任何正在或计划将大模型智能体应用于客服对话、创意协作、复杂问题求解、游戏NPC等动态场景的开发者来说理解这套思路至关重要。它标志着智能体系统从“执行预设脚本的傀儡”向“具备动态适应能力的合作伙伴”演进的关键一步。接下来我就结合自己的实践和思考拆解一下实现这种自适应协作需要关注的核心环节、技术难点以及可行的落地路径。2. 核心思路拆解双环学习与策略进化要实现标题中描述的自适应协作我们不能只盯着单个模型的输出效果而必须将整个“人类-多智能体”系统视为一个动态演化的整体。其核心思路可以概括为“双环策略优化”这借鉴了组织学习里的概念但用在了AI系统上。2.1 外层循环基于人类反馈的策略评估与演进这是系统与外部环境主要是人类用户交互的层面。目标是让多智能体系统的整体行为越来越符合人类的偏好和意图。运作机制交互与轨迹记录多智能体系统处理一个人类任务例如共同撰写一份市场报告。系统内部各个智能体如研究员、撰稿人、校对员会进行多轮对话和操作形成一条完整的“协作轨迹”包括谁在什么时候说了什么、做了什么。人类反馈收集任务完成后人类用户会给出反馈。这种反馈可以是显式的如评分1-5星或直接指出“结论部分不够有力”也可以是隐式的如用户立即修改了AI生成的报告、跳过了某些部分、或会话提前结束。显式反馈质量高但获取成本高隐式反馈易得但噪声大通常需要结合使用。策略效果评估系统不是评估最终产出物的绝对质量而是评估导致这个产出的协作策略是否有效。例如同样是产出了一份70分的报告如果协作策略A是三个智能体频繁争论导致耗时很长而策略B是高效分工、快速共识那么策略B的“效率分”会更高。我们需要设计一系列评估指标如任务完成度、耗时、人类满意度、沟通轮次等综合打分。策略库更新将本次交互的“协作轨迹”和对应的“策略效果评分”存储起来。这形成了一个不断增长的策略经验库。效果好的策略包括其触发条件如任务类型、人类指令特征会被强化效果差的会被弱化或标记。注意这里说的“策略”并非神经网络的权重而更接近于一系列“协作规则”或“决策流程模板”。例如一条策略可能是“当人类指令包含‘创新’关键词且任务历史显示多次被驳回时启动‘头脑风暴模式’让创意智能体主导前两轮讨论。”2.2 内层循环元认知驱动的实时策略调整这是智能体系统内部在单次任务执行过程中的实时优化层。外层循环积累了“什么策略在什么情况下好用”的经验内层循环则负责在本次任务中实时选择和微调策略。运作机制情境感知与策略匹配当新任务到来时系统首先进行情境分析。这包括解析人类指令的语义、情感、复杂度也可能结合用户历史偏好。然后系统从外层循环维护的策略库中匹配出若干条与当前情境相似的历史策略作为候选。元认知监控与推理这是“元认知”的核心。系统可以是一个专门的“协调者”智能体会像一位“导演”一样监控任务执行过程。它会问自己一些元问题“当前的讨论进度是否正常”、“某个智能体是否陷入了死循环”、“人类的最后一次反馈是否暗示了对当前方向的不满”。这个过程可以通过一个轻量级模型如一个小型分类器或推理模块来实现分析对话流中的信号。策略动态调整基于元认知监控的结果系统可能实时调整协作策略。例如策略切换从“轮流发言”策略切换到“专家主导”策略。参数微调调整智能体间达成共识所需的阈值。干预介入协调者直接介入重新分配子任务或澄清指令。在线学习与适配在本次任务中如果某种临时的策略调整取得了良好效果通过人类即时反馈或预设的子目标达成来判断这一调整可以被快速记录并用于优化本次任务后续的协作甚至作为一个新的策略片段在任务结束后提交给外层循环的策略库进行评估和存储。双环如何协同外层循环像一个“经验丰富的教练”它从大量的历史比赛任务中总结出训练方法和战术手册策略库。内层循环则像“场上的队长”在实时比赛中根据对手情况和场上形势当前任务情境灵活运用和调整教练的战术并即时发明一些临场应对的小技巧动态调整。比赛结束后队长和教练一起复盘将有效的临场技巧固化为新的战术条目丰富战术手册。3. 关键技术实现策略表示、优化与持续学习理解了双环思路接下来就要解决三个具体的技术问题策略如何表示、如何优化、以及如何让学习过程持续而不遗忘。3.1 策略的抽象与表示从规则到可学习单元让机器来学习和优化“策略”首先得把策略“数字化”。我们不可能用自然语言描述的策略直接进行优化。这里有几个可行的表示方法各有优劣1. 基于图的协作流程表示 这是最直观的一种。将多智能体协作视为一个状态机或工作流图。节点代表智能体或系统状态边代表触发条件如“用户提问”、“某智能体输出特定类型内容”和动作如“转移话语权”、“调用工具”。策略参数边的权重触发概率、节点的属性智能体角色权重等。优化对象通过强化学习等方法调整这些权重使得在给定任务下沿着图路径执行能获得更高的人类反馈奖励。优点可解释性强易于人工设计和调整起点。缺点对于复杂、开放的协作模式图可能变得极其庞大和复杂难以设计。2. 基于提示模板与权重的表示 每个智能体的行为很大程度上由其收到的提示词Prompt决定。策略可以表示为一系列“提示词模板”以及这些模板被激活的条件和混合权重。策略参数模板中的关键指令词、示例的权重、不同模板的选择概率。优化过程系统可以尝试在少量候选提示模板中进行搜索或使用梯度下降如果模型支持提示微调来调整模板中的连续嵌入表示以最大化奖励。优点与大模型结合紧密改动灵活。缺点搜索空间巨大优化不稳定可解释性较差。3. 基于神经策略网络的表示 训练一个独立的、轻量级的策略网络如一个小型Transformer或MLP。这个网络的输入是当前系统状态如对话历史编码、用户指令嵌入、各智能体状态输出是协作动作如指定下一个发言者、生成一个协调指令、调整某个智能体的温度参数。策略参数策略网络的所有权重。优化过程典型的强化学习范式。策略网络是Actor环境是多智能体系统人类用户奖励来自人类反馈。优点表达能力最强能捕捉非常复杂的策略模式。缺点训练需要大量交互数据黑盒模型可解释性最差。实操心得在实际项目中我通常采用混合表示。对于核心的、确定性的协作逻辑如任务必须经过“规划-执行-审核”三个阶段用显式的、基于规则的框架来保证。对于每个阶段内部的具体协作策略如规划阶段是“头脑风暴”还是“结构化分解”则用一个可学习的策略网络或参数化的提示选择器来控制。这样既保证了系统的基本可控性又为自适应优化留下了空间。3.2 元认知策略优化算法选择与奖励设计有了策略表示下一步就是优化。这里的优化目标很明确让策略能最大化长期的人类满意度奖励。1. 核心算法策略梯度与近端策略优化由于我们的动作空间协作策略可能是离散的选择哪个模板也可能是连续的调整权重并且与环境的交互是序列化的策略梯度方法家族是自然的选择。其中近端策略优化因其相对稳定的训练特性成为目前的首选。如何工作PPO通过比较新旧策略在相同状态下的动作概率比来有节制地更新策略网络避免一次更新太大导致策略崩溃。在内层循环的实时调整中可以看作是一个“在线”的、基于单次任务轨迹的PPO更新在外层循环则是基于积累的一批任务轨迹进行“离线”的PPO更新。关键步骤收集轨迹用当前策略π_old运行系统处理一批人类任务收集状态、动作、奖励序列。估计优势使用广义优势估计等方法计算每个动作相对于平均水平的优势值A_t。这个值衡量了该动作的“好坏”。计算损失并更新PPO的核心损失函数会鼓励优势为正的动作被更多地选择同时约束新策略π_new不要偏离旧策略π_old太远。2. 奖励函数设计将人类意图转化为数值信号这是整个优化过程的“指挥棒”设计得好坏直接决定系统演进的方向。奖励不能只设为一个最终任务成功与否的0/1信号那样太稀疏学习效率极低。分层奖励设计最终成果奖励任务完成后人类给出的总体评分。这是最核心的奖励但稀疏。过程奖励效率奖励鼓励减少不必要的沟通轮次。例如每完成一个有效步骤如达成一个子目标给予小奖励每多进行一轮无实质进展的对话给予小惩罚。参与度奖励鼓励所有智能体适度参与避免某个智能体“沉默”或“独裁”。可以监控各智能体的发言频率和贡献度。人类反馈奖励实时解析人类在过程中的简短反馈如“好的”、“不对”、“继续”将其转化为即时的小额正/负奖励。元认知奖励如果系统通过元认知监控成功预测了问题并提前调整例如在人类表现出困惑前主动澄清给予额外奖励。奖励塑形这是将稀疏的最终奖励平滑化、过程化的关键技巧。例如将一个“写报告”的任务分解为“确定大纲”、“收集资料”、“撰写初稿”、“润色修改”等子目标每完成一个子目标就给予奖励。3. 元认知模块的实现 元认知模块本身可以是一个经过训练的分类器或序列模型。输入当前对话历史的嵌入表示、各智能体的置信度分数、任务进度指标等。输出诊断信号如“协作陷入僵局概率0.8”、“人类可能困惑概率0.6”。建议动作如“建议切换至策略B”、“建议协调者介入澄清”。训练数据可以从历史成功和失败的协作轨迹中标注得到。例如标注出那些最终失败的任务中是从哪个时间点开始出现问题的当时有哪些特征信号。3.3 持续学习机制克服灾难性遗忘多智能体系统需要长期与人类协作学习新策略的同时必须保证旧有的有效策略不被遗忘。这就是持续学习要解决的问题。1. 策略库与情景记忆 外层循环维护的策略库本身就是一个简单的“情景记忆”系统。我们可以为每条策略附加一个“适用情境”描述通过情境特征向量表示。当新任务到来时系统进行情境匹配召回相关策略。这避免了神经网络参数层面的遗忘。2. 弹性权重巩固 在优化策略网络如果用了神经网络时EWC方法会计算旧任务数据上每个参数的重要性费雪信息矩阵然后在学习新任务时在损失函数中增加一个正则项惩罚对那些重要参数的剧烈改动。这相当于给重要的旧知识“加了锚”让它们在参数空间中的位置相对固定。计算过程首先在旧任务数据集D_old上训练得到最优参数θ*。然后计算每个参数θ_i的重要性F_i费雪信息。在新任务损失L_new(θ)上增加正则项L(θ) L_new(θ) λ * Σ_i F_i * (θ_i - θ*_i)^2。其中λ是超参数权衡新旧知识。3. 动态架构与模块化策略 更激进的方法是采用动态扩展的策略网络架构。例如将策略网络设计为一系列子模块的组合。当遇到全新的任务类型时不是修改现有模块而是增加一个新的、专门化的策略子模块。在决策时由一个路由网络根据当前情境选择激活哪个或哪几个子模块。这类似于人脑的“功能分区”不同区域负责不同技能。实操难点如何设计模块化接口、如何训练路由网络、如何避免模块数量无限膨胀都是工程上的挑战。通常需要结合任务聚类技术将相似的任务映射到同一个策略模块。4. 定期回放与巩固 最实用也最经典的方法。定期例如每天或每周从策略库中采样一部分旧任务的轨迹包括状态、动作、奖励混合到新任务的训练数据中一起用来更新策略网络。这相当于定期“复习”旧知识。存储与采样需要建立一个经验回放缓冲区。采样时可以采用“优先经验回放”策略对那些学习效果不好当时优势函数值低或重要的旧轨迹提高采样概率。避坑指南在项目初期不要过度追求复杂的持续学习算法。从建立一个带情境标签的策略库和简单的经验回放机制开始这能解决80%的遗忘问题。只有当策略网络变得非常复杂且新旧任务差异极大时才需要考虑EWC或动态架构。另外一定要为系统设置一个“策略性能监控看板”定期用一批标准化的历史任务基准测试集来评估系统确保其在学习新技能时旧技能的性能下降在可接受范围内。4. 系统架构与实操部署理论讲完了我们来看看如何把这些思想落地构建一个可运行的原型系统。这里我分享一个我们团队在内部项目中采用的简化架构。4.1 核心组件与数据流设计整个系统可以分为离线训练和在线服务两个主要部分但两者通过共享的策略库和模型紧密耦合。1. 在线服务模块 这是直接与人类用户交互的部分。交互接口接收用户任务请求自然语言。情境解析器对用户请求进行编码提取关键特征意图、领域、复杂度等形成情境向量。策略执行引擎根据情境向量从策略库中检索Top-K个相关策略。加载当前策略网络将情境和检索到的策略作为输入输出本次任务初始的协作策略参数例如选择的工作流模板、各智能体的初始提示权重。多智能体运行时一个执行引擎按照策略执行引擎输出的策略实例化并调度多个大模型智能体可以是调用同一个LLM的不同实例也可以是不同的模型进行协作。它严格遵循策略规定的交互逻辑。元认知监控器实时分析多智能体运行时的对话状态、进度和中间输出。它运行一个轻量级的元认知模型判断当前协作是否健康并可能产生策略调整建议如“检测到循环建议强制推进”。协调者接收元认知监控器的建议有权在任务执行过程中动态微调策略参数例如改变某个智能体的“发言权”或向多智能体运行时发出协调指令。它是内层循环优化的执行者。轨迹记录器完整记录本次任务的所有数据原始输入、情境向量、采用的策略、每一步的对话状态、元认知监控信号、协调者干预记录、最终输出、以及收集到的人类反馈显式隐式。这条完整的轨迹将被发送到离线训练模块。2. 离线训练模块 这是系统学习和进化的“大脑”。轨迹存储器接收并存储来自在线服务的任务轨迹。奖励计算器根据预设的奖励函数为每条轨迹中的每一步或每一个片段计算奖励值。它需要综合最终评分、过程指标和人类反馈。策略优化器定期如每收集到N条新轨迹从轨迹存储器中采样一批数据。使用PPO等算法更新策略网络的参数。更新时会混合采样到的旧轨迹数据持续学习回放。根据新轨迹中表现优异的新策略模式更新策略库增加新条目或调整旧条目的权重和情境标签。元认知模型训练器使用标注好的或自动挖掘的如将最终失败的任务中前期某些时间点标记为“问题发生点”轨迹数据训练或微调元认知模型使其能更准确地诊断协作问题。数据流闭环用户请求 - 在线服务产生轨迹和反馈- 轨迹存储 - 离线训练更新策略网络和策略库- 更新后的模型和策略库被同步回在线服务 - 处理下一个用户请求。这就形成了一个完整的“感知-决策-行动-学习”闭环。4.2 工具选型与工程实践构建这样一个系统选择合适的工具栈能事半功倍。1. 大模型服务层核心你需要稳定、低延迟的LLM API服务或本地部署。考虑到多智能体并发调用对服务的吞吐和稳定性要求较高。选型考量同质与异构如果所有智能体使用同一种大模型如GPT-4管理简单。但有时异构模型更有优势如用Claude做规划GPT-4做生成小型模型做审核这就需要考虑不同API的兼容性和成本。“chimera”这个概念正是指向这种异构、性能感知的多智能体服务它需要能根据任务需求和当前负载智能地调度不同的模型。延迟与性能感知正如网络热词提到的一个优秀的系统需要感知延迟和性能。可以为每个模型/API端点维护实时性能指标如P95延迟、当前错误率策略网络或协调者在做决策时可以将“预计响应时间”作为一个考量因素在速度和质量之间做权衡。2. 智能体框架层现有框架AutoGen,CrewAI,LangGraph等都是优秀的多智能体编排框架。它们提供了定义角色、设定交互流程、管理对话状态的基础能力。我们的做法我们以LangGraph为基础进行二次开发。原因在于它的“图”计算模型非常直观与我们的“基于图的协作流程表示”理念契合。我们将策略网络输出的参数动态地注入到LangGraph的图结构如边条件、节点调用的提示词中从而实现策略对执行流程的灵活控制。3. 策略学习与优化层强化学习库RLlib或Stable-Baselines3。它们提供了PPO等算法的成熟实现。我们需要做的是定义好我们的“环境”模拟多智能体系统和“智能体”策略网络。环境模拟为了高效训练不可能每次都进行真实的人机交互。我们需要构建一个模拟环境。这个环境包含一个“模拟用户”模型它能够根据任务目标对智能体系统的中间产出给出合理的模拟反馈。模拟用户模型可以用一个经过指令微调的中等规模LLM来实现。4. 基础设施与部署向量数据库用于存储和检索策略库。每条策略附带其情境特征向量检索时使用向量相似度搜索。ChromaDB或Weaviate是不错的选择。工作流编排整个离线训练流水线数据预处理、奖励计算、模型训练、评估可以用Apache Airflow或Prefect进行周期性地调度。监控与评估使用PrometheusGrafana监控在线服务的延迟、错误率和资源使用情况。同时构建一个独立的评估服务定期用基准测试集对最新版本的策略网络和策略库进行自动化评估生成性能报告。实操心得起步阶段不要试图构建大而全的系统。建议从一个“双智能体”的简单任务开始比如一个“规划者”和一个“执行者”协作写邮件。先手动设计几条不同的协作策略如规划者详细规划vs.粗略规划实现策略库和情境匹配。然后实现最基本的奖励计算只用最终人类评分和策略网络可以简单到一个线性模型根据情境选择策略ID。跑通这个最小闭环后再逐步加入元认知监控、更复杂的奖励、PPO优化和持续学习机制。这种迭代方式风险可控也能更快地看到效果。5. 挑战、对策与未来展望实现真正鲁棒的自适应协作系统道路上布满了挑战。以下是我们实践中遇到的主要问题及应对思路。5.1 核心挑战与缓解方案1. 模拟与现实的差距 离线训练严重依赖模拟环境但模拟用户模型再像也与真实人类反馈存在差异。这可能导致策略在模拟中表现优异上线后却效果不佳。对策采用人机回圈与在线学习相结合的方式。人机回圈系统处理真实任务时对于策略网络不确定或低置信度的决策可以暂停并请求人类专家给出明确选择。这些高质量的人类决策数据将直接用于策略网络的微调。保守的在线学习在线上对于策略网络的更新要非常谨慎。可以采用“影子模式”运行即新策略并行运行但不影响实际决策只收集数据待离线评估确认有效后再上线。或者只允许对策略选择做小幅度的、在安全边界内的在线调整。2. 奖励函数设计的偏差 奖励函数是系统的“指挥棒”设计不当会导致系统学会“刷分”而非真正协作。例如如果过度奖励减少对话轮次系统可能学会草草了事牺牲任务质量。对策多目标权衡明确多个奖励维度质量、效率、用户满意度并允许人类管理员动态调整这些维度的权重观察系统行为变化。基于偏好的学习不设计具体的奖励函数而是收集人类对两条不同协作轨迹的偏好比较A和B你更喜欢哪个过程。使用诸如直接偏好优化等技术让策略网络直接从人类偏好中学习。这能更好地对齐人类模糊的、综合的评判标准。定期人工审核定期抽样检查由系统策略主导的协作过程人工判断其合理性及时发现奖励函数未覆盖的负面行为模式。3. 策略探索与利用的平衡 为了学习新策略系统需要尝试探索一些非最优的、甚至可能表现差的行为。但在生产环境中频繁的探索会损害用户体验。对策情境化探索只在某些“安全”的情境下进行探索例如对新用户、简单任务或者系统自身高置信度认为当前策略不佳时。边界测试环境建立一个与生产环境隔离的“沙盒”测试环境邀请内部用户或小部分友好外部用户在这里系统可以更大胆地探索新策略。不确定性驱动探索让策略网络除了输出动作还输出对该动作的不确定性估计。在不确定性高的区域可以适当增加探索。4. 系统的可解释性与可控性 随着策略网络和策略库变得复杂系统为何做出某个协作决策可能变得难以理解。当系统行为异常时开发者难以调试。对策决策日志与溯源记录每一次策略决策的完整上下文情境特征、召回的策略列表、策略网络的输入输出、元认知监控信号并提供可视化的查询界面。策略库的可读性尽管策略可能由网络参数表示但可以定期将高频或重要的策略“翻译”成人类可读的描述例如通过反推激活该策略的典型情境和它导致的行为模式。设置安全策略与护栏定义一些不可逾越的“红线”规则例如任何情况下不得生成有害内容财务决策必须经过人工审核节点这些规则以最高优先级硬编码在系统里凌驾于任何学习到的策略之上。5.2 性能优化与成本控制多智能体系统意味着多次LLM调用成本和高延迟是必须面对的现实。1. 异步执行与流式响应异步当智能体之间的依赖关系不强时让它们并行执行。例如在收集资料阶段可以让多个智能体同时去查询不同方面的信息。流式对于需要长时间思考或生成的任务协调者可以将任务分解后以流式方式逐步将结果返回给用户而不是等待所有智能体完成全部工作后再一次性返回。这能显著提升用户体验上的响应速度。2. 智能体缓存与结果复用对话缓存如果多个智能体就同一个问题进行了相似的讨论可以将讨论过程和结论缓存起来。当类似情境再次出现时直接复用结论避免重复计算。子任务结果缓存将复杂任务分解后的子任务结果进行缓存。其他任务如果包含相同的子任务可以直接使用缓存结果。3. 模型层级化与早退机制层级化并非所有思考都需要最强大、最昂贵的模型。可以用小型、快速的模型处理简单的决策、分类或检索任务如元认知监控中的问题检测只在关键创意生成或复杂推理时调用大模型。早退设定一些清晰的“成功标准”或“失败标准”。一旦某个智能体的输出明显达到了优质标准可以提前结束该分支的讨论一旦检测到无法挽回的错误或偏离可以提前终止任务并请求人类介入避免无意义的后续消耗。4. 基于“Chimera”理念的异构调度 这正是网络热词所指向的优化方向。构建一个模型调度器它维护一个包含不同能力创意、逻辑、速度、成本和实时性能延迟、负载的模型池。策略网络在制定协作计划时不仅决定“做什么”还可以建议“由哪个模型做”。调度器根据当前系统负载、任务优先级和成本预算做出最终调度决策实现服务质量与资源消耗的最优平衡。这条路走下来我的体会是构建自适应协作的多智能体系统与其说是一个纯粹的算法问题不如说是一个复杂的系统工程和设计问题。它需要我们在AI能力、人机交互、系统架构和算法优化之间找到精妙的平衡。最大的收获往往不是某个技术点的突破而是对“协作”本质理解的加深——如何定义有效的协作信号如何将人类模糊的偏好转化为可优化的目标如何让机器在遵循规则与灵活应变之间保持张力。这只是一个起点随着基础模型能力的持续进化这类系统将会从今天的辅助工具成长为真正理解意图、具备“团队智慧”的合作伙伴。
返回列表