https://github.com/langgenius/dify-agentbox
A production-ready, all-in-one Docker image designed for AI agents and autonomous systems that need to execute code across multiple programming languages.
https://github.com/langgenius/dify-agentbox
Last synced: 16 days ago
JSON representation
A production-ready, all-in-one Docker image designed for AI agents and autonomous systems that need to execute code across multiple programming languages.
- Host: GitHub
- URL: https://github.com/langgenius/dify-agentbox
- Owner: langgenius
- License: apache-2.0
- Created: 2026-01-14T13:05:50.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-02-16T07:03:21.000Z (about 1 month ago)
- Last Synced: 2026-02-16T14:12:41.203Z (about 1 month ago)
- Language: Python
- Size: 64.5 KB
- Stars: 31
- Watchers: 0
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - langgenius/dify-agentbox - A production-ready, all-in-one Docker image designed for AI agents and autonomous systems that need to execute code across multiple programming languages. (Python)
README
# Dify AgentBox
A production-ready, all-in-one Docker image designed for AI agents and autonomous systems that need to execute code across multiple programming languages.
## Why AgentBox?
AI agents often need to:
- Execute code in multiple languages (Python, JavaScript, Go, etc.)
- Process documents, images, and multimedia
- Interact with web browsers for automation
- Access databases and external services
Instead of managing separate containers or installing dependencies on-the-fly, AgentBox provides everything pre-configured in a single, secure image.
## What's Inside
- **Multi-language runtime**: Python, Node.js, Go, Ruby, Rust
- **Document processing**: PDF, Excel, PowerPoint, Word, HTML
- **Browser automation**: Playwright with Chromium & Firefox
- **Data tools**: pandas, numpy, database clients (MySQL, PostgreSQL, SQLite)
- **Media processing**: ffmpeg, image manipulation
- **Development tools**: git, build tools, debuggers
## Quick Start
```bash
docker run -it --rm -v $(pwd):/workspace langgenius/dify-agentbox:latest
```
Multi-arch images (amd64/arm64) are published and tagged with the full git SHA plus `latest`.
## Use Cases
- **AI Agent Execution**: Run LLM-generated code safely in isolated environments
- **Code Interpreters**: Execute user code across multiple languages
- **Document Processing**: Convert, extract, and transform documents at scale
- **Browser Automation**: Scrape websites, test web applications, automate workflows
- **CI/CD Pipelines**: Universal build environment with all tools included
## Managing This Repository
### Project Structure
```
dify-agentbox/
├── versions/versions.yaml # Version configuration for all packages
├── Dockerfile.j2 # Jinja2 template for generating Dockerfile
├── build.py # Build script to render and build images
└── .github/workflows/ # CI/CD automation
```
### Making Changes
**1. Update Package Versions**
Edit `versions/versions.yaml`:
```yaml
languages:
python:
version: "3.12"
nodejs:
version: "20"
python_packages:
- name: "pandas[excel,html,xml]"
version: "~=2.2.3"
```
**2. Render & build locally (multi-arch)**
```bash
# Install dependencies
uv sync
# Render Dockerfile
uv run python build.py
# Build multi-arch image with git SHA tag
TAG=$(git rev-parse --short HEAD)
docker buildx build --platform linux/amd64,linux/arm64 -t langgenius/dify-agentbox:${TAG} .
```
**3. Test Changes**
```bash
# Run the image
docker run -it --rm langgenius/dify-agentbox:${TAG}
# Verify installations
python --version
node --version
go version
```
### CI/CD Workflow
Images are automatically built and pushed when:
- **Push to main**: Builds and tags as `latest`
- **Create tag** (e.g., `v1.0.0`): Builds and tags with semantic version
- **Pull request**: Validates build without pushing
Multi-architecture builds (amd64, arm64) are enabled by default.
### Adding New Packages
**System packages** (apt):
```yaml
system_packages:
utilities:
- your-package-name
```
**Python packages**:
```yaml
python_packages:
- name: "your-package"
version: "~=1.0.0"
```
**Node.js packages**:
```yaml
nodejs_packages:
- your-global-package
```
After making changes, rebuild and test locally before pushing.
## License
Apache 2.0