Merge branch 'main' of github.com:escapade-mckv/suna into cleanup-main

This commit is contained in:
Saumya 2025-07-09 13:17:19 +05:30
commit cdbabc6e2f
4 changed files with 33 additions and 28 deletions

View File

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

View File

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

View File

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

View File

@ -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
@ -647,4 +646,4 @@ async def run_agent(
if generation:
generation.end(output=full_response)
langfuse.flush()
asyncio.create_task(asyncio.to_thread(lambda: langfuse.flush()))