A framework for building and managing AI agents with memory systems and API endpoints
Project description
Muvius A2A Framework
The Muvius A2A (Agent-to-Agent) Framework is an open-source, modular system for building intelligent, role-driven, and memory-aware AI agents that can communicate with one another to accomplish complex marketplace tasks like negotiation, matchmaking, and fulfillment.
Memory-Retaining Agents
Each Muvius agent has three layers of memory:
- Procedural Memory: Defines the agent’s role, goals, and policies.
- Episodic Memory: Logs of prior interactions and session context.
- Semantic Memory: A vectorized memory store for long-term understanding, reasoning, and context recall.
Agent Retention Flow
- User Message is received by an agent.
- System Prompt is constructed using:
- Procedural memory
- Episodic enrichment (e.g., recent messages)
- Semantic context from vector search
- Working Memory is assembled into a structured prompt.
- LLM inference generates a response.
- Agent memory is updated with new episodic and semantic traces.
- Agents can optionally communicate with each other using structured JSON messages.
Architecture Overview
┌──────────────────────────────┐
│ Orchestrator │
│ Routes messages & manages │
│ A2A communication flow │
└────────────┬─────────────────┘
│
┌───────▼────────┐ ┌───────────────┐
│ Buyer Agent │ <---> │ Seller Agent │
└──────┬─────────┘ └───────────────┘
│
┌─────────▼────────────┐
│ Working Memory Builder│
└─────────┬────────────┘
│
┌────────▼──────────┐
│ Memory Manager │
│ - Procedural (YAML)│
│ - Episodic (SQLite)│
│ - Semantic (Qdrant)│
└────────────────────┘
Tech Stack (All Open Source)
| Layer | Tool/Framework |
|---|---|
| Vector Store | Qdrant / Weaviate |
| Embeddings | Sentence-Transformers |
| Local LLM | Ollama / llama.cpp |
| Memory DB | SQLite / DuckDB |
| Communication Bus | JSON-RPC or Redis Pub/Sub |
| API Layer | FastAPI (Python) or Echo/Fiber (Go) |
| Orchestration | Docker Compose / Kubernetes |
Agent Communication (A2A)
Agents communicate using structured JSON payloads:
{
"from_agent": "BuyerAgent",
"to_agent": "SellerAgent",
"intent": "propose_trade",
"semantic_context": ["price", "location", "urgency"],
"proposed_action": "counter_offer",
"timestamp": "2025-06-02T14:00:00Z"
}
Getting Started
1. Clone the Repo
git clone https://github.com/your-org/muvius-a2a-framework.git
cd muvius-a2a-framework
2. Start Agents Locally (with Docker Compose)
docker-compose up --build
3. Interact with Agents
Use the
/interact
API for each agent:
POST /api/agent/buyer/interact
{
"user_id": "123",
"message": "Is this scooter still available?"
}
Directory Structure
muvius/
├── orchestrator/ # Agent router & dispatcher
├── agents/
│ ├── buyer_agent/
│ │ ├── memory/ # procedural.yaml, episodic.db, embeddings/
│ │ └── main.py
│ └── seller_agent/
│ └── ...
├── shared/
│ └── memory_utils.py
├── embeddings/
│ └── models/
└── docker-compose.yml
Testing and Extending
- Add new roles by cloning an agent folder and modifying its procedural memory.
- Create shared memory overlays for organizational agents.
- Use pytest or go test for isolated unit testing.
⸻
License
MIT License. Fully open-source and extensible.
Roadmap
• Multi-agent simulation testing suite
• Agent registry & directory service
• Multi-language agent support
• Shared semantic memory overlays
Maintainers
Developed by the Muvio AI team For questions, reach out to: muvius@muvio.ai
Project details
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 muvius-0.1.0.tar.gz.
File metadata
- Download URL: muvius-0.1.0.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ede668d94587e36524fd7b85e1c99b2ea126a830760c7bee931c6f28e1401210
|
|
| MD5 |
de613658ad63adb7b64cc675d45297dc
|
|
| BLAKE2b-256 |
af36e0462814e7cdc8560f32680d146f1b6cce8f6704e465e0f267bef0dc7296
|
File details
Details for the file muvius-0.1.0-py3-none-any.whl.
File metadata
- Download URL: muvius-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b87209a4a8a09ccb35b86181b100790523544ad4b2082a2bc1b7598c30ec35eb
|
|
| MD5 |
20113ec1452a853926aff1a622569128
|
|
| BLAKE2b-256 |
ab5cf727627e6a0ec184814fb4b7f5a7124e9c5a517b9d3bff8c86b9aeddd455
|