REST API(旧版 v3 端点)

Server AI Toolkit 提供用于 AI 智能体工具的 REST API 端点。

已弃用的端点

这些 API 端点已弃用,请参阅新的 API 端点

向后兼容性

之前的 API 名称,例如 schemaAwarenessDatagetSchemaAwarenessData/v3/ai/toolkit/tools/v3/ai/toolkit/schema-awareness-prompt,为了 向后兼容仍然可用,但它们已弃用。对于新的集成,请使用 editorContextgetEditorContext/v3/ai/toolkit/tools

Postman 集合

浏览 Server AI Toolkit REST API 的 Postman 集合

认证

所有请求都必须包含:

  • Authorization: Bearer <JWT>
  • X-App-Id: <APP_ID>

使用你的 AI 密钥在服务端生成 JWT。请在 Server AI Toolkit 设置 页面获取你的 App ID 和密钥。

import jwt from 'jsonwebtoken'

const JWT_TOKEN = jwt.sign(
  {
    experimental_document_server_id: 'your-document-server-id',
    experimental_document_server_management_api_secret:
      'your-document-server-management-api-secret',
  },
  'your-ai-secret-key',
  { expiresIn: '1h' },
)

更多信息请参阅 授权指南

Document Server 凭据

当你希望 Server AI Toolkit 自动获取并保存 Tiptap Cloud 文档时,请在 JWT 中包含以下声明:

  • experimental_document_server_id
  • experimental_document_server_management_api_secret

基础 URL

托管的基础 URL 是:

https://api.tiptap.dev

在下面的示例中,请求被写作 BASE_URL/v3/ai/...

如何提供文档

工具端点只接受一种文档来源:

  • document:内联 Tiptap JSON
  • experimental_documentOptions:Tiptap Cloud 文档引用

experimental_documentOptions 具有以下结构:

  • documentIdstring,必填):Tiptap Cloud 文档标识符。
  • userId?string | null,可选):归因于 AI 执行编辑操作的标识符。
  • field?string | null,可选,默认值:"default"):在省略或为 null 时,目标为文档中的特定协作字段(Y.js XML 片段)。当你的文档在同一个 documentId 下存储多个可编辑字段时——例如标题和正文分开存储——请使用此项。

Tiptap Cloud 文档示例:

{
  "experimental_documentOptions": {
    "documentId": "your-document-id",
    "userId": "ai-assistant"
  }
}

针对非默认协作字段的示例:

{
  "experimental_documentOptions": {
    "documentId": "your-document-id",
    "userId": "ai-assistant",
    "field": "title"
  }
}

内联文档示例:

{
  "document": {
    "type": "doc",
    "content": []
  }
}

线程需要云文档

线程和评论端点始终需要 experimental_documentOptions.documentId

格式

大多数端点接受一个 format 字段:

  • "json":标准 JSON 表示形式
  • "shorthand":Tiptap Shorthand,一种适用于提示词和模型输出的高效令牌格式

工具端点

获取工具定义

POST /v3/ai/toolkit/tools

返回可供 AI 代理使用的工具定义

请求体:

  • editorContextEditorContext,必需)。通过 getEditorContext 函数获取的编辑器上下文。请参阅安装指南
  • tools?Record<string, boolean>,可选):启用或禁用单个工具。支持的键请参阅工具参考
  • operationMeta?string,可选,默认值:""
  • format?'json' | 'shorthand',可选,默认值:'json'
  • schemaAwarenessData?SchemaAwarenessData,可选,已弃用):请改用 editorContext。为向后兼容而保留。

响应:

  • promptstring):将其添加到 AI 请求的系统提示中。它会教 AI Tiptap 文档如何工作、可以包含哪些元素,以及文档格式如何工作。
  • toolsarray
    • namestring
    • descriptionstring
    • inputSchemaobject):AI 生成的工具 input 的 JSON schema。

执行工具

POST /v3/ai/toolkit/execute-tool

执行一个 Server AI Toolkit 工具,例如 tiptapReadtiptapEditgetThreadseditThreads。有关每个受支持工具及其类型形状,请参阅工具参考

请求体:

  • toolNamestring,必需)
  • input(必需):由 AI 模型生成的工具输入。其结构取决于 toolName;请参阅工具参考
  • editorContextEditorContext,必需,除非提供了 schemaAwarenessData
  • schemaAwarenessData?SchemaAwarenessData,可选,已弃用):请改用 editorContext。为向后兼容而保留。
  • toolConfig?(可选):由开发者提供、而非 AI 模型提供的工具特定参数。请参阅工具参考
  • format?'json' | 'shorthand',可选,默认值:'json'
  • reviewOptions?ReviewOptions,可选,默认值:{ mode: 'disabled' }
  • experimental_commentsOptions?{ threadData?: Record<string, unknown>, commentData?: Record<string, unknown> },可选):在与线程相关的工具执行期间创建的新线程和评论所附加的元数据。
  • 恰好以下二者之一:
    • document
    • experimental_documentOptions

响应:

  • output:工具响应,应由 AI 模型读取。请参阅工具参考
  • toolResult:以适合开发者解析的格式提供的工具响应。不应由 AI 读取。请参阅工具参考
  • docChangedboolean):文档是否因工具调用而发生更改
  • documentobject | null):AI 对文档进行更改后的文档

流式执行工具

POST /v3/ai/toolkit/stream-tool

流式执行工具。请求结构与 POST /v3/ai/toolkit/execute-tool 相同。流式响应格式仍在最终确定中。

由于此端点在实时连接上操作文档,它可能会返回 REST 端点不会返回的连接和并发错误。它们会在响应流中以 error 事件的形式到达——请参阅流式传输和会话错误

旧版工作流端点

工作流端点已弃用

工作流端点会保留给现有集成使用。它们将在未来版本中移除。

获取工作流定义

使用以下任一端点:

  • POST /v3/ai/toolkit/workflows/edit
  • POST /v3/ai/toolkit/workflows/insert-content
  • POST /v3/ai/toolkit/workflows/proofreader
  • POST /v3/ai/toolkit/workflows/threads

请求体:

  • format? ('json' | 'shorthand', 可选,默认:'json'). proofreader 工作流仅接受 'shorthand'

响应:

  • systemPrompt (string)
  • outputSchema (object)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/workflows/edit' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "format": "shorthand"
  }'

读取工作流的文档内容

POST /v3/ai/toolkit/read/read-document

读取文档内容并返回可供工作流使用的内容。

请求体:

  • range? ({ from: number, to: number }, 可选,默认:整个文档)
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format? ('json' | 'shorthand', 可选,默认:'json')
  • chunkSize? (number, 可选,默认:32000)
  • reviewOptions? (ReviewOptions, 可选,默认:{ mode: 'disabled' })
  • 恰好一个:
    • document
    • experimental_documentOptions

响应:

  • output
    • success (boolean)
    • content? (unknown)
    • error? (string)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/read/read-document' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "format": "shorthand",
    "reviewOptions": {
      "mode": "disabled"
    },
    "experimental_documentOptions": {
      "documentId": "your-document-id",
      "userId": "ai-assistant"
    }
  }'

读取当前选区

POST /v3/ai/toolkit/read/read-selection

读取选区并返回选区负载或明确的空状态。

请求体:

  • range ({ from: number, to: number }, 必需)
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format? ('json' | 'shorthand', 可选,默认:'json')
  • chunkSize? (number, 可选,默认:32000)
  • reviewOptions? (ReviewOptions, 可选,默认:{ mode: 'disabled' })
  • 恰好一个:
    • document
    • experimental_documentOptions

响应:

  • output
    • 当选区为空时:
      • isEmpty (true)
    • 当选区包含内容时:
      • isEmpty (false)
      • content (unknown)
      • nodeHashes (string[])
      • nodeRange ({ from: number, to: number })
      • prompt (string)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/read/read-selection' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "range": { "from": 10, "to": 42 },
    "format": "shorthand",
    "experimental_documentOptions": {
      "documentId": "your-document-id"
    }
  }'

读取线程

POST /v3/ai/toolkit/read/threads

读取 Tiptap Cloud 文档中的所有线程和评论。

请求体:

  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format ('json' | 'shorthand', 必需)
  • experimental_documentOptions ({ documentId: string, userId?: string, field?: string | null }, 必需)

响应:

  • output
    • threads? (unknown[])
    • error? (string)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/read/threads' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "format": "shorthand",
    "experimental_documentOptions": {
      "documentId": "your-document-id",
      "userId": "ai-assistant"
    }
  }'

执行插入内容工作流

POST /v3/ai/toolkit/execute-workflow/insert-content

请求体:

  • input (unknown, 必需):生成的插入内容负载
  • range? ({ from: number, to: number }, 可选)
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format? ('json' | 'shorthand', 可选,默认:'json')
  • chunkSize? (number, 可选,默认:32000)
  • reviewOptions? (ReviewOptions, 可选,默认:{ mode: 'disabled' })
  • 恰好一个:
    • document
    • experimental_documentOptions

响应:

  • output
    • error? (string)
    • range? ({ from: number, to: number })
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/execute-workflow/insert-content' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "input": "This is the replacement content.",
    "range": { "from": 10, "to": 42 },
    "format": "shorthand",
    "reviewOptions": {
      "mode": "disabled"
    },
    "experimental_documentOptions": {
      "documentId": "your-document-id",
      "userId": "ai-assistant"
    }
  }'

执行 Tiptap 编辑工作流

POST /v3/ai/toolkit/execute-workflow/tiptap-edit

请求体:

  • input (object, 必需):编辑工作流操作
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format? ('json' | 'shorthand', 可选,默认:'json')
  • chunkSize? (number, 可选,默认:32000)
  • reviewOptions? (ReviewOptions, 可选,默认:{ mode: 'disabled' })
  • 恰好一个:
    • document
    • experimental_documentOptions

响应:

  • output
    • operationResults? (array)
    • reason? ('validationError' | 'unexpectedError')
    • error? (string)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/execute-workflow/tiptap-edit' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "input": {
      "operations": [
        {
          "type": "replace",
          "target": "abc123",
          "content": "# Updated heading\n\nUpdated paragraph content."
        }
      ]
    },
    "format": "shorthand",
    "reviewOptions": {
      "mode": "disabled"
    },
    "experimental_documentOptions": {
      "documentId": "your-document-id",
      "userId": "ai-assistant"
    }
  }'

执行校对者工作流

POST /v3/ai/toolkit/execute-workflow/proofreader

请求体:

  • input (object, 必需):校对者操作
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format ('shorthand', 必需)
  • chunkSize? (number, 可选,默认:32000)
  • reviewOptions? (ReviewOptions, 可选,默认:{ mode: 'disabled' })
  • 恰好一个:
    • document
    • experimental_documentOptions

响应:

  • output
    • operationResults (array)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/execute-workflow/proofreader' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "input": {
      "operations": []
    },
    "format": "shorthand",
    "reviewOptions": {
      "mode": "trackedChanges",
      "trackedChangesOptions": {
        "userId": "ai-assistant"
      }
    },
    "experimental_documentOptions": {
      "documentId": "your-document-id"
    }
  }'

执行评论工作流

POST /v3/ai/toolkit/execute-workflow/threads

请求体:

  • input (object, 必需):线程操作
  • schemaAwarenessData (SchemaAwarenessData, 必需)
  • format? ('json' | 'shorthand', 可选,默认:'json')
  • experimental_documentOptions ({ documentId: string, userId?: string, field?: string | null }, 必需)
  • experimental_commentsOptions? ({ threadData?: Record<string, unknown>, commentData?: Record<string, unknown> }, 可选):工作流创建的新线程和评论所附加的元数据。

响应:

  • output
    • operations? (array)
    • error? (string)
  • docChanged (boolean)
  • document (object | null)

示例:

curl --location 'BASE_URL/v3/ai/toolkit/execute-workflow/threads' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_JWT_TOKEN' \
  --header 'X-App-Id: YOUR_APP_ID' \
  --data '{
    "schemaAwarenessData": { /* 模式感知数据 */ },
    "input": {
      "operations": [
        {
          "type": "createComment",
          "threadId": "thread-123",
          "content": "请澄清这一点。"
        }
      ]
    },
    "format": "shorthand",
    "experimental_documentOptions": {
      "documentId": "your-document-id",
      "userId": "ai-assistant"
    },
    "experimental_commentsOptions": {
      "threadData": {
        "source": "ai"
      },
      "commentData": {
        "source": "ai"
      }
    }
  }'

错误处理

REST 端点返回错误时采用以下结构:

{
  "error": {
    "message": "对出错原因的人类可读描述。",
    "status": 502,
    "code": "document_load_failed"
  }
}
  • messagestring):人类可读描述。不要基于它进行匹配——措辞可能会变化。
  • statusnumber):HTTP 状态码,也会设置在响应中。
  • codestring):一个可用于分支判断的稳定标识。验证失败会使用 code: "validation_failed",并附加一个 issues 数组。

API 使用标准 HTTP 错误码:

  • 400 Bad Request:无效正文、无效格式、缺少文档来源,或缺少 Document Server 凭据
  • 401 Unauthorized:缺少或无效的 JWT 或 App ID
  • 404 Not Found:未知端点或工具
  • 422 Unprocessable Entity:验证失败
  • 429 Too Many Requests:重复请求或限流保护
  • 500 Internal Server Error:意外的服务器错误
  • 502 Bad Gateway:加载或保存 Tiptap Cloud 文档失败

流式传输和会话错误

POST /v3/ai/toolkit/stream-tool 通过实时 连接在 Tiptap Cloud 文档上运行:它会实时加入该文档,因此 AI 会与其他协作者一起编辑最新内容。建立或使用该连接时发生的错误会以内联方式作为响应流中的 error 事件传递,而不是作为 HTTP 状态码:

{ "type": "error", "code": "concurrent_edit_conflict", "status": 409, "message": "..." }

status 字段会映射到对应的 HTTP 状态码。可能的 code 值:

codestatus发生时机处理方式
concurrent_edit_conflict409文档在工具运行期间发生了变化(例如,某个用户编辑了它),因此无法在过期内容之上应用更改。重新运行请求。AI 会在下一次尝试时读取最新内容。可以安全地自动重试。参见 处理并发编辑
schema_mismatch409请求中的编辑器 schema 与该文档当前使用的 schema 不匹配,或者存储的文档无法用该 schema 解析。为同一文档发送一致的 editorContext schema。不要用相同的 schema 重试。
websocket_auth_failed401打开连接时,Tiptap Cloud 拒绝了文档凭据。刷新 Document Server JWT 声明,然后重试。不要使用相同的 token 重试。
websocket_connection_failed502与 Tiptap Cloud 的连接在初始同步完成前就已关闭。使用退避策略重试。检查连通性和 Tiptap Cloud 状态。
websocket_sync_timeout504文档在时限内没有完成初始同步。使用退避策略重试。大文档和网络连接退化会让这种情况更容易发生。
session_limit_reached503服务器正在处理的并发文档会话数量已达到上限。使用退避策略重试。会话在进入空闲时会被释放。
session_creation_cancelled503会话在完成连接之前就被拆除,通常发生在服务器重启期间。重试。

仅适用于 Tiptap Cloud 文档

这些错误只会出现在 stream-tool 使用的实时连接路径中。发送内联 document 的请求不会打开连接,因此不会返回会话或 WebSocket 错误。

处理并发编辑

concurrent_edit_conflict 在协作文档中是预期内的。AI 读取文档、 调用模型并写回更改的同时,用户可能会在中间编辑同一个文档。与其 覆盖该编辑,工具包会拒绝此次写入,以免丢失任何工作。

把它当作一个安全、可重试的信号:当你收到一个 code: "concurrent_edit_conflict"error 事件时,再次运行相同的工具调用。工具包会重新读取文档, 因此 AI 会基于用户的最新更改继续工作。请限制重试次数,以避免在一个被频繁编辑的 文档上陷入长循环。

// `runStream` 发送 start/delta/end 消息,并解析为流的
// 最终 `error` 事件;如果流成功完成,则返回 `null`。
async function streamToolWithRetry(body: unknown, maxRetries = 3) {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const error = await runStream(body)

    if (!error) {
      return // 成功完成
    }
    if (error.code !== 'concurrent_edit_conflict') {
      throw new Error(`stream-tool failed: ${error.code}`)
    }
    // 文档在传输过程中发生了变化——使用最新内容重试。
  }

  throw new Error('工具调用因并发编辑而持续冲突。')
}

可用工具

以下是可用工具列表。

tiptapRead

读取一部分顶层文档节点。它也会编辑文档,以便为高效编辑做准备。

工具配置(toolConfig

null

工具输入(toolInput

  • from (number): 要读取的第一个顶层节点的零基索引。

工具输出(toolOutput

成功响应:

  • success (true): 表示读取请求成功。
  • totalNodeCount (number): 文档中顶层节点总数。
  • nodeRange ([number, number]): 读取的顶层节点范围。
  • content (JSONContent[] | string): 返回范围内的文档内容。当 formatjson 时,这是一个 Tiptap JSON 片段。当 formatshorthand 时,这是一个 Tiptap Shorthand 字符串。

错误响应:

  • success (false): 表示读取请求失败。
  • error (string): 错误信息。
  • totalNodeCount? (number): 顶层节点总数。

工具结果(toolResult

null

tiptapEdit

通过替换目标、在目标之前插入或在目标之后插入来编辑文档节点。
目标是来自 tiptapRead 的节点哈希,或者针对整个文档使用 "doc"

工具配置(toolConfig

null

工具输入(toolInput

  • operations (array): 按顺序应用的编辑操作。操作格式在工具定义中有说明。如果你是客户,请联系我们以获取有关操作格式的更多信息。

工具输出(toolOutput

成功或部分成功响应:

  • success (boolean): 所有操作是否都成功完成。
  • operationResults (array): 每个操作的结果。
    • success (boolean): 该操作是否成功完成。
    • target (string): 该操作所针对元素的字符串标识符。
    • error (string | null): 失败原因;如果操作成功则为 null

错误响应:

  • success (false): 表示编辑请求失败。
  • reason ('validationError' | 'unexpectedError'): 错误类别。
  • error (string): 错误信息。

工具结果(toolResult

null

getThreads

读取持久化的评论线程、其评论以及它们在文档中的位置。

需要 Tiptap Cloud 文档

由于线程存储在 Tiptap Document Server 上,此工具要求请求体中包含 experimental_documentOptions。请传入一个引用你的 Tiptap Cloud 文档的 documentId

工具配置(toolConfig

null

工具输入(toolInput

  • from (number): 要读取的第一个线程的零基索引。

工具输出(toolOutput

成功响应:

  • success (true): 表示读取请求成功。
  • totalThreadCount (number): 文档中的线程总数。
  • threadRange ([number, number]): 读取的线程范围,格式为 [from, to)
  • threads (array): 返回的线程对象。
    • id (string): 唯一线程标识符。
    • nodeRange ([number, number] | null): 线程所在的节点范围;如果线程未在文档中被标注,则为 null
    • content (JSONContent[] | string | null): 线程标记的内容。当 formatjson 时,这是一个 Tiptap JSON 片段。当 formatshorthand 时,这是一个 Tiptap Shorthand 字符串。null 表示线程未在文档中被标注。
    • comments (array): 线程中的评论。
      • id (string): 唯一评论标识符。
      • content (string): 评论文本。
      • userId (string): 创建该评论的用户 ID。
      • createdAt (string): 评论创建时的 ISO 时间戳。
      • updatedAt (string): 评论最后更新时间的 ISO 时间戳。
    • resolvedAt? (string | null): 线程被解决时的 ISO 时间戳;如果未解决,则为 null
    • createdAt (string): 线程创建时的 ISO 时间戳。
    • updatedAt (string): 线程最后更新时间的 ISO 时间戳。
    • data? (Record<string, unknown>): 公开的线程元数据。

错误响应:

  • success (false): 表示读取请求失败。
  • error (string): 错误信息。
  • totalThreadCount? (number): 已持久化线程的总数(如果已知)。

工具结果(toolResult

null

editThreads

创建、更新、删除、解决或取消解决评论线程和评论。

需要 Tiptap Cloud 文档

由于线程存储在 Tiptap Document Server 上,此工具要求请求体中包含 experimental_documentOptions。请传入一个引用你的 Tiptap Cloud 文档的 documentId

工具配置(toolConfig

null

要为新的 AI 生成线程或评论附加元数据,请在 execute-tool 请求中传入 experimental_commentsOptions

工具输入(toolInput

  • operations (array): 按顺序应用的线程操作。操作格式在工具定义中有说明。如果你是客户,请联系我们以获取有关操作格式的更多信息。

工具输出(toolOutput

成功或部分成功响应:

  • success (boolean): 表示所有操作是否都成功完成。
  • operations (array): 每个操作的结果。
    • type (string): 已执行的操作类型。
    • success (boolean): 该操作是否成功完成。
    • message (string): 人类可读的操作结果。
    • threadId? (string): 创建或引用线程的操作所对应的线程 ID。

错误响应:

  • success (false): 表示在处理操作之前请求就已失败。
  • error (string): 错误信息。

工具结果(toolResult

null

readDocument

读取整个文档的内容。

工具配置(toolConfig

null

工具输入(toolInput

{}

工具输出(toolOutput

成功响应:

  • success (true): 表示文档读取成功。
  • content (JSONContent[] | string): 整个有效文档内容。当 formatjson 时, 这是一个 Tiptap JSON 片段。当 formatshorthand 时,这是一个 Tiptap Shorthand 字符串。

返回整个文档

该工具输出包含整个文档的内容,这可能会超出上下文窗口。为避免这种情况,你必须自行管理上下文窗口。

工具结果(toolResult

toolOutput 结构相同。

proofreader

对文档进行小幅编辑。针对 AI 只进行一两个词的小编辑场景进行了优化。例如,对文档进行校对或检查拼写错误。

此工具仅支持 format: "shorthand"

工具配置(toolConfig

null

工具输入(toolInput

  • operations (array): 按顺序应用的校对操作。操作格式在工具定义中有说明。如果你是客户,请联系我们以获取有关操作格式的更多信息。

工具输出(toolOutput

成功或部分成功响应:

  • success (boolean): 表示所有操作是否都成功完成。
  • operationResults (array): 每个操作的结果。
    • target (string): 该操作所针对元素的字符串标识符。
    • success (boolean): 该操作是否成功完成。
    • error (string | null): 失败原因;操作成功时为 null

工具结果(toolResult

null

相关页面