Skip to main content

Code Execution Tool

Run code in a secure sandbox for calculations and data analysis.

Overview​

The code execution tool runs Python and JavaScript code in an isolated, secure environment. It's perfect for calculations, data analysis, and testing code.

Parameters​

ParameterTypeRequiredDefaultDescription
codestringYes-Code to execute
languagestringNopythonProgramming language (python, javascript)
timeoutintegerNo30Execution timeout in seconds
allowed_librariesarrayNoallList of allowed libraries

Usage Examples​

Basic Python Execution​

import requests

response = requests.post(
"http://localhost/api/v1/agent/tool-calling",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"tool_name": "code_execution",
"parameters": {
"code": "print(2 + 2)",
"language": "python"
}
}
)

result = response.json()
print(f"Output: {result['output']}")

Data Analysis​

response = requests.post(
"http://localhost/api/v1/agent/tool-calling",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"tool_name": "code_execution",
"parameters": {
"code": """
import statistics

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mean = statistics.mean(data)
median = statistics.median(data)
std = statistics.stdev(data)

print(f"Mean: {mean}")
print(f"Median: {median}")
print(f"Std Dev: {std}")
""",
"language": "python"
}
}
)

print(response.json()["output"])

JavaScript Execution​

response = requests.post(
"http://localhost/api/v1/agent/tool-calling",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"tool_name": "code_execution",
"parameters": {
"code": "console.log(2 * 21);",
"language": "javascript"
}
}
)

print(response.json()["output"])

Plotting with Matplotlib​

response = requests.post(
"http://localhost/api/v1/agent/tool-calling",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"tool_name": "code_execution",
"parameters": {
"code": """
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.title('Sample Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.savefig('/tmp/plot.png')
print('Plot saved successfully')
""",
"language": "python",
"allowed_libraries": ["matplotlib"]
}
}
)

Use in Agent​

# Create agent with code execution
response = requests.post(
"http://localhost/api/v1/agent/configs",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"name": "analyst_agent",
"system_prompt": "You are a data analyst. Use code execution to perform calculations and data analysis.",
"model": "gpt-4",
"builtin_tools": ["code_execution"],
"tool_config": {
"code_execution": {
"timeout": 60,
"allowed_libraries": ["pandas", "numpy", "matplotlib", "scipy"]
}
},
"tool_choice": "auto",
"max_iterations": 5
}
)

agent_id = response.json()["id"]

# Chat with agent
chat_response = requests.post(
"http://localhost/api/v1/agent/chat",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"agent_id": agent_id,
"message": "Calculate the average and standard deviation of these numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
}
)

result = chat_response.json()
print(f"Response: {result['response']}")

JavaScript Usage​

const response = await fetch('http://localhost/api/v1/agent/tool-calling', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
tool_name: 'code_execution',
parameters: {
code: 'console.log(Math.sqrt(16));',
language: 'javascript'
}
})
});

const result = await response.json();
console.log('Output:', result.output);

cURL Usage​

curl -X POST http://localhost/api/v1/agent/tool-calling \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool_name": "code_execution",
"parameters": {
"code": "import math\nprint(math.pi * 2)",
"language": "python"
}
}'

Response Format​

Success​

{
"output": "6.283185307179586",
"executed_code": "import math\nprint(math.pi * 2)",
"execution_time": 0.5,
"error": null
}

Error​

{
"output": null,
"executed_code": "...",
"execution_time": 0.3,
"error": "SyntaxError: invalid syntax"
}

Supported Libraries​

Python​

Common libraries available:

  • pandas - Data manipulation
  • numpy - Numerical computing
  • matplotlib - Plotting
  • scipy - Scientific computing
  • requests - HTTP requests
  • json - JSON handling

JavaScript​

Built-in APIs:

  • console - Logging
  • Math - Math functions
  • Date - Date/time
  • JSON - JSON parsing

Use Cases​

Calculations​

code = """
# Calculate compound interest
principal = 10000
rate = 0.05
years = 10
amount = principal * (1 + rate) ** years
print(f"Amount: ${amount:.2f}")
"""

Data Processing​

code = """
import pandas as pd

data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]
}

df = pd.DataFrame(data)
print(f"Average age: {df['Age'].mean()}")
print(f"Max age: {df['Age'].max()}")
"""

Testing Code​

code = """
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)

print(f"fib(10) = {fibonacci(10)}")
"""

Security Considerations​

Sandbox Environment​

  • Isolated execution environment
  • No file system access
  • No network access (unless configured)
  • Limited memory and CPU
  • Automatic cleanup after execution

Allowed Operations​

✅ Allowed:

  • Mathematical calculations
  • Data processing
  • String manipulation
  • Logic operations
  • Built-in library functions

❌ Not Allowed:

  • File system operations
  • Network requests
  • System commands
  • Infinite loops

Best Practices​

  1. Set timeouts - Prevent infinite loops
  2. Validate code - Check for syntax errors before execution
  3. Limit libraries - Only allow necessary libraries
  4. Handle errors - Catch and display execution errors
  5. Monitor performance - Track execution time and resource usage

Troubleshooting​

Timeout​

Problem: Code execution times out

Solution:

  • Increase timeout parameter
  • Optimize code for performance
  • Remove infinite loops
  • Simplify complex calculations

Syntax Error​

Problem: Code has syntax errors

Solution:

  • Validate code before sending
  • Check indentation
  • Verify function definitions
  • Review error messages

Library Not Available​

Problem: Library import fails

Solution:

  • Add library to allowed_libraries
  • Use available alternatives
  • Check library spelling
  • Verify library compatibility

Memory Error​

Problem: Code uses too much memory

Solution:

  • Optimize data structures
  • Use streaming for large datasets
  • Reduce data size
  • Implement chunked processing

Next Steps​