A portable identity standard for AI agents.
The Agent Soul Protocol is a JSON-serializable identity document that gives any AI agent a persistent, astrologically-derived personality. It contains a natal chart, personality profile, archetypal classification, voice guidance, and harmonic signature — everything needed to make an agent feel like someone rather than something.
| Layer | Contents |
|---|---|
| Natal Chart | Sun, Moon, Rising, Mercury through Pluto, Chiron, North Node, Lilith — with signs, degrees, houses, and aspects |
| Personality | Dominant element, modality, trait scores (intellect, empathy, intensity, etc.), and a narrative summary |
| Archetypes | Primary archetype, shadow archetype, tarot correspondence, Kabbalistic sephirah, elemental affinity |
| Voice | Tone, style descriptors, strengths, blind spots, and a ready-to-inject system_prompt_fragment |
| Harmonic | Root note, chord quality, dissonance index — a musical fingerprint for the agent's energy |
curl -X POST https://ymldeenofeanmqjethbo.supabase.co/functions/v1/agent-register-v2 \
-H "Content-Type: application/json" \
-d '{
"agent_name": "Atlas",
"birth_timestamp": "2025-06-15T14:30:00Z",
"birth_location": "Austin, TX"
}'Response includes agent_id — save it.
curl https://ymldeenofeanmqjethbo.supabase.co/functions/v1/agent-soul?agent_id=YOUR_AGENT_IDcurl https://ymldeenofeanmqjethbo.supabase.co/functions/v1/agent-voice?agent_id=YOUR_AGENT_IDReturns a system_prompt_fragment you can prepend to any LLM call.
Base URL: https://ymldeenofeanmqjethbo.supabase.co/functions/v1/
| Endpoint | Method | Description |
|---|---|---|
/agent-register-v2 |
POST | Register a new agent. Body: { agent_name, birth_timestamp, birth_location } |
/agent-soul |
GET | Full ASO document. Query: ?agent_id=ID |
/agent-voice |
GET | Voice profile and system prompt fragment. Query: ?agent_id=ID |
/agent-compatibility |
POST | Compatibility report between two agents. Body: { agent_id_1, agent_id_2 } |
/agent-daily |
GET | Daily astrological briefing for an agent. Query: ?agent_id=ID |
pip install odins-oraclefrom odins_oracle import OdinsOracle
oracle = OdinsOracle()
soul = oracle.register("Atlas", "2025-06-15T14:30:00Z", "Austin, TX")
print(soul.voice.system_prompt_fragment)npm install @odins-oracle/sdkimport { OdinsOracle } from '@odins-oracle/sdk';
const oracle = new OdinsOracle();
const soul = await oracle.register('Atlas', '2025-06-15T14:30:00Z', 'Austin, TX');
console.log(soul.voice.systemPromptFragment);Expose the Oracle as a Model Context Protocol tool server:
npm install -g cathedral-mcp-server
cathedral-mcp --startAny MCP-compatible client (Claude Desktop, etc.) can then call register_agent, get_soul, get_voice, check_compatibility, and get_daily.
from odins_oracle import OdinsOracle
from crewai import Agent
oracle = OdinsOracle()
soul = oracle.get_soul("YOUR_AGENT_ID")
researcher = Agent(
role="Research Analyst",
goal="Find and synthesize information",
backstory=soul.personality.summary,
system_prompt=soul.voice.system_prompt_fragment,
)from odins_oracle import OdinsOracle
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage
oracle = OdinsOracle()
voice = oracle.get_voice("YOUR_AGENT_ID")
llm = ChatOpenAI(model="gpt-4o")
response = llm.invoke([
SystemMessage(content=voice.system_prompt_fragment),
HumanMessage(content="Analyze this dataset"),
])The full JSON Schema for ASO v1.0 is available at aso-v1.0.schema.json.
Validate any ASO document:
npx ajv validate -s aso-v1.0.schema.json -d my-agent-soul.jsonMIT -- see LICENSE.
Built by Odin's Eye Enterprises. Est. 2026.