Replies: 2 comments 4 replies
-
@EwoutH --- This is great! To me the hard challenge from a user model creation method is how do you build the ABM ecosystem so that users can rapidly put together valid models of their phenomenon of concern. The challenge from a repo perspective is always maintenance where there seems to be a trade-off between keeping core mesa simple and lightweight (easier to maintain) vs adding a lot of features (harder to maintain). Typically the idea was to have a larger ecosystem but as we can see with Mesa-examples, Mesa-frames and mesa-geo it becomes very difficult to maintain and keep them compatible. I tried to start MesaBehaviors but couldn't keep up with it. There is also Reusable Building Blocks for ABMs and even started MesaData Accepting that I am bringing up the tangential maintenance challenge and not addressing your proposal directly I think that is the underlying friction. On coming up with better ways to integrate features, my brainstorming thought is when we put something in a separate repo it becomes another problem that is easily ignored, I wonder if there is a way to link repos in a dynamic way so the overheard of CI/CD is kept in the main repo and then we have connected repos/libraries that effectively inherit the main repos management but can be lightweight in the sense they are only the relevant code?? Short version, the is great! To me the goal is thriving ecosystem where valid ABMs can be rapidly assembled. My only concern is the maintenance and I would go so far as to state the RL effort Harsh worked falls within this same umbrella. I will dig around and see if I can devops best practices of linking repos to reduce overhead (if that is even a thing). My view is all we can do is explore - exploit to solve this hard problem and learn by doing. |
Beta Was this translation helpful? Give feedback.
-
Not sure whether these would be useful, but just to add to the list of behavior frameworks based on cognitive science theories:
|
Beta Was this translation helpful? Give feedback.
-
Builds on:
Motivation and Goal
The core goal is to provide Mesa users with a foundational framework for modeling agent behavior that bridges theoretical behavioral models with practical implementation needs. We want to abstract essential concepts - how agents perceive and maintain information about themselves and their environment (states), how they select what to do (decisions), and how they execute those choices (actions) - while leaving room for domain-specific extensions. The framework should make it easy to implement simple behaviors while supporting the complexity needed for sophisticated agents, always maintaining clear connections to established behavioral theories.
Conceptual Idea
Complex agent behavior emerges from the interaction between what agents know (their internal states and environmental perception), how they decide what to do (their decision-making mechanisms), and what they can do (their available actions and their effects). These components form a dynamic system where states influence decisions, decisions trigger actions, and actions modify states. By providing a flexible framework for these core components, we can support various behavioral theories while maintaining consistency and reducing implementation overhead.
Potential Behavioral Frameworks/Theories
Belief-Desire-Intention (BDI)
Rooted in human practical reasoning, BDI models agents as having beliefs about their world, desires they want to achieve, and intentions they commit to pursuing. This creates a natural flow from knowledge to goals to actions, making it particularly suitable for modeling rational agents like humans in social systems or autonomous robots. The framework excels at representing deliberative decision-making but requires careful balance between reactivity and commitment to intentions.
Needs-Based Architecture
Based on psychological theories of human motivation, this framework models behavior as arising from the drive to satisfy various needs. Agents maintain multiple need levels (e.g., hunger, safety, social connection) that change over time and through interactions. Actions are selected based on which needs are most pressing, creating naturally emerging behavior patterns. This approach works well for modeling entities with competing internal drives, from animals to human consumers.
State-Action-Reward-State-Action (SARSA)
A learning-based framework where agents learn optimal behaviors through experience. Agents select actions based on their current state, observe the resulting new state and reward, and update their behavior accordingly. This creates agents that can adapt to their environment and learn effective strategies over time. Particularly useful for modeling systems where optimal behavior isn't known beforehand but can emerge through interaction.
Stimulus-Response Patterns
A straightforward framework based on behavioral psychology, where specific environmental stimuli trigger specific responses. While simple, this can create surprisingly complex emergent behavior when multiple patterns interact. This approach is excellent for modeling reactive behavior in ecological systems or basic social interactions, especially when computational efficiency is important.
Motivation-Drive Theory
Similar to needs-based architecture but focused on internal drives that create motivation for specific behaviors. Drives build up over time and are reduced through appropriate actions. This framework is particularly good at modeling cyclical behaviors and competition between different motivations. Works well for modeling both biological systems (eat-rest cycles) and social behaviors (work-leisure balance).
Potential Mesa Components
The foundation for tracking what agents know and believe about themselves and their environment. Handles both discrete states (like "sleeping"/"awake") and continuous variables (like energy levels), maintaining history and managing transitions. The system provides efficient storage and retrieval of state information while supporting both simple direct state access and complex state relationships.
Responsible for selecting what actions an agent should take based on their current states and goals. Provides different decision-making mechanisms (rule-based, utility maximization, learning) that can be swapped out or combined. The system handles priority management and can incorporate both reactive and deliberative decision making.
Manages the execution of actions, handling timing, resources, and outcomes. Actions can have duration, prerequisites, and both immediate and delayed effects. The framework supports action interruption, parallel actions, and action sequences, while managing resource constraints and conflicts.
Represents desired states or conditions that agents want to achieve. Goals can be binary (achieved/not achieved) or continuous (degree of satisfaction), with dynamic priorities. The system handles multiple competing goals and can represent both long-term objectives and immediate needs.
Facilitates communication between components and tracks significant changes in the agent's states, actions, and environment. Provides mechanisms for components to react to changes without tight coupling. This enables both internal agent processes and inter-agent communication.
Component Usage by Framework
Different components can map to different behavioral frameworks. Each framework can be implemented using some or all of these components, but uses them in different ways. For example, BDI uses the state system to track beliefs about the world, while needs-based architectures use it to track need levels. Some frameworks, like Stimulus-Response, don't use all components (noting the '-' for Goals). This mapping demonstrates how our proposed components are flexible enough to implement various behavioral theories while maintaining a consistent architecture.
Beta Was this translation helpful? Give feedback.
All reactions