diff --git a/agent/deep_assistant.py b/agent/deep_assistant.py index ac6688b..205ee64 100644 --- a/agent/deep_assistant.py +++ b/agent/deep_assistant.py @@ -251,15 +251,15 @@ async def init_agent(config: AgentConfig): middleware = [] middleware.append(EmptyResponseRetryMiddleware()) middleware.append(ToolUseCleanupMiddleware()) - tool_output_middleware = ToolOutputLengthMiddleware( - max_length=(getattr(config.generate_cfg, 'tool_output_max_length', None) if config.generate_cfg else None) or TOOL_OUTPUT_MAX_LENGTH, - truncation_strategy=getattr(config.generate_cfg, 'tool_output_truncation_strategy', 'smart') if config.generate_cfg else 'smart', - tool_filters=getattr(config.generate_cfg, 'tool_output_filters', None) if config.generate_cfg else None, - exclude_tools=getattr(config.generate_cfg, 'tool_output_exclude', []) if config.generate_cfg else [], - preserve_code_blocks=getattr(config.generate_cfg, 'preserve_code_blocks', True) if config.generate_cfg else True, - preserve_json=getattr(config.generate_cfg, 'preserve_json', True) if config.generate_cfg else True - ) - middleware.append(tool_output_middleware) + # tool_output_middleware = ToolOutputLengthMiddleware( + # max_length=(getattr(config.generate_cfg, 'tool_output_max_length', None) if config.generate_cfg else None) or TOOL_OUTPUT_MAX_LENGTH, + # truncation_strategy=getattr(config.generate_cfg, 'tool_output_truncation_strategy', 'smart') if config.generate_cfg else 'smart', + # tool_filters=getattr(config.generate_cfg, 'tool_output_filters', None) if config.generate_cfg else None, + # exclude_tools=getattr(config.generate_cfg, 'tool_output_exclude', []) if config.generate_cfg else [], + # preserve_code_blocks=getattr(config.generate_cfg, 'preserve_code_blocks', True) if config.generate_cfg else True, + # preserve_json=getattr(config.generate_cfg, 'preserve_json', True) if config.generate_cfg else True + # ) + # middleware.append(tool_output_middleware) if config.enable_memori: try: diff --git a/routes/chat.py b/routes/chat.py index c84b51c..e07f5fe 100644 --- a/routes/chat.py +++ b/routes/chat.py @@ -268,8 +268,8 @@ async def create_agent_and_generate_response( agent_responses = await agent.ainvoke({"messages": config.messages}, config=config.invoke_config(), max_tokens=MAX_OUTPUT_TOKENS) # ============ 执行 PostAgent hooks ============ - # 注意:这里在非流式模式下同步执行hooks - await _execute_post_agent_hooks(config, "", sandbox) + # 注意:这里在单独的异步任务中执行,不阻塞非流式响应 + asyncio.create_task(_execute_post_agent_hooks(config, "", sandbox)) # =========================================== # 从后往前找第一个 HumanMessage,之后的内容都给 append_messages diff --git a/utils/settings.py b/utils/settings.py index 5594dba..5dd0376 100644 --- a/utils/settings.py +++ b/utils/settings.py @@ -101,11 +101,11 @@ SCHEDULE_MAX_CONCURRENT = int(os.getenv("SCHEDULE_MAX_CONCURRENT", "5")) # Daytona Sandbox 配置 # ============================================================ -# DAYTONA_API_KEY = os.getenv("DAYTONA_API_KEY", "dtn_1c888ed16ec448b965e2e07afd75d69f8e0dd38efbad47744f9de49fcf7b7e2a") -# DAYTONA_SERVER_URL = os.getenv("DAYTONA_SERVER_URL", "https://daytona.45.66.216.154.nip.io/api") +DAYTONA_API_KEY = os.getenv("DAYTONA_API_KEY", "dtn_ccf86acd5b13a3069a8369d12d8cb26a9a184d07451374dfc325955fc2d8331c") +DAYTONA_SERVER_URL = os.getenv("DAYTONA_SERVER_URL", "https://daytona.45.66.216.154.nip.io/api") -DAYTONA_API_KEY = os.getenv("DAYTONA_API_KEY", "dtn_696a914ff54e45bb97132c32fba10995a4cab8ebef0cd8dea18129d447f805a3") -DAYTONA_SERVER_URL = os.getenv("DAYTONA_SERVER_URL", "https://app.daytona.io/api") +# DAYTONA_API_KEY = os.getenv("DAYTONA_API_KEY", "dtn_696a914ff54e45bb97132c32fba10995a4cab8ebef0cd8dea18129d447f805a3") +# DAYTONA_SERVER_URL = os.getenv("DAYTONA_SERVER_URL", "https://app.daytona.io/api") DAYTONA_ENABLED = os.getenv("DAYTONA_ENABLED", "false") == "true"