# DynamicTool

> **Class** in `@langchain/core`

📖 [View in docs](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool)

A tool that can be created dynamically from a function, name, and description.

## Signature

```javascript
class DynamicTool
```

## Extends

- `Tool<ToolOutputT, ToolEventT>`

## Constructors

- [`constructor()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/constructor)

## Properties

- `callbacks`
- `defaultConfig`
- `description`
- `extras`
- `func`
- `lc_kwargs`
- `lc_runnable`
- `lc_serializable`
- `metadata`
- `name`
- `responseFormat`
- `returnDirect`
- `schema`
- `tags`
- `verbose`
- `verboseParsingErrors`
- `lc_aliases`
- `lc_attributes`
- `lc_id`
- `lc_namespace`
- `lc_secrets`
- `lc_serializable_keys`

## Methods

- [`_addVersion()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_addVersion)
- [`_batchWithConfig()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_batchWithConfig)
- [`_callWithConfig()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_callWithConfig)
- [`_getOptionsList()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_getOptionsList)
- [`_separateRunnableConfigFromCallOptions()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_separateRunnableConfigFromCallOptions)
- [`_streamIterator()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_streamIterator)
- [`_streamLog()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_streamLog)
- [`_transformStreamWithConfig()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/_transformStreamWithConfig)
- [`assign()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/assign)
- [`asTool()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/asTool)
- [`batch()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/batch)
- [`call()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/call)
- [`getGraph()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/getGraph)
- [`getName()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/getName)
- [`invoke()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/invoke)
- [`pick()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/pick)
- [`pipe()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/pipe)
- [`stream()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/stream)
- [`streamEvents()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/streamEvents)
- [`streamLog()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/streamLog)
- [`toJSON()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/toJSON)
- [`toJSONNotImplemented()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/toJSONNotImplemented)
- [`transform()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/transform)
- [`withConfig()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/withConfig)
- [`withFallbacks()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/withFallbacks)
- [`withListeners()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/withListeners)
- [`withRetry()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/withRetry)
- [`isRunnable()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/isRunnable)
- [`lc_name()`](https://reference.langchain.com/javascript/langchain-core/tools/DynamicTool/lc_name)

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/e493ed653d734e31a8d051f78ab29b067f530e4b/libs/langchain-core/src/tools/index.ts#L412)