A secure, symbolic multi-agent AI orchestration framework with encrypted vaults and governed decision-making.
- π Encrypted Vaults: Secure storage with AES-256 encryption for sensitive agent data and credentials
- π€ Multi-Agent Coordination: Dynamic agent lifecycle management with role-based task distribution
- π§ Symbolic Planning: Logic-based reasoning engine for complex decision-making and goal decomposition
- π Governance Framework: Policy enforcement, audit logging, and ethical constraint validation
- π Event-Driven Architecture: Real-time inter-agent messaging with pub/sub patterns
- π Observable & Traceable: Comprehensive logging and monitoring for all agent activities
- Python 3.8+ (tested on 3.8, 3.9, 3.10, 3.11)
- pip or poetry for dependency management
- Git
git clone https://github.com/POWDER-RANGER/OBLISK.git
cd OBLISK
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m oblisk.maingit clone https://github.com/POWDER-RANGER/OBLISK.git
cd OBLISK
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
python -m oblisk.maingit clone https://github.com/POWDER-RANGER/OBLISK.git
cd OBLISK
python -m venv venv
venv\Scripts\activate.bat
pip install -r requirements.txt
python -m oblisk.maingraph TB
subgraph "OBLISK Core"
SP[Symbolic Planner]
AM[Agent Manager]
V[Vault System]
GF[Governance Framework]
end
subgraph "Agents"
A1[Agent 1]
A2[Agent 2]
A3[Agent N]
end
subgraph "External"
API[External APIs]
DB[(Data Sources)]
end
SP --> AM
AM --> A1
AM --> A2
AM --> A3
A1 --> V
A2 --> V
A3 --> V
GF --> SP
GF --> AM
A1 --> API
A2 --> DB
A3 --> API
style SP fill:#4a90e2
style V fill:#e94b3c
style GF fill:#50c878
style AM fill:#f39c12
- Symbolic Planner (
core/symbolic_planner.py): Breaks down high-level goals into actionable tasks using logic programming - Agent Manager (
agents/agent_manager.py): Spawns, monitors, and coordinates agent lifecycles - Vault System (
vault/vault.py): Encrypted key-value store for secrets and sensitive data - Governance Framework (
core/governance.py): Enforces policies and ethical constraints
Create a config.yaml in the project root:
oblisk:
vault:
encryption_key_path: "/path/to/keyfile"
storage_path: "./vault_data"
agents:
max_concurrent: 10
timeout_seconds: 300
planner:
reasoning_engine: "prolog" # or "datalog"
max_depth: 5
governance:
policy_path: "./policies/default.json"
audit_log_path: "./logs/audit.log"
enforce_ethics: true
logging:
level: "INFO"
format: "json"Alternatively, use JSON format (config.json):
{
"oblisk": {
"vault": {
"encryption_key_path": "/path/to/keyfile",
"storage_path": "./vault_data"
},
"agents": {
"max_concurrent": 10,
"timeout_seconds": 300
},
"planner": {
"reasoning_engine": "prolog",
"max_depth": 5
},
"governance": {
"policy_path": "./policies/default.json",
"audit_log_path": "./logs/audit.log",
"enforce_ethics": true
}
},
"logging": {
"level": "INFO",
"format": "json"
}
}The Vault provides secure, encrypted storage for agent credentials and sensitive data:
- Encryption: AES-256-GCM with per-entry nonces
- Key Management: Supports file-based keys, environment variables, or HSM integration
- Access Control: Role-based permissions with audit logging
- API: Simple
set(key, value)andget(key)interface
from oblisk.vault import Vault
vault = Vault(key_path="/path/to/key")
vault.set("api_token", "sensitive-token-123")
token = vault.get("api_token")Agents communicate via a pub/sub messaging system:
- Topics: Agents subscribe to relevant topics (e.g.,
tasks.analysis,events.alerts) - Message Bus: Centralized event bus with guaranteed delivery
- Serialization: JSON or Protocol Buffers for efficient data transfer
- Security: All messages are signed and optionally encrypted
from oblisk.agents import Agent
class DataAgent(Agent):
def on_message(self, topic, payload):
if topic == "tasks.fetch_data":
data = self.fetch_from_api(payload["source"])
self.publish("data.fetched", {"result": data})The Planner decomposes goals into executable plans:
- Input: High-level goal (e.g., "Analyze sentiment from social media")
- Processing:
- i. Goal decomposition into sub-goals
- ii. Agent capability matching
- iii. Dependency resolution and ordering
- iv. Resource allocation
- Output: Directed acyclic graph (DAG) of tasks assigned to agents
- Execution: Tasks run in parallel where possible, with failure recovery
from oblisk.core import SymbolicPlanner
planner = SymbolicPlanner()
plan = planner.create_plan(
goal="Analyze sentiment from Twitter",
constraints=["cost < 100", "time < 5min"]
)
planner.execute(plan)See the examples/ directory for sample implementations:
simple_agent.py: Basic agent setup
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Please report security vulnerabilities via our Security Policy. Do not open public issues for security concerns.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Wiki: Project Wiki
Built with β€οΈ by the POWDER-RANGER team