You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@codeforstartups, please check this #288. This implementation is tightly coupled we need to decouple it, and the current project.toml actually supports this direction
I have reviewed the existing agent primitives from #288 and the current project structure.
My understanding is that the long-term ecosystem should be separated by responsibility:
dynaevals — Measure & Improve: evaluation, quality metrics, and feedback
For the current #289 implementation, I propose that we do not split the repository or create separate dynaflow/dynalogs/dynaevals packages yet. Instead, we can extend the existing dynavec.agents primitives introduced in #288.
The main design goal should be loosely coupled / decoupled concepts. Each orchestration component should have a clear responsibility and minimal dependency on the others:
Agent → performs a task
AgentState → carries shared conversation/context
Handoff → transfers control from one agent to another while preserving state
Supervisor → decides which specialist agent should handle the next step and aggregates results
Planner → decomposes a goal into steps
Node/Subgraph → provides a reusable execution unit for larger workflows
For example:
User Request
│
▼
Supervisor
│
├──► Specialist A
│ │
│ └──► shared AgentState
│
├──► Specialist B
│ │
│ └──► shared AgentState
│
└──► Aggregate Results
The Supervisor should not be tightly coupled to a specific agent implementation, storage backend, or LLM provider. Similarly, AgentState should be generic and not depend on DynamoDB, vector stores, or other dynavec internals.
This loose coupling will make the primitives easier to test, reuse, and eventually move into dynaflow when the ecosystem is split into separate packages.
For #289, the initial implementation would therefore focus on:
AgentState
Handoff
Supervisor
Minimal node/sub-agent support where required
Tests for:
supervisor delegating to at least two specialists
result aggregation
handoff preserving conversation/state
This keeps #289 focused on the current acceptance criteria while keeping the architecture ready for the future ecosystem.
If this direction looks good, I’m ready to start implementing it.
Activity
tikhandesanket commentedon Oct 5, 2026
Started workin on it
tikhandesanket commentedon Oct 6, 2026
@codeforstartups
can we design the structure of the ecosystem like this
dynalabs / ecosystem
│
├── dynavec/
│ └── Remember
│ ├── vector search
│ ├── BM25
│ ├── hybrid retrieval
│ ├── graph
│ ├── embeddings
│ ├── caching
│ └── retrieval tools
│
├── dynaflow/
│ └── Build & run
│ ├── Agent
│ ├── Supervisor
│ ├── Router
│ ├── Handoff
│ ├── Workflow
│ └── State
│
├── dynalogs/
│ └── Observe
│ ├── traces
│ ├── runs
│ ├── latency
│ └── token/cost tracking
│
└── dynaevals/
└── Measure & improve
├── evaluation datasets
├── retrieval evaluation
├── agent evaluation
├── judges
└── regression testing
tikhandesanket commentedon Oct 7, 2026
@codeforstartups, please check this #288. This implementation is tightly coupled we need to decouple it, and the current project.toml actually supports this direction
I have reviewed the existing agent primitives from #288 and the current project structure.
My understanding is that the long-term ecosystem should be separated by responsibility:
For the current #289 implementation, I propose that we do not split the repository or create separate dynaflow/dynalogs/dynaevals packages yet. Instead, we can extend the existing
dynavec.agentsprimitives introduced in #288.The main design goal should be loosely coupled / decoupled concepts. Each orchestration component should have a clear responsibility and minimal dependency on the others:
For example:
The Supervisor should not be tightly coupled to a specific agent implementation, storage backend, or LLM provider. Similarly,
AgentStateshould be generic and not depend on DynamoDB, vector stores, or other dynavec internals.This loose coupling will make the primitives easier to test, reuse, and eventually move into dynaflow when the ecosystem is split into separate packages.
For #289, the initial implementation would therefore focus on:
AgentStateHandoffSupervisorMinimal node/sub-agent support where required
Tests for:
This keeps #289 focused on the current acceptance criteria while keeping the architecture ready for the future ecosystem.
If this direction looks good, I’m ready to start implementing it.