探索 Tiptap V3 的最新功能

快速开始使用 OpenAI Responses API

OpenAI Responses API 允许你使用 OpenAI 的模型构建 AI Agent。

代码演示可用

本指南包含一个代码演示,帮助你快速上手。请参阅 GitHub 仓库

客户端设置

首先,安装 AI Agent 扩展。

npm install @tiptap-pro/extension-ai-agent

然后,导入该扩展并使用 AiAgentProvider 类进行配置。

import { Editor } from '@tiptap/core'
import StarterKit from '@tiptap/starter-kit'
import AiAgent, { AiAgentProvider } from '@tiptap-pro/extension-ai-agent'

const provider = new AiAgentProvider()

const editor = new Editor({
  extensions: [
    StarterKit,
    AiAgent.configure({
      provider,
    }),
  ],
})

在 AI Agent 提供者内部,定义一个调用后端的 resolver 函数。

import AiAgent, { AiAgentProvider } from '@tiptap-pro/extension-ai-agent'

const provider = new AiAgentProvider({
  // `chatMessages` 属性包含了对话的聊天消息
  resolver: async ({ chatMessages, schemaAwarenessData }) => {
    // 调用你的后端 API 端点
    const response = await fetch('/api-endpoint', {
      method: 'POST',
      body: JSON.stringify({ chatMessages, schemaAwarenessData }),
    })
    return await response.json()
  },
})

下一节,我们将介绍如何实现返回正确格式响应的 API 端点。

服务器端设置

首先,安装 AI Agent 和 OpenAI 服务端库。

npm install @tiptap-pro/extension-ai-agent-server openai

从请求参数中获取聊天消息和模式感知数据。

// Code inside your API endpoint. Code depends on your backend framework
const { chatMessages, schemaAwarenessData } = request

然后,在你的 API 端点内,创建一个 AiAgentToolkit 实例。它允许你配置 AI 模型可用的工具。

import { AiAgentToolkit, openaiResponsesAdapter } from '@tiptap-pro/extension-ai-agent-server'

const toolkit = new AiAgentToolkit({
  adapter: openaiResponsesAdapter,
  schemaAwarenessData,
})

还需要定义一个 ChatMessagesFormatter 实例。它让你能够将聊天消息转换为 OpenAI Responses API 期望的格式。

import {
  AiAgentToolkit,
  openaiResponsesAdapter,
  ChatMessagesFormatter,
} from '@tiptap-pro/extension-ai-agent-server'

const formatter = new ChatMessagesFormatter({
  initialMessages: chatMessages,
  adapter: openaiResponsesAdapter,
})

创建工具包和格式化器后,向 OpenAI Responses API 发送请求。

import {
  AiAgentToolkit,
  openaiResponsesAdapter,
  ChatMessagesFormatter,
} from '@tiptap-pro/extension-ai-agent-server'
import OpenAI from 'openai'

const { chatMessages, schemaAwarenessData } = request

const toolkit = new AiAgentToolkit({
  adapter: openaiResponsesAdapter,
  schemaAwarenessData,
})

const formatter = new ChatMessagesFormatter({
  // 从请求体获取聊天消息
  initialMessages: chatMessages,
  adapter: openaiResponsesAdapter,
})

// 初始化 OpenAI 客户端
const openai = new OpenAI()

// 调用 OpenAI Responses API
const response = await openai.responses.create({
  model: 'gpt-4.1',
  input: [
    {
      role: 'developer',
      content: `
<你的系统提示>
${toolkit.getSystemPrompt()}
`,
    },
    ...formatter.format(),
  ],
  // 提供 AI 模型可调用的工具
  tools: toolkit.format(),
})

在系统提示的末尾,包含由 AiAgentToolkit 实例生成的系统提示,如:toolkit.getSystemPrompt()。其中包含关于如何使用工具的指令。

有关编写系统提示,请参见 系统提示指南。其中包含可作为起点的示例系统提示。

最后,使用 formatter 将响应转换为 AI Agent 扩展期望的格式。

formatter.addAiResponse(response)

const response = formatter.getResolverResponse()

formatter.getResolverResponse() 返回的值应该作为你 API 端点的响应,并作为 resolver 函数的返回值。