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 <noreply@anthropic.com>
This commit is contained in:
@@ -46,8 +46,8 @@ DEFAULT_MODEL=org_auto
|
|||||||
# 默认模式:chat 或 agent
|
# 默认模式:chat 或 agent
|
||||||
DEFAULT_ASK_MODE=chat
|
DEFAULT_ASK_MODE=chat
|
||||||
|
|
||||||
# 请求侧 tools/tool_choice 透传到 Lingma(默认关闭,开启后可支持工具写文件等场景)
|
# 请求侧 tools/tool_choice 透传到 Lingma(默认开启,可显式关闭)
|
||||||
TOOL_FORWARD_ENABLED=false
|
TOOL_FORWARD_ENABLED=true
|
||||||
# 可选:允许透传的工具名白名单,逗号分隔;为空表示不额外限制
|
# 可选:允许透传的工具名白名单,逗号分隔;为空表示不额外限制
|
||||||
TOOL_ALLOWLIST=
|
TOOL_ALLOWLIST=
|
||||||
|
|
||||||
|
|||||||
@@ -182,6 +182,6 @@ def load_settings() -> Settings:
|
|||||||
session_reuse_enabled=_bool_env("SESSION_REUSE_ENABLED", True),
|
session_reuse_enabled=_bool_env("SESSION_REUSE_ENABLED", True),
|
||||||
session_cache_max_entries=int(os.getenv("SESSION_CACHE_MAX_ENTRIES", "256")),
|
session_cache_max_entries=int(os.getenv("SESSION_CACHE_MAX_ENTRIES", "256")),
|
||||||
session_cache_ttl_sec=float(os.getenv("SESSION_CACHE_TTL_SEC", "1800")),
|
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", "")),
|
tool_allowlist=_csv_env(os.getenv("TOOL_ALLOWLIST", "")),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -193,6 +193,18 @@ class ConfigParsingTests(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(settings.tool_allowlist, ["lookup", "write_file", "search_docs"])
|
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:
|
def test_load_settings_empty_tool_allowlist(self) -> None:
|
||||||
with patch.dict(os.environ, {"TOOL_ALLOWLIST": " , , "}, clear=True):
|
with patch.dict(os.environ, {"TOOL_ALLOWLIST": " , , "}, clear=True):
|
||||||
settings = load_settings()
|
settings = load_settings()
|
||||||
|
|||||||
Reference in New Issue
Block a user