LangChain.js - AI agent tools
The @tiptap-pro/ai-toolkit-langchain package provides tool definitions you can add to your AI agent built with LangChain.js.
The tool calls generated by the model can then be executed on the client using the executeTool method.
Example usage
Install the package.
npm install @tiptap-pro/ai-toolkit-langchainSupply the tool definitions to your LangChain.js model.
import { ChatOpenAI } from '@langchain/openai'
import { toolDefinitions } from '@tiptap-pro/ai-toolkit-langchain'
const llm = new ChatOpenAI({ model: 'gpt-5.4-mini' })
const llmWithTools = llm.bindTools(toolDefinitions())Combine the tool definitions with your custom tools.
import { ChatOpenAI } from '@langchain/openai'
import { toolDefinitions } from '@tiptap-pro/ai-toolkit-langchain'
import { DynamicStructuredTool } from '@langchain/core/tools'
import { z } from 'zod'
const llm = new ChatOpenAI({ model: 'gpt-5.4-mini' })
const customTools = [
new DynamicStructuredTool({
name: 'weather',
description: 'Get the weather in a location',
schema: z.object({
location: z.string(),
}),
func: async ({ location }) => {
return `The weather in ${location} is sunny with 72°F`
},
}),
]
const llmWithTools = llm.bindTools([...toolDefinitions(), ...customTools])API reference
toolDefinitions
Creates tool definitions for the Tiptap AI Toolkit compatible with LangChain.js.
Parameters (ToolDefinitionsOptions)
tools?:EnabledTools- Enable/disable specific tools by setting the value totrue(enabled) orfalse(disabled).tiptapRead?:boolean- Enable/disable thetiptapReadtool (default:true)tiptapEdit?:boolean- Enable/disable thetiptapEdittool (default:true)tiptapReadSelection?:boolean- Enable/disable thetiptapReadSelectiontool (default:true)getThreads?:boolean- Enable/disable thegetThreadstool (default:false)editThreads?:boolean- Enable/disable theeditThreadstool (default:false)
Returns
An array containing the enabled tool definitions that can be used with LangChain.js's tool calling system. To see the full list of tools, see the Available tools page.