fix:env AGENT_RECURSION_LIMIT not work (#453)

* fix:env AGENT_RECURSION_LIMIT not work

* fix:add test

* black tests/unit/config/test_configuration.py

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
道心坚定韩道友
2025-07-22 15:23:21 +08:00
committed by GitHub
parent b197b0f4cb
commit 32d8e514e1
4 changed files with 84 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
# SPDX-License-Identifier: MIT
import logging
import os
from dataclasses import dataclass, field, fields
from typing import Any, Optional
@@ -10,6 +11,39 @@ from langchain_core.runnables import RunnableConfig
from src.rag.retriever import Resource
from src.config.report_style import ReportStyle
logger = logging.getLogger(__name__)
def get_recursion_limit(default: int = 25) -> int:
"""Get the recursion limit from environment variable or use default.
Args:
default: Default recursion limit if environment variable is not set or invalid
Returns:
int: The recursion limit to use
"""
try:
env_value_str = os.getenv("AGENT_RECURSION_LIMIT", str(default))
parsed_limit = int(env_value_str)
if parsed_limit > 0:
logger.info(f"Recursion limit set to: {parsed_limit}")
return parsed_limit
else:
logger.warning(
f"AGENT_RECURSION_LIMIT value '{env_value_str}' (parsed as {parsed_limit}) is not positive. "
f"Using default value {default}."
)
return default
except ValueError:
raw_env_value = os.getenv("AGENT_RECURSION_LIMIT")
logger.warning(
f"Invalid AGENT_RECURSION_LIMIT value: '{raw_env_value}'. "
f"Using default value {default}."
)
return default
@dataclass(kw_only=True)
class Configuration: