Continuous Astra V5
A Python harness for a continuous AI assistant, with scheduled work, email, optional Discord, shared tools and parallel subagents. Includes the Aegis script runtime, reusable skills, a local prompt editor and an API spending guard.
Uses the hosted gpt-6-luna API. This repository contains the harness source;
model weights are not included. Requires Python 3.11+ and your own service credentials.
Quick start
python -m pip install -r requirements.txt
Copy config.example.py to config.py and fill in your OpenAI and AgentMail settings.
Keep config.py private. The original setting name AGENT_MAIL_ADRESS is retained
for compatibility; environment variables can also supply credentials.
python astra.py
The package starts fresh: empty configuration, no contacts, memories, messages,
logs or saved work. CONTACTS in astra.py is empty. Add only your intended contacts;
configured contacts receive first-wake email confirmations. Ctrl+C stops the agent.
Optional features
- Discord: add your bot token and two account usernames to
config.py. Enable Message Content Intent for your bot. The second username is the operator; their messages trigger immediate wakes. Other approved messages wait for a wake. - Budget:
python astra.py --api-budget 1 --no-promptenables the local USD guard. Its pricing constants are dated October 4, 2026; update them for current provider pricing. This guard estimates usage and is not an account billing limit. - Prompt editor:
python operator_dashboard.pyopens a local editing service. Open the private link saved intmp/operator_dashboard_url.txt; restart the agent after edits. - Docker: after configuring
config.py, rundocker compose up -d --build. Persistent runtime data lives indata/; use one deployment per inbox.
Scheduled wakes default to 20 minutes and can be set from 20 to 120 minutes. Email and Discord tools perform real actions when configured. Generic communication guidance is included; the distribution contains no private conversation examples.
Development
python -B -m unittest discover -p "test_*.py"
The offline suite uses fake services and temporary stores. See AEGIS.md
for scripting syntax and PUBLIC_RELEASE.md for package changes
and validation. SHA256SUMS.txt records the released file checksums.
The YAML header follows the Hugging Face card format. Upload this folder's contents as the repository root to keep the banner link working.
