mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-20 04:44:46 +08:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
|
|
"""Configuration for deferred tool loading via tool_search."""
|
||
|
|
|
||
|
|
from pydantic import BaseModel, Field
|
||
|
|
|
||
|
|
|
||
|
|
class ToolSearchConfig(BaseModel):
|
||
|
|
"""Configuration for deferred tool loading via tool_search.
|
||
|
|
|
||
|
|
When enabled, MCP tools are not loaded into the agent's context directly.
|
||
|
|
Instead, they are listed by name in the system prompt and discoverable
|
||
|
|
via the tool_search tool at runtime.
|
||
|
|
"""
|
||
|
|
|
||
|
|
enabled: bool = Field(
|
||
|
|
default=False,
|
||
|
|
description="Defer tools and enable tool_search",
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
_tool_search_config: ToolSearchConfig | None = None
|
||
|
|
|
||
|
|
|
||
|
|
def get_tool_search_config() -> ToolSearchConfig:
|
||
|
|
"""Get the tool search config, loading from AppConfig if needed."""
|
||
|
|
global _tool_search_config
|
||
|
|
if _tool_search_config is None:
|
||
|
|
_tool_search_config = ToolSearchConfig()
|
||
|
|
return _tool_search_config
|
||
|
|
|
||
|
|
|
||
|
|
def load_tool_search_config_from_dict(data: dict) -> ToolSearchConfig:
|
||
|
|
"""Load tool search config from a dict (called during AppConfig loading)."""
|
||
|
|
global _tool_search_config
|
||
|
|
_tool_search_config = ToolSearchConfig.model_validate(data)
|
||
|
|
return _tool_search_config
|