Documentation Index
Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
Use this file to discover all available pages before exploring further.
AutonomousAgent implements strict security measures to prevent unintended access outside the workspace.
Workspace Sandboxing
All file and shell operations are restricted to the workspace directory:
from upsonic import AutonomousAgent, Task
agent = AutonomousAgent(
model="anthropic/claude-sonnet-4-5",
workspace="/home/user/my-project"
)
# These paths work (within workspace)
task = Task("Read src/main.py") # /home/user/my-project/src/main.py
agent.print_do(task)
task = Task("Read ./config.json") # /home/user/my-project/config.json
agent.print_do(task)
# Path traversal is blocked
task = Task("Read ../other-project/secret.txt") # Blocked - outside workspace
agent.print_do(task)
task = Task("Read /etc/passwd") # Blocked - absolute path outside workspace
agent.print_do(task)
Default Blocked Commands
The shell toolkit blocks dangerous commands by default:
rm -rf / and rm -rf /* (destructive patterns)
:(){:|:&};: (fork bomb)
mkfs (filesystem formatting)
dd if=/dev/zero (disk overwrite)
You can add additional blocked commands like sudo via the blocked_commands parameter.
Custom Security Configuration
from upsonic import AutonomousAgent
# Disable shell entirely for maximum security
agent = AutonomousAgent(
model="anthropic/claude-sonnet-4-5",
workspace="/path/to/project",
enable_shell=False # Only filesystem access
)
# Or customize blocked commands
agent = AutonomousAgent(
model="anthropic/claude-sonnet-4-5",
workspace="/path/to/project",
blocked_commands=["rm", "sudo", "chmod", "curl", "wget"]
)
Tracking File Access
Monitor which files the agent has read:
from upsonic import AutonomousAgent, Task
agent = AutonomousAgent(
model="anthropic/claude-sonnet-4-5",
workspace="/path/to/project"
)
task = Task("Read config.py and utils.py, then update utils.py")
agent.print_do(task)
# Check accessed files
print("Files read:", agent.filesystem_toolkit.get_read_files())
# Reset tracking if needed
agent.filesystem_toolkit.reset_read_tracking()
# Or use the agent-level method:
agent.reset_filesystem_tracking()