This document details the core components of the Agent Party MVP, their interfaces, and how they integrate to form a cohesive system.
Kafka serves as the central nervous system of the Agent Party platform, handling all event-based communication between agents and system components.
Topic | Purpose | Partitions |
---|---|---|
agent.registration |
Agent registration events | 4 |
agent.events |
General purpose agent events | 8 |
agent.requests |
Service requests from agents | 8 |
agent.responses |
Service responses to agents | 8 |
system.logs |
System logging and monitoring | 4 |
bootstrap.servers=kafka:9092
acks=all
retries=10
batch.size=16384
linger.ms=5
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=io.confluent.kafka.serializers.KafkaAvroSerializer
schema.registry.url=http://schema-registry:8081
bootstrap.servers=kafka:9092
group.id=agent-party-service
enable.auto.commit=false
auto.offset.reset=earliest
key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
schema.registry.url=http://schema-registry:8081
Neo4j provides the graph database infrastructure for modeling agent relationships, capabilities, and interaction patterns.
Node Label | Purpose | Key Properties |
---|---|---|
Agent |
Represents an agent in the system | id, name, type, status |
Capability |
Represents a capability an agent can provide | id, name, description |
Resource |
External resource an agent can access | id, type, location |
Event |
Represents a significant system event | id, type, timestamp |
Relationship | Purpose |
---|---|
:HAS_CAPABILITY |
Links an Agent to a Capability it provides |
:DEPENDS_ON |
Indicates an Agent depends on another Agent |
:ACCESSES |
Links an Agent to Resources it can access |
:PARTICIPATED_IN |
Links an Agent to Events it participated in |
CREATE (a:Agent {
id: $agentId,
name: $name,
type: $type,
status: 'ACTIVE',
created: datetime()
})
RETURN a
MATCH (a:Agent)-[:HAS_CAPABILITY]->(c:Capability)
WHERE c.name = $capabilityName
RETURN a.id, a.name, a.type
MATCH path = shortestPath(
(a:Agent {id: $sourceId})-[*]-(b:Agent {id: $targetId})
)
RETURN path
MinIO provides S3-compatible object storage for artifacts, file attachments, and binary data generated or consumed by agents.
Bucket | Purpose | Access Pattern |
---|---|---|
agent-resources |
Resources provided by or for agents | Read-heavy |
agent-artifacts |
Artifacts generated by agent interactions | Write-then-read |
system-logs |
System logging data | Write-heavy |
temp-storage |
Temporary object storage with expiration | Mixed, short-lived |
/{agent-id}/{object-type}/{uuid}
Metadata Field | Description |
---|---|
agent-id |
ID of the agent that owns or created the object |
content-type |
MIME type of the stored object |
created-at |
Timestamp when the object was created |
source-event |
Event ID that triggered object creation (if applicable) |
Redis provides in-memory data storage for caching, session management, real-time state tracking, and high-speed lookups.
Data Type | Use Case | Key Pattern |
---|---|---|
Hash | Agent profiles and metadata | agent:{id} |
Set | Agent capabilities | agent:{id}:capabilities |
Sorted Set | Agent ranking by activity | agents:activity |
List | Recent events per agent | agent:{id}:recent-events |
String | Configuration values | config:{key} |
Data Category | TTL | Invalidation Strategy |
---|---|---|
Agent Profiles | 30 minutes | Active invalidation on update |
Capability Data | 1 hour | Active invalidation on update |
Session Data | 15 minutes | TTL-based expiration with refresh |
Configuration | 12 hours | Active invalidation on update |
agent-status # Agent status changes
agent-events # Notable agent events
system-notifications # System-wide notifications
Agent Party MVP Specification © 2025