From 83d69097c9def6acfe81e9e133ad2465b19626f3 Mon Sep 17 00:00:00 2001 From: mmc <853506518@qq.com> Date: Tue, 21 Apr 2026 13:41:41 +0800 Subject: [PATCH] fix: enable tool forwarding by default and add config regression tests Switch TOOL_FORWARD_ENABLED default to true in runtime config and .env.example, and add regression tests covering default-on and explicit false behavior. Co-Authored-By: Claude Opus 4.7 --- .env.example | 4 ++-- app/config.py | 2 +- tests/test_pool_stats_config.py | 12 ++++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index d75be95..b935136 100644 --- a/.env.example +++ b/.env.example @@ -46,8 +46,8 @@ DEFAULT_MODEL=org_auto # 默认模式:chat 或 agent DEFAULT_ASK_MODE=chat -# 请求侧 tools/tool_choice 透传到 Lingma(默认关闭,开启后可支持工具写文件等场景) -TOOL_FORWARD_ENABLED=false +# 请求侧 tools/tool_choice 透传到 Lingma(默认开启,可显式关闭) +TOOL_FORWARD_ENABLED=true # 可选:允许透传的工具名白名单,逗号分隔;为空表示不额外限制 TOOL_ALLOWLIST= diff --git a/app/config.py b/app/config.py index ea1e4d7..2b35b7f 100644 --- a/app/config.py +++ b/app/config.py @@ -182,6 +182,6 @@ def load_settings() -> Settings: session_reuse_enabled=_bool_env("SESSION_REUSE_ENABLED", True), session_cache_max_entries=int(os.getenv("SESSION_CACHE_MAX_ENTRIES", "256")), session_cache_ttl_sec=float(os.getenv("SESSION_CACHE_TTL_SEC", "1800")), - tool_forward_enabled=_bool_env("TOOL_FORWARD_ENABLED", False), + tool_forward_enabled=_bool_env("TOOL_FORWARD_ENABLED", True), tool_allowlist=_csv_env(os.getenv("TOOL_ALLOWLIST", "")), ) diff --git a/tests/test_pool_stats_config.py b/tests/test_pool_stats_config.py index 37af01c..2544bf6 100644 --- a/tests/test_pool_stats_config.py +++ b/tests/test_pool_stats_config.py @@ -193,6 +193,18 @@ class ConfigParsingTests(unittest.TestCase): self.assertEqual(settings.tool_allowlist, ["lookup", "write_file", "search_docs"]) + def test_load_settings_defaults_tool_forward_enabled_true(self) -> None: + with patch.dict(os.environ, {}, clear=True): + settings = load_settings() + + self.assertTrue(settings.tool_forward_enabled) + + def test_load_settings_respects_tool_forward_enabled_false(self) -> None: + with patch.dict(os.environ, {"TOOL_FORWARD_ENABLED": "false"}, clear=True): + settings = load_settings() + + self.assertFalse(settings.tool_forward_enabled) + def test_load_settings_empty_tool_allowlist(self) -> None: with patch.dict(os.environ, {"TOOL_ALLOWLIST": " , , "}, clear=True): settings = load_settings()