Skip to content

fix: migrate codebase to Mesa 4.x API (resolves mesa.space removal)#153

Open
abhinavk0220 wants to merge 6 commits intomesa:mainfrom
abhinavk0220:fix/mesa4-compatibility
Open

fix: migrate codebase to Mesa 4.x API (resolves mesa.space removal)#153
abhinavk0220 wants to merge 6 commits intomesa:mainfrom
abhinavk0220:fix/mesa4-compatibility

Conversation

@abhinavk0220
Copy link

Closes #152

Summary

Mesa 4.x removed mesa.space entirely. This PR migrates the full codebase to the new Mesa 4.x APIs so that mesa-llm works with the current version of Mesa.

Changes

  • Replace MultiGrid/SingleGrid with OrthogonalMooreGrid from mesa.discrete_space
  • Replace old ContinuousSpace(x_max, y_max) with new dimensions-based API
  • Fix agent placement to use cell-based API (agent.cell = grid._cells[pos])
  • Fix neighbor lookup using get_neighborhood() + coordinate set matching
  • Fix model.stepsmodel.step (renamed in Mesa 4.x)
  • Fix Model.__init__(seed=...) kwarg incompatibility with mesa_signals

Testing

All 203 tests passing after migration:

Notes

Tested against Mesa 4.x dev installed from source.

…rely, breaking the full test suite.This commit migrates all affected files to the new APIs.Changes:- Replace MultiGrid/SingleGrid imports with OrthogonalMooreGrid from mesa.discrete_space- Replace old ContinuousSpace(x_max, y_max) with new dimensions-based API- Fix agent placement to use cell-based API (agent.cell = grid._cells[pos])- Fix neighbor lookup using get_neighborhood + coordinate set matching- Fix model.steps -> model.step (renamed in Mesa 4.x)- Remove seed= kwarg from Model.__init__ calls (mesa_signals compat fix)- Fix record_model.py self.steps -> self.stepAll 203 tests now passing.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b6b7dfd5-3ba6-4a44-9b32-a62e12bd4dc6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

abhinavKumar0206 and others added 5 commits March 6, 2026 08:40
…ools.py to use Mesa 4.x cell-based API- Replace place_agent() with agent.cell = grid._cells[pos]- Fix ContinuousSpace boundary/torus tests for new API behavior- Remove SingleGrid|MultiGrid references from inbuilt_tools.py- All 262 tests passing
abhinavk0220 pushed a commit to abhinavk0220/mesa-examples that referenced this pull request Mar 6, 2026
…Schelling's (1971) classic segregation model using LLM agentsinstead of a fixed tolerance threshold.Each agent reasons in natural language about its neighborhood compositionand decides whether to stay ('happy') or relocate ('unhappy'). Thisproduces richer segregation dynamics than the classical threshold rule.Includes:- SchellingAgent extending LLMAgent with CoT reasoning- LLMSchellingModel on OrthogonalMooreGrid with torus=True- Segregation index metric tracked over time- SolaraViz with grid plot, happiness chart, and segregation index- README with comparison table vs classical Schelling modelReference: Schelling, T.C. (1971). Dynamic models of segregation.Journal of Mathematical Sociology, 1(2), 143-186.Related: mesa/mesa-llm#153
@Jay-Lokhande
Copy link

Hey this looks cool,
actually i have cloned your branch but not getting how did you tested against Mesa 4.x would please help me out for this?

@colinfrisch
Copy link
Member

I'm not fully up to date with the latest mesa 4.x changes... @wang-boyu what do you think about this ?

@abhinavk0220
Copy link
Author

Hey Jay! To test against Mesa 4.x, install Mesa directly from
source:

git clone https://github.com/mesa/mesa.git
cd mesa
pip install -e .

Then install mesa-llm dependencies:

cd ../mesa-llm
pip install -e .

Then run the test suite:

python -m pytest tests/ -q

The key Mesa 4.x changes that affect mesa-llm are:

  • mesa.space is removed → use mesa.discrete_space and
    mesa.experimental.continuous_space
  • Model(seed=42) constructor changed
  • model._time replaces model.steps as step counter

Happy to help if you run into issues! 🙂

@abhinavk0220
Copy link
Author

abhinavk0220 commented Mar 10, 2026

Hi Colin! Happy to provide more context for wang-boyu's review.

The key Mesa 4.x breaking changes this PR addresses:

  1. mesa.space removed entirely → migrated to mesa.discrete_space
    (OrthogonalMooreGrid) and mesa.experimental.continuous_space

  2. ContinuousSpace API changed → old positional args replaced
    with dimensions=[[0,x],[0,y]] keyword API

  3. model.steps → model._time as the internal step counter

  4. Model(seed=42) constructor incompatibility with mesa_signals

All 203 tests passing after migration. Happy to answer any
specific questions wang-boyu has!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: codebase incompatible with Mesa 4.x (mesa.space removed)

4 participants