vyasa-agent
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Self-hosted Python agent fleet with 29 personas, capability-controlled tools and persistent memory. Console, Telegram and authenticated HTTP. Alpha.
Vyasa Agent
A self-hosted fleet of 29 specialist personas with bounded conversation memory and capability-controlled graph tools.
Alpha · v0.2.1 · Python 3.11+ · Apache-2.0
Ask from a terminal, Telegram, or an authenticated HTTP client. Each specialist has a prompt, a capability policy, and its own conversation history. Names describe software personas, not human employees or professional credentials.
Pairs with DJcode 4.3+ (djcode --vyasa).
Quick start · Architecture · DJcode integration · Development
Start the fleet
uv tool install 'git+https://github.com/darshjme/vyasa-agent.git'
vyasa doctor
export VYASA_PROVIDER=openrouter
export VYASA_MODEL='your-provider-model-id'
# Set VYASA_API_KEY in the environment. Do not commit it.
vyasa gateway serve --console
The gateway listens on 127.0.0.1:19000. VYASA_BASE_URL selects another OpenAI-compatible endpoint. VYASA_PROVIDER=ollama uses http://127.0.0.1:11434/v1 and does not need an API key.
State lives in VYASA_HOME (default ~/.vyasa). The install includes all 29 descriptors under employees/. Set VYASA_FLEET_ROOT to use your own vyasa.yaml, capabilities.yaml, and employees/ directory.
vyasa doctor checks Python, imports, graph SQLite, employee YAML, and the capability matrix. A healthy process does not prove model credentials or inference.
Architecture
flowchart LR
Clients[Console / Telegram / HTTP] --> Gateway[Gateway and authentication]
Gateway --> Router[Aliases, conversation affinity, keyword fallback]
Router --> Fleet[29 persona actors and capability policy]
Fleet --> Runtime[Bounded provider runtime]
Runtime --> Provider[Configured model endpoint]
Runtime --> History[(Per-persona SQLite history)]
Runtime --> Graph[Allowed graph tools]
Graph --> Memory[(SQLite graph store)]
The router first checks /ask alias and @alias, then a ten-minute conversation binding. Otherwise it matches whole-word technical/product keywords, with technical requests taking precedence. The fleet applies each descriptor's capabilities before allowing graph calls. Hosting the fleet yourself keeps its state on your host; a remote model endpoint still receives the messages sent to it.
Connect DJcode
On the fleet host:
vyasa token
Then in the DJcode terminal:
export VYASA_URL=http://127.0.0.1:19000
# Set VYASA_TOKEN from the command above. Do not commit it.
djcode --vyasa
djcode --vyasa --vyasa-employee prometheus --vyasa-session release 'Review this release plan'
Without a prompt, --vyasa lists the fleet. Omit --vyasa-employee to route automatically. Named sessions keep recent turns across gateway restarts. Remote access needs HTTPS (reverse proxy or SSH tunnel). Do not publish port 19000 without TLS and an allowlist.
Channels and API
vyasa gateway serve --console— terminalvyasa gateway serve --telegram— text via Telegram (messagingextra;VYASA_TELEGRAM_BOT_TOKEN,VYASA_TELEGRAM_ALLOWLIST,VYASA_OWNER_CHAT_ID)GET /v1/fleet— bearer-authenticated directoryPOST /v1/chat— bearer-authenticated{text, employee?, session?}GET /healthz— process health only
Revoke a token by removing it from channels.gateway.tokens in the host settings store.
Memory and limits
Recent history is bounded and stored in per-specialist SQLite databases. The model may call graph_read / graph_write only when the descriptor and capability matrix allow it. The model loop is limited to eight rounds with a per-actor deadline.
Vyasa does not expose host shell or file-editing tools. Use DJcode for repository edits. WhatsApp, voice, vector recall, and autonomous deployment are not in 0.2.1.
Docker
# Set provider environment variables first.
docker compose up -d --build
docker compose exec vyasa vyasa token
The container runs unprivileged, persists vyasa_home, and binds the host port on loopback.
Development
Clone the source, then install the test and adapter dependencies:
git clone https://github.com/darshjme/vyasa-agent.git
cd vyasa-agent
uv sync --extra dev --extra admin --extra messaging
uv run pytest -m ''
uv run ruff check vyasa_agent --select E9,F63,F7,F82
uv build
The full test command includes integration tests with mocked adapters; it does not validate a live provider, Telegram account or deployment. uv run pytest runs the unit suite only. GitHub Actions is disabled; run checks and publishing locally.
| Location | Purpose |
|---|---|
vyasa_agent/gateway/ |
Shared routing and channel adapters |
vyasa_agent/fleet/ |
Persona actors, descriptors and capability enforcement |
vyasa_agent/runtime.py |
Provider calls and persistent conversation history |
vyasa_agent/graphify/ |
SQLite graph memory and MCP transport |
vyasa_agent/data/ |
Packaged configuration and all 29 persona descriptors |
tests/ |
Unit and integration contracts |
See CHANGELOG.md for changes. For related tools, DJcode handles repository work; DAF explores Rust agent coordination. These are separate projects, not mandatory runtime dependencies.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found