# Tools

Use the shipped POJO toolkit catalog, write custom `@Tool` methods, and control how the LLM dispatches them.

## Pages

- [Actions vs Tools](../../agents/fundamentals/actions-vs-tools.md) — when to use `@ActionSpec`, `@Tool`, or `BuiltInTool`.
- [Catalog](catalog.md) — 63 shipped POJO toolkits (209 `@Tool` methods) across 29 categories.
- [Docling](docling.md) — MCP vs CLI `DoclingTools`, shipped in 0.14.0.
- [KnowledgeTools as GraphRAG](../rag/graph-knowledge-tools.md) — Live-triple GRAPH backend (`@since 0.14.0`, Maven Central `0.14.1`).
- [Custom Tools](custom-tools.md) — Write a POJO with `@Tool`-annotated methods, register via `AgentBuilder.toolPojos(...)`. `@Tool.timeoutMs` (PR #164, Maven Central `0.14.1`) is documented there.
- [Examples](examples.md) — Use `@ToolExample` to attach positive and negative call patterns; provider wire-format mapping.
- [Idempotency](idempotency.md) — `@Idempotent` + `IdempotencyStore` for safe retry semantics. Redis / Postgres / in-memory adapters.
- [Registration](registration.md) — `builtInTools(...)` + `toolPojos(...)` + `dynamicTool(...)`, plus `setToolCallFilter` / `setToolCallListener` hooks.
- [Registration (Advanced)](registration-advanced.md) — Filters, listeners, and runtime introspection.
- [Multimodal](multimodal.md) — `IMAGE_GEN_TOOLS`, `TEXT_TO_SPEECH_TOOLS`, `SPEECH_TO_TEXT_TOOLS` aggregator toolkits (DALL-E 3, FLUX, Stability, ElevenLabs, Cartesia, Deepgram, AssemblyAI, Replicate Whisper).
- [Advanced](advanced.md) — Per-action LLM overrides, dispatcher inspection, Composio integration.

For MCP-sourced tools see [MCP / Client](../../mcp/client.md).
