From 62de4ff36ce326b7acd8e9d20fc000ac898ec2ad Mon Sep 17 00:00:00 2001 From: MrKan Date: Sun, 19 Apr 2026 21:56:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D1=83=D1=82=D0=B5=D0=B9=20=D0=B2=20send?= =?UTF-8?q?=5Ffile=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=B8=D0=BD=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BD=D0=B5=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=BD=D1=8B=D1=85=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agent/tools.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/agent/tools.py b/src/agent/tools.py index b87aa9e..4afd6e0 100644 --- a/src/agent/tools.py +++ b/src/agent/tools.py @@ -20,6 +20,10 @@ async def send_file(path: str) -> str: - пользователь просто хочет прочитать содержимое файла (используй read_file) - нужно создать или изменить файл (используй write_file/edit_file) + Пользователь не имеет доступа к файлам напрямую, ты ОБЯЗАН ему их отправлять. + Если пользователь просил сформировать файл - скорее всего, нужно его отправить. + Используй этот tool без явного запроса от пользователя. + Args: path: Путь к файлу относительно /workspace (например: 'report.pdf', 'docs/readme.txt', 'output/data.json') @@ -27,7 +31,12 @@ async def send_file(path: str) -> str: Подтверждение отправки или сообщение об ошибке """ workspace = os.environ.get("WORKSPACE_DIR", "/workspace") - full_path = Path(workspace) / path + + input_path = Path(path).as_posix().lstrip("/") + if input_path.startswith("workspace/"): + input_path = input_path[len("workspace/"):] + + full_path = Path(workspace) / input_path if not full_path.exists(): return f"Ошибка: файл '{path}' не найден в /workspace"