fix agent

This commit is contained in:
jxxghp
2025-11-01 11:41:22 +08:00
parent 182c46037b
commit 247208b8a9
10 changed files with 114 additions and 121 deletions

View File

@@ -2,35 +2,36 @@
from typing import Optional
from app.agent.tools.base import MoviePilotTool
from app.chain.download import DownloadChain
from app.core.context import Context
from app.core.metainfo import MetaInfo
from app.log import logger
from app.schemas import TorrentInfo
from app.agent.tools.base import MoviePilotTool
class AddDownloadTool(MoviePilotTool):
name: str = "add_download"
description: str = "添加下载任务,将搜索到的种子资源添加到下载器。"
async def _arun(self, torrent_title: str, torrent_url: str, explanation: str,
downloader: Optional[str] = None, save_path: Optional[str] = None,
async def _arun(self, torrent_title: str, torrent_url: str, explanation: str,
downloader: Optional[str] = None, save_path: Optional[str] = None,
labels: Optional[str] = None, **kwargs) -> str:
logger.info(f"执行工具: {self.name}, 参数: torrent_title={torrent_title}, torrent_url={torrent_url}, downloader={downloader}, save_path={save_path}, labels={labels}")
logger.info(
f"执行工具: {self.name}, 参数: torrent_title={torrent_title}, torrent_url={torrent_url}, downloader={downloader}, save_path={save_path}, labels={labels}")
# 发送工具执行说明
self._send_tool_message(f"正在添加下载任务: {torrent_title}", title="添加下载")
self.send_tool_message(f"正在添加下载任务: {torrent_title}", title="添加下载")
try:
if not torrent_title or not torrent_url:
error_message = "错误:必须提供种子标题和下载链接"
self._send_tool_message(error_message, title="下载失败")
self.send_tool_message(error_message, title="下载失败")
return error_message
# 使用DownloadChain添加下载
download_chain = DownloadChain()
# 创建下载上下文
torrent_info = TorrentInfo(
title=torrent_title,
@@ -43,21 +44,21 @@ class AddDownloadTool(MoviePilotTool):
)
did = download_chain.download_single(
context=context,
downloader=downloader,
save_path=save_path,
context=context,
downloader=downloader,
save_path=save_path,
label=labels
)
if did:
success_message = f"成功添加下载任务:{torrent_title}"
self._send_tool_message(success_message, title="下载成功")
self.send_tool_message(success_message, title="下载成功")
return success_message
else:
error_message = "添加下载任务失败"
self._send_tool_message(error_message, title="下载失败")
self.send_tool_message(error_message, title="下载失败")
return error_message
except Exception as e:
error_message = f"添加下载任务时发生错误: {str(e)}"
logger.error(f"添加下载任务失败: {e}", exc_info=True)
self._send_tool_message(error_message, title="下载失败")
self.send_tool_message(error_message, title="下载失败")
return error_message