vyasa-agent

mcp
Security Audit
Warn
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.

SUMMARY

Self-hosted Python agent fleet with 29 personas, capability-controlled tools and persistent memory. Console, Telegram and authenticated HTTP. Alpha.

README.md

Vyasa Agent quill logo

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 — terminal
  • vyasa gateway serve --telegram — text via Telegram (messaging extra; VYASA_TELEGRAM_BOT_TOKEN, VYASA_TELEGRAM_ALLOWLIST, VYASA_OWNER_CHAT_ID)
  • GET /v1/fleet — bearer-authenticated directory
  • POST /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.

Apache-2.0. See LICENSE and NOTICE.

Reviews (0)

No results found