sync update from LAN repo (source master @ ca48c4ec)
This commit is contained in:
1 parent
8bc8b0e082
commit
ea9dcff9c0
873 files changed
+107866
-14011
No files matched your search
@@ -1,5 +1,7 @@
|
||||
from types import SimpleNamespace
|
||||
|
||||
import pytest
|
||||
|
||||
from app.gateway.services import (
|
||||
apply_knowledge_space_strict_scope,
|
||||
enforce_knowledge_retrieval_mode_run_config,
|
||||
@@ -128,6 +130,55 @@ def test_retrieval_modes_mount_mutually_exclusive_knowledge_tool_surfaces() -> N
|
||||
assert "ordinary_knowledge_search" in excluded
|
||||
assert "ordinary_wiki_search" in excluded
|
||||
|
||||
|
||||
@pytest.mark.parametrize("delivery", [False, True])
|
||||
def test_classic_strict_knowledge_scope_builds_lead_agent(monkeypatch, delivery) -> None:
|
||||
from deerflow.agents.deep_research import retrieval
|
||||
from deerflow.agents.lead_agent import agent as lead_agent
|
||||
|
||||
captured_tools: dict = {}
|
||||
app_config = SimpleNamespace(
|
||||
get_model_config=lambda _name: SimpleNamespace(supports_thinking=True),
|
||||
)
|
||||
monkeypatch.setattr(lead_agent, "_resolve_model_name", lambda *_args, **_kwargs: "test-model")
|
||||
monkeypatch.setattr(lead_agent, "validate_agent_id", lambda _value: "roundtable-coordinator")
|
||||
monkeypatch.setattr(lead_agent, "create_chat_model", lambda **_kwargs: object())
|
||||
monkeypatch.setattr(lead_agent, "create_agent", lambda **kwargs: kwargs)
|
||||
monkeypatch.setattr(lead_agent, "load_agent_soul", lambda _agent: "")
|
||||
monkeypatch.setattr(lead_agent, "_log_es_query_routing_registration", lambda **_kwargs: None)
|
||||
monkeypatch.setattr(lead_agent, "_build_middlewares", lambda *_args, **_kwargs: [])
|
||||
monkeypatch.setattr(lead_agent, "apply_prompt_template", lambda **_kwargs: "test prompt")
|
||||
monkeypatch.setattr(lead_agent, "_filter_available_skills_for_excluded_tools", lambda skills, _excluded: skills)
|
||||
monkeypatch.setattr(retrieval, "resolve_collector_skill_visibility", lambda _agent, skills, _extra: skills)
|
||||
monkeypatch.setattr(retrieval, "runtime_extra_skills", lambda _config: [])
|
||||
|
||||
import deerflow.tools
|
||||
|
||||
def fake_get_available_tools(**kwargs):
|
||||
captured_tools.update(kwargs)
|
||||
return []
|
||||
|
||||
monkeypatch.setattr(deerflow.tools, "get_available_tools", fake_get_available_tools)
|
||||
|
||||
result = lead_agent._make_lead_agent(
|
||||
{
|
||||
"configurable": {
|
||||
"is_bootstrap": False,
|
||||
"writing_mode": True,
|
||||
"workbench_write_now": delivery,
|
||||
"workbench_session_id": "test-session" if delivery else None,
|
||||
"knowledge_space_strict": True,
|
||||
"knowledge_retrieval_mode": "classic",
|
||||
}
|
||||
},
|
||||
app_config=app_config,
|
||||
)
|
||||
|
||||
assert result["system_prompt"].startswith("test prompt")
|
||||
assert captured_tools["include_mcp"] is False
|
||||
assert "web_search" in captured_tools["excluded_tools"]
|
||||
assert ("deep_research_report" in {tool.name for tool in result["tools"]}) is delivery
|
||||
|
||||
smart = {
|
||||
"configurable": {
|
||||
"llmwiki_knowledge_base_ids": ["kb-1"],
|
||||
|
||||
Reference in new issue
Block a user