用途
Google Docs 技能用于与 Google Docs 进行交互,实现文档的创建、编辑和内容管理。它通过命令行脚本调用 Google Docs API,适合需要以编程方式操作 Google Docs 文档的场景。
主要能力
- 文档创建:创建新的空白 Google Doc,可指定标题。
- 文档读取:读取文档元数据与结构;以纯文本、Markdown 或 PDF 格式读取内容。Markdown 格式保留表格、标题、格式和结构,保真度较高。
- 文档导入:将本地 Markdown 文件导入为原生格式的 Google Doc,支持表格、代码块、标题、加粗、斜体、链接和列表。本地图片引用会自动内嵌到原位置;URL 图片不支持,会被省略。YAML frontmatter 会在导入前被剥离,支持 title、folder_id、line_spacing、space_below、pageless 等字段。
- 内容编辑:追加文本到文档末尾;在指定索引位置插入文本;删除指定范围内容;按结构锚点(水平线、标题或书签)插入 Markdown 格式内容,单次操作可处理文本插入、标题样式、项目符号列表、加粗和链接。
- 格式设置:对指定文本范围应用加粗、斜体、下划线,或设置字号。
使用方式
安装依赖
pip install --user google-auth google-auth-oauthlib google-api-python-client keyring pyyaml markdown-it-py
验证配置
$SKILL_DIR/scripts/google-docs.py check
该命令会检查 Python 依赖、认证配置、与 Google Docs API 的连通性,并创建测试文档以验证写入权限。
认证
Google Docs 使用 OAuth 2.0 认证。需创建 ~/.config/agent-skills/google.yaml 并填入 OAuth 客户端凭据:
oauth_client:
client_id: your-client-id.apps.googleusercontent.com
client_secret: your-client-secret
也可使用 auth setup 命令存储凭据,使用 auth reset 清除令牌,使用 auth status 查看当前令牌信息。
常用命令
documents create --title "My Document":创建新文档。documents get DOCUMENT_ID:获取文档元数据与结构。documents read DOCUMENT_ID [--format markdown|pdf] [--output FILE]:读取内容。documents import FILE_PATH [--title TITLE] [--document-id DOC_ID] [--folder-id ID] [--no-format] [--no-images] [--json]:导入 Markdown 文件。content append DOCUMENT_ID --text "...":追加文本。content insert DOCUMENT_ID --text "..." --index N:在指定位置插入文本。content delete DOCUMENT_ID --start-index N --end-index M:删除内容范围。content insert-after-anchor DOCUMENT_ID --anchor-type TYPE [--anchor-value VALUE] --markdown "...":按锚点插入格式化内容。formatting apply DOCUMENT_ID --start-index N --end-index M [--bold] [--italic] [--underline] [--font-size SIZE]:应用格式。
适用场景
- 批量创建和填充 Google Docs 文档。
- 将本地 Markdown 报告、笔记导入为格式完整的 Google Doc。
- 在文档中按水平线、标题或书签锚点插入带格式的状态更新或新章节。
- 读取文档内容并导出为 Markdown 或 PDF 进行归档或进一步处理。
- 对文档特定文本区间应用加粗、斜体、下划线或字号调整。
限制
- 需要 OAuth 2.0 认证,首次使用需完成浏览器授权流程。
- 认证错误、权限不足或权限拒绝错误不可重试,需用户交互处理。
- 速率限制(HTTP 429)和临时服务器错误(HTTP 5xx)可在短暂等待后重试。
- 导入 Markdown 时不支持 URL 图片,仅支持本地图片内嵌。
- 删除或插入内容时需注意索引范围,错误范围可能破坏文档结构。
- 建议使用标准能力模型,因为该技能涉及结构化输入输出的 API 调用。
- 上传非 Markdown 文件到 Google Drive、共享、整理文件夹或导出文档等操作,需使用 google-drive 技能。