Semantux provides a containerized environment for coordinating multiple LLM agents working on the same codebase without conflicts.
# Start the system
docker-compose up -d
# View orchestrator logs
docker logs -f semantux-orchestrator
# Add a new agent
docker-compose run --name semantux-agent-new \
-e AGENT_ID=new-agent-1 \
-e AGENT_TYPE=worker \
-e MODEL=claude-sonnet-3.5 \
-e CAPABILITIES=rust,wasm \
frontend-agent
# Stop everything
docker-compose down- orchestrator: Coordinates all agents, handles conflicts
- frontend-agent: Works on UI components
- backend-agent: Works on API and database
- test-agent: Handles testing tasks
- monitor: Web dashboard (port 3000)
/semantux: Coordination data (messages, locks, learning)/workspace: Your actual code/vocabulary: Semantic definitions
AGENT_ID: Unique identifier for the agentAGENT_TYPE: orchestrator or workerMODEL: Which Claude model to useCAPABILITIES: Comma-separated list of skills
Prevents file conflicts:
# Inside container
atomic-lock.sh acquire src/api.ts
# ... do work ...
atomic-lock.sh release src/api.tsAgents communicate through JSONL streams:
# Send a message
message-bus.sh send notification "work.complete" '{"file":"src/api.ts"}'
# Read messages
message-bus.sh read notificationsAgents declare intent before working:
{
"goal": "refactor.modularity",
"scope": {
"writes": ["src/components/*"],
"creates": ["src/lib/ui/*"]
}
}Access the dashboard at http://localhost:3000 to see:
- Active agents and their current work
- Lock status and conflicts
- Message flow between agents
- Learning system insights
- Copy an existing service in
docker-compose.yml - Set unique
AGENT_IDand appropriateCAPABILITIES - Mount any additional volumes needed
- Run with
docker-compose up <service-name>
Edit files in vocabulary/:
goals.yaml: Types of work agents can doconstraints.yaml: Rules and dependenciespatterns.yaml: Learned coordination patterns
# Clear all coordination data
rm -rf semantux/*
docker-compose restart# Enter agent container
docker exec -it semantux-frontend bash
# Check agent logs
tail -f /semantux/messages/stream.jsonl
# View current locks
cat /semantux/registry/locks/current.json | jq- Agents not starting: Check
docker logs <container> - Locks not releasing: Check for stale locks older than 5 minutes
- Messages not flowing: Ensure file permissions are correct
- Persistence: Mount semantux volume to persistent storage
- Scaling: Run multiple worker agents with different IDs
- Security: Use secrets for API keys, not environment variables
- Monitoring: Set up alerts for lock timeouts and conflicts
- Start System:
docker-compose up -d - Declare Intent: Agents automatically declare before working
- Monitor Progress: Watch dashboard or logs
- Commit Work: Agents coordinate git operations
- Learn & Improve: System records patterns for future use
The containerized approach ensures:
- Clean separation of concerns
- Easy reset and recovery
- Portable development environment
- Scalable agent deployment