How sayujya-apte/idpv2 works
vibe_idp runs purpose-specific agents in synchronous communication rounds. The workflow is to define an adjacency-matrix topology and agents, invoke the network runner, let each agent read its inbox and propose messages, then have a centralized router validate recipients and refill inboxes for the next cycle; the run returns a delivery/rejection log that can be summarized. The graph module owns agent dispatch and round control, while the topology and message types support routing. README and sampled source document this flow and Groq-backed agents; links to that external model service are optional integrations.
Main entry points: graph.py Router node · runner.py Run network · router.py Central router · agent.py Purpose agent
Components 13
Round execution
- Run network
src/vibe_idp/runner.py - Round graph
src/vibe_idp/graph.py - Agent nodes
src/vibe_idp/graph.py - Router node
src/vibe_idp/graph.py - Log summary
src/vibe_idp/runner.py
Agents and routing
- Central router
src/vibe_idp/router.py - Per-agent inboxes
src/vibe_idp/graph.py - Run log
src/vibe_idp/graph.py
Model integration
- Purpose agent
src/vibe_idp/agent.py - Groq model
Topology and messages
- Topology rules
src/vibe_idp/topology.py - Message records
src/vibe_idp/types.py
Other components
- Network caller
Connections 16
- Network caller → Run network: invokes
- Run network → Round graph: builds and invokes
- Round graph → Router node: dispatches
- Round graph → Agent nodes: dispatches
- Router node → Central router: routes via
- Central router → Topology rules: checks permissions
- Central router → Message records: creates records
- Router node → Per-agent inboxes: refills
- Router node → Run log: appends deliveries and rejections
- Per-agent inboxes → Agent nodes: provides next-cycle messages
- Agent nodes → Purpose agent: calls step
- Purpose agent → Groq model: requests decision
- Purpose agent → Message records: returns outbounds
- Agent nodes → Router node: writes outboxes
- Run network → Log summary: can summarize log
- Run log → Log summary: supplies entries