AI Agent Framework — automates tasks using AI agents in Docker containers
Project description
Agento
Self-hosted agent automation platform with modular integrations, Python execution runtime, Node.js toolbox, scoped config, and extension modules. Automates tasks using AI agents (Claude Code, OpenAI Codex) in Docker containers.
Why Two Runtimes?
Agento enforces a strict security boundary between the AI sandbox and credentials. The sandbox where agents run has zero access to secrets. The toolbox is the only container that holds credentials, exposed via an MCP server that the agent calls through controlled tool interfaces.
┌───────────────────────────────────────────────────────┐
│ Docker Network │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Sandbox │ │ Toolbox │ │ Cron │ │
│ │ Claude/ │ │ Node.js │ │ Python │ │
│ │ Codex │ │ MCP Server │ │ Consumer │ │
│ │ │ │ │ │ + Scheduler │ │
│ │ NO secrets │ │ Credentials │ │ Job Queue │ │
│ └─────────────┘ └──────┬──────┘ └─────────────┘ │
│ │ │
│ ┌─────┴─────┐ │
│ │ MySQL │ │
│ └───────────┘ │
└───────────────────────────────────────────────────────┘
Quick Start
uv tool install agento-core # Install the CLI
agento init my-project # Scaffold a new project
cd my-project
agento up # Start Docker Compose
agento setup:upgrade # Apply migrations
Architecture
Agento runs three Docker containers on a shared network:
- Cron (Python) -- Job queue consumer, scheduler, CLI host. Manages the lifecycle of agent jobs, runs migrations, and dispatches events. Connects to MySQL for job state, config, and module metadata.
- Toolbox (Node.js) -- MCP credential broker. Registers tools from modules (MySQL adapters, API clients) and exposes them over stdio. The only container with access to secrets.
- Sandbox (Claude Code / OpenAI Codex) -- Ephemeral container where the AI agent executes. Has no credentials, no direct database access. Communicates with the toolbox exclusively through MCP tool calls.
Module System
Agento uses a Magento-inspired modular architecture. Each module is a self-contained package.
Core modules ship with the framework in src/agento/modules/ (jira, claude, codex, core, crypt, agent_view).
User modules live in app/code/ and are deployment-specific (gitignored by default).
Every module contains a module.json manifest and optional companion files:
| File | Purpose |
|---|---|
module.json |
Module manifest (name, version, tools, knowledge) |
di.json |
Dependency injection configuration |
events.json |
Observer declarations for event-driven extensibility |
config.json |
Default config values with field metadata |
cron.json |
Scheduled job definitions |
sql/*.sql |
Schema migrations |
data_patch.json |
Data patches applied during setup |
Config follows a 3-level fallback: ENV vars (CONFIG__MODULE__PATH) take highest priority, then DB (core_config_data), then config.json defaults. Config can be scoped per agent_view for multi-tenant setups.
Events use an observer pattern. Modules declare observers in events.json and the framework dispatches events synchronously during lifecycle hooks (job start, job complete, schedule tick, etc.).
Installation
Docker Compose (recommended)
For end users, demos, PoC, and self-hosting:
uv tool install agento-core # or: pip install agento-core
agento init my-project # Scaffold project with Docker Compose
cd my-project
agento up # Start containers (cron + toolbox + MySQL)
agento setup:upgrade # Apply migrations, install crontab
System check
agento doctor # Verify prerequisites
Creating Your First Module
agento module:add my-app \
--description="My application module" \
--tool mysql:mysql_prod:"Production database (read-only)"
This creates a module in app/code/my-app/ with a module.json, config.json, and knowledge/ directory. Set credentials with:
agento config:set my_app/tools/mysql_prod/host 10.0.0.1
agento config:set my_app/tools/mysql_prod/pass secret123
See Creating a Module for the full guide.
Documentation
Full developer documentation is available in docs/:
- Getting Started -- Install and create your first module
- CLI Reference -- All
agentocommands - Module Guide -- Creating and managing modules
- Config System -- 3-level fallback, encryption, ENV vars
- Architecture -- Containers, zero-trust, job queue
Contributing
Contributions are welcome. See CONTRIBUTING.md for guidelines on setting up a development environment, running tests, and submitting pull requests.
License
MIT. See LICENSE for the full text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agento_core-0.1.5.tar.gz.
File metadata
- Download URL: agento_core-0.1.5.tar.gz
- Upload date:
- Size: 174.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
329de8a59ef39a6c554eb6ad8bde193a3472638a552911906cf8cd48a0829fb3
|
|
| MD5 |
2aad888dc226e2b879ed53a0f851b4e9
|
|
| BLAKE2b-256 |
d88d536feabd1aaa884824e16a55a8ccf236002b859cbe3601f1dad3cc9b6547
|
Provenance
The following attestation bundles were made for agento_core-0.1.5.tar.gz:
Publisher:
release.yml on agento-cc/agento
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agento_core-0.1.5.tar.gz -
Subject digest:
329de8a59ef39a6c554eb6ad8bde193a3472638a552911906cf8cd48a0829fb3 - Sigstore transparency entry: 1222567704
- Sigstore integration time:
-
Permalink:
agento-cc/agento@ddc2241d41c9175ba952c702602e0a5edb3a3040 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/agento-cc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ddc2241d41c9175ba952c702602e0a5edb3a3040 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agento_core-0.1.5-py3-none-any.whl.
File metadata
- Download URL: agento_core-0.1.5-py3-none-any.whl
- Upload date:
- Size: 242.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91c0b88f8b84f5cc91dc31465ece2ea545ee42eef4a05a20ad474958ce28f269
|
|
| MD5 |
723314eeb63d9b19aa2b374896adae6e
|
|
| BLAKE2b-256 |
0e0bd3c471503d58e8f013a631a2803a7b7a3df3a8afcc51892e8e1d6de45e63
|
Provenance
The following attestation bundles were made for agento_core-0.1.5-py3-none-any.whl:
Publisher:
release.yml on agento-cc/agento
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agento_core-0.1.5-py3-none-any.whl -
Subject digest:
91c0b88f8b84f5cc91dc31465ece2ea545ee42eef4a05a20ad474958ce28f269 - Sigstore transparency entry: 1222567706
- Sigstore integration time:
-
Permalink:
agento-cc/agento@ddc2241d41c9175ba952c702602e0a5edb3a3040 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/agento-cc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ddc2241d41c9175ba952c702602e0a5edb3a3040 -
Trigger Event:
release
-
Statement type: