6 ms·
Show HN: Evolving Agents Framework
Hey HN,
I've been working on an open-source framework for creating AI agents that evolve, communicate, and collaborate to solve complex tasks. The Evolving Agents Framework allows agents to:
Reuse, evolve, or create new agents dynamically based on semantic similarity
Communicate and delegate tasks to other specialized agents
Continuously improve by learning from past executions
Define workflows in YAML, making it easy to orchestrate agent interactions
Search for relevant tools and agents using OpenAI embeddings
Support multiple AI frameworks (BeeAI, etc.)
Current Status & Roadmap
This is still a draft and a proof of concept (POC). Right now, I’m focused on validating it in real-world scenarios to refine and improve it.
Next week, I'm adding a new feature to make it useful for distributed multi-agent systems. This will allow agents to work across different environments, improving scalability and coordination.
Why?
Most agent-based AI frameworks today require manual orchestration. This project takes a different approach by allowing agents to decide and adapt based on the task at hand. Instead of always creating new agents, it determines if existing ones can be reused or evolved.
Example Use Case:
Let’s say you need an invoice analysis agent. Instead of manually configuring one, our framework:
Checks if a similar agent exists (e.g., a document analyzer)
Decides whether to reuse, evolve, or create a new agent
Runs the best agent and returns the extracted information
Here's a simple example in Python:
import asyncio
from evolving_agents.smart_library.smart_library import SmartLibrary
from evolving_agents.core.llm_service import LLMService
from evolving_agents.core.system_agent import SystemAgent
async def main():
library = SmartLibrary("agent_library.json")
llm = LLMService(provider="openai", model="gpt-4o")
system = SystemAgent(library, llm)
result = await system.decide_and_act(
request="I need an agent that can analyze invoices and extract the total amount",
domain="document_processing",
record_type="AGENT"
)
print(f"Decision: {result['action']}") # 'reuse', 'evolve', or 'create'
print(f"Agent: {result['record']['name']}")
if __name__ == "__main__":
asyncio.run(main())
Next Steps
Validating in real-world use cases and improving agent evolution strategies
Adding distributed multi-agent support for better scalability
Full integration with BeeAI Agent Communication Protocol (ACP)
Better visualization tools for debugging
Would love feedback from the HN community! What features would you like to see?
Repo: https://github.com/matiasmolinas/evolving-agents https://github.com/matiasmolinas/evolving-agents
- deleted 2y ago[deleted]
- matiasmolinas 2y agoHere is the March 2025 BeeAI Community Call ( https://www.youtube.com/watch?v=5-xqQBv-ccY https://www.youtube.com/watch?v=5-xqQBv-ccY ), where I presented the draft of the framework and shared some ideas on why it makes sense for me to provide this kind of framework and tools to AI agents.
- thierrydamiba 2y agoCool project! Thanks for sharing. Intrigued by the storage-why not use a VDB?
- matiasmolinas 2y agoIntegrating a vector DB is on the roadmap for advanced embedding lookups and improved semantic search; current storage is just a placeholder.
- EGreg 2y agoI love the approach Would you like to join forces? Reach out to me: https://engageusers.ai/ecosystem.pdf https://engageusers.ai/ecosystem.pdf
- esafak 2y agoIt's not continuously evolving outside the developer's control, right? Companies need to checkpoint dependencies for resilience. Can you define tests to ensure compliance of new versions?
- hleszek 2y agoAs long as we don't ask it to make paperclips it should be fine.
- kindeyoowee 2y ago