JaCaMo: Integrating BDI Agents, Shared Artifacts, and Organizational Structures for Multi-Agent Social Simulation
Multi-agent systems (MAS) research has long grappled with a fundamental tension: individual agent cognition, shared environmental resources, and collective organizational norms each demand different modeling abstractions. JaCaMo resolves this by composing three mature, independently validated frameworks into a single coherent platform — Jason for BDI agent programming, CArtAgO for artifact-based environments, and Moise for normative organizational structures. The result is a simulation workbench uniquely suited to modeling complex social systems where autonomous agents operate within structured institutions and shared workspaces.

The Three-Layer Architecture
JaCaMo's power derives from the clean separation of concerns across its three constituent layers:
Jason (Agent Layer): Each agent is programmed in AgentSpeak(L), a logic-based language grounded in the Belief-Desire-Intention (BDI) model. Agents maintain belief bases updated by perception, pursue goals through plan libraries, and react to events via a practical reasoning cycle. Jason extends the original AgentSpeak with internal actions, custom annotations, and inter-agent communication via KQML-inspired speech acts. This makes it straightforward to encode heterogeneous agent types — e.g., a farmer agent with crop-management plans and a regulator agent with enforcement plans — within the same simulation.
CArtAgO (Environment Layer): Rather than treating the environment as a passive backdrop, CArtAgO models it as a collection of artifacts — programmable, observable, and operable entities that agents share. An artifact exposes observable properties (perceived by agents as beliefs) and operations (actions agents can invoke). A shared MarketArtifact, for instance, can maintain a price list as an observable property and expose bid() and ask() operations. This artifact-centric design naturally captures resource contention, coordination through shared state, and emergent market dynamics without hard-coding agent-to-agent protocols.
Moise (Organization Layer): Social systems are rarely anarchic. Moise provides a formal organizational model with three dimensions: structural (roles, groups, links), functional (goals, missions, schemes), and normative (permissions and obligations linking roles to missions). Agents adopt roles within groups, commit to missions, and are normatively constrained by the organization. A TradeUnion group might define worker and representative roles, a CollectiveBargaining scheme with missions for each, and norms obligating representatives to report outcomes. Moise's OML (Organization Modeling Language) specifications are loaded at runtime and enforced by a dedicated OrgBoard artifact.
Setting Up a JaCaMo Project
JaCaMo projects are defined in a .jcm configuration file:
mas social_market {
agent farmer #5 : farmer.asl {
focus: market_board
join: cooperative
roles: producer in cooperative
}
agent regulator : regulator.asl {
join: cooperative
roles: overseer in cooperative
}
workspace market_ws {
artifact market_board : MarketArtifact("EUR", 100)
}
organisation cooperative : cooperative.xml
}
This declarative syntax instantiates five farmer agents and one regulator, places them in a shared workspace containing a MarketArtifact, and binds them to the cooperative organization defined in an OML file. The Gradle-based build system (./gradlew run) handles compilation and launch.
Modeling Opinion Dynamics with Normative Constraints
A compelling use case is opinion dynamics under institutional pressure. Consider a deliberative assembly where agents hold continuous opinion values and update them through bounded-confidence interactions (à la Deffuant-Weisbuch), but are additionally subject to organizational norms that constrain which agents may communicate.
In Jason, an agent's opinion update plan might read:
+!update_opinion(Other, OtherOp) : opinion(MyOp) & abs(MyOp - OtherOp) < 0.3 <-
NewOp = MyOp + 0.5 * (OtherOp - MyOp);
-+opinion(NewOp);
.print("Updated opinion to ", NewOp).
The Moise organization restricts communication: only agents in the delegate role within the deliberation group may invoke the broadcast() operation on the AssemblyArtifact. Agents in the observer role can perceive outcomes but cannot speak. This normative layer — absent from pure NetLogo or Mesa implementations — allows researchers to study how institutional access rules shape consensus formation, a question central to political sociology and organizational theory.
Scalability and Tooling
JaCaMo runs on the JVM, enabling deployment on multi-core servers. For large-scale experiments (thousands of agents), the platform integrates with JaCaMo-REST, exposing agent and artifact state via HTTP endpoints for external monitoring dashboards. The MAS2J inspector provides a graphical view of agent belief bases, intention stacks, and organization state at runtime — invaluable for debugging emergent behaviors.
Experiment automation is handled through parameterized .jcm files combined with shell or Python scripts that sweep parameters and collect outputs from artifact observable properties logged to CSV. For reproducibility, JaCaMo projects are fully Gradle-managed and can be containerized with Docker.

Comparison with Alternatives
| Feature | JaCaMo | Mesa (Python) | NetLogo | JADE |
|---|---|---|---|---|
| BDI agent model | ✓ (Jason/AgentSpeak) | ✗ | ✗ | Partial (via add-ons) |
| Artifact environment | ✓ (CArtAgO) | ✗ | ✗ | ✗ |
| Normative organizations | ✓ (Moise) | ✗ | ✗ | ✗ |
| FIPA-compliant messaging | ✓ | ✗ | ✗ | ✓ |
| Visual IDE | ✓ (Eclipse plugin) | ✗ | ✓ | ✗ |
| Scalability | Medium (JVM) | Medium | Low | Medium |
JaCaMo's distinguishing strength is the integration of all three dimensions. Researchers modeling institutional economics, governance systems, or organizational behavior gain a platform where the agent's cognitive architecture, the shared resource environment, and the normative social structure are first-class modeling primitives — not afterthoughts bolted onto a scheduler loop.

Practical Considerations
- Learning curve: AgentSpeak(L) requires familiarity with logic programming. Researchers comfortable with Prolog adapt quickly; those from Python backgrounds should budget time for the paradigm shift.
- Debugging: The Eclipse-based JaCaMo IDE provides breakpoints on plan execution and belief updates, significantly easing diagnosis of unexpected emergent behaviors.
- Community and documentation: The JaCaMo website hosts tutorials, the OML specification, and example projects. The annual EMAS (Engineering Multi-Agent Systems) workshop regularly publishes JaCaMo-based case studies.
- Interoperability: Artifacts can wrap external Java libraries or REST APIs, enabling integration with GIS data, economic databases, or real-time data feeds for hybrid simulation-empirical studies.
Conclusion
JaCaMo occupies a distinctive niche in the social simulation landscape: it is the platform of choice when the research question demands that agents be cognitively rich, the environment be explicitly shared and programmable, and the social structure be formally specified and enforced. For studies of institutional design, collective action, deliberative democracy, or organizational resilience, JaCaMo's three-layer architecture provides modeling fidelity that single-paradigm tools cannot match. Its JVM foundation, Gradle toolchain, and REST integration make it production-ready for serious research workflows.
Further reading:
- Boissier, O., Bordini, R. H., Hübner, J. F., Ricci, A., & Santi, A. (2013). Multi-agent oriented programming with JaCaMo. Science of Computer Programming, 78(6), 747–761.
- JaCaMo official site and tutorials
- Jason AgentSpeak documentation
- CArtAgO framework
- Moise organizational model