OpenSymphony
Let your agents have character, follow rules, and grow.
An open-source AI agent framework with soul, governance, and self-evolution. Designed to run on consumer hardware.
Why OpenSymphony?
Most agent frameworks focus on orchestration — chaining API calls. OpenSymphony focuses on who your agents are and how they behave:
- 🎭 Soul — Define agent personalities as YAML. Not prompts — persistent behavioral frameworks.
- ⚖️ Governance — Voting, precedent, defense. Agents make collective decisions, not chaos.
- 🔧 Self-evolution — Agents build their own tools at runtime.
Architecture
Request → Gateway → [Intent Bridge] → [Governance] → Runtime → Kernel → Response
↑
Voting / Precedent / Defense
Onion model: every request passes through governance layers before execution.
┌─────────────────────────────────────────────────┐
│ Gateway (HTTP / WebSocket / CLI) │
│ └─ HumanAdapter — Intent Bridge (NL→struct) │
├─────────────────────────────────────────────────┤
│ Governance │
│ ├─ VotingMechanism — multi-agent decisions │
│ ├─ PrecedentStore — reusable past decisions │
│ ├─ DefenseLayer — risk assessment │
│ └─ HITLManager — human-in-the-loop │
├─────────────────────────────────────────────────┤
│ Runtime │
│ ├─ AgentPool — concurrent agent management │
│ ├─ TaskScheduler — priority queue │
│ └─ AgentSandbox — resource limits │
├─────────────────────────────────────────────────┤
│ Kernel │
│ ├─ Soul Compiler — YAML → behavioral rules │
│ ├─ LLM Router — cloud + local providers │
│ ├─ Memory (L1/L2/L3) — three-tier storage │
│ └─ Tool Workshop — agents create tools │
└─────────────────────────────────────────────────┘
Quick Start
# Install
pip install opensymphony
# Or from source
git clone https://github.com/lawcontinue/opensymphony.git
cd opensymphony
pip install -e ".[dev]"
# Run tests (377 passing)
pytest
# Start the API server
python -m opensymphony.gateway.http
Example: Define a Soul
# souls/my_agent.yaml
id: my_agent
name: MyAgent
archetype: Code Reviewer
thinking_framework: |
You are a code reviewer focused on security and correctness.
Rules:
1. Flag any unvalidated user input
2. Check for race conditions in concurrent code
3. Prefer readability over cleverness
values:
- Security first
- Evidence-based review
- Constructive feedback
Example: Use the API
from opensymphony.agents.soul import Soul
from opensymphony.agents.soul_compiler import compile_soul
from opensymphony.kernel import SymphonyKernel
# Load a soul
soul = Soul.from_yaml("souls/my_agent.yaml")
prompt = compile_soul(soul, output_mode="agent")
# Create kernel with governance
kernel = SymphonyKernel()
kernel.load_souls("souls/")
# Chat with an agent
response = kernel.chat("my_agent", "Review this function for security issues...")
print(response)
Core Concepts
🎭 Soul System
Agents are defined by YAML soul files with identity, thinking framework, values, and veto conditions. Souls compile into behavioral constraints that persist across conversations.
13 built-in souls: themis, athena, crit, shield, code, novelist, screenwriter, tech_blogger, legal_writer, social_copy, drama_director, reflector, default.
⚖️ Governance Layer
| Mechanism | Description |
|---|---|
| Voting | Multi-agent voting with configurable timeout and majority rules |
| Precedent | Past decisions become searchable, reusable precedents |
| Defense | Risk assessment classifies actions (safe/risky/dangerous) |
| HITL | Human-in-the-loop confirmation for high-risk operations |
🔧 Tool Workshop
Agents can create, test, and deploy their own Python tools at runtime — no human intervention needed.
💾 Three-Tier Memory
| Tier | Storage | Use Case |
|---|---|---|
| L1 | In-memory | Current conversation context |
| L2 | SQLite | Experience database with search |
| L3 | Cloud API | Long-term persistent memory |
Requirements
- Python 3.11+
- Optional: 16GB+ RAM for local LLM inference
- Optional: NVIDIA GPU for local models
Project Structure
opensymphony/
├── agents/ # Agent core + Soul compiler
├── apps/ # Application modules (novel pipeline, content factory)
├── gateway/ # HTTP + WebSocket + Human adapters
├── governance/ # Voting, precedent, defense, HITL
├── kernel.py # Core orchestration
├── llm/ # LLM router (cloud + local)
├── memory/ # Three-tier memory (L1/L2/L3)
├── pipeline.py # Declarative pipeline engine
├── runtime/ # Agent pool + scheduler + sandbox
├── session.py # Session management
├── skill_registry.py # Dynamic skill loading
├── telemetry.py # Observability
└── tools/ # Production tools + workshop
License
MIT
Metadata
Release files for opensymphony 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| opensymphony-0.2.1.tar.gz | 177.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opensymphony-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 330.2 kB
Release files / opensymphony-0.2.1.tar.gz
| Download URL | opensymphony-0.2.1.tar.gz |
|---|---|
| Size | 177.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e356dcf4e15c6151c669f09cb28e5c4feac65dae0bcc0a9f149a65b6507e150
|
|
BLAKE2b-256 checksum How to use checksums |
4eaf7b9041b0e2d9d3db7108261e9c6003f482f839ddb0273e6ff008f42f1b3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logRelease files / opensymphony-0.2.1-py3-none-any.whl
| Download URL | opensymphony-0.2.1-py3-none-any.whl |
|---|---|
| Size | 152.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce23c658508aedd5d86f0f08cb3b9f71f0d762f019c17ed12723bbf419b0a908
|
|
BLAKE2b-256 checksum How to use checksums |
e7ccca0164363f0dfffe054172438655071585591268eef81343cb3cac26df2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logSecurity for opensymphony 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for opensymphony-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.