diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 6697dd49..28d856eb 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -66,14 +66,14 @@ jobs: docker compose build docker compose up -d - - name: Deploy to prod - if: steps.get_tag_name.outputs.environment == 'prod' - uses: appleboy/ssh-action@v1 - with: - host: ${{ secrets.PROD_HOST }} - username: ${{ secrets.PROD_USERNAME }} - key: ${{ secrets.PROD_KEY }} - script: | - cd /mnt/gluster-shared/data/infra/suna - set -a; source .env; set +a - docker stack deploy -c docker-compose.yml suna + # - name: Deploy to prod + # if: steps.get_tag_name.outputs.environment == 'prod' + # uses: appleboy/ssh-action@v1 + # with: + # host: ${{ secrets.PROD_HOST }} + # username: ${{ secrets.PROD_USERNAME }} + # key: ${{ secrets.PROD_KEY }} + # script: | + # cd /mnt/gluster-shared/data/infra/suna + # set -a; source .env; set +a + # docker stack deploy -c docker-compose.yml suna diff --git a/backend/agent/gemini_prompt.py b/backend/agent/gemini_prompt.py index af5a45b9..ead1447f 100644 --- a/backend/agent/gemini_prompt.py +++ b/backend/agent/gemini_prompt.py @@ -15,8 +15,8 @@ You are a full-spectrum autonomous agent capable of executing complex tasks acro - All file operations (create, read, write, delete) expect paths relative to "/workspace" ## 2.2 SYSTEM INFORMATION - BASE ENVIRONMENT: Python 3.11 with Debian Linux (slim) -- UTC DATE: {datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d')} -- UTC TIME: {datetime.datetime.now(datetime.timezone.utc).strftime('%H:%M:%S')} +- UTC DATE: {{current_date}} +- UTC TIME: {{current_time}} - CURRENT YEAR: 2025 - TIME CONTEXT: When searching for latest news or time-sensitive information, ALWAYS use these current date/time values as reference points. Never use outdated information or assume different dates. - INSTALLED TOOLS: @@ -1738,7 +1738,10 @@ Is there anything specific you'd like me to adjust or explain in more detail abo def get_gemini_system_prompt(): - return SYSTEM_PROMPT + EXAMPLE + return SYSTEM_PROMPT.format( + current_date=datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d'), + current_time=datetime.datetime.now(datetime.timezone.utc).strftime('%H:%M:%S') + ) + EXAMPLE # if __name__ == "__main__": diff --git a/backend/agent/prompt.py b/backend/agent/prompt.py index ad985b4e..4d14bfeb 100644 --- a/backend/agent/prompt.py +++ b/backend/agent/prompt.py @@ -15,8 +15,8 @@ You are a full-spectrum autonomous agent capable of executing complex tasks acro - All file operations (create, read, write, delete) expect paths relative to "/workspace" ## 2.2 SYSTEM INFORMATION - BASE ENVIRONMENT: Python 3.11 with Debian Linux (slim) -- UTC DATE: {datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d')} -- UTC TIME: {datetime.datetime.now(datetime.timezone.utc).strftime('%H:%M:%S')} +- UTC DATE: {{current_date}} +- UTC TIME: {{current_time}} - CURRENT YEAR: 2025 - TIME CONTEXT: When searching for latest news or time-sensitive information, ALWAYS use these current date/time values as reference points. Never use outdated information or assume different dates. - INSTALLED TOOLS: @@ -31,21 +31,21 @@ You are a full-spectrum autonomous agent capable of executing complex tasks acro - PERMISSIONS: sudo privileges enabled by default ## 2.3 OPERATIONAL CAPABILITIES You have the ability to execute operations using both Python and CLI tools: -### 2.2.1 FILE OPERATIONS +### 2.3.1 FILE OPERATIONS - Creating, reading, modifying, and deleting files - Organizing files into directories/folders - Converting between file formats - Searching through file contents - Batch processing multiple files -### 2.2.2 DATA PROCESSING +### 2.3.2 DATA PROCESSING - Scraping and extracting data from websites - Parsing structured data (JSON, CSV, XML) - Cleaning and transforming datasets - Analyzing data using Python libraries - Generating reports and visualizations -### 2.2.3 SYSTEM OPERATIONS +### 2.3.3 SYSTEM OPERATIONS - Running CLI commands and scripts - Compressing and extracting archives (zip, tar) - Installing necessary packages and dependencies @@ -58,14 +58,14 @@ You have the ability to execute operations using both Python and CLI tools: * Essential for sharing web applications, APIs, and other network services * Always expose ports when you need to show running services to users -### 2.2.4 WEB SEARCH CAPABILITIES +### 2.3.4 WEB SEARCH CAPABILITIES - Searching the web for up-to-date information with direct question answering - Retrieving relevant images related to search queries - Getting comprehensive search results with titles, URLs, and snippets - Finding recent news, articles, and information beyond training data - Scraping webpage content for detailed information extraction when needed -### 2.2.5 BROWSER TOOLS AND CAPABILITIES +### 2.3.5 BROWSER TOOLS AND CAPABILITIES - BROWSER OPERATIONS: * Navigate to URLs and manage history * Fill forms and submit data @@ -76,7 +76,7 @@ You have the ability to execute operations using both Python and CLI tools: * YOU CAN DO ANYTHING ON THE BROWSER - including clicking on elements, filling forms, submitting data, etc. * The browser is in a sandboxed environment, so nothing to worry about. -### 2.2.6 VISUAL INPUT +### 2.3.6 VISUAL INPUT - You MUST use the 'see_image' tool to see image files. There is NO other way to access visual information. * Provide the relative path to the image in the `/workspace` directory. * Example: @@ -89,7 +89,7 @@ You have the ability to execute operations using both Python and CLI tools: * Supported formats include JPG, PNG, GIF, WEBP, and other common image formats. * Maximum file size limit is 10 MB. -### 2.2.7 IMAGE GENERATION & EDITING +### 2.3.7 IMAGE GENERATION & EDITING - Use the 'image_edit_or_generate' tool to generate new images from a prompt or to edit an existing image file (no mask support). * To generate a new image, set mode="generate" and provide a descriptive prompt. * To edit an existing image, set mode="edit", provide the prompt, and specify the image_path. @@ -113,7 +113,7 @@ You have the ability to execute operations using both Python and CLI tools: * You must use edit mode when the user asks you to edit an image or change an existing image in any way. * Once the image is generated or edited, you must display the image using the ask tool. -### 2.2.8 DATA PROVIDERS +### 2.3.8 DATA PROVIDERS - You have access to a variety of data providers that you can use to get data for your tasks. - You can use the 'get_data_provider_endpoints' tool to get the endpoints for a specific data provider. - You can use the 'execute_data_provider_call' tool to execute a call to a specific data provider endpoint. @@ -650,4 +650,7 @@ def get_system_prompt(): ''' Returns the system prompt ''' - return SYSTEM_PROMPT \ No newline at end of file + return SYSTEM_PROMPT.format( + current_date=datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d'), + current_time=datetime.datetime.now(datetime.timezone.utc).strftime('%H:%M:%S') + ) \ No newline at end of file diff --git a/backend/agent/run.py b/backend/agent/run.py index ba459f94..f9473223 100644 --- a/backend/agent/run.py +++ b/backend/agent/run.py @@ -1,7 +1,6 @@ import os import json -import re -from uuid import uuid4 +import asyncio from typing import Optional # from agent.tools.message_tool import MessageTool @@ -633,4 +632,4 @@ async def run_agent( if generation: generation.end(output=full_response) - langfuse.flush() \ No newline at end of file + asyncio.create_task(asyncio.to_thread(lambda: langfuse.flush()))