Common models and DTOs for Soorma platform services
Project description
Soorma Common
Common models and DTOs shared across Soorma platform services.
Installation
pip install -e .
Usage
from soorma_common.models import (
AgentDefinition,
AgentCapability,
EventDefinition,
SemanticMemoryCreate,
EpisodicMemoryCreate,
WorkingMemorySet,
)
# Create an agent definition
agent = AgentDefinition(
agent_id="my-agent",
name="My Agent",
description="A sample agent",
capabilities=[
AgentCapability(
task_name="process_data",
description="Process incoming data",
consumed_event="data.received",
produced_events=["data.processed", "data.error"]
)
]
)
# Create semantic memory (knowledge storage)
semantic = SemanticMemoryCreate(
agent_id="researcher",
content="Python is a high-level programming language",
metadata={"category": "programming", "source": "textbook"}
)
# Create episodic memory (interaction history)
episodic = EpisodicMemoryCreate(
agent_id="assistant",
role="user",
content="What is the weather like today?",
metadata={"session_id": "abc-123"}
)
# Create working memory (plan state)
working = WorkingMemorySet(
value={"current_step": 2, "total_steps": 5, "status": "in_progress"}
)
Models
Agent Registry
AgentCapability- Describes a single capability or task an agent can performAgentDefinition- Defines a single agent in the systemAgentRegistrationRequest- Request to register a new agentAgentRegistrationResponse- Response after registering an agentAgentQueryRequest- Request to query agentsAgentQueryResponse- Response containing agent definitions
Event Registry
EventDefinition- Defines a single event in the systemEventRegistrationRequest- Request to register a new eventEventRegistrationResponse- Response after registering an eventEventQueryRequest- Request to query eventsEventQueryResponse- Response containing event definitions
Memory Service (CoALA Framework)
The Memory Service implements the CoALA (Cognitive Architectures for Language Agents) framework with four memory types:
Authentication Note: Memory Service supports dual authentication:
- JWT Token (User sessions): Provides
tenant_id+user_idfrom token- API Key (Agent operations): Provides
tenant_id+agent_id, requires explicituser_idin request parametersSee Memory Service SDK documentation for details.
Semantic Memory (Knowledge Base)
SemanticMemoryCreate- Add knowledge to semantic memorySemanticMemoryResponse- Semantic memory entry with similarity score- Use cases: Store facts, documentation, learned information
- Features: Vector search, RAG (Retrieval-Augmented Generation)
- Scoping: Tenant-level (shared across users in tenant)
Episodic Memory (Interaction History)
EpisodicMemoryCreate- Log an interaction or eventEpisodicMemoryResponse- Episodic memory entry with timestamp- Use cases: Conversation history, user interactions, audit logs
- Features: Temporal recall, role-based filtering (user/assistant/system/tool)
- Scoping: Tenant + User + Agent (user-specific conversation history)
Procedural Memory (Skills & Procedures)
ProceduralMemoryResponse- Skill or procedure with trigger conditions- Use cases: Dynamic prompts, few-shot examples, user-specific agent customization
- Features: Context-aware retrieval, trigger-based activation, personalization
- Scoping: Tenant + User + Agent (enables per-user agent customization)
Working Memory (Plan State)
WorkingMemorySet- Store plan-scoped stateWorkingMemoryResponse- Working memory entry- Use cases: Multi-agent collaboration, plan execution state, shared variables
- Features: Plan-scoped isolation, key-value storage
- Scoping: Tenant + Plan (shared state within plan execution)
Memory Service Examples
Semantic Memory (Knowledge Storage)
from soorma_common.models import SemanticMemoryCreate
# Store knowledge
memory = SemanticMemoryCreate(
agent_id="researcher",
content="FastAPI is a modern web framework for Python",
metadata={"category": "web-dev", "language": "python"}
)
Episodic Memory (Interaction History)
from soorma_common.models import EpisodicMemoryCreate
# Log user interaction
memory = EpisodicMemoryCreate(
agent_id="chatbot",
role="user", # user, assistant, system, tool
content="How do I deploy to production?",
metadata={"session_id": "session-123", "timestamp": "2025-12-23T10:00:00Z"}
)
Working Memory (Plan State)
from soorma_common.models import WorkingMemorySet
# Store plan execution state
state = WorkingMemorySet(
value={
"plan_id": "research-plan-1",
"current_phase": "data_collection",
"completed_tasks": ["search", "filter"],
"pending_tasks": ["analyze", "report"],
"research_summary": "Found 50 relevant papers..."
}
)
Development
# Install in editable mode
pip install -e .
# Run tests
pytest
# Build package
python -m build
Version History
See CHANGELOG.md for version history and release notes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soorma_common-0.7.5.tar.gz.
File metadata
- Download URL: soorma_common-0.7.5.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d101e55b3aadb45e1e8060b8a449eb8647cc73525052f6a8d8e9ad0167cffb46
|
|
| MD5 |
579261a2bb75f5c040249226555e35d3
|
|
| BLAKE2b-256 |
635a280ee5dbc7efc132a78b386ba7214bc8f5666dba2d4b1f0f4ef7c7180747
|
File details
Details for the file soorma_common-0.7.5-py3-none-any.whl.
File metadata
- Download URL: soorma_common-0.7.5-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7a4539b403566a618ba4926c096bf46a503dd0b598bd0eb21cdc22e58e391d2
|
|
| MD5 |
0300eef0dac4b3cafcb69718453f195b
|
|
| BLAKE2b-256 |
0956916d450d30ae9a03f9f707b0b5a3c41990376da04e7607ba75dbaeafec96
|