Core Components
- Control Plane
- UI
- SDK
- Database
Agent Control Plane (Gateway)The gateway is the central orchestration layer that:
- Discovers agent containers via Docker labels
- Routes requests to agents
- Handles container lifecycle operations
- Routes requests via HTTP proxy
- Logs operations to database
Request Flow
1
Client Request
User initiates agent execution via UI or SDK CLI
2
Gateway Processing
Control plane receives request, generates thread ID, and logs to database
3
Agent Discovery
Gateway locates target agent container via Docker labels (
agent.enabled=true)4
Container Management
Gateway attempts to start the container if needed
5
Request Forwarding
Gateway forwards request to agent’s
/invoke endpoint with X-Thread-Id header6
Agent Processing
Agent processes request using configured AI models and saves outputs to
/artifacts/{thread_id}/out/7
Response Return
Agent returns response, gateway logs completion, and results are returned
Network Architecture
Components communicate through Docker networks.
Docker Networks
- agents-net: Platform services communication
- agents-int: Agent-to-gateway isolated network
Port Mappings
| Service | External Port | Internal Port |
|---|---|---|
| UI | 3001 | 3001 |
| Gateway | 18080 | 8080 |
| PostgreSQL | - | 5432 |
| Proxy | - | 3128 |
File System Structure
Artifacts Directory
Each agent invocation gets isolated storage:Configuration Files
The UI manages configuration files that control the platform:.env: API keys and credentialsagentsystems-config.yml: Model connections, registries, and agents
Configuration changes made in the UI are written to these files and take effect on platform restart.
System Architecture
Container Isolation
Container Isolation
Each agent runs in a separate Docker container.
Credential Management
Credential Management
API keys are stored in environment variables separate from agent containers.
Audit Trail
Audit Trail
Operations are logged to PostgreSQL with request/response tracking.
Egress Control
Egress Control
HTTP proxy configuration supports URL allowlist functionality.

