1. 从手动整理会议纪要说起:AI Agent 操作钉钉文档表格到底能做什么
每周开完项目会,我都要花半小时把飞书妙记里的内容复制到钉钉知识库,再手动更新需求池表格的状态字段。这种重复劳动做多了,自然会想:能不能让 AI Agent 直接帮我操作钉钉文档和表格?答案是可以的,而且现在已经有比较成熟的 Skill 库方案。
所谓 Skill 库,你可以把它理解成给 AI Agent 装的一套「钉钉操作手册」。AI 本身不会操作钉钉,但通过遵循 anthropics/skills 规范的技能包,Claude Code、Cursor、GitHub Copilot 这类工具就能获得读写钉钉文档、查询表格记录、批量新增数据的能力。你只需要用自然语言说「把今天的会议纪要写进知识库的项目文档目录」,Agent 就会自动完成找目录、新建文档、写入内容这一整套动作。
这套方案适合谁?我梳理了三类典型用户:第一类是每天要处理大量钉钉文档和表格的运营、项目经理,他们不需要懂 API,只需要用说话的方式完成重复操作;第二类是正在搭建 AI Agent 工作流的开发者,想把钉钉纳入自动化链路;第三类是想体验 Skill 机制但还没找到落地场景的技术爱好者。dingtalk-skills 这个项目目前支持钉钉文档与知识库、钉钉 AI 表格两大技能模块,覆盖查看知识库列表、浏览目录、新建文档文件夹、读写更新文档内容、管理成员权限,以及表格的查看新建删除工作表、管理字段、批量新增记录、查询全部记录、更新删除记录等操作。
但这里有个容易被忽略的环节:Skill 库负责的是「让 Agent 会操作钉钉」,而 Agent 背后的模型请求走哪条通道,直接决定了你调用的稳定性和成本。Claude Code 默认走 Anthropic 官方接口,国内网络环境下经常遇到连接问题。所以本文的完整链路是:用 dingtalk-skills 给 Claude Code 装上钉钉操作能力,再把模型请求改到 TaoToken 的统一 Key/API 通道,最后跑通一次从发起指令到文档写入成功的验证。下面我会把每一步的配置片段、权限清单、验证动作和排错方法都写清楚,你可以直接跟着做。
2. 前置准备:TaoToken 统一 Key 通道与钉钉开放平台权限清单
在动手装 Skill 之前,有两件事必须先准备好:一是模型请求的通道,二是钉钉侧的权限。这两块任何一块缺失,后面都会卡住。
先说 TaoToken 这条通道。Claude Code 默认请求 Anthropic 官方接口,国内直连经常超时。TaoToken 提供的是统一的 API 通道,你只需要一个 Key,就能让 Claude Code 的模型请求走这条通道。具体操作是:先到 TaoToken 控制台创建一个 API Key,然后拿到两个关键信息——Base URL 和 Key。Base URL 用https://taotoken.net/api,Key 就是你在控制台生成的那串字符。这两个信息后面配置 Claude Code 时会用到。
如果你还没创建 Key,可以走这个流程:打开 TaoToken 控制台,进入 API Keys 页面,点新建,复制生成的 Key 并妥善保存。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API Keys 页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。这两个页面建议都收藏,后面排错时会反复用到。
再说钉钉侧的权限。dingtalk-skills 操作钉钉文档和表格,底层依赖钉钉开放平台的企业内部应用。你需要先在钉钉开放平台创建一个企业内部应用,然后开通文档和表格相关的权限。具体清单如下:
| 权限项 | 用途 | 是否必须 |
|---|---|---|
| 知识库读权限 | 查看知识库列表、浏览目录结构 | 是 |
| 知识库写权限 | 新建文档、文件夹、写入更新内容 | 是 |
| 文档删除权限 | 删除文档 | 按需 |
| 成员管理权限 | 管理文档成员权限 | 按需 |
| AI 表格读权限 | 查看工作表、查询记录 | 是 |
| AI 表格写权限 | 新建工作表、批量新增记录、更新删除记录 | 是 |
| 字段管理权限 | 管理表格字段 | 按需 |
创建应用后,你会拿到 AppKey 和 AppSecret,这两个信息在第一次使用 Skill 时 AI 会引导你配置,配置一次后会自动保存,下次直接用。这里有个坑要注意:钉钉开放平台的权限开通后需要发布应用版本才能生效,很多人配完权限直接测试,结果一直报无权限,就是因为没发布。
另外,Claude Code 本身需要先装好并能在终端正常运行。如果你还没装,可以用 npm 全局安装。装好后先别急着配 Skill,先用 TaoToken 的 Key 把 Claude Code 的模型通道跑通,确认能正常对话,再进入下一步。这样出问题时能快速定位是通道问题还是 Skill 问题。
3. 可复制配置:dingtalk-skills 安装与 Claude Code 接入 TaoToken 通道
这一节是全文的核心操作部分,我会把 Skill 安装、Claude Code 通道配置、钉钉应用信息配置三块的可复制片段都列出来。你按顺序执行即可。
3.1 安装 dingtalk-skills 技能包
dingtalk-skills 遵循 anthropics/skills 规范,安装方式很简单,用 npx 直接拉取。打开终端,执行:
# 安装钉钉文档与知识库技能 npx skills add breath57/dingtalk-skills@dingtalk-document # 安装钉钉 AI 表格技能 npx skills add breath57/dingtalk-skills@dingtalk-ai-table两条命令分别对应文档和表格两个技能模块。安装过程不需要额外装任何库,也不需要在项目里写代码。安装完成后,Skill 会被放到 Claude Code 能识别的技能目录下。你可以用npx skills list确认是否安装成功,如果列表里出现 dingtalk-document 和 dingtalk-ai-table,说明技能包已经就位。
3.2 配置 Claude Code 走 TaoToken 通道
Claude Code 的模型请求配置有两种方式:环境变量和 settings 文件。我推荐用 settings 文件,因为更稳定,也不容易因为终端会话切换而丢失。Claude Code 的配置文件路径是~/.claude/settings.json,如果目录不存在就手动创建。配置内容如下:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "你的TaoToken Key" } }把你的TaoToken Key替换成你在 TaoToken 控制台生成的那串 Key。这里要注意,Base URL 末尾不要加斜杠,直接写https://taotoken.net/api即可。配置保存后,重启 Claude Code 让配置生效。
如果你更习惯用环境变量,也可以在终端里临时设置:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="你的TaoToken Key"但环境变量方式在关闭终端后会失效,所以长期使用还是建议写进 settings.json。配置完成后,你可以先在 Claude Code 里发一句「你好」测试通道是否通。如果能正常回复,说明 TaoToken 通道已经跑通。
3.3 配置钉钉应用信息
Skill 装好、通道配好后,第一次使用钉钉技能时,Claude Code 会引导你配置钉钉应用信息。你需要准备三样东西:AppKey、AppSecret、以及你的钉钉企业 ID(部分场景需要)。配置过程是对话式的,AI 会依次问你这些信息,你直接粘贴即可。配置完成后会自动保存到本地,下次使用不需要重复输入。
这里有个细节:如果你同时装了文档和表格两个技能,第一次使用表格技能时可能还会再问一次应用信息,因为两个技能模块的配置是独立的。按提示填就行,填过一次后都会记住。
配置完成后,你可以用一句简单的指令测试 Skill 是否生效,比如「列出我的钉钉知识库」。如果 Agent 能返回知识库列表,说明文档技能已经正常工作。如果报错,先别急着改配置,对照下一节的排错清单逐项检查。
4. 验证请求:从自然语言指令到钉钉文档写入成功的完整动作
配置做完后,最关键的一步是跑通一次完整的验证动作。我设计了一个最小可用流程:让 Agent 在钉钉知识库里新建一篇文档并写入内容。这个动作覆盖了目录查找、文档创建、内容写入三个核心能力,能跑通就说明整条链路没问题。
4.1 发起指令
在 Claude Code 里输入这样一句话:
在钉钉知识库里找到「项目文档」目录,在里面新建一篇标题为「2026-03 会议纪要」的文档,内容写入:本次会议确认了三个需求优先级,分别是登录优化、报表导出、消息推送。这句话包含了目标目录、文档标题、写入内容三个要素。Agent 收到指令后,会先调用 dingtalk-document 技能查找知识库列表,定位到「项目文档」目录,然后在该目录下新建文档,最后把内容写进去。
4.2 观察执行过程
Claude Code 会逐步展示它的操作过程。正常情况下,你会看到类似这样的执行链路:先调用知识库列表接口,返回你账号下有权限的知识库;然后浏览「项目文档」目录结构;接着创建新文档;最后写入内容。每一步都会有对应的工具调用记录。如果中间某一步失败,报错信息会直接显示出来,这对排错很有帮助。
4.3 确认写入结果
指令执行完成后,打开钉钉知识库,进入「项目文档」目录,应该能看到新建的「2026-03 会议纪要」文档,点进去内容就是刚才写入的那段话。如果文档存在但内容为空,说明写入环节出了问题,通常是权限配置不完整导致的。
4.4 再验证一次表格操作
文档跑通后,建议再用表格技能验证一次。输入:
帮我看一下需求池表格里所有状态是「待排期」的记录Agent 会调用 dingtalk-ai-table 技能,查询表格记录并返回结果。如果能看到具体记录列表,说明表格技能也正常工作。到这里,从 Claude Code 发起指令、经 TaoToken 通道调用模型、再由 Skill 操作钉钉文档表格的完整链路就全部跑通了。
实测下来,整个验证过程最耗时的部分不是配置,而是钉钉开放平台的权限发布。很多人卡在权限没发布这一步,导致 Skill 调用一直报无权限。所以如果你在验证时遇到权限类报错,先回钉钉开放平台确认应用版本是否已发布。
5. 本篇常见错排查:401、local proxy failed、reading choices 与 OAuth 报错对照
配置和验证过程中,最容易遇到四类报错。我把它们和对应的排查方法整理出来,你遇到时可以直接对照。
5.1 401 报错:Key 无效或未生效
如果你在 Claude Code 里发消息后收到 401,通常是 TaoToken 的 Key 配置有问题。排查顺序是:第一,确认 settings.json 里的ANTHROPIC_API_KEY填的是 TaoToken 控制台生成的 Key,不是 Anthropic 官方的 Key;第二,确认 Key 没有多余空格或换行;第三,到 TaoToken 控制台确认这个 Key 的状态是启用中,没有被禁用或删除。如果 Key 刚创建,稍等几秒再试,有时候有短暂的生效延迟。
5.2 local proxy failed:通道地址配置错误
这个报错通常出现在 Base URL 配置不正确的时候。检查ANTHROPIC_BASE_URL是否写成https://taotoken.net/api,注意末尾不要加斜杠,也不要写成https://taotoken.net/api/。另外确认你的网络能正常访问这个地址。如果配置无误但仍然报错,可以尝试重启 Claude Code,让配置重新加载。
5.3 reading choices 报错:响应格式异常
这个报错一般和模型返回格式有关。可能的原因是 Base URL 指向的通道返回了非预期格式的响应。排查方法是:确认 TaoToken 通道本身工作正常,可以先用模型对话功能测试一下。打开 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,在页面上发一条消息,看是否能正常返回。如果模型对话正常但 Claude Code 报 reading choices,可能是 Claude Code 版本和通道的兼容性问题,尝试升级 Claude Code 到最新版。
5.4 OAuth 报错:钉钉应用授权问题
这个报错出现在 Skill 操作钉钉的阶段,通常和钉钉应用配置有关。排查清单:第一,确认钉钉开放平台的企业内部应用已创建,且 AppKey 和 AppSecret 填写正确;第二,确认文档和表格相关权限已开通;第三,确认应用版本已发布,权限变更后必须重新发布才生效;第四,确认你的钉钉账号在该应用的可使用范围内。如果这四项都没问题,可以尝试删除本地保存的钉钉配置,重新走一次配置引导。
5.5 配置三件套速查
无论遇到哪类报错,你都可以用下面这个三件套速查表快速定位:
| 组件 | 配置项 | 正确值 |
|---|---|---|
| TaoToken 通道 | Base URL | https://taotoken.net/api |
| TaoToken 通道 | Key | 控制台生成的 API Key |
| Claude Code | 配置文件 | ~/.claude/settings.json |
| 钉钉应用 | AppKey/AppSecret | 开放平台企业内部应用信息 |
| 钉钉应用 | 权限状态 | 已开通并已发布版本 |
把这张表里的每一项都核对一遍,大部分配置类报错都能解决。如果还是不行,可以到 TaoToken 的接入文档页面查看最新的配置说明,地址是 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
6. 把钉钉操作纳入长期 Agent 工作流:Coding Plan 与后续扩展方向
跑通最小可用流程后,你可能会想把这套方案用到日常工作中。这里有两个方向可以继续深入。
第一个方向是扩展 Skill 的使用场景。dingtalk-skills 目前支持文档和表格两大模块,但钉钉的自动化场景远不止这些。项目后续计划支持消息发送、审批、通讯录、日历、待办等场景。如果你有特定需求,可以到 GitHub 仓库提 Issue。对于已经在用 Claude Code 做日常开发的用户,把钉钉操作纳入 Agent 工作流后,很多跨系统的重复操作都可以交给 Agent 完成。比如每天早上的站会纪要自动写入知识库、需求池表格状态自动同步、项目进度自动汇总等。
第二个方向是优化模型调用的成本和稳定性。如果你需要长期、高频地使用 Agent 操作钉钉,单次按量调用可能不是最经济的方式。TaoToken 提供了 Coding Plan 这类长期方案,适合需要持续使用编码和 Agent 能力的场景。你可以到 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 了解具体的方案细节。对于团队使用场景,统一走 TaoToken 通道还有一个好处:Key 和用量可以集中管理,不需要每个人单独配置。
还有一个实践中的小技巧:把常用的钉钉操作指令固化下来,形成一套自己的指令模板。比如「整理会议纪要」这个动作,你可以固定成一句包含目录、标题格式、内容结构的指令,每次只需要替换具体内容。这样 Agent 的执行路径会更稳定,出错概率也更低。我试过把需求池查询指令模板化后,每次查询的返回格式都保持一致,后续做数据汇总时省了不少事。
如果你在配置过程中遇到本文没覆盖的报错,建议先到 TaoToken 的接入文档页面查一下最新的配置说明,那里会同步更新通道地址和参数变化。钉钉侧的权限和 API 变更则以钉钉开放平台的官方文档为准。整套链路跑通后,你会发现让 AI Agent 操作钉钉文档和表格,其实比想象中简单——难点不在技术,而在于把权限和通道这两块前置工作做扎实。