尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
IronClaw 中 Google Sheets `delete_sheet` 工具能力深度解析:从 Capability ID 到 batchUpdate 的完整调用链
人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载导读本文围绕 IronClaw一个以隐私、安全与可扩展性为核心的 Agent OS中 Google Sheets 扩展包的google-sheets.delete_sheet工具展开完整解读该能力在 delete_sheet.md 中定义的行为契约、其输入 Schema 约束、以及底层 WASM 访客端如何通过宿主 HTTP 能力调用 Google Sheets API v4 的batchUpdate删除工作表标签页。读完本文你将掌握该工具的完整参数语义、调用规则capability id 选择机制与禁止携带 action 字段约束、权限与凭据模型以及一套可复制到其他表格管理类操作如 add_sheet、rename_sheet的源码级排查思路。一、工具定位11 个 Google Sheets 工具中的删除操作delete_sheet是 IronClawgoogle-sheets扩展包extension id 为google-sheets暴露的 11 个工具之一用于删除电子表格中的一个 sheet 标签页tab。扩展包 README 将其定位为data-only package不包含独立 crate可移植的工具半部以 WASM 访客guest形式随包分发源码位于wasm-src/预编译产物提交在wasm/google_sheets_tool.wasm。参见 google-sheets/README.md。该扩展包完整覆盖电子表格生命周期创建类create_spreadsheet、add_sheet读取类get_spreadsheet、read_values、batch_read_values写入类write_values、append_values、clear_values管理类delete_sheet删除标签页、rename_sheet重命名标签页格式化类format_cells。delete_sheet与add_sheet、rename_sheet共享同一套结构管理代码路径——三者最终都走batchUpdate区别仅在于请求体中的 request 类型deleteSheet/addSheet/updateSheetProperties这一点从 api.rs 中三个函数的实现可以互相印证。二、行为契约prompt 文档定义的调用规则原文档 delete_sheet.md 定义了该工具给模型model阅读的两条核心契约行为定义Delete a sheet tab.删除一个工作表标签页。调用规则The host selects this operation from the capability id. Provide only the parameters described by the input schema; do not include an action field.宿主从 capability id 选择该操作。只提供输入 Schema 描述的参数不要包含 action 字段。这两条规则分别对应两套源码机制宿主按 capability id 选择操作delete_sheet的完整能力标识为google-sheets.delete_sheet见 manifest.toml。WASM 访客端通过action_from_context将 capability id 映射为内部 action 名google-sheets.delete_sheet Ok(delete_sheet)见 lib.rs。禁止携带 action 字段访客端在params_with_action中先解析调用参数若对象中已存在action键则直接拒绝返回invalid_parameters随后再把从 capability id 推导出的 action 注入参数对象。对应单元测试params_with_action_rejects_caller_supplied_action专门验证了调用方自带 action 会被拒绝这一安全边界见 lib.rs。也就是说模型侧看到的是一个无 action 的纯参数 JSON动作语义由宿主在调用时根据 capability id 绑定避免模型伪造/串改动作。三、输入参数 Schema两个必填字段delete_sheet的输入由 delete_sheet.input.v1.json 定义JSON Schema draft-07完整内容如下{ $schema: http://json-schema.org/draft-07/schema#, title: Google Sheets delete_sheet, description: Delete a sheet tab., type: object, required: [spreadsheet_id, sheet_id], properties: { spreadsheet_id: { type: string, description: The spreadsheet ID. }, sheet_id: { type: integer, description: Numeric sheet ID. } }, additionalProperties: false }参数语义与获取方式参数类型必填说明spreadsheet_idstring是电子表格 ID与 Google Drive 文件 ID 相同sheet_idinteger是工作表标签页的数字 ID注意不是标签名两个关键注意事项sheet_id是数字而非名称。WASM 源码库文档明确提示Sheet IDs (numeric) are different from sheet names. Get them via get_spreadsheet.——即应通过google-sheets.get_spreadsheet先获取元数据含各标签页的sheetId、title、index、行列数再拿数字 ID 来删除见 lib.rs 与 api.rs 的 parse_sheet_info。additionalProperties: false。Schema 禁止传入未声明的字段配合禁止 action 字段规则共同构成对模型输出的严格约束。典型调用参数示例{ spreadsheet_id: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms, sheet_id: 123456789 }四、底层实现一条请求走到batchUpdate4.1 WASM 访客端入口删除动作由GoogleSheetsAction::DeleteSheet变体承载types.rs 中以#[serde(tag action, rename_all snake_case)]声明在execute_inner的分发逻辑中调用api::delete_sheet(spreadsheet_id, sheet_id)见 lib.rs。4.2 核心实现构造deleteSheet请求api.rs 中delete_sheet的实现非常精简/// Delete a sheet (tab) from the spreadsheet. pub fn delete_sheet( spreadsheet_id: str, sheet_id: i64, ) - ResultSheetOperationResult, GuestFailure { let requests vec![serde_json::json!({ deleteSheet: { sheetId: sheet_id } })]; batch_update(spreadsheet_id, requests)?; Ok(SheetOperationResult { spreadsheet_id: spreadsheet_id.to_string(), success: true, }) }对应 Google Sheets API v4 的spreadsheets.batchUpdate请求体{ requests: [ { deleteSheet: { sheetId: 123456789 } } ] }4.3batchUpdate转发层api.rs 中的batch_update将请求 POST 到https://sheets.googleapis.com/v4/spreadsheets/{spreadsheet_id}:batchUpdatebase URL 定义于 api.rs 第 11 行并统一封装错误非 2xx 状态码会映射为api_status_{status}的 Client 类失败401 会映射为google_api_error_status_401AuthRequired 类提示凭据过期/缺失。4.4 返回结果类型删除成功后的返回结构由 types.rs 的SheetOperationResult定义与rename_sheet共用/// Result from delete_sheet or rename_sheet. #[derive(Debug, Serialize)] pub struct SheetOperationResult { pub spreadsheet_id: String, pub success: bool, }返回示例{ spreadsheet_id: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms, success: true }五、安全与权限模型删除操作是高危写入delete_sheet属于外部写入型破坏性操作manifest 中的登记信息充分体现了 IronClaw 的安全设计见 manifest.toml[[tools]] origin_gate_matrix { loop_run gated_unless_granted, product forbidden, automation forbidden } id google-sheets.delete_sheet description Delete a sheet tab. effects [network, use_secret, external_write] default_permission ask visibility model input_schema_ref schemas/google-sheets/delete_sheet.input.v1.json prompt_doc_ref prompts/google-sheets/delete_sheet.md [[tools.credentials]] handle google_runtime_token vendor google scopes [https://www.googleapis.com/auth/spreadsheets] audience { scheme https, host sheets.googleapis.com } injection { type header, name authorization, prefix Bearer }解读effects [network, use_secret, external_write]声明该工具会发起网络请求、使用密钥、对外部系统产生写入权限系统据此进行能力评估与提示。default_permission ask默认需要用户确认ask不会静默执行破坏性操作。origin_gate_matrixloop_run场景下为gated_unless_granted未获授权则被门禁拦截product与automation场景直接forbidden——即产品界面上不暴露该能力、自动化流程禁止调用从源头限制危险操作面。visibility model该工具对模型可见。凭据注入使用google厂商的google_runtime_tokenOAuth scope 为https://www.googleapis.com/auth/spreadsheets读写权限以Authorization: Bearer token请求头方式注入。关键设计在于WASM 访客端永远看不到真实 token所有 API 调用都经由宿主的 HTTP 能力完成由宿主负责凭据注入与限流见 api.rs 模块注释。六、常见失败路径与排查要点结合源码中的错误处理api.rs 的 api_call 与 api_status_errordelete_sheet可能出现的典型失败场景表现处理建议参数中混入action字段invalid_parametersInput 类只传 Schema 规定的两个字段sheet_id是标签名而非数字 IDGoogle API 返回 4xx映射为api_status_400等先用get_spreadsheet获取数字sheetIdtoken 过期或 scope 不足google_api_error_status_401AuthRequired 类重新走[auth.google]oauth2_code流程授权删除不存在的 sheetId / 删除唯一剩余标签页API 报错映射为api_status_{status}先get_spreadsheet核对sheetId与标签页数量网络被拒绝NetworkDenied检查宿主对sheets.googleapis.com的 HTTP 能力放行guest 声明的能力要求为sheets.googleapis.com/v4/spreadsheets*七、相关文件速查围绕delete_sheet可直接深入阅读的仓库资源行为契约文档delete_sheet.md输入 Schemadelete_sheet.input.v1.json工具登记与安全属性manifest.toml核心实现delete_sheet/batch_updateapi.rs、api.rscapability id 分发与 action 注入lib.rs返回类型定义types.rs扩展包总览google-sheets/README.md结语google-sheets.delete_sheet虽只是一个两行 prompt 文档定义的小工具但其背后是 IronClaw 一整套契约驱动 WASM 隔离 宿主能力托管的扩展机制prompt 文档与 JSON Schema 约束模型行为capability id 绑定动作语义WASM 访客端在沙箱内构造deleteSheet请求宿主统一完成凭据注入、限流与错误映射权限矩阵对破坏性操作默认 ask、并在自动化场景直接禁止。理解这一条链路也就掌握了 IronClaw 中所有外部工具能力尤其是同类表格结构操作add_sheet、rename_sheet的通用工作范式。赞分享人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载相关推荐IronClaw 谷歌表格扩展 add_sheet 工具从 Capability 提示文档到 Sheets API 的完整调用链IronClaw 谷歌表格扩展 add_sheet 工具从 Capability 提示文档到 Sheets API 的完整调用链 导读 本文以 IronCla人工智能AI 应用交互助手AI AgentIronClaw Google Sheets read_values 能力深度解析A1 范围读取的调用链、参数契约与权限模型IronClaw Google Sheets read_values 能力深度解析A1 范围读取的调用链、参数契约与权限模型 本文以 IronClaw 扩展包人工智能AI 应用交互助手AI AgentIronClaw Google Sheets 扩展 create_spreadsheet 能力全解析参数契约、WASM 调用链与安全模型IronClaw Google Sheets 扩展 create_spreadsheet 能力全解析参数契约、WASM 调用链与安全模型 IronClaw 是人工智能AI 应用交互助手AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

变频电源如何解决工厂供电不稳?AC-DC-AC原理与选型维护实战

变频电源如何解决工厂供电不稳?AC-DC-AC原理与选型维护实战

/* 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 9:44:28
【awinic inside】艾为第六代高压线性马达驱动助力OPPO Find X10系列新体验

【awinic inside】艾为第六代高压线性马达驱动助力OPPO Find X10系列新体验

产品介绍Boost Haptic awinicTikTap算法可选,丰富效果全新体验 多重专项设计为效果护航:F0追踪、AAE自动刹车、LCC一致性校准 基础性能强大:2.3V支持硅负极电池、LRA故障诊断、11V高压振感强

📅 2026/9/24 9:44:28
ESP32脑电波控制红外家电:从信号采集到红外发射的完整实现

ESP32脑电波控制红外家电:从信号采集到红外发射的完整实现

/* 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 9:44:28
MORE NEWS

更多资讯

📰

【JAVA毕设源码分享】基于spring boot的智慧医疗平台设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

📰

ARM学习笔记(8)

今天整理 i2c 的笔记,总线这个东西看着简单,把时序捋清楚也就通了大半。I2C 是什么I2C 是两根线的串行通信总线,一根 SCL 时钟线、一根 SDA 数据线。靠地址寻址从机,地址是 7 位,最多能挂 127 个从机。起始信号之后发的…

📰

ESP8266与KiwisIoT实现低成本远程水位监测与告警系统

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

📰

服装供应链SCM系统架构解析:库存周转的 MRP 运算与数据同源链路

中秋(9 月 25 日)与国庆(10 月 1 日)相邻,其间仅三个工作日,供应链备货窗口被显著压缩。库存周转的瓶颈通常不在备货量级,而在链路数据的接续:一套服装供应链SCM系统若在算、转、看三…

📰

Tinkercad电路仿真实战:从点亮LED到Arduino闪烁与555定时器

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

📰

办公文档格式互转,多款文档转换工具能力客观记录

日常办公、资料整理、文稿归档时,经常需要在不同文档格式之间互相转换。各类文档转换工具支持的文件类型、批量处理能力、排版保留效果存在明显差别。下文客观记录多款文档转换工具基础能力与使用边界,本文无任何商业合作,不区分好坏优劣&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬