The interface

public interface Tool {
  String name();
  String description();
  Schema schema();
  Object call(Map args);
  boolean isIdempotent();
}
Advertisement

name — LLM-facing identifier

Snake_case, verb-first. The model sees this when deciding what to call. Bad names → bad decisions.

Advertisement

description — how the model chooses

One sentence. What the tool does + when to use it. This is prompt-engineering, not documentation.