---
title: data | CodeWeaver Docs
description: API reference for codeweaver.providers.config.sdk.data
url: "https://docs.knitli.com/api/providers/config/sdk/data"
type: static
generatedAt: "2026-04-17T17:21:08.886Z"
---

# data
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/providers/config/sdk/data.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F&text=data)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F&text=data)[Share on Bluesky](https://bsky.app/intent/compose?text=data%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F&title=data)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F&t=data)[Share on Email](mailto:?subject=data&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F)[Share on WhatsApp](https://wa.me/?text=data%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fconfig%2Fsdk%2Fdata%2F&text=data)
# `codeweaver.providers.config.sdk.data`
[Section titled “codeweaver.providers.config.sdk.data”](#codeweaverprovidersconfigsdkdata)
Data provider configuration.

This module provides types for configuring data providers, which in fact are internal MCP tools. These tools are used by CodeWeaver’s internal context agents to fetch, verify, and tailor information for the user’s agent or the user.

## Class: `BaseToolConfig`
[Section titled “Class: BaseToolConfig”](#class-basetoolconfig)
Base configuration for data providers.

### Method: `to_call`
[Section titled “Method: to_call”](#method-to_call)

**

```
to_call()
```

Convert the data config to a tool call.

For example, most tools expect to receive either an api_key or a client instance. The data config should be able to convert itself into the appropriate tool call format, which may involve instantiating a client with the stored API key or other configuration parameters. The context parameter can be used to access any relevant contextual information that may be needed to construct the tool call, such as user information, session data, other relevant state, or flags to specify which tool is called for multi-tool providers.

## Class: `DuckDuckGoSearchToolConfig`
[Section titled “Class: DuckDuckGoSearchToolConfig”](#class-duckduckgosearchtoolconfig)
Configuration for the DuckDuckGoSearchTool.

### Method: `to_call`
[Section titled “Method: to_call”](#method-to_call-1)

**

```
to_call()
```

Convert the DuckDuckGo data config to a DuckDuckGoSearchTool call.

## Class: `ExaAnswerToolOptions`
[Section titled “Class: ExaAnswerToolOptions”](#class-exaanswertooloptions)
Configuration options for Exa’s answer tool.

## Class: `ExaContentsOptions`
[Section titled “Class: ExaContentsOptions”](#class-exacontentsoptions)
Options for content retrieval in Exa tools.

## Class: `ExaFindSimilarToolOptions`
[Section titled “Class: ExaFindSimilarToolOptions”](#class-exafindsimilartooloptions)
Configuration options for Exa’s find similar tool.

## Class: `ExaGetContentsToolOptions`
[Section titled “Class: ExaGetContentsToolOptions”](#class-exagetcontentstooloptions)
Configuration options for Exa’s get contents tool.

## Class: `ExaSearchToolOptions`
[Section titled “Class: ExaSearchToolOptions”](#class-exasearchtooloptions)
Configuration options for Exa’s search tool.

These parameters are passed as instance attributes to the ExaSearchTool. Any settings here will override settings passed to the function call. We do this to allow you to override and prevent certain agent behaviors, such as the number of results returned (because agents are calling the function).

## Class: `ExaToolConfig`
[Section titled “Class: ExaToolConfig”](#class-exatoolconfig)
Configuration for Exa data provider. Exa is an ai-tailored search service that provides curated web search and deep research capabilities.

The Exa provider is actually 4 tools:

 - `ExaSearchTool`: Performs web and database (i.e. academic) searches using Exa’s search capabilities, returning results and content in a structured format.
 - `ExaFindSimilarTool`: Find pages similar to the given **URL** and returns them with content.
 - `ExaGetContentsTool`: Returns scraped content for a given list of **URLs**.
 - `ExaAnswerTool`: Returns direct answers to specific plain language questions using Exa’s search and research capabilities. All answers include citations and links to sources.

*Not implemented, but this is where we’re going:*

 - CodeWeaver’s internal context agents use the `GetContentsTool` to retrieve API research and documentation content for inclusion in CodeWeaver’s internal knowledge base. This is part of CodeWeaver’s latent retrieval and data curation capabilities and happens in between user interactions.
 - They use the `AnswerTool` to augment answers as needed when responding to user or user agent queries with up-to-date information from the web or databases.
 - For now, we don’t plan to default to enabling the `SearchTool` and `FindSimilarTool` for internal context agents. The search tool may be worth exposing — it has multiple modes wit the two most likely useful being `neural` and `deep`. The former is a semantic search mode against a large index of web content, and the latter is a deep multi-agent research tool that can perform complex searches and synthesize information from multiple sources.

We’re very conservative about what tools we expose to the internal context agents; we want to make sure they stay focused on their core competency of tailoring and curating information for the user and the user’s agent, and we don’t want to overwhelm them with too many tools or capabilities that could lead them astray. The `GetContentsTool` and `AnswerTool` are the most directly relevant to their core competency, so those are the ones we’re prioritizing for now.

### Method: `to_call`
[Section titled “Method: to_call”](#method-to_call-2)

**

```
to_call()
```

Convert the Exa data config to a call to register the exa tools.

## Class: `TavilySearchContextToolConfig`
[Section titled “Class: TavilySearchContextToolConfig”](#class-tavilysearchcontexttoolconfig)
Configuration for the TavilySearchContextTool.

### Method: `to_call`
[Section titled “Method: to_call”](#method-to_call-3)

**

```
to_call()
```

Convert the Tavily data config to a TavilySearchContextTool call.