diff --git a/web/agent_api.py b/web/agent_api.py index 111d333..491f299 100644 --- a/web/agent_api.py +++ b/web/agent_api.py @@ -142,11 +142,12 @@ def _agent_thread(run_id, prompt, cfg): agent.s.default_serial = cfg.get("default_serial") or agent.s.default_serial agent.on_step = on_step - async def _run(): + async def _execute(): await agent._load_tools() return await agent.run(prompt, cfg.get("default_serial") or "") - answer = asyncio.run(_run()) + # 整体超时保护:模型/工具卡死时结束运行,避免单实例被永久占用 + answer = asyncio.run(asyncio.wait_for(_execute(), timeout=600)) with _lock: _run["state"] = "done" _run["answer"] = answer