Basic registry

public class ToolRegistry {
  private final Map tools = new ConcurrentHashMap<>();
  public void register(Tool t) { tools.put(t.name(), t); }
  public Optional lookup(String name) { return Optional.ofNullable(tools.get(name)); }
}
Advertisement

Per-agent registration

Each agent has its own registry. Tools from a shared library register into each agent that wants them.

Advertisement

Dynamic tools

Register at runtime based on user permissions. Admin sees the delete-database tool, everyone else doesn't.