探索 Tiptap V3 的最新功能

AI Agent 扩展配置选项

Tiptap 的 AI Agent 扩展接受多种配置选项。这些设置在创建新实例时传递给 AiAgentProvider

认证

要使用 AI Agent 扩展,您需要提供 Tiptap Cloud 的认证凭证。

const provider = new AiAgentProvider({
  // 您的 Tiptap 内容 AI 应用 ID
  appId: 'APP_ID_HERE',
  // 您生成的 JWT 令牌
  token: 'YOUR_TOKEN',
})

模型选择

通过设置 modelName 选项,配置在 Tiptap Cloud 中使用的 OpenAI 模型。AI Agent 在使用 gpt-4.1 模型时表现最佳,因为它在复杂文档编辑任务中提供最佳性能。请注意,模型需要支持函数调用

const provider = new AiAgentProvider({
  modelName: 'gpt-4.1',
  // ... 其他选项
})

系统提示 (System prompt)

您可以为 AI Agent 定义一个自定义系统提示,当与 Tiptap Cloud 一起使用时生效。

const provider = new AiAgentProvider({
  systemPrompt: 'You are an AI agent that edits rich text documents...',
  // ... 其他选项
})

自动接受设置

autoAccept 选项控制 AI Agent 是否自动接受工具调用并继续运行,或停止并等待用户审核。

  • "always":自动接受所有工具调用
  • "never":从不自动接受工具调用
  • "onlyRead":自动接受不修改内容的工具调用(默认)
const provider = new AiAgentProvider({
  autoAccept: 'onlyRead',
  // ... 其他选项
})

初始聊天消息

您可以提供初始聊天消息,以在 AI Agent 首次加载时填充对话。

const provider = new AiAgentProvider({
  initialChatMessages: [
    {
      type: 'ai',
      text: '您好!我是您的 AI 助手。今天我能帮您做些什么?',
    },
  ],
  // ... 其他选项
})

自动检查点保存

autoSaveCheckpoints 选项允许在用户发送消息时自动保存检查点。

const provider = new AiAgentProvider({
  autoSaveCheckpoints: true,
  // ... 其他选项
})

当启用 autoSaveCheckpoints 选项时,检查点会在用户发送消息和调用工具前保存。如果您想自定义检查点的保存方式和时间,可以禁用此选项并手动使用 setCheckpoint() 方法。更多关于检查点的内容,请参阅检查点指南

文档分块

chunkSize 选项控制读取时文档块的最大大小(以字符计)。chunkHtml 选项允许您自定义文档如何被分块。

const provider = new AiAgentProvider({
  chunkSize: 2000,
  chunkHtml: ({ html, chunkSize }) => {
    // 自定义逻辑将 HTML 分割成块
    // 必须返回 HTML 字符串数组
    return customSplitFunction(html, chunkSize)
  },
  // ... 其他选项
})

AI 变更扩展集成

useAiChangesExtension 选项决定是否使用 AI Changes 扩展来跟踪变更。

const provider = new AiAgentProvider({
  useAiChangesExtension: false,
  // ... 其他选项
})

请确保在实例化 Editor 实例时导入并配置 AI Changes 扩展,否则集成将无法正常工作。

事件处理程序

AI Agent 提供者支持多个事件处理程序,帮助您响应不同状态和操作:

状态变化处理器

onStateChange 处理器在 AI Agent 状态发生变化时调用。

const provider = new AiAgentProvider({
  onStateChange: (newState, previousState, context) => {
    console.log('状态变化:', newState)
    updateUI(newState)
  },
  // ... 其他选项
})

加载错误处理器

onLoadingError 处理器在加载 AI Agent 出错时调用。

const provider = new AiAgentProvider({
  onLoadingError: (error, context) => {
    console.error('加载错误:', error)
    showErrorNotification(error.message)
  },
  // ... 其他选项
})

工具调用处理器

onBeforeToolCallonAfterToolCall 处理器分别在执行工具调用之前和之后调用。

const provider = new AiAgentProvider({
  onBeforeToolCall: (toolCall, context) => {
    console.log('工具调用前:', toolCall)
    showLoadingIndicator()
  },
  onAfterToolCall: (toolCall, context) => {
    console.log('工具调用后:', toolCall)
    hideLoadingIndicator()
  },
  // ... 其他选项
})

停止运行处理程序

当 AI 代理停止运行并且其 生命周期 完成时,将调用 onStopRunning 处理程序。

const provider = new AiAgentProvider({
  onStopRunning: (context) => {
    console.log('AI Agent 运行已结束')
    playCompletionSound()
  },
  // ... 其他选项
})

自定义 API 端点

您可以通过设置 baseUrl 选项指定 AI Agent 的自定义 API 端点。如果您正在运行自己的 Tiptap 内容 AI 服务实例,这将非常有用。

const provider = new AiAgentProvider({
  baseUrl: 'https://your-custom-api-endpoint.com',
  // ... 其他选项
})

自定义 AI Agent 集成选项

这些配置选项让您可以将 AI Agent 扩展集成到您自己的 AI Agent 中,而非 Tiptap Cloud 管理的 AI Agent。想了解更多,请阅读自定义 AI Agent 集成指南

自定义解析器

resolver 选项允许您将 AI Agent 与自己的后端服务集成。该函数负责将聊天消息发送至 LLM 并返回响应。

const provider = new AiAgentProvider({
  resolver: async (options) => {
    // 您的自定义逻辑,将聊天消息发送给 LLM
    // 并返回响应
    const response = await yourCustomBackend.sendChatMessages(options)
    return response
  },
  // ... 其他选项
})

默认情况下,AI 代理使用 defaultAiAgentResolver,该解析器将聊天消息发送到 Tiptap Cloud。

自定义工具

toolHandlers 选项允许您定义 AI 代理可以调用的自定义客户端工具。此选项仅在您使用自己的后端与 AI 代理时有效。要了解如何设置自定义工具,请阅读自定义 AI 代理集成指南

import { toolHandlersStarterKit } from '@tiptap-pro/extension-ai-agent'

const provider = new AiAgentProvider({
  toolHandlers: [
    toolHandlersStarterKit(),
    // ... 自定义工具处理器
  ],
  // ... 其他选项
})

自定义节点 (Custom nodes)

配置 AI Agent 扩展,使其能够生成和理解自定义节点

const provider = new AiAgentProvider({
  schemaAwarenessCustomElements: [
    /* 自定义节点配置 */
  ],
})

关键配置选项

选项类型默认值描述
appIdstring""您的 Tiptap 内容 AI 应用 ID
tokenstring""用于认证的 JWT 令牌
baseUrlstring""AI 服务 API 的基础 URL
modelNameAiAgentModelName"gpt-4.1"要使用的 OpenAI 模型(推荐 gpt-4.1 和 gpt-4o)
autoAccept"always" | "never" | "onlyRead""onlyRead"控制是否自动接受 AI 变更
autoSaveCheckpointsbooleanfalse当用户发送消息时是否自动保存检查点
chunkSizenumber1000读取文档时的块大小(以字符计)
chunkHtmlFunctiondefaultChunkHtmlFunction自定义如何将文档拆分成块
useAiChangesExtensionbooleantrue是否使用 AI Changes 扩展
initialChatMessagesChatMessage[][]用于填充对话的初始聊天消息
resolverFunctiondefaultAiAgentResolver用于通过自定义后端解析 AI Agent 请求的函数
toolHandlersAiAgentToolCallHandler[]toolHandlersStarterKit()自定义工具的处理器
onStateChangeFunctionundefined当 AI Agent 状态变化时调用的函数
onLoadingErrorFunctionundefined加载 AI Agent 出错时调用的函数
onBeforeToolCallFunctionundefined在执行工具调用之前调用的函数
onAfterToolCallFunctionundefined在执行工具调用之后调用的函数
onStopRunningFunctionundefined当 AI Agent 停止运行时调用的函数
systemPromptstringundefined使用 Tiptap Cloud 时为 AI Agent 定义的自定义系统提示
schemaAwarenessCustomElementsSchemaAwarenessItem[][]关于文档中可能包含的自定义节点的 AI 模型信息