
Initial Release
Note: This project is a practical example that accompanies an article about AI agents.
dc-mais is a micro framework for building Stateful Multi-Agent Systems within InterSystems IRIS.
It leverages the power of Business Process Language (BPL) to visually orchestrate AI agents, managing conversation state, short-term memory, and complex handoff protocols between specialized agents (personas) natively.
This project is designed to bridge the gap between ephemeral Python-based AI scripts and enterprise-grade process orchestration.
dc-mais provides:
Agent adapter to define personas (Role, Goal, Tasks) and strictly control routing (Guided Handoff).Building reliable AI agents often involves complex boilerplate code for state management, tool execution, and debugging. Pure Python frameworks can feel like “black boxes” when deployed in production.
dc-mais changes this paradigm by facilitating agent development through Visual Orchestration:
The framework operates on a Double Loop Architecture:
dc.mais.adapter.Agent)Agents are not just prompts; they are configured components. You define:
The framework automatically injects a native tool called handoff_to_agent, allowing the LLM to request a transfer when it finishes its task.
dc.mais.engine.Orchestrator)This is the brain of the operation. It abstracts the complexity of the AI loop:
To keep the engine generic, you implement two simple BPLs in your namespace:
zpm:USER>install dc-mais
The backend is containerized for easy setup. Follow these steps to get it running.
git clone https://github.com/henryhamon/dc-mais.git cd dc-mais
docker-compose build --no-cache --progress=plain
-d).docker-compose up -d
docker-compose down --rmi all
Configure your agents in the interoperability production. Here is an example of a MenuExpert:
Expert on French cuisine and wine pairings. Help customers choose the perfect dish. - Explain menu items enthusiastically. - Suggest pairings. - CRITICAL: If the user wants to order, handoff to OrderTaker immediately. order_taker
Create a simple BPL (AgentRouter) to map the strings used by the Engine to your Agent Operations:
Once running, you can inspect the entire thought process of your multi-agent system.
(Note: Visual Trace shows the Engine calling the Router, the Agent thinking, calling the ToolRunner, and receiving the result.)
dc-mais is developed with ❤️ by
Henry Pereira