Design feedback on a provider-agnostic multi-agent framework in Python #183019
-
|
Hi everyone, I’m looking for architectural feedback on a Python project I’ve been building around multi-agent AI systems. While working with agent-based workflows, I often ran into issues when trying to scale prototypes into more structured setups: tight coupling to specific LLM providers, ad-hoc orchestration logic, and difficulty composing agents in a clean way. As an experiment, I started building a small framework to explore alternative design choices. The current design focuses on:
At this stage, I’m less interested in promotion and more in understanding whether these abstractions make sense from a software design perspective. In particular, I’d appreciate feedback on:
If useful, the code is here: Thanks for any thoughts or discussion! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
|
This is a fantastic project and a great example of a "developer-first" approach to the multi-agent problem. After looking through the repository, it is clear that you have put significant thought into avoiding the "bloat" that often comes with larger frameworks like LangChain.
If this architectural feedback helps you refine the roadmap for Agentify, please consider marking this as the accepted answer so I can keep supporting the community! |
Beta Was this translation helpful? Give feedback.
-
|
Hi Fa8i, Thanks for sharing this — really enjoyed reading through the README and skimming the code. You’ve clearly put thought into the pain points (tight coupling, ad-hoc orchestration, composition friction), and it shows. As someone who’s built a few multi-agent prototypes that quickly turned into spaghetti, I totally feel the motivation here. A few thoughts — mostly high-level, design-oriented — in no particular order: ✅ What feels right
Where I’d probe deeper
How I’ve approached this (for comparison)In past projects, I’ve leaned heavily on:
One anti-pattern I fell into: trying to make agents too autonomous early on (e.g., letting them call other agents directly). Ended up with cyclic dependencies and race conditions. Your explicit orchestrator layer helps avoid that — smart. Over-engineered or under-specified?Honestly? Neither. If anything, I’d simplify just one thing for now: Really excited to see where this goes. If you end up writing a short design rationale (even just a gist) — e.g., “why not use LangChain/Marvin/crewAI?” — I’d love to read it. Happy to test-drive a prototype or give feedback on a specific module if helpful. Cheers, |
Beta Was this translation helpful? Give feedback.
-
|
Great question! Your provider-agnostic framework is a clever approach. Here are my thoughts: Strengths:
Suggestions:
Overall: Your design respects developer ergonomics while maintaining flexibility. This is a solid foundation for a production multi-agent system! |
Beta Was this translation helpful? Give feedback.
This is a fantastic project and a great example of a "developer-first" approach to the multi-agent problem. After looking through the repository, it is clear that you have put significant thought into avoiding the "bloat" that often comes with larger frameworks like LangChain.
Over-engineered vs. Under-specified
The framework currently sits in a "Sweet Spot." It is not over-engineered because you’ve avoided the complex "black-box" wrappers seen in larger frameworks; your use of standard Python protocols makes the logic easy to follow. However, it feels slightly under-specified regarding "State Handoff." While you have pipelines, the protocol for how one agent's structured output becomes…