# ToolMessage

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

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

Represents a tool message in a conversation.

## Signature

```javascript
class ToolMessage
```

## Extends

- `BaseMessage<TStructure, "tool">`

## Implements

- `DirectToolOutput`

## Constructors

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

## Properties

- `additional_kwargs`
- `artifact`
- `content`
- `id`
- `lc_direct_tool_output`
- `lc_kwargs`
- `lc_namespace`
- `lc_serializable`
- `metadata`
- `name`
- `response_metadata`
- `status`
- `tool_call_id`
- `type`
- `_printableFields`
- `[toStringTag]`
- `contentBlocks`
- `lc_aliases`
- `lc_attributes`
- `lc_id`
- `lc_secrets`
- `lc_serializable_keys`
- `text`

## Methods

- [`_getType()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/_getType)
- [`_updateId()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/_updateId)
- [`getType()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/getType)
- [`toDict()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/toDict)
- [`toFormattedString()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/toFormattedString)
- [`toJSON()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/toJSON)
- [`toJSONNotImplemented()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/toJSONNotImplemented)
- [`isInstance()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/isInstance)
- [`lc_name()`](https://reference.langchain.com/javascript/langchain-core/messages/ToolMessage/lc_name)

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/ad153c185b6cf813d4b7695740d9a4453d2cb63f/libs/langchain-core/src/messages/tool.ts#L53)