refactor(agent): 按需加载 Agent 运行时 (#6336)

This commit is contained in:
InfinityPacer
2026-08-16 19:25:24 +08:00
committed by GitHub
parent e5f0c53069
commit 5b367011c5
56 changed files with 5059 additions and 628 deletions
+18 -17
View File
@@ -407,7 +407,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
patch("app.agent.orchestrator.prompt_manager.get_agent_prompt", return_value="PROMPT"),
patch("app.agent.orchestrator.create_subagent_middlewares", return_value=([], [])),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -462,7 +462,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
patch("app.agent.orchestrator.prompt_manager.get_agent_prompt", return_value="PROMPT"),
patch("app.agent.orchestrator.create_subagent_middlewares", return_value=([], [])),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -514,7 +514,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
patch("app.agent.orchestrator.prompt_manager.get_agent_prompt", return_value="PROMPT"),
patch("app.agent.orchestrator.create_subagent_middlewares", return_value=([], [])),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -603,7 +603,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
patch("app.agent.orchestrator.prompt_manager.get_agent_prompt", return_value="PROMPT"),
patch("app.agent.orchestrator.create_subagent_middlewares", return_value=([], [])),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -667,7 +667,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
),
),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -718,7 +718,7 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
patch("app.agent.orchestrator.prompt_manager.get_agent_prompt", return_value="PROMPT"),
patch("app.agent.orchestrator.create_subagent_middlewares", return_value=([], [])),
patch(
"app.agent.orchestrator.MoviePilotToolFactory.get_tool_selector_always_include_names",
"app.agent.tools.factory.MoviePilotToolFactory.get_tool_selector_always_include_names",
return_value=[],
),
patch(
@@ -766,23 +766,24 @@ class AgentBackgroundOutputTest(unittest.IsolatedAsyncioTestCase):
async def test_run_background_prompt_forces_disable_message_tools_when_capture_only(self):
captured = {}
manager = AgentManager()
async def fake_process(self, message, images=None, files=None):
captured["message"] = message
captured["reply_mode"] = self.reply_mode
captured["allow_message_tools"] = self.allow_message_tools
captured["user_id"] = self.user_id
async def fake_process(task):
captured["message"] = task.message
captured["reply_mode"] = task.reply_mode
captured["allow_message_tools"] = task.allow_message_tools
captured["user_id"] = task.user_id
with (
patch.object(MoviePilotAgent, "process", new=fake_process),
patch.object(MoviePilotAgent, "cleanup", new=AsyncMock()),
patch.object(memory_manager, "clear_memory"),
):
await AgentManager.run_background_prompt(
manager._process_message_internal = fake_process
await manager.initialize()
try:
await manager.run_background_prompt(
message="background task",
reply_mode=ReplyMode.CAPTURE_ONLY,
allow_message_tools=True,
)
finally:
await manager.close()
self.assertEqual("background task", captured["message"])
self.assertEqual(ReplyMode.CAPTURE_ONLY, captured["reply_mode"])