ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OpenClaw智能体框架:从ReAct模式到实战评估的完整指南

2026/8/5 4:58:41 拓冰建站 浏览量
OpenClaw智能体框架:从ReAct模式到实战评估的完整指南 1. 项目概述为什么OpenClaw值得你投入精力最近在AI智能体Agent的圈子里OpenClaw这个名字被频繁提起。如果你也和我一样一直在关注如何让AI不只是被动回答问题而是能主动规划、使用工具、完成复杂任务那么OpenClaw绝对是你绕不开的一个关键节点。它不是一个简单的模型而是一个旨在构建“通用智能体”的开源框架和基准测试平台。简单来说它想解决的核心问题是如何系统性地评估一个AI智能体是否真的“智能”以及如何高效地训练出这样的智能体。这听起来可能有点抽象我打个比方。以前我们评估一个模型就像考学生做选择题比如GLUE、SuperGLUE这些NLP基准题目固定答案也相对固定。但现实世界的问题比如“帮我规划一次旅行并预订机票酒店”是开放式的、多步骤的、需要调用外部工具如搜索引擎、订票API的。OpenClaw就是为这类任务设计的“综合实践考场”。它不满足于让AI“知道”什么更关注AI“能做成”什么。因此它包含了从简单工具调用到复杂多轮规划、从单模态到多模态交互的一系列挑战性任务。对于开发者、研究者甚至是AI应用的产品经理深入理解OpenClaw意味着三件事第一你能把握当前AI智能体技术的前沿评估标准知道“好”的智能体应该达到什么水平第二你能获得一套现成的、高质量的基准测试工具用来客观衡量你自己开发的智能体性能第三你能借鉴其背后的设计哲学和训练方法来优化你自己的智能体架构。接下来我将结合最新的信息和我个人的实践带你彻底拆解OpenClaw的原理并手把手完成一次从环境搭建到任务实战的完整过程。2. OpenClaw核心架构与设计哲学深度解析要玩转OpenClaw不能只停留在调用接口的层面必须理解其背后的设计思想。它的架构可以概括为“一个基准两大支柱三层抽象”。2.1 “一个基准”构建通用智能体的评估体系OpenClaw的终极目标是建立一套像人类通过考试来衡量智力水平一样的、用于评估AI智能体通用能力的基准。这个基准不是单一的分数而是一个多维度的评估矩阵。它认为一个合格的通用智能体应具备以下几种核心能力任务理解与分解能力智能体能否准确理解用户用自然语言描述的、可能模糊或复杂的意图并将其分解为一系列可执行的原子操作步骤。工具使用与API调用能力智能体是否知道在什么情境下调用什么工具如计算器、数据库查询、浏览器、绘图软件并能正确构造调用参数、解析返回结果。规划与推理能力面对多步骤任务时智能体能否进行前瞻性规划处理子任务之间的依赖关系并在执行受阻时如工具调用失败、返回意外结果进行动态调整和重规划。记忆与上下文管理能力在长对话或多轮交互中智能体能否记住关键信息、历史决策和中间状态并利用这些信息指导后续行动避免重复或矛盾。多模态感知与生成能力如果涉及智能体是否能处理和理解文本、图像、音频等多种模态的输入并生成相应模态的响应或调用多模态工具。OpenClaw通过设计涵盖上述能力的不同难度和领域的任务集来综合考察智能体。例如一个“在线购物”任务可能同时考验任务分解先搜索商品再比价最后下单、工具使用调用搜索API、比价插件、支付接口、规划如果缺货则寻找替代品和记忆记住用户偏好的颜色和尺寸。2.2 “两大支柱”模拟环境与评估器为了实现上述评估OpenClaw架构依赖于两个核心组件支柱一高保真、可编程的模拟环境Simulator这是智能体“生活”和“行动”的世界。与很多仅提供静态数据集的基准不同OpenClaw的模拟环境是动态的、可交互的。它模拟了真实的应用场景如操作系统桌面、Web浏览器、数据库终端、甚至是一个虚拟的智能家居环境。环境会接收智能体发出的动作如“点击某个按钮”、“执行某条SQL查询”并返回相应的状态变化如“页面跳转”、“查询结果集”。注意环境的高保真度至关重要。一个粗糙的模拟环境比如只用文本描述按钮位置无法有效评估智能体对真实图形界面的理解能力。OpenClaw在这方面做了大量工作力求环境反馈与真实情况一致。支柱二自动化、多维度的评估器Evaluator这是“考官”。当智能体在模拟环境中完成任务后评估器会从多个维度自动打分。评估不仅仅是看最终目标是否达成任务成功率还包括过程效率智能体是否走了弯路使用了不必要的步骤工具使用合理性调用的工具是否恰当参数是否正确合规性与安全性智能体的行为是否符合预设的规则和安全约束评估器通常结合规则判断如最终状态是否匹配目标状态和模型判断如用一个大语言模型评估中间步骤的合理性、自然度给出综合评分。2.3 “三层抽象”接口层、智能体层与学习层从开发者的视角与OpenClaw交互主要涉及三个层次环境接口层这是一套标准化的API。你的智能体通过向这个接口发送动作指令Action来与环境交互并从接口接收观察结果Observation。这屏蔽了底层环境的复杂性让你可以专注于智能体本身的算法。智能体层这是你需要实现的核心。一个典型的智能体模块通常包含感知模块理解环境返回的观察可能是文本、图像、结构化数据。记忆模块存储对话历史、任务状态、知识等。规划/推理模块基于当前目标和记忆决定下一步做什么。这通常是基于大语言模型LLM的思维链Chain-of-Thought或更高级的规划算法。动作模块将规划出的意图转化为符合环境接口规范的具体动作指令。学习/训练层OpenClaw不仅用于评估也支持智能体的训练。它可能提供示范数据专家轨迹、强化学习的环境反馈信号奖励或者课程学习从易到难的任务序列。你可以利用这些资源来微调你的LLM或训练策略网络。理解了这个三层抽象你就知道在实战中你的主要工作是在智能体层实现一个符合接口规范的Agent类然后将其接入环境接口层进行测试或训练。3. 实战准备环境搭建与基础智能体构建理论讲得再多不如动手跑一遍。我们以在本地进行OpenClaw基准测试为例展开实战。3.1 系统环境与依赖安装首先确保你的开发环境满足基本要求。我推荐使用Python 3.9以及一个独立的虚拟环境如conda或venv来管理依赖避免包冲突。# 1. 创建并激活虚拟环境 (以conda为例) conda create -n openclaw python3.10 conda activate openclaw # 2. 克隆OpenClaw官方仓库假设仓库地址为GitHub请以实际为准 git clone https://github.com/openclaw/openclaw.git cd openclaw # 3. 安装核心依赖 pip install -e . # 以可编辑模式安装方便修改 # 或者根据提供的requirements.txt安装 # pip install -r requirements.txt安装过程可能会遇到一些依赖问题特别是与深度学习框架PyTorch/TensorFlow、CUDA版本相关的。我的经验是先查看官方文档的“Installation”部分通常会有针对不同系统的详细说明。如果遇到某个包版本冲突可以尝试先安装OpenClaw的核心包再单独安装冲突的包到指定版本。3.2 配置API密钥与模型访问OpenClaw的智能体核心通常依赖大语言模型如GPT-4、Claude、或开源的Llama、Qwen系列。你需要准备相应的API密钥或本地模型访问权限。对于OpenAI等云端API在环境变量中设置你的API密钥。export OPENAI_API_KEYyour-api-key-here在代码中OpenClaw的配置通常会读取这个环境变量。对于本地部署的模型你需要一个正在运行的模型服务端点例如使用vLLM、Ollama或Transformers库启动的API服务。然后在OpenClaw的配置文件中指定基座URL。# config.yaml 示例片段 llm: provider: openai # 或 vllm, anthropic 等 api_base: http://localhost:8000/v1 # 本地模型服务地址 model: Qwen2.5-7B-Instruct实操心得在初期开发和调试时我强烈建议使用响应速度快、成本低的模型例如Qwen2.5-7B的本地部署版本或者GPT-3.5-Turbo。这样可以快速迭代你的智能体逻辑而不必担心高昂的API费用或漫长的等待时间。等到智能体逻辑稳定后再换用更强大的模型如GPT-4进行最终性能评估。3.3 构建你的第一个智能体ReAct模式我们将实现一个最经典也最有效的智能体范式之一ReActReasoning Acting。其核心思想是让智能体循环执行“思考Reason- 行动Act- 观察Observe”的步骤。下面是一个高度简化的示例展示智能体类的骨架# my_agent.py import openclaw from typing import Dict, Any, List import json class MyReActAgent: def __init__(self, llm_client, available_tools: List[Dict]): 初始化智能体。 :param llm_client: 配置好的大语言模型客户端。 :param available_tools: 可用工具列表每个工具包含名称、描述、参数schema等。 self.llm llm_client self.tools {tool[name]: tool for tool in available_tools} self.memory [] # 存储交互历史 def run(self, initial_observation: str, max_steps: int 10): 运行智能体处理一个任务。 observation initial_observation for step in range(max_steps): # 1. 思考基于当前观察和记忆决定下一步 reasoning, action self._reason_and_plan(observation) print(f[Step {step}] Reason: {reasoning}) print(f[Step {step}] Action: {action}) # 2. 行动执行动作可能是调用工具或向环境发送指令 if action[type] tool_call: tool_name action[tool] tool_args action[args] # 这里应调用具体的工具函数 result self._call_tool(tool_name, tool_args) observation fTool {tool_name} returned: {result} elif action[type] finish: print(fTask finished with result: {action[result]}) return action[result] else: # 其他类型的动作如直接与环境交互 pass # 3. 观察记录结果到记忆 self.memory.append({reasoning: reasoning, action: action, observation: observation}) print(Max steps reached. Task may not be completed.) return None def _reason_and_plan(self, observation: str) - (str, Dict): 核心推理函数。使用LLM分析当前情况生成下一步的推理和动作。 这里是一个极其简化的Prompt示例。 prompt f 你是一个智能助手。你的目标是根据当前观察和可用工具决定下一步做什么。 当前观察: {observation} 可用工具: {json.dumps(list(self.tools.values()), indent2)} 历史步骤: {json.dumps(self.memory[-3:], indent2)} # 最近3步记忆 请以JSON格式输出包含两个字段 1. reasoning: 你的思考过程。 2. action: 动作对象。如果是调用工具格式为 {{type: tool_call, tool: 工具名, args: {{...}}}}。 如果任务完成格式为 {{type: finish, result: 最终答案}}。 response self.llm.complete(prompt) # 这里需要解析LLM的返回确保是合法的JSON。实际应用中需要更健壮的解析和错误处理。 try: decision json.loads(response) return decision.get(reasoning, ), decision.get(action, {}) except json.JSONDecodeError: # 如果LLM返回非JSON提供一个安全的默认动作 return Failed to parse LLM response., {type: tool_call, tool: echo, args: {message: Error}} def _call_tool(self, tool_name: str, args: Dict) - Any: 模拟工具调用。真实场景中这里会连接到具体的工具实现。 # 示例工具 if tool_name calculator: return eval(args[expression]) # 警告实际中绝对不要用eval这里仅为示例 elif tool_name search_web: return fSimulated search results for {args[query]} else: return fTool {tool_name} is not implemented.这个MyReActAgent类虽然简单但包含了智能体的核心循环。你需要根据OpenClaw具体环境提供的接口来适配run方法中的动作执行和观察获取部分。4. 在OpenClaw基准上运行与评估智能体有了智能体下一步就是把它放到OpenClaw的“考场”里接受检验。4.1 选择并加载一个任务环境OpenClaw通常包含多个任务集。我们以一个相对简单的任务为例比如WebShop一个模拟在线购物的环境或ALFWorld一个文本交互的虚拟家庭环境。import openclaw from my_agent import MyReActAgent from openclaw.llm import get_llm_client # 假设有这样一个工具函数 # 1. 加载环境和任务 env openclaw.make(WebShop-v0) # 创建环境实例 task_config env.get_task_config(task_idbuy_a_red_shirt) # 获取特定任务配置 # 2. 初始化智能体 llm_client get_llm_client(provideropenai, modelgpt-3.5-turbo) # 获取该环境下的可用工具描述 available_tools env.get_available_tools() agent MyReActAgent(llm_client, available_tools) # 3. 重置环境获取初始观察任务描述 observation, info env.reset(task_configtask_config) print(f初始任务: {observation}) # 4. 运行智能体 try: final_result agent.run(initial_observationobservation, max_steps20) print(f智能体最终返回: {final_result}) except Exception as e: print(f智能体运行出错: {e}) finally: env.close()4.2 理解评估指标与结果分析运行结束后我们需要评估智能体的表现。OpenClaw环境通常会在任务结束时自动计算或提供评估接口。# 接续上面的代码假设智能体通过env.step(action)与环境交互 # 这里展示一个更贴近OpenClaw标准用法的循环 env openclaw.make(WebShop-v0) task_config env.get_task_config(task_idbuy_a_red_shirt) observation, info env.reset(task_configtask_config) agent MyReActAgent(llm_client, env.get_available_tools()) done False total_reward 0 step_count 0 trajectory [] # 记录轨迹用于分析 while not done and step_count 50: # 智能体根据观察决定动作 _, action_dict agent._reason_and_plan(observation) # 将智能体的动作转换为环境接受的格式这部分需要根据环境API具体调整 action _convert_to_env_action(action_dict) # 环境执行动作返回新的观察、奖励、是否结束等信息 next_observation, reward, done, truncated, info env.step(action) # 记录 trajectory.append({ step: step_count, observation: observation, action: action, reward: reward, info: info }) total_reward reward observation next_observation step_count 1 env.close() # 分析结果 print(f任务完成状态: {成功 if info.get(success) else 失败}) print(f累计奖励: {total_reward}) print(f总步数: {step_count}) # OpenClaw可能提供更详细的评估报告 if hasattr(env, evaluate): eval_report env.evaluate(trajectory) print(f评估报告: {eval_report})评估报告可能包含任务成功率 (Success Rate)最核心的指标任务是否在规定步骤内完成。平均步数/效率 (Average Steps)完成任务的步数越少效率越高。奖励总和 (Total Reward)环境中每一步的奖励累积综合反映过程质量。工具使用准确率 (Tool Accuracy)调用的工具是否恰当参数是否正确。违规次数 (Violation Count)智能体行为是否触犯安全或规则限制。4.3 从结果反推智能体优化方向拿到评估结果后才是工作的开始。你需要像医生看化验单一样分析这些数据成功率低可能是任务理解或规划能力不足。检查智能体在初始任务分解时是否就出错了。可以增加更多示例Few-shot到Prompt中或者考虑采用更复杂的规划算法如基于树的搜索。平均步数过多智能体可能在做无效尝试或绕路。分析轨迹看是否在某些步骤循环往复。可能需要增强智能体的记忆能力让它记住哪些尝试是失败的或者改进推理逻辑避免重复错误。工具使用错误智能体调用了错误的工具或传错了参数。这需要优化工具的描述使其更清晰并在Prompt中更明确地规定工具调用的格式。也可以考虑对工具调用进行“验证”步骤在真正执行前用LLM检查一下调用是否合理。奖励始终很低智能体可能没有理解环境的奖励信号。需要检查奖励函数的设计并确保智能体的学习机制如果是强化学习能有效利用这个信号。5. 高级技巧与性能提升实战指南当你跑通基础流程后下一步就是优化智能体性能使其在OpenClaw基准上取得更好成绩。这里分享几个经过实战检验的有效策略。5.1 提示工程Prompt Engineering的精细化设计对于基于LLM的智能体Prompt是它的“操作系统”。一个粗糙的Prompt和精心设计的Prompt效果天差地别。结构化指令与清晰角色不要只是说“你是一个助手”。要明确角色、职责和约束。你是一个专业的在线购物助手。你的目标是以最高效、最准确的方式帮助用户完成购物任务。 你必须遵守以下规则 1. 每次只能执行一个操作如搜索、点击、查看详情、加入购物车、结算。 2. 在获取到足够信息如价格、库存、用户明确指令前不要盲目进行购买。 3. 你的所有操作都必须基于当前网页的观察内容。思维链CoT与分步输出要求明确要求LLM输出思考过程这不仅能提升结果质量也便于你调试。请按以下格式输出 思考在这里详细分析当前情况、可用选项和下一步计划 行动严格按照JSON格式描述要执行的动作动态上下文管理随着交互步数增加完整的对话历史会非常长可能超出LLM的上下文窗口。你需要实现一个记忆摘要Memory Summarization机制。定期例如每10步用LLM对之前的交互历史进行总结提炼出关键决策、当前状态和待办事项然后用这个摘要替代冗长的原始历史作为后续推理的上下文。这能显著提升长任务的处理能力。5.2 工具使用能力的强化训练工具调用是智能体的“手”。很多智能体失败在不会用或乱用工具。工具描述优化工具的描述要具体、无歧义并包含清晰的示例。差的描述search_product(keyword)搜索商品。好的描述工具search_product 功能在商城内根据关键词搜索商品并返回第一页的结果列表。 参数 - keyword (字符串必需): 搜索关键词如“男士红色衬衫”。 返回一个列表每个元素包含商品名称、价格、简要描述和商品ID。 示例调用search_product({keyword: 无线蓝牙耳机})工具调用验证与重试在智能体输出工具调用指令后增加一个验证步骤。可以用一个简单的规则检查参数类型、必填项或者再用一个小型LLM来判断这次调用在当前上下文中是否合理。如果不合理则要求智能体重新思考而不是直接执行可能错误的调用。工具学习Tool Learning如果条件允许可以对LLM进行针对工具使用的微调。收集高质量的工具调用轨迹数据专家演示用监督微调SFT让LLM更熟悉工具使用的模式和上下文。5.3 引入规划与反思机制对于复杂任务见一步走一步的ReAct循环可能不够需要更宏观的规划和事后的反思。层次化任务分解Hierarchical Planning在任务开始时要求智能体先制定一个高层计划。例如对于“策划周末旅行”先分解为“1. 确定目的地和日期2. 查询交通方式与价格3. 寻找住宿4. 规划景点行程”。然后每个高层步骤再在执行时细化为具体的动作。这有助于保持任务的整体方向性。事后反思Post-mortem Reflection当一个子任务失败或结果不理想时不是立即尝试另一种方法而是先“反思”。让LLM分析失败的原因“是因为搜索关键词不准确还是因为忽略了库存信息”并将这个反思结论加入到记忆和上下文中再指导下一次尝试。这能有效避免在同一个坑里跌倒多次。集成外部规划器对于规划逻辑特别复杂的领域如机器人操作序列可以集成专门的规划算法库如PDDL规划器让LLM负责将自然语言任务转化为规划问题描述然后由专业规划器求解再将解转化为动作序列。6. 常见问题排查与避坑实录在开发和测试OpenClaw智能体的过程中我踩过不少坑。这里把一些典型问题和解决方案整理出来希望能帮你节省时间。6.1 环境连接与初始化问题问题现象可能原因排查步骤与解决方案运行openclaw.make(...)时报错提示环境不存在或版本不匹配。1. 环境名称拼写错误。2. 未安装特定环境的额外依赖。3. OpenClaw版本与环境不兼容。1. 使用openclaw.list_envs()查看所有已注册的环境名确保拼写正确。2. 查看该环境独立的README或requirements.txt安装额外包。例如pip install openclaw[webshop]。3. 检查OpenClaw和环境的版本尝试回退到已知稳定的版本组合。环境启动后卡住或连接超时。1. 模拟环境需要启动本地服务如Web服务器、数据库端口冲突或启动失败。2. 某些环境需要下载资源文件如数据集、模型权重网络问题导致卡住。1. 检查日志输出看是否有服务启动错误。用netstat或lsof检查所需端口是否被占用。2. 设置代理或更换下载源。手动按环境日志提示的URL下载文件放到指定缓存目录。重置环境后获取的初始观察是乱码或None。任务配置错误或环境状态未正确初始化。1. 确认task_id是否存在。使用env.get_task_list()查看所有可用任务。2. 在env.reset()后打印info字典里面常包含错误信息或任务元数据。6.2 智能体与LLM交互问题问题现象可能原因排查步骤与解决方案LLM返回的内容无法解析为预期的JSON或动作格式。1. Prompt中格式指令不够严格或清晰。2. LLM特别是较小模型遵循指令能力弱。3. 上下文过长或混乱导致LLM输出混乱。1. 在Prompt中使用非常明确的格式描述甚至提供1-2个完整的输出示例Few-shot。2. 在代码中增加后处理尝试用正则表达式从LLM回复中提取JSON块如果失败则回退到一个安全的默认动作如请求澄清并将错误信息反馈给LLM作为下一轮输入的一部分让它自我纠正。3. 实施上文提到的动态上下文管理压缩历史信息。智能体陷入死循环重复执行相似动作。1. 记忆机制缺失智能体“忘记”了已经做过的事情。2. 环境反馈信息不足无法让智能体区分成功与失败。3. 规划能力不足无法生成新的有效策略。1. 在记忆中加入明确的“已尝试动作列表”并在Prompt中提示避免重复。2. 仔细检查环境返回的observation和reward确保它们能提供足够的区分度。有时需要从原始观察中提取更关键的特征再喂给LLM。3. 引入随机探索或回溯机制。当连续N步奖励无增长时强制智能体回溯到之前的某个状态尝试不同分支。API调用费用飙升或速度极慢。1. 智能体每一步都调用LLM且Prompt很长。2. 使用了昂贵模型如GPT-4进行大量调试。1.本地缓存对相同的输入Prompt缓存LLM的输出结果避免重复计算。2.模型分层在非关键的推理步骤如格式检查、简单分类使用小型、快速的本地模型。只在核心规划步骤使用大模型。3.异步与批处理如果可以将多个独立推理请求批量发送给LLM API。6.3 评估结果分析与调试问题问题现象可能原因排查步骤与解决方案任务成功率波动很大同一智能体多次运行结果差异大。LLM生成具有随机性。任务本身可能对初始条件或细微操作顺序敏感。1. 设置LLM的temperature0以减少随机性确保实验可复现。2. 进行多次运行例如5-10次计算平均成功率和标准差这比单次运行更有统计意义。3. 分析失败案例看是否集中在某类子任务或某种环境状态下进行针对性改进。智能体在训练集上表现好但在未见过的测试任务上表现差。过拟合。智能体可能只是记住了一些任务套路而非学会了通用能力。1. 确保你的训练集和测试集任务有足够多样性。2. 在Prompt中避免使用过于针对训练任务的示例。3. 引入数据增强例如对任务描述进行同义改写或轻微改变环境初始状态。评估指标看起来不错但人工检查轨迹发现智能体行为很“蠢”或绕路。评估指标可能无法完全捕捉所有维度的性能。例如成功率只关心结果不关心过程是否高效、自然。1.人工评估定期抽样检查智能体的轨迹这是发现奇怪行为的金标准。2.设计过程指标除了最终成功率自己定义并计算一些过程指标如“无效操作比例”、“工具调用准确率”、“用户满意度模拟”。3.可视化轨迹将智能体的每一步动作和观察用更直观的方式如生成一个故事板或流程图展示出来更容易发现问题。7. 未来展望与进阶学习路径OpenClaw所代表的智能体评估与构建范式正在快速演进。从我目前的实践和观察来看有几个方向值得深入关注多模态能力的深度融合当前的基准仍以文本交互为主但现实世界是多模态的。未来的智能体需要能看懂屏幕截图、听懂语音指令、分析图表数据。OpenClaw后续版本很可能会纳入更丰富的多模态任务这就要求我们的智能体架构需要集成视觉编码器、语音识别等模块并能进行跨模态的联合推理。从模仿学习到强化学习与课程学习目前很多智能体依赖于高质量的专家示范数据模仿学习。但专家数据稀缺且成本高。一个趋势是结合强化学习RL让智能体通过与环境的大量试错来自主提升。OpenClaw提供的环境正是天然的RL训练场。更高级的方法是课程学习Curriculum Learning让智能体从简单任务开始逐步过渡到复杂任务学习过程更平滑、高效。智能体的“基础模型”化就像NLP有BERT、GPT这样的基础模型是否会出现一个“智能体基础模型”这个模型预训练了大量跨领域的工具使用和任务规划数据具备强大的泛化能力。用户只需对其进行少量特定领域的微调就能快速得到一个可用的专业智能体。OpenClaw这类大型、多样的基准正是训练和评估这种基础模型的关键。对于想要深入这个领域的同行我的建议是不要只停留在跑通Demo。选择OpenClaw中的一个子领域如Web导航、数据库操作、科学实验模拟深入下去。从复现一篇顶会论文的智能体方法开始然后尝试改进它——可以是优化它的Prompt改进它的记忆结构或者为它增加一个新的反思模块。将你的改进在OpenClaw基准上进行严格的测试和对比记录下每一步的性能变化和分析。这个过程本身就是对你构建通用AI智能体能力最好的训练。