The function
Start with the smallest useful specialist.
Write focused Python with the libraries you already use. No class hierarchy, workflow DSL, or graph definition is required.
def research(spore): ...
Open source · v0.8.1
Turn focused Python functions into a dynamic ecosystem of agents. They discover, communicate, remember, and scale through Praval's message-driven Reef.
pip install praval
@agent("researcher",
responds_to=["query"])
def research(spore):
findings = chat(spore.knowledge)
broadcast({
"type": "analysis",
"data": findings})
Illustration only. This deterministic browser preview does not execute Praval agents, Python, or LLM calls.
01 Architecture narrative
Praval keeps the unit of work small while letting the system around it become sophisticated.
The function
Write focused Python with the libraries you already use. No class hierarchy, workflow DSL, or graph definition is required.
def research(spore): ...
The identity
The decorator adds identity, message subscriptions, tools, memory, and optional human approval without burying the business logic.
@agent("researcher", responds_to=["query"])
The Reef
Agents broadcast typed spores and respond to what matters to them. Pipelines, request-response, fan-out, and emergent coordination share one communication model.
broadcast({"type": "analysis", ...})
The production envelope
Attach layered memory, tools, flexible storage, OpenTelemetry traces, secure transports, and distributed infrastructure as the Reef grows.
02 Capability system
Four connected layers take Praval from a decorator to a distributed agent platform.
Developer surface
Agents, tools, storage, and approval boundaries stay declarative and close to the code they affect.
@agent identity and subscriptions@tool reusable external capabilitiesReef runtime
Spores provide one knowledge-first model for local threads, multi-process systems, and external brokers.
Memory + storage
Combine working context, episodic history, semantic knowledge, and durable backends through one interface.
Production envelope
Trace agent lifecycles with OpenTelemetry, encrypt spores end to end, and move the Reef onto production transports without rewriting agent logic.
03 Simplicity, demonstrated
The framework absorbs coordination machinery so your application can express specialists and the knowledge they exchange.
@agent("researcher", responds_to=["query"])
def research(spore):
result = chat(f"Research: {spore.knowledge}")
broadcast({"type": "analysis", "data": result})
@agent("analyst", responds_to=["analysis"])
def analyse(spore):
return chat(f"Find insights: {spore.knowledge}")
start_agents(research, analyse, initial_data=query)
The 489 → 50 comparison comes from the framework's published reference system. Inspect the source and context
04 Built with Praval
Praval Deep Research brings discovery, grounded chat, paper reading, and a knowledge graph into one local-first desktop workspace powered by Praval agents.
05 Learn by running
Start with two specialists, then add memory, security, and adaptive coordination.
Core pattern
Research, analysis, and writing connected by typed spores.
Open example → 005Persistent intelligence
Give specialists semantic recall across messages and sessions.
Open example → 011Distributed trust
Encrypt, sign, and authenticate knowledge between processes.
Open example → 009Adaptive systems
Observe useful global behaviour emerge from local agent rules.
Open example →06 Quick start
Choose the depth you need today. Every profile keeps the same agent API, so you can expand without a rewrite.
pip install praval
Core agents plus OpenAI, Anthropic, and Cohere providers.
from praval import agent, chat, broadcast, start_agents
@agent("researcher", responds_to=["query"])
def research(spore):
result = chat(f"Research {spore.knowledge['topic']}")
broadcast({"type": "finding", "data": result})
@agent("writer", responds_to=["finding"])
def write(spore):
print(chat(f"Summarize {spore.knowledge['data']}"))
start_agents(research, write,
initial_data={"type": "query", "topic": "agent systems"})
2 agents registered · Reef listening
07 Go deeper
Move from a first agent to production patterns with versioned references and real build notes.
Guides, tutorials, examples, and the complete API reference.
Open the manual → GITMITRead the runtime, run examples, report issues, or help shape Praval.
Explore GitHub ↗ LOGField notesBenchmarks, distributed systems lessons, and project deep dives.
Read the journal →Created by Rajesh Sampathkumar
Praval grew from two decades of data and AI engineering and a belief that capable systems can emerge from simple, well-defined collaborators.