An open API service indexing awesome lists of open source software.

https://github.com/guyoung/boxagnts

BoxAgents is an open-source, Rust-based AI Agent ToolBox offering an ultimate out-of-the-box experience. With WebAssembly sandbox, it balances security and flexibility, letting users effortlessly tackle complex tasks as an efficient, trustworthy personal AI assistant.
https://github.com/guyoung/boxagnts

agent ai rust vue vuetify wasm wasmtime webassembly webassembly-component

Last synced: 3 days ago
JSON representation

BoxAgents is an open-source, Rust-based AI Agent ToolBox offering an ultimate out-of-the-box experience. With WebAssembly sandbox, it balances security and flexibility, letting users effortlessly tackle complex tasks as an efficient, trustworthy personal AI assistant.

Awesome Lists containing this project

README

          

# BoxAgnts

[English](README.md) | [δΈ­ζ–‡](README.zh.md)

BoxAgnts is an open-source AI Agent ToolBox built with Rust, dedicated to delivering an ultimate out-of-the-box experience. Leveraging WebAssembly sandbox, it provides a runtime environment that balances security and flexibility, helping users effortlessly tackle a wide range of complex tasks and thus becoming an efficient and trustworthy personal AI assistant.

## Core Architecture

### 🎯 AI Agent Tool**Box**

BoxAgnts is a fully-featured AI Agent toolkit providing:

- **Multi-model support**: Compatible with major AI model providers including OpenAI, Anthropic, CodeX, Google, Deepseek, MiniMax, OpenCode
- **Tool system**: Built-in file operations, web access, code execution, and many other tools
- **Skill system**: Create specialized AI skills through simple configuration

### πŸ›‘οΈ WebAssembly Sand**Box**

Build a secure runtime environment using WebAssembly technology:

- **Isolated execution**: All custom tools and skills run in a WASM sandbox
- **Security control**: Fine-grained permission management and network access control
- **Cross-platform**: Compile once, run everywhere
- **High performance**: Based on Wasmtime runtime, near-native performance

### ✨ Out of the **Box**

Out-of-the-box experience:

- **Zero-configuration startup**: Download and run, no complex configuration
- **Web interface**: Built-in beautiful Dashboard for visual management of all features
- **Built-in extensions**: Pre-configured with commonly used tools and skills, ready to use
- **Quick start**: Simple API and intuitive workflow

## Key Features

### πŸ€– AI Chat and Agents
- Chat with multiple AI models
- Create and manage custom Agents
- Save and manage chat history
- Support for streaming responses

### πŸ”§ Tool Execution
- File read/write and editing
- Shell command execution
- Web content scraping
- Code review and analysis

### πŸ“¦ Skill System
- Quickly create specialized skills
- Skill combination and reuse
- Built-in skills including code review, weather query, front-end component generation, etc.

### ⏰ Automatic Tasks Cron
- Create and manage scheduled tasks
- Support for standard Cron expressions
- Task execution logs and status tracking
- Flexible task configuration and triggering methods

### 🌐 Web Service
- Custom website deployment
- Static file serving
- API endpoint management

## Quick Start

### Download Executable

Download the latest compressed package from the [Releases](https://github.com/guyoung/boxagnts/releases) page, extract and run.

### Start Service

```bash
# Start service
boxagnts

# Specify workspace directory
boxagnts --workspace-dir /path/to/workspace

# Specify port
boxagnts --workspace-dir /path/to/workspace --port 30002
```

> Suggestion: BoxAgnts supports multiple workspaces, each with its own configuration file and data directory. It is recommended not to run in the default directory, but to specify a workspace directory or workspace-dir.

Command line arguments:

```bash
BoxAgnts is an open-source AI Agent ToolBox built with Rust.

Usage: boxagnts [OPTIONS]

Options:
--port Port to run the web server on [default: 30001]
--host Host to bind to (0.0.0.0 for all interfaces) [default: 127.0.0.1]
--workspace-dir Set workspace dir, default current dir
--app-dir Set app dir, default Boxagnts executable file dir
--admin-user Set admin username
--admin-pass Set admin password
-h, --help Print help
-V, --version Print version
```

### Access Dashboard

Open your browser and visit `http://127.0.0.1:30001`

### Configure Model

Add AI models and API Keys in the settings page

## Project Structure and Source Code Compilation

This project is developed based on [claurst](https://github.com/Kuberwastaken/claurst) project code

### Directory Structure

```
boxagnts/
β”œβ”€β”€ boxagnts/ # Rust backend core code
β”‚ β”œβ”€β”€ api/ # AI model API (multi-provider support)
β”‚ β”œβ”€β”€ core/ # Core types, constants, and basic functions
β”‚ β”œβ”€β”€ gateway/ # API gateway (includes Cron task scheduling)
β”‚ β”œβ”€β”€ mcp/ # MCP protocol implementation (optional)
β”‚ β”œβ”€β”€ server/ # Web server and Dashboard interface
β”‚ β”œβ”€β”€ tools/ # Tool system and built-in tools
β”‚ β”œβ”€β”€ tools-manager/ # Tool manager
β”‚ β”œβ”€β”€ query/ # Query orchestration
β”‚ β”œβ”€β”€ wasm-sandbox/ # WebAssembly sandbox runtime
β”‚ β”œβ”€β”€ wasm-tools/ # WASM tool wrappers
β”‚ └── workspace/ # Workspace and configuration management
β”œβ”€β”€ boxagnts-dashboard-web/ # Vue 3 frontend source code
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ api/ # API interface wrappers
β”‚ β”‚ β”œβ”€β”€ components/ # Vue components
β”‚ β”‚ β”œβ”€β”€ composables/ # Composables
β”‚ β”‚ β”œβ”€β”€ stores/ # Pinia state management
β”‚ β”‚ β”œβ”€β”€ views/ # Page components
β”‚ β”‚ └── router/ # Router configuration
β”‚ └── package.json # Frontend dependencies
β”œβ”€β”€ app/ # Application resources
β”‚ β”œβ”€β”€ dashboard-web/ # Compiled web interface static assets
β”‚ └── extensions/ # Extensions (tools/skills)
└── Cargo.toml # Rust workspace configuration
```

### Backend Code Analysis

The backend is developed in Rust using Tokio async runtime. The main modules are:

- **api/**: Wraps APIs from multiple AI providers including OpenAI, Anthropic, Google, Azure, Bedrock, providing unified interface calling and message format conversion
- **core/**: Defines core data types, constants, error handling, and system prompts
- **gateway/**: API gateway layer, handles HTTP requests, includes Cron task scheduling system (cron/ subdirectory), supporting scheduled task creation, management, and execution
- **server/**: Web server, providing Dashboard REST API and WebSocket support
- **tools/**: Tool system, implements execution framework for built-in tools and skills
- **wasm-sandbox/**: WebAssembly sandbox based on Wasmtime, implementing secure code execution environment
- **workspace/**: Workspace management, handles configuration, authentication, and history storage

### Frontend Code Analysis

The frontend uses Vue 3 + TypeScript + Vuetify technology stack:

- Uses **Pinia** for state management (stores/ directory)
- Uses **Vue Router** for routing management (router/ directory)
- Main pages: Chat, Agents, Cron tasks, Files, Skills, Tools, Sites, Settings, etc.
- Supports Markdown rendering, code editor (CodeMirror), charts (Chart.js), etc.
- Communicates with backend via REST API and WebSocket

### Source Code Compilation Method

#### Environment Requirements

- Rust 1.75+ (Install: https://www.rust-lang.org/tools/install)
- Node.js 18+ (Install: https://nodejs.org/)
- npm or pnpm

#### Compile Backend

```bash
# Enter project root directory
cd boxagnts-pub

# Compile Debug version
cargo build

# Compile Release version (optimize for size and performance)
cargo build --release

# Compiled executable is located at target/release/boxagnts
```

#### Compile Frontend

```bash
# Enter frontend directory
cd boxagnts-dashboard-web

# Install dependencies
npm install

# Start development mode (hot reload)
npm run dev

# Compile production version
npm run build

# Compiled static files will be output to app/dashboard-web/
```

#### Complete Build Process

```bash
# 1. Compile frontend
cd boxagnts-dashboard-web
npm install
npm run build

# 2. Compile backend
cd ..
cargo build --release

# 3. Run
./target/release/boxagnts
```

## License

[MIT](LICENSE)

---

**Repository**: [https://github.com/guyoung/boxagnts](https://github.com/guyoung/boxagnts)