审核更改
AI 代理扩展可以与 AI 更改扩展集成,为 AI 生成的更改提供审核工作流程。这允许用户在 AI 代理对文档应用更改后,查看、接受或拒绝这些更改。
设置 AI 更改集成
第一步:安装两个扩展
npm install @tiptap-pro/extension-ai-agent @tiptap-pro/extension-ai-changes第二步:在你的编辑器中配置两个扩展
import { Editor } from '@tiptap/core'
import StarterKit from '@tiptap/starter-kit'
import AiAgent from '@tiptap-pro/extension-ai-agent'
import AiChanges from '@tiptap-pro/extension-ai-changes'
const provider = new AiAgentProvider({
appId: 'YOUR_APP_ID',
token: 'YOUR_JWT_TOKEN',
// 将 autoAccept 设置为 "never" 以始终要求审核
autoAccept: 'never',
// 启用 AI 更改集成(默认启用)
useAiChangesExtension: true,
})
const editor = new Editor({
extensions: [
StarterKit,
AiAgent.configure({
provider,
}),
AiChanges.configure({
// 可选:自定义 AI 更改的外观,在选中更改时显示弹出框
getCustomDecorations({ change, isSelected, getDefaultDecorations }) {
const decorations = getDefaultDecorations()
// 如有需要,添加自定义装饰
return decorations
},
}),
],
})审核工作流程如何运作
- AI 代理对文档进行更改时,这些更改会被 AI 更改扩展跟踪
- 如果
autoAccept设置为never或onlyRead(针对修改内容的更改),这些更改会显示为待处理状态 - 提供者的状态变为
reviewingToolCall - 用户可以审核这些更改,并决定接受或拒绝
- 接受或拒绝后,对话继续进行
接受和拒绝更改
你可以调用以下方法来接受或拒绝更改:
// 接受所有待处理更改
provider.acceptToolCall()
// 拒绝所有待处理更改
provider.rejectToolCall()注意
如果工具调用被拒绝,AI 代理提供者会尝试通过 AI 更改扩展将文档重置到工具调用执行前的状态。但是,如果未导入 AI 更改扩展或将 useAiChangesExtension 设置为 false,AI 代理将无法自动重置文档状态,因此你需要自己实现逻辑来处理被拒绝的工具调用,并将文档恢复到之前的状态。
在没有 AI 更改扩展的情况下处理被拒绝的工具调用的一种方法是,在工具调用应用前(触发 beforeToolCall 事件时)存储文档状态,并在工具调用被拒绝时恢复该状态。
自动接受配置
要控制工具是否自动应用或需要用户审核,可配置 autoAccept 选项。
"always":所有工具自动应用,无需审核"never":所有工具都需要用户审核并明确接受"onlyRead":仅对修改编辑器内容的工具要求审核;只读操作自动接受。
// 配置自动接受行为
const provider = new AiAgentProvider({
// ...其他选项
autoAccept: 'onlyRead', // 默认设置
})
// 运行时更改自动接受行为
provider.setAutoAccept('never')