Skip to main content
Agentic tools are available in the interactive CLI chat session: run ragrails chat with no query argument. This is separate from the stateless rag.chat() SDK method, which does not execute tools. The SDK exposes the lower-level tool-calling API, but your application owns tool execution and approval.
api_call can make real HTTP requests. The interactive CLI validates tool calls first and asks for confirmation before side-effecting API calls.

Start the interactive chat

CLI
Inside the REPL:

Why this is CLI-only today

rag.chat() is a stateless RAG turn: it retrieves context, calls the LLM, and returns a ChatResult. It does not own a user session, approval UI, authorization policy, request allowlist, or audit log. The interactive CLI can safely provide built-in tools because it has a human in the loop. Before a side-effecting api_call runs, the CLI validates the arguments and asks the user to confirm the exact request. For SDK apps, those decisions are application-specific. Use Tool Calling to build a tool loop where your app controls validation, permissions, confirmation, execution, and logging.

Built-in tools

The /tools command lists registered tools, required fields, and confirmation policy.

Tool safety model

  1. The model proposes a provider-neutral tool call.
  2. Ragrails validates required arguments and schema-specific rules.
  3. Tools requiring confirmation pause for user approval.
  4. Declined or invalid calls are not executed; the model receives a tool result explaining why.
  5. The loop stops when the model returns final text or reaches the maximum tool iterations.
api_call validation requires:

When agentic tools help

Boundaries

Reference: CLI chat and Tool Calling.