异步执行 _execute_post_agent_hooks

This commit is contained in:
朱潮 2026-04-24 13:07:44 +08:00
parent 51fbf01236
commit 45a94942b8
3 changed files with 15 additions and 15 deletions

View File

@ -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:

View File

@ -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

View File

@ -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"