首页/新闻资讯/正文详情

IronClaw 的 Google Docs 结构化检查:用 `inspect_document` 精准规划索引化编辑

发布时间:2026/9/24 5:52:04 来源:云帆数科 栏目:资讯中心
IronClaw 的 Google Docs 结构化检查:用 `inspect_document` 精准规划索引化编辑
人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载inspect_document是 IronClaw 扩展体系中 Google Docs 集成的语义化只读操作它把一份文档以带文档索引document indexes的段落与表格形式结构化返回供模型在规划索引化编辑indexed edits或处理表格前准确掌握文档结构。读完本文你将掌握该操作的能力边界、输入参数、返回结构、与get_document的取舍以及它在inspect → edit → verify语义工作流中的源码级实现原理。一、inspect_document是什么为“规划编辑”而生的结构化读取在 IronClaw 的 Google Docs 扩展中inspect_document的核心定位是Inspect a Google Docs document as structured paragraphs and tables, including indexes and cell contents.即将文档按“段落 表格”的结构返回并携带每个结构元素的起止索引和表格单元格内容。它面向的是“接下来要按索引做精确编辑”的场景——模型先通过一次调用获得完整的结构化视图据此计算插入、删除、格式化操作所需的具体索引而无需手工猜测索引、也无需创建临时草稿文档去试探do not create scratch documents to infer indexes。该操作由宿主host根据**能力 IDcapability id**自动选择分发对应关系定义在 crates/extensions/packages/google-docs/wasm-src/src/lib.rs 中google-docs.inspect_document Ok(inspect_document),调用时只需要提交输入 schema 中声明的参数不要自行附加action字段——宿主会根据能力 ID 注入 actionparams_with_action会拒绝调用方传入的action字段并返回invalid_parameters错误。二、输入参数仅一个必填字段inspect_document的输入 schema 定义在 crates/extensions/packages/google-docs/schemas/google-docs/inspect_document.input.v1.json参数极其精简字段类型必填约束说明document_idstring是1 ≤ 长度 ≤ 256文档 ID与 Google Drive 文件 ID 相同一个合法的请求体示例{document_id: 1ABCxyz...}该 schema 是语义化操作统一约束的一部分源码中的测试 semantic_input_schemas_bound_document_ids 会逐一校验inspect_document、apply_text_edits、create_table_with_data、verify_document四个语义操作的document_id.maxLength均为 256防止 schema 与 serde 契约漂移。document_id的获取方式与 Drive 文件一致——按 crates/extensions/packages/google-docs/README.md 与 lib.rs 的说明文档 ID 即 Google Drive 文件 ID可借助 google-drive 扩展的list_files查找已有文档。三、返回结构段落、表格、索引与单元格内容inspect_document的执行路径为InspectDocument { document_id }→api::inspect_document→parse_inspection见 api.rs返回结构定义在 types.rs 的InspectDocumentResultpub struct InspectDocumentResult { pub document_id: String, pub title: String, pub revision_id: String, pub body_length: i64, pub elements: VecDocumentElement, // 按文档顺序排列的结构元素 }其中elements的每个元素是一个带kind标签的枚举#[serde(tag kind, rename_all snake_case)] pub enum DocumentElement { Paragraph(ParagraphElement), Table(TableElement), }Paragraph段落ParagraphElement携带start_index、end_index均为 0 基字符偏移、完整text以及可选的named_style如HEADING_1、NORMAL_TEXT、TITLE、SUBTITLE等来自 Docs API 的paragraphStyle.namedStyleType。有了named_style模型无需再逐个字符探测就能识别标题层级这对大纲类编辑至关重要。Table表格TableElement携带表格自身的start_index/end_index以及rows: VecVecTableCell——即按行、按列组织的二维单元格数组。每个TableCell同样带start_index、end_index和text保证模型知道每个单元格在整个文档中的精确字符区间。body_length取自文档 body 最后一个结构元素的endIndex。此外parse_inspection返回的revision_id取自文档读取时的revisionId这也是后续语义编辑见下节进行并发校验的锚点。四、与get_document的分工何时该用哪一个同包的get_document提示词见 get_document.md返回的是元数据标题、revision、body 长度和命名范围named ranges——它不返回段落和表格。两份提示词共同划定了清晰的分工只需要文档元数据、修订号或命名范围 →get_document需要文档结构、段落/表格索引、单元格内容以规划索引化编辑 →inspect_document同时inspect_document的提示词明确要求一次调用返回 provider 结构不要创建草稿文档去推断索引。这是因为该操作内部通过一次GET {document_id}?includeTabsContenttrue拉取完整文档并结构化解析代价远低于建草稿 反复探测的试探式流程。五、语义编辑工作流中的定位inspect → edit → verifyinspect_document是 IronClaw 推荐的四步语义化文档工作流的第一步见 README.mdinspect_document一次调用获取带索引的结构视图用于规划apply_text_edits/create_table_with_data基于文本锚点或表格数据执行受校验的批量修改verify_document从 provider 读回状态逐条核验文本与表格是否符合预期。这套组合把典型的文档操作压缩到 34 次模型可见的能力调用索引发现、批量单元格写入、并发检查、provider 读回全部由扩展内部完成。其中apply_text_edits与inspect_document的配合尤为紧密apply_text_edits的build_anchored_edit_requests会先在本地文本上校验锚点唯一性默认replace_allfalse时锚点必须唯一再生成replaceAllText请求并通过writeControl.requiredRevisionId绑定 inspect 到的修订号防止并发漂移——这正是先用 inspect_document 看清结构、再安全编辑的底层保障。六、索引语义与使用注意事项索引规则遵循 Docs API 的 0 基字符偏移约定以下要点来自 lib.rs 的官方 Tips索引是 0 基字符偏移空文档 body 从索引 0 处的换行符开始因此在索引 1 处插入即可在文档开头追加文本-1表示追加到文档末尾insert_text中index -1走endOfSegmentLocation分支多次编辑时按索引从大到小处理避免索引漂移表格填充正是这样实现的——build_table_population_requests把插入点按索引降序排序后逐条insertText其余低阶操作insert_text、delete_content、format_text、format_paragraph、insert_table、create_list、batch_update等仍作为兼容层与逃生舱保留。另外值得注意fetch_document使用includeTabsContenttrue拉取文档并通过normalize_first_tab将第一个 tab的 body 与 namedRanges 归一化到顶层字段语义读取含 inspect默认作用于第一个 tabapply_text_edits生成请求时还会附加tabsCriteria.tabIds限定到被检查的 tab对应测试 anchored_edits_are_scoped_to_the_inspected_tab。七、源码级解析一次调用内部发生了什么inspect_document的完整链路api.rsfetch_document向https://docs.googleapis.com/v1/documents/{document_id}?includeTabsContenttrue发起GETnormalize_first_tab归一化多 tab 文档使语义读取稳定作用于首个 tabparse_structural_elements遍历body.content命中paragraph元素 → 提取startIndex/endIndex、拼接 text、读取namedStyleType产出Paragraph命中table元素 → 遍历tableRows→tableCells→ 每个单元格递归提取文本与索引产出Table其余元素类型如tableOfContents不进入结构化结果汇总为InspectDocumentResult含document_id、title、revision_id、body_length、elements。上述解析逻辑由单元测试 parse_document_preserves_paragraph_and_table_structure 覆盖验证一份包含HEADING_1段落和两格表格的模拟文档经parse_inspection后elements[0].kind paragraph且named_style HEADING_1elements[1].kind table且rows[0][1].text Ada\n——证明段落样式、表格行列与单元格文本均被无损保留。八、错误处理与权限前提凭证该工具运行在 WASM 沙箱中由宿主注入带 documents 作用域的 Google product-auth 凭证WASM 侧永远接触不到真实 OAuth tokenHTTP 访问范围限定docs.googleapis.com/v1/documents*。401映射为AuthRequired错误码google_api_error_status_401其他非 2xx映射为Client错误码api_status_{status}如api_status_429表示限流消息经bounded_message截断至 512 字符参数校验document_id缺失或超长由 schema 直接拦截调用方携带action字段会得到invalid_parameters。总结inspect_document是 IronClaw Google Docs 扩展中结构化、索引化、一次到位的读取操作它用一次能力调用返回带 0 基字符索引的段落与表格视图让模型在真正动手编辑前就能精确掌握文档结构与索引位置。配合apply_text_edits、create_table_with_data与verify_document即可在 34 次调用内完成检查 → 编辑 → 校验的完整闭环而无需创建草稿文档或低效地反复探测索引。相关源码、schema 与测试位于 crates/extensions/packages/google-docs 包内可供进一步深入研读。赞分享人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载相关推荐IronClaw Google Docs 扩展深度指南让 Agent 创建、编辑并校验 Google 文档IronClaw Google Docs 扩展深度指南让 Agent 创建、编辑并校验 Google 文档 IronClaw 的 Google Docs 扩展人工智能AI 应用交互助手AI AgentIronClaw Google Docs 扩展 apply_text_edits 实战文本锚定替换的原子化编辑与回读验证IronClaw Google Docs 扩展 apply_text_edits 实战文本锚定替换的原子化编辑与回读验证 本文聚焦 IronClaw 开源仓库人工智能AI 应用交互助手AI AgentIronClaw Google Docs 扩展 replace_text 文本查找替换操作详解IronClaw Google Docs 扩展 replace_text 文本查找替换操作详解 在 IronClaw 的 Google Docs 扩展 goo人工智能AI 应用交互助手AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

STM32开源项目:代码+原理图+仿真三位一体,含DHT11与ADC采集
STM32开源项目:代码+原理图+仿真三位一体,含DHT11与ADC采集

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:51:09

告别手动汇总!批量合并Word文档太省事了
告别手动汇总!批量合并Word文档太省事了

经常需要整理大量Word资料的打工人,一定要收下这款小工具! 日常汇总报告、收集作业、整理台账,手动合并又累又容易出错,格式还总乱。这款Word合并神器完美解决痛点,支持多文档一键合并,还能自由调整文件前… · 2026/9/24 5:51:03

2026私有化代码托管平台选型:GitLab、Gitee、Gerrit与Gitea深度对比
2026私有化代码托管平台选型:GitLab、Gitee、Gerrit与Gitea深度对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:50:33

告别apt-get随缘版本:手动安装并管理gcc-arm-none-eabi交叉编译工具链
告别apt-get随缘版本:手动安装并管理gcc-arm-none-eabi交叉编译工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:45:49

ESP32 上跑 WebAssembly:WAMR 运行时原理与实操指南
ESP32 上跑 WebAssembly:WAMR 运行时原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:44:59

GEE实战01期:制作北京及周边地区夏季 NDVI 分布图
GEE实战01期:制作北京及周边地区夏季 NDVI 分布图

本期关注:借助ee.ImangCollection完成影像集合与时空筛选。 核心流程:在不下载数据的背景下,在浏览器上完成影像调用,NDVI合成,地图显示,简单分析以及数据导出的过程。 1.案例背景 归一化植被指数&#… · 2026/9/24 6:44:28

创维E900-S变砖救砖指南:海思3798MV100短接强刷实测
创维E900-S变砖救砖指南:海思3798MV100短接强刷实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:44:22

力扣集训day05
力扣集训day05

思路主要是结合归并排序的思路进行解答,大致就是1.先二分拆分(merge()),拆到拆无可拆,也就是左右边界重合为止,至于l>r这种情况,是用来判断空链表这种特殊情况的。2.然… · 2026/9/24 6:43:51

微信小程序 checkbox 和 radio 组件案例学习
微信小程序 checkbox 和 radio 组件案例学习

## 一、实验介绍本次案例学习微信小程序中 checkbox 复选框组件与 radio 单选框组件,实现对文本样式和字体大小的动态控制。复选框支持多选,可以同时设置文字加粗、倾斜、下划线;单选框只能选择一项,用来切换诗词的字体尺寸。本次… · 2026/9/24 6:43:45

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码