Merge branch 'upgrade/deepagents-0.4.4' into bot_manager

This commit is contained in:
朱潮 2026-03-02 15:27:44 +08:00
commit ba51bd3583
2 changed files with 43 additions and 4 deletions

View File

@ -56,15 +56,17 @@ When creating scripts in `executable_code/`, follow these organization rules:
- Example: `executable_code/invoice_parser/parse_invoice.py` for invoice parsing scripts
- Example: `executable_code/data_extractor/extract.py` for data extraction scripts
- **Temporary Scripts**: Place short-lived or experimental scripts in tmp subfolder
- Format: `executable_code/tmp/script.py`
- Example: `executable_code/tmp/debug_test.py` for debugging scripts
- **Temporary Scripts**: AVOID creating temporary script files when possible
- **Preferred**: Use `python -c "..."` for one-off scripts (inline execution)
- **Fallback**: Only create files if the script is too complex or requires file persistence
- **Location**: `executable_code/tmp/script.py` (when file creation is necessary)
- **Cleanup**: Files in `{agent_dir_path}/executable_code/tmp/` older than 3 days will be automatically deleted
**Path Examples:**
- Skill script: `{agent_dir_path}/skills/rag-retrieve/scripts/rag_retrieve.py`
- Dataset file: `{agent_dir_path}/dataset/document.txt`
- Task-specific script: `{agent_dir_path}/executable_code/invoice_parser/parse.py`
- Temporary script: `{agent_dir_path}/executable_code/tmp/test.py`
- Temporary script (when needed): `{agent_dir_path}/executable_code/tmp/test.py`
- Downloaded file: `{agent_dir_path}/download/report.pdf`
## System Information

View File

@ -1,6 +1,8 @@
import json
import os
import asyncio
import shutil
import time
from typing import Union, Optional, Any, List, Dict
from fastapi import APIRouter, HTTPException, Header
from fastapi.responses import StreamingResponse
@ -393,6 +395,41 @@ async def _execute_post_agent_hooks(config: AgentConfig, response: str) -> None:
# hook执行失败不影响主流程
logger.error(f"Failed to execute PostAgent hooks: {e}")
# 清理 executable_code/tmp 文件夹
await _cleanup_tmp_folder(config)
async def _cleanup_tmp_folder(config: AgentConfig) -> None:
"""
清理 executable_code/tmp 文件夹中 3 天前的文件
Args:
config: AgentConfig 对象
"""
try:
if config.project_dir and config.bot_id:
tmp_dir = os.path.join(config.project_dir, "executable_code", "tmp")
if os.path.exists(tmp_dir):
# 3 天前的秒数3 * 24 * 60 * 60 = 259200
three_days_ago = time.time() - (3 * 24 * 60 * 60)
deleted_count = 0
for item in os.listdir(tmp_dir):
item_path = os.path.join(tmp_dir, item)
# 检查修改时间
if os.path.getmtime(item_path) < three_days_ago:
if os.path.isfile(item_path) or os.path.islink(item_path):
os.remove(item_path)
else:
shutil.rmtree(item_path)
deleted_count += 1
logger.debug(f"Deleted old item: {item_path}")
logger.info(f"Cleaned up {deleted_count} old item(s) from tmp folder: {tmp_dir}")
except Exception as e:
# 清理失败不影响主流程
logger.error(f"Failed to cleanup tmp folder: {e}")
@router.post("/api/v1/chat/completions")
async def chat_completions(request: ChatRequest, authorization: Optional[str] = Header(None)):