
1. 项目概述当LLM智能体需要“马拉松式”思考最近在搞大模型智能体LLM Agent落地的朋友估计都遇到过同一个头疼的问题让一个智能体去完成一个稍微复杂点的任务比如“帮我分析一下这个季度的销售数据写份报告并根据报告结论草拟三封给不同部门的改进建议邮件”它往往跑着跑着就“迷路”了。不是中途忘了核心目标就是陷入某个细节循环出不来或者生成的内容前后矛盾。这背后的核心挑战就是“长视野任务”Long-Horizon Tasks的规划与执行连贯性问题。传统的智能体框架无论是基于ReAct推理-行动还是更复杂的规划器大多依赖于一个静态的、预设的“运行时约束”Runtime Harness。你可以把它理解为一个固定的行为准则手册。智能体每走一步就翻一下手册看看下一步该干嘛。这个手册在短平快的任务里很好用比如“查天气”、“订餐厅”。但一旦任务链条拉长环境动态变化这个静态手册就立刻捉襟见肘了。它无法根据智能体执行过程中的实时反馈、新出现的子目标或意外错误来动态调整自己的“管教”策略。这就引出了我们这次要深入探讨的核心EvoHarness-RL。这个项目的标题直译过来是“学习自我进化的运行时约束用于长视野LLM智能体”。名字听起来有点学术但内核非常务实——它试图用强化学习RL的方法让智能体在执行任务的过程中自己学会如何动态地优化和调整那个指导它行为的“约束框架”Harness从而实现更稳定、更可靠的长程任务完成能力。简单来说这不是在教智能体“做什么”那是任务规划的事而是在教它“如何更好地管理自己做事的流程和节奏”。想象一下你不仅雇佣了一个分析师还给了他一个能随着项目推进而不断自我改进的项目管理方法论。这个方法论就是“EvoHarness”。它的目标是解决长视野任务中三大典型痛点长期目标遗忘、子任务协调失效、以及错误累积与传播。对于任何正在尝试将LLM智能体应用于复杂业务流程自动化、多步骤研究分析、或持续性对话交互的开发者来说理解并实践类似EvoHarness-RL的思路可能是突破当前智能体能力天花板的关键一步。它标志着智能体研发从“静态脚本执行”向“动态元认知管理”演进的重要尝试。2. 核心设计思路为何是“进化”与“强化学习”要理解EvoHarness-RL我们得先拆解两个关键词“自我进化”Self-Evolving和“强化学习”Reinforcement Learning。这二者的结合直指长视野智能体任务的阿喀琉斯之踵。2.1 静态约束的局限性为何长任务中它会失灵在经典的智能体架构中运行时约束Harness通常是一组固定的规则或提示词Prompt模板。例如它可能规定智能体必须遵循“思考-行动-观察”的循环或者在执行任何外部工具调用前必须进行安全性检查。在短任务中这套规则运行良好。但在长视野任务中问题接踵而至环境反馈的延迟与稀疏性一个复杂任务可能由几十个子步骤构成最终的成败奖励或惩罚要到很久之后才能知晓。静态约束无法将这种遥远的、稀疏的成功信号有效地传递并用于调整中间每一步的决策策略。状态的复杂性与部分可观测性智能体对任务全局状态的认知是不完整的、逐步积累的。静态约束无法适应这种不断演变的状态表示它用同一把尺子去衡量任务开头和任务尾声的决策显然不合理。探索与利用的长期权衡在长任务中前期一些看似“低效”的探索比如尝试不同的信息检索策略可能为后期关键决策积累宝贵信息。静态的、追求短期效率的约束往往会扼杀这种必要的探索导致智能体陷入局部最优。这就好比用一份固定的“驾驶指南”去完成一场穿越复杂地形的长途越野。指南告诉你“遇弯道减速”但在沙漠、雪地、泥泞中你需要的是完全不同的车辆控制策略。静态指南无法根据实时路况环境反馈和车辆状态智能体内部状态进行动态调整。2.2 强化学习作为进化引擎从经验中学习“如何学习”强化学习的核心范式是“智能体在环境中采取行动获得奖励从而学习最大化长期累积奖励的策略”。这完美契合了“进化运行时约束”的需求。在EvoHarness-RL的框架中智能体不再是执行具体任务的基础LLM智能体而是那个管理运行时约束的“元智能体”Meta-Agent。环境是基础LLM智能体执行具体任务的过程。元智能体通过调整约束Harness来影响基础智能体的行为。行动元智能体的行动是对运行时约束参数的调整。例如调整提示词中关于“反思深度”的权重、改变工具调用的置信度阈值、或者决定在当前步骤是鼓励“深入思考”还是“快速推进”。状态是基础智能体当前的任务执行上下文可能包括历史对话/行动序列、子目标完成情况、可用工具的状态、以及最近几步的反馈质量等。奖励这是设计的关键。奖励信号需要精心设计以鼓励长视野下的优良表现。它可能包括任务进度奖励子目标的完成。效率惩罚用于鼓励快速推进避免无意义循环。一致性奖励确保当前输出与历史决策和最终目标保持一致。最终任务成功/失败奖励最稀疏但也是最重要的信号。通过RL训练这个元智能体学会了一种策略根据当前任务执行的复杂状态输出一个最优的“约束调整动作”使得被管理的基础智能体在长期任务中能获得更高的累积奖励即更可能成功完成任务。这个过程就是“进化”。约束Harness不再是一成不变的代码或文本而是一个由RL策略参数化的、可动态调整的函数。它随着在大量不同长任务上的训练而不断进化变得越来越擅长于在复杂、漫长的决策序列中为底层智能体提供恰到好处的指导。2.3 整体架构猜想双环交互系统基于以上思路我们可以勾勒出EvoHarness-RL可能的核心架构它是一个双环系统内环任务执行环基础LLM智能体在当前版本的运行时约束Harness指导下与环境如搜索引擎、数据库、API进行标准的ReAct式交互逐步推进具体任务。外环约束进化环状态观察器持续监控内环的执行状态提取特征如当前步骤、历史摘要、工具使用模式、困惑度指标等形成状态向量s_t。RL策略网络元智能体接收状态s_t输出一个动作a_t。这个动作就是对运行时约束的调整指令如微调某个提示词参数。约束调整器根据动作a_t实时更新内环智能体所使用的运行时约束。这个更新可能是即时的也可能是在下一个决策周期生效。奖励计算器根据内环的执行结果如子目标达成、错误发生、效率指标计算当前步骤的奖励r_t。学习与更新将序列(s_t, a_t, r_t, s_{t1})存入经验回放缓冲区定期采样用于更新RL策略网络的参数使其进化。这个双环结构使得“如何管理任务执行”本身成为一个可以持续学习和优化的对象。这是实现“自我进化”的关键。3. 关键技术细节与实现难点解析将EvoHarness-RL从概念落地会面临一系列工程与算法上的挑战。下面我们拆解几个核心环节。3.1 状态空间的设计如何量化“任务执行状况”状态s_t的设计直接决定了RL策略能感知到什么信息。一个好的状态表示应该能捕捉到长任务执行的健康度。它可能包括时序特征当前步骤序号归一化。距离上一个子目标完成已过去的步骤数。历史行动序列的嵌入向量通过一个小的LSTM或Transformer编码器得到摘要。语义特征基础智能体最新“思考”内容的嵌入向量例如通过Sentence-Bert提取用于衡量其思考的聚焦度或发散度。当前上下文最近几轮交互与初始任务描述之间的余弦相似度用于检测目标偏离。性能特征最近N步内工具调用失败的比例。最近N步内智能体输出被解析为“无效行动”或“请求澄清”的频率。一个滑动窗口内的平均“思考”令牌长度作为反思深度的代理指标。目标进度特征已识别出的子目标列表及其完成状态布尔值向量。通过一个简单的分类器预测的当前“任务完成度”置信度分数。实操心得状态设计的稀疏性与相关性状态向量不是越复杂越好。初期实践时建议从最核心的3-5个特征开始例如“步骤序号”、“目标相似度”、“近期错误率”。过多的、相关性不强的特征会稀释奖励信号让RL策略难以学习。这些特征最好能进行归一化处理避免不同量纲的影响。一个实用的技巧是引入一个“任务阶段”的离散编码如0:规划1:执行2:验证作为状态的一部分这能极大地帮助策略理解当前该采取何种风格的约束。3.2 动作空间的设计约束可以如何被调整动作a_t定义了元智能体能对运行时约束施加的影响。这需要平衡灵活性与可学习性。动作空间可以是离散的、连续的或混合的。离散动作易于学习表达能力有限动作0增强反思。在提示词中插入“请更仔细地分析当前状况与目标的关联”。动作1推动执行。在提示词中插入“请基于已有信息直接进行下一步最有可能推进任务的操作”。动作2请求简化。指示智能体将当前复杂问题分解为更小的子问题。动作3检查一致性。触发一个内部检查比对当前输出与历史决策。连续动作表达能力强学习难度高调整一个“探索-利用”温度参数τ直接影响基础智能体采样行动时的随机性。调整一个“反思权重”标量λ该权重会乘以“思考”步骤在提示词中的重要性强调部分。调整工具调用置信度阈值θ影响智能体是否倾向于使用外部工具。混合动作结合以上两者。例如一个离散动作选择“操作模式”如反思模式、执行模式而连续参数则在该模式下进行微调如反思模式的深度系数。注意事项动作对提示词的直接影响许多约束最终体现为对LLM提示词的修改。直接让RL策略输出自然语言片段来修改提示词是极其困难的。更可行的方案是参数化提示词模板。例如设计一个模板其中包含一些可插槽的“指令修饰符”[MODIFIER]和可调节的数值参数{weight}。RL策略的输出就是选择哪个修饰符和设定具体的参数值。这样动作空间是结构化的、低维的更适合RL学习。3.3 奖励函数的设计如何定义长视野下的“好”行为奖励函数R是指引进化方向的指挥棒。对于长视野任务奖励必须精心设计以塑造期望的元认知行为。稀疏的终极奖励R_final。任务成功完成时给予一个大正奖励如100彻底失败时给予一个大负奖励如-100。这是必须的但仅靠它学习效率极低。稠密的中间奖励这是训练成功的关键。子目标达成奖励R_subgoal。每当智能体完成一个可识别的子目标如“成功检索到相关文档”、“生成报告大纲”给予一个中等正奖励如10。这需要定义子目标检测器。进展奖励R_progress。可以基于状态中的“任务完成度置信度”分数的增加量来给予微小奖励。这鼓励持续向前推进。效率惩罚P_inefficiency。每个时间步给予一个微小的负奖励如-0.1鼓励智能体减少不必要的步骤。但需小心避免惩罚了必要的深入思考。一致性惩罚P_inconsistency。当检测到当前输出与历史事实或决策明显矛盾时给予一个中等负奖励如-5。这可以通过将历史关键断言与当前输出进行蕴含关系检查来实现。错误避免奖励R_error_avoid。在容易出错的环节如调用一个易出错的API后如果下一步智能体选择了验证或错误处理动作而非盲目继续给予一个小奖励如2。最终的奖励可能是这些项的加权和R_t w1*R_subgoal w2*R_progress w3*P_inefficiency ... R_final。避坑指南奖励塑造Reward Shaping的双刃剑设计稠密奖励是一门艺术不当的奖励塑造会导致“奖励黑客”Reward Hacking行为。例如如果过于强调“子目标达成”智能体可能会学会将任务拆解成大量琐碎、无意义的子目标来刷分。一个重要的原则是奖励应该尽可能与最终任务目标在逻辑上对齐。在实践中建议采用课程学习Curriculum Learning的思路初期使用较强的稠密奖励引导策略学习基本能力随着训练进行逐步降低稠密奖励的权重让策略更依赖于稀疏的终极奖励从而学习到真正面向长期目标的策略。3.4 强化学习算法的选择与训练策略考虑到状态和动作空间可能是连续或高维离散的并且需要从稀疏奖励中学习长期策略近端策略优化PPO或深度确定性策略梯度DDPG/软演员-评论家SAC是较为合适的选择。PPO适用于离散或连续动作空间因其出色的稳定性和样本效率而闻名。对于调整提示词参数这类连续动作或选择离散操作模式PPO都能良好工作。SAC在连续动作空间的控制任务上通常表现更优尤其擅长探索。如果动作空间主要是连续参数如权重、阈值SAC是很好的候选。训练流程的挑战与对策环境模拟成本高用真实LLM和API作为环境进行RL训练成本无法承受。必须构建一个模拟环境。方案使用一个轻量级的、行为可预测的“模拟LLM”例如一个微调过的小模型或甚至是一组规则来替代昂贵的大模型用于RL训练循环。训练好的元策略再迁移到真实的大模型环境中进行微调和评估。样本效率与离线学习从头在线探索学习效率太低。可以利用历史智能体执行日志成功的和失败的进行离线强化学习或预训练。方案将历史日志转化为状态-动作-奖励序列用行为克隆Behavior Cloning或离线RL算法如CQL对策略网络进行初始化再进行在线微调。泛化性训练出的约束策略需要在未见过的长任务上也能工作。方案在训练时使用一个多样化的“任务生成器”来创建大量不同领域、不同复杂度的长视野任务用于训练避免过拟合到特定任务模式。4. 实操构建与核心代码环节理论说了这么多我们来勾勒一个高度简化的EvoHarness-RL原型实现框架以便于理解其代码层面的组织。这里我们假设使用离散动作空间和PPO算法。4.1 环境模拟器Simulated Environment搭建首先我们需要一个成本可控的训练环境。import numpy as np from typing import Tuple, Dict, Any from some_llm_simulator import SimulatedLLM # 一个模拟LLM行为的类 class LongHorizonTaskEnv: def __init__(self, task_generator): self.task_generator task_generator self.sim_llm SimulatedLLM() self.current_task None self.agent_state { steps: 0, subgoals_done: [], recent_errors: 0, context_embedding: None, # ... 其他状态特征 } self.harness BaseHarness() # 基础约束其参数将被调整 self.max_steps 100 def reset(self) - np.ndarray: 重置环境开始一个新任务 self.current_task self.task_generator.sample() self.agent_state {steps: 0, subgoals_done: [], recent_errors: 0, ...} self.harness.reset_to_default() return self._get_state_vector() def step(self, action: int) - Tuple[np.ndarray, float, bool, Dict]: 执行元智能体的动作推进环境一步。 action: 整数代表对约束的调整指令。 # 1. 根据动作更新运行时约束 self._apply_harness_action(action) # 2. 基础智能体在更新后的约束下执行一步 llm_prompt self.harness.format_prompt(self.current_task, self.agent_state) llm_response, sim_success, sim_subgoal_achieved self.sim_llm.step(llm_prompt) # 3. 更新智能体状态 self.agent_state[steps] 1 self.agent_state[recent_errors] ... # 更新错误计数 if sim_subgoal_achieved: self.agent_state[subgoals_done].append(sim_subgoal_achieved) # ... 更新其他状态特征如context_embedding # 4. 计算奖励 reward self._calculate_reward(sim_success, sim_subgoal_achieved, llm_response) # 5. 检查终止条件 done (sim_success and final in sim_subgoal_achieved) or (self.agent_state[steps] self.max_steps) # 6. 获取新状态 next_state self._get_state_vector() info {task: self.current_task, response: llm_response} return next_state, reward, done, info def _apply_harness_action(self, action: int): 根据离散动作代码调整约束参数 if action 0: self.harness.reflection_weight 0.2 # 增加反思权重 elif action 1: self.harness.exploration_bonus max(0.1, self.harness.exploration_bonus - 0.05) # 降低探索偏向利用 # ... 其他动作定义 self.harness.clamp_parameters() # 确保参数在合理范围内 def _calculate_reward(self, success, subgoal, response) - float: 实现前面所述的奖励函数 reward 0.0 if subgoal: reward 10.0 # 子目标奖励 if not success: reward - 2.0 # 步骤失败惩罚 reward - 0.1 # 效率惩罚每步固定小惩罚 # ... 其他奖励项计算 if final_success in subgoal: reward 100.0 return reward def _get_state_vector(self) - np.ndarray: 将agent_state字典转换为RL策略网络输入的状态向量 features [] features.append(self.agent_state[steps] / self.max_steps) # 归一化步骤 features.append(len(self.agent_state[subgoals_done])) # 已完成子目标数 features.append(self.agent_state[recent_errors] / 5.0) # 近期错误率假设5步窗口 # ... 计算并添加其他特征 return np.array(features, dtypenp.float32)4.2 元智能体RL策略网络实现接下来我们使用PyTorch和Stable-Baselines3库来定义一个简单的策略网络。import torch import torch.nn as nn from stable_baselines3 import PPO from stable_baselines3.common.policies import ActorCriticPolicy from stable_baselines3.common.torch_layers import BaseFeaturesExtractor class HarnessFeatureExtractor(BaseFeaturesExtractor): 自定义特征提取器处理状态向量 def __init__(self, observation_space, features_dim128): super().__init__(observation_space, features_dim) # 假设状态向量已经是提取好的特征这里可以加一个MLP进一步处理 self.net nn.Sequential( nn.Linear(observation_space.shape[0], 64), nn.ReLU(), nn.Linear(64, features_dim), nn.ReLU(), ) def forward(self, observations): return self.net(observations) # 定义自定义策略网络 class CustomHarnessPolicy(ActorCriticPolicy): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs, features_extractor_classHarnessFeatureExtractor, features_extractor_kwargsdict(features_dim128)) # 创建环境和模型 env LongHorizonTaskEnv(task_generatormy_task_generator) model PPO(CustomHarnessPolicy, env, verbose1, learning_rate3e-4, n_steps2048, # 每轮收集的数据步数 batch_size64, n_epochs10, gamma0.99, # 折扣因子重视长期回报 gae_lambda0.95, clip_range0.2, ent_coef0.01) # 鼓励探索 # 训练模型 model.learn(total_timesteps1_000_000) # 训练步数 # 保存模型 model.save(evo_harness_ppo_model)4.3 约束调整器Harness与真实环境集成训练完成后我们需要将学到的策略部署到真实环境中。class EvolvableHarness: def __init__(self, rl_model_path, base_prompt_template): self.model PPO.load(rl_model_path) # 加载训练好的RL策略 self.base_template base_prompt_template self.params { reflection_weight: 1.0, exploration_bonus: 0.5, tool_confidence_threshold: 0.7, # ... 其他可调参数 } self.current_state None self.state_observer StateObserver() def adapt_for_step(self, task_context: Dict, llm_agent_state: Dict) - str: 根据当前任务上下文和智能体状态动态生成调整后的提示词。 # 1. 观察状态 obs_vector self.state_observer.observe(task_context, llm_agent_state) self.current_state obs_vector # 2. RL策略决策在真实环境中可能以一定频率执行而非每步 # 这里假设每步都决策。更优策略可能是每N步或状态变化大时才决策。 action, _states self.model.predict(obs_vector, deterministicTrue) # action是离散动作ID或连续参数 # 3. 应用动作更新内部参数 self._update_parameters_from_action(action) # 4. 用更新后的参数渲染最终提示词 final_prompt self._render_prompt(task_context, llm_agent_state) return final_prompt def _update_parameters_from_action(self, action): # 根据训练时定义的动作空间映射更新self.params # 例如如果action是离散的0则 self.params[reflection_weight] * 1.2 # 如果action是连续的则直接赋值。 pass def _render_prompt(self, task_context, llm_agent_state) - str: # 将base_template与动态参数结合 prompt self.base_template.format( reflection_emphasis*请深入思考* if self.params[reflection_weight] 1.5 else 请思考, tool_instructionf如果置信度超过{self.params[tool_confidence_threshold]}则使用工具。, # ... 其他动态部分 tasktask_context[description], historyllm_agent_state[conversation_history], ) return prompt # 在真实智能体循环中使用 def agent_loop_with_evo_harness(task): harness EvolvableHarness(evo_harness_ppo_model.zip, BASE_PROMPT_TEMPLATE) agent_state initialize_state() task_context {description: task} while not task_complete: # 获取进化后的提示词 dynamic_prompt harness.adapt_for_step(task_context, agent_state) # 基础LLM智能体根据dynamic_prompt生成响应和行动 llm_response, action call_llm_api(dynamic_prompt) # 执行行动获取环境反馈 observation, reward, done execute_action(action) # 更新智能体状态和任务上下文 update_state(agent_state, llm_response, action, observation) task_context[latest_obs] observation if done: break5. 常见问题、挑战与优化方向实录在实际尝试实现EvoHarness-RL概念时你会遇到一系列预料之中和预料之外的挑战。以下是我在类似项目探索中遇到的一些核心问题及思考。5.1 模拟环境与真实环境的差距Sim2Real Gap这是最大的挑战。在模拟环境中训练得再好的策略放到真实LLM如GPT-4和真实API构成的环境中性能可能大幅下降。问题表现模拟器中智能体学会的“小技巧”比如频繁触发某个虚拟子目标来刷分在真实环境中完全无效甚至有害。排查与解决提高模拟器保真度不要用过于简单的规则模拟LLM。可以使用一个较小的、开源的大语言模型如Llama 3 8B作为“模拟LLM”其行为模式比规则更接近真实大模型。虽然仍有差距但比规则模拟好得多。域随机化Domain Randomization在训练时随机化模拟环境的一些特性如任务描述的措辞风格、虚拟工具的响应延迟和噪声、子目标检测的模糊性等。这能迫使RL策略学习更鲁棒、更本质的约束调整策略而不是过拟合到模拟器的特定怪癖。在真实环境中进行少量微调将模拟环境中训练好的策略作为初始点然后在少量真实任务轨迹上使用在线RL如PPO的继续训练或模仿学习进行快速微调。由于策略已有基础微调所需的昂贵交互数据量会大大减少。5.2 训练不稳定与策略崩溃RL训练尤其是涉及语言和复杂决策时非常容易不稳定。问题表现训练曲线剧烈震荡策略性能突然断崖式下跌崩溃再也恢复不了。排查与解决严格的奖励归一化Reward Scaling确保奖励值在一个合理的范围内如[-1, 1]或[-10, 10]。过大的奖励值会导致梯度爆炸。可以使用运行统计量对奖励进行标准化。谨慎的探索策略初期使用较高的熵系数ent_coef鼓励探索随着训练逐渐衰减。也可以使用像SAC这类自带探索机制的算法。使用策略约束算法PPO本身通过裁剪Clipping来约束策略更新幅度防止一次更新太大。这是它稳定的原因之一。确保PPO的裁剪范围clip_range设置合理通常0.1-0.3。多随机种子运行任何RL实验都必须用多个不同的随机种子运行报告平均性能和方差。单次运行的结果可能有很大偶然性。保存检查点Checkpoint定期保存模型参数。一旦发生策略崩溃可以回滚到之前性能好的检查点并调整超参数如降低学习率。5.3 计算资源与成本考量训练一个EvoHarness-RL系统是资源密集型的。成本构成模拟环境运行即使使用小模型运行数十万至百万步的交互也需要可观的GPU时间。RL策略训练PPO等算法需要存储和反复处理大量的经验数据对内存和计算有一定要求。真实环境评估定期用真实LLM评估策略性能是必要的但这会产生API调用费用。优化策略分布式模拟使用Ray等框架并行运行多个模拟环境实例极大加快数据收集速度。课程学习与早停从简单的短任务开始训练逐步增加难度。在验证集一组固定的真实任务上监控性能当性能不再提升时早停避免无效训练。共享特征提取器如果基础智能体的架构固定可以将其状态编码器用于生成context_embedding预训练好并冻结RL策略只学习在其之上的决策层减少可训练参数量。5.4 可解释性与调试困难一个训练好的EvoHarness策略是一个神经网络它为什么在特定时刻做出某个调整决策往往是个黑盒。问题影响当智能体行为异常时很难定位是基础LLM的问题还是约束策略的错误引导。改善方法动作日志与可视化详细记录每个决策点的状态特征、采取的动作及其解释如“因为近期错误率高故选择动作2增强反思”。将这些日志与任务执行轨迹对齐分析。敏感性分析系统性地扰动输入状态向量的某个特征如将目标相似度调低观察策略输出的动作如何变化从而理解该特征对决策的影响权重。设计更可解释的动作空间如前所述使用离散的、语义明确的动作如“转向反思模式”比使用连续的、无意义的参数调整更容易让人理解。引入注意力机制在策略网络中引入注意力层使其在决策时能“关注”状态向量中的某些部分事后可以通过分析注意力权重来了解决策依据。这条路走下来你会发现EvoHarness-RL不是一个可以一蹴而就的即插即用模块而是一个需要精心设计、迭代调试的研究性工程。它最大的价值在于提供了一种范式将智能体的“元认知管理”能力本身作为一个可通过经验数据来优化的对象。这对于构建真正可靠、能够处理开放世界复杂任务的自主智能体系统是一个不可或缺的探索方向。在实际项目中或许可以从一个极度简化的版本开始比如只调整一个“反思强度”参数验证其收益再逐步扩展复杂度这样更容易获得正反馈并控制风险。