Skip to content

Global Built-in Tool Injection Prevents Strict ToolManager Isolation In Advanced Simulations #90

@psbuilds

Description

@psbuilds

Hey @jackiekazil @colinfrisch @sanika-n ,Hope you are all doing well :)

I’ve been investigating the tool registration behavior in Mesa-LLM and wanted to raise a design/architecture question

Summary of the Issue

The current tool registration system has a global side-effect:
built-in tools like move_one_step, teleport_to_location, and speak_to appear to be globally available and appear to be injected directly every time any agent is initialised with tools.

I’m trying to understand whether this is:

  • An intentional architectural design choice.
  • Or something that might be open to configurations in the future.

Context

In some models (e.g., spatial social simulations), having movement and communication tools globally available makes sense and is convenient like the example ones in the mesa-llm repo.

But in some models exclusively present inside the examples in the main mesa repo, like the dining philosophers example, tools like move_one_step, teleport_to_location getting injected automatically wouldn't make sense right, it may even lead to hallucinations.

Architectural Concern

I think this is a legitimate gray area,
As simulations become more specialized, this behavior introduces significant friction:

  • Capability leakage (e.g. static entities gaining movement)
  • Tool noise for LLMs
  • Hard-to-debug conflicts when custom tools shadow built-ins
  • Inability to reason about agent permissions locally

I may be misunderstanding the intended design here, so I wanted to check before drawing conclusions
If there is a simple workaround to this please do let me know I probably would have missed it.

Are there plans to make built-in tool injection configurable for more advanced simulations? If so I do have something in mind to tackle this. :)

Would love to understand the intended long-term direction
Thanks :)

Note: If everything mentioned above is indeed true I'll be working on a PR for this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions