> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dograh.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Use External Tools, Knowledge

> Make your agent do something during the call, not just talk. Connect it to live data and your company documents.

You've made the agent reachable through real phone calls. Now let's make it useful during the call.

Your agent can hold a conversation. But can it check an order, or answer a policy question correctly? That's what this page is about.

There are two ways to connect real information to your agent. A **tool** is for anything live, data that changes, or an action that needs to happen, like checking an order or looking up availability. A **Knowledge Base** is for anything written down, like your return policy or an FAQ, that doesn't change from call to call.

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/gJCBmsHW8_A" title="How to Add API Tools and a Knowledge Base to Your Voice Agent" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

Here's the setup used in the video: an order support agent named Maya, for a store called QuickMart. A customer can ask what's in their cart, and Maya calls an API to check it. A customer can also ask a policy question, and Maya answers from a document you uploaded.

## Step 1: Create the tool

Open the node where most of the conversation happens, in this case Maya's main support node. Scroll down and click **Create a Tool**, then choose **External HTTP API**. Name it `get_cart_details`.

<Note>
  The description matters more than anything else here. It's what the agent reads to decide when to call the tool. Write it plainly: *"Use this tool when the caller asks about cart details. It returns the cart's products, quantities, total, and discounted total."*
</Note>

For the endpoint, this demo uses [dummyjson.com](https://dummyjson.com), a public sample API. Copy this exact URL and test it yourself, no backend required:

```
GET https://dummyjson.com/carts/1
```

No auth, no parameters. It's a GET request because you're fetching information, not changing anything. In your own setup, this would point at your CRM or order system instead.

Save the tool.

## Step 2: Attach the tool to the node

Creating the tool isn't enough by itself. Go back to Maya's node and select `get_cart_details` under Tools, then save.

<Warning>
  A tool only becomes available once it's attached to the node that needs it. If you skip this, the tool exists but the agent will never call it.
</Warning>

## Step 3: Upload a Knowledge Base document

Click **Upload Document**, or go straight to **Knowledge Base Files**. Pick the document you want the agent to read from, a return policy, a shipping FAQ, whatever your customers actually ask about.

Dograh asks how it should retrieve from this document:

* **Full Document** works best for small files, where the agent can see the whole thing at once. It does not require an embeddings model.
* **Chunked Search** is for large documents, where the agent should only pull the relevant section. Configure an embeddings model before selecting this mode; otherwise document processing or retrieval will fail.

A short policy document is a Full Document case. Upload it, then wait for the status to say **Completed**.

## Step 4: Attach the document to the node

Same rule as the tool. Go back to Maya's node, scroll to **Knowledge Base Documents**, and attach the file.

<Warning>
  Uploading isn't enough on its own. The document has to be attached to the node where the agent should use it.
</Warning>

## Step 5: Tell the agent when to use each

In the node's prompt, spell out which mechanism handles which question. Don't leave it to guesswork:

```
If the caller asks about cart contents, order items, quantities, total, or discounts,
use the get_cart_details tool before answering.

For questions about returns, refunds, or cancellations,
use the attached Knowledge Base document.
```

Save the node.

## Step 6: Test it

Start a Web Call and try both:

* *"Hi Maya, what's inside my cart?"* Watch the transcript. Maya decides the tool is relevant, calls the API, and answers from the response instead of guessing.
* *"What's the return policy?"* Maya retrieves the answer from the document and responds from that context.

That's the difference that matters: for cart details, Maya uses the tool because the data changes call to call. For the return policy, she uses the Knowledge Base because that answer lives in a document and doesn't change. Tools connect your agent to systems. Knowledge Base connects it to documents. Together, your agent starts to feel connected to your actual business, not just reciting a script.

## Next Steps

You've now got the full loop: calls trigger automatically, data flows in and out, your number is connected, and the agent can act on live data and your own documents.

* **Full tool reference**: parameter types, authentication, and best practices in [HTTP API Tools](/voice-agent/tools/http-api).
* **Full Knowledge Base reference**: chunking behavior and embedding setup in [Knowledge Base](/voice-agent/knowledge-base).
