AgenticSystem Framework (EVOSEAL)¶
Overview¶
The AgenticSystem
is a flexible, extensible framework for managing agent lifecycles, communication, task assignment, and performance monitoring in EVOSEAL. It supports agent groups, integrates with real EVOSEAL modules (like WorkflowEngine
), and is ready for both synchronous and asynchronous agent implementations.
Note: EVOSEAL is designed to integrate with SEAL (Self-Adapting Language Models). See the /SEAL (Self-Adapting Language Models) folder or SEAL (Self-Adapting Language Models) on GitHub for more information. All references to "LLM" or "language models" in this project refer to SEAL (Self-Adapting Language Models).
Features¶
- Lifecycle Management: Create, destroy, and group agents.
- Interaction: Send messages and assign tasks (sync/async) to agents or groups.
- Monitoring: Track agent and group performance, query agent status.
- Extensibility: Any class implementing the
Agent
protocol can be managed. - Logging: Uses the EVOSEAL logging system.
Example: Integrate with WorkflowEngine¶
from evoseal.agentic_system import AgenticSystem
from evoseal.agentic_workflow_agent import WorkflowAgent
from evoseal.core.workflow import WorkflowEngine
engine = WorkflowEngine()
system = AgenticSystem()
workflow_agent = WorkflowAgent(engine)
system.create_agent("wf1", workflow_agent, group="workflows")
step = {"name": "step1", "component": "dgm", "method": "run", "params": {}}
result = system.assign_task("wf1", step)
print("Workflow result:", result)
Agent Groups¶
Async Support¶
Custom Agent Example¶
class MyAgent:
def act(self, observation):
return f"Processed {observation}"
def receive(self, message):
print(f"Got message: {message}")
def get_status(self):
return {"status": "ok"}
system.create_agent("a1", MyAgent())
API Reference¶
create_agent(agent_id, agent, group=None)
destroy_agent(agent_id)
assign_task(agent_id, task)
/assign_task_async(agent_id, task)
send_message(agent_id, message)
/send_message_async(agent_id, message)
create_group(group_name, agent_ids=None)
assign_agent_to_group(agent_id, group_name)
broadcast_message(group, message)
/broadcast_message_async(group, message)
monitor_performance(agent_id=None)
/monitor_group_performance(group)
get_agent_status(agent_id)
/get_group_status(group)
list_agents()
/list_groups()
Notes¶
- Agents can be any class implementing
act
,receive
, andget_status
. - Async support is transparent: if an agent’s method is async, AgenticSystem will await it.
- Logging is integrated for all major operations.
Last update:
2025-07-20
Created: 2025-06-21
Created: 2025-06-21