dataagent/core/flex/nodes/executor.py:119-121 的 self._max_tool_result_length 与 runtime.env.max_tool_result_length 是双源配置:
dataagent/core/flex/nodes/executor.py:119-121
self._max_tool_result_length
runtime.env.max_tool_result_length
# executor.py:119-121 self._max_tool_result_length = self.config.get( "max_tool_result_length", DEFAULT_MAX_TOOL_RESULT_LENGTH ) # runtime.env.max_tool_result_length 来自 flex_runtime_from_config._get_node_config_int
两处独立解析同一 YAML 键 ACTOR_LOOP.executor.max_tool_result_length:
ACTOR_LOOP.executor.max_tool_result_length
self.config
__init__
AgentEnv
flex_runtime_from_config.py:259, 316
reconfig()
runtime.env
build_messages(max_tool_result_length=self._max_tool_result_length)
build_messages(max_tool_result_length=runtime.env.max_tool_result_length)
统一从 runtime.env 读取:
# executor.py @property def _max_tool_result_length(self) -> int: return getattr(self.runtime.env, "max_tool_result_length", DEFAULT_MAX_TOOL_RESULT_LENGTH)
或在 reconfig() 里同步更新 self._max_tool_result_length。
dataagent/core/flex/flex_runtime_from_config.py:259, 316
dataagent/core/flex/hooks/pruner.py:65
dataagent/core/flex/utils/planner_prompt_builder.py:130
reconfig
max_tool_result_length
major(reconfig 后行为不一致)
0623
c5c899a4196717d1eb5944a9736f766310655ef7
现象
dataagent/core/flex/nodes/executor.py:119-121的self._max_tool_result_length与runtime.env.max_tool_result_length是双源配置:# executor.py:119-121 self._max_tool_result_length = self.config.get( "max_tool_result_length", DEFAULT_MAX_TOOL_RESULT_LENGTH ) # runtime.env.max_tool_result_length 来自 flex_runtime_from_config._get_node_config_int两处独立解析同一 YAML 键
ACTOR_LOOP.executor.max_tool_result_length:self.config是 executor 节点配置(在__init__时一次性读取)runtime.env.max_tool_result_length是AgentEnv字段(由flex_runtime_from_config.py:259, 316注入)影响
reconfig()修改 YAML 后runtime.env会更新,但self._max_tool_result_length不会build_messages(max_tool_result_length=self._max_tool_result_length)时用的是旧值build_messages(max_tool_result_length=runtime.env.max_tool_result_length)(pruner / planner_prompt_builder)时用的是新值修复方案
统一从
runtime.env读取:# executor.py @property def _max_tool_result_length(self) -> int: return getattr(self.runtime.env, "max_tool_result_length", DEFAULT_MAX_TOOL_RESULT_LENGTH)或在
reconfig()里同步更新self._max_tool_result_length。涉及文件
dataagent/core/flex/nodes/executor.py:119-121dataagent/core/flex/flex_runtime_from_config.py:259, 316dataagent/core/flex/hooks/pruner.py:65dataagent/core/flex/utils/planner_prompt_builder.py:130验证
reconfig修改max_tool_result_length,断言 executor 与 pruner 读到相同的最新值。严重性
major(reconfig 后行为不一致)
环境
0623c5c899a4196717d1eb5944a9736f766310655ef7