问题描述
使用 DWS 创建/更新钉钉 AI 表格记录时,如果数据表第一列是 primaryDoc,记录本身可以创建成功,但第一列对应的文档容器不会被初始化。随后执行 dws aitable record primary-doc-id 查询该记录的 primaryDoc 文档 ID,会返回 no record。
这会阻塞一个常见 agent 自动化场景:
每条分析/报告作为 AI 表格的一行,第一列 primaryDoc 放短标题,同时把完整 Markdown 报告写入该行第一列的文档区域,方便用户在记录详情里直接预览完整正文。
目前 DWS 可以创建行,但无法拿到 dentryUuid / nodeId,因此无法继续用 dws doc update 写入正文。
相关上下文:之前误提到了一个非官方仓库,这里补提到官方仓库:
环境
- OS: Windows 10
- Shell: Git Bash / MSYS
- DWS version tested:
v1.0.26 (2ba1dcd, 2026-05-12T08:44:49Z)
dws doctor: login/cache OK;当时版本检查提示已有新版本可用
- Product:
aitable + doc
复现步骤
给定一个 AI 表格数据表,其第一列字段类型为 primaryDoc:
# 1. 创建记录,并给 primaryDoc 字段写入短标题
dws aitable record create \
--base-id <BASE_ID> \
--table-id <TABLE_ID> \
--records '[{"cells":{"<PRIMARY_DOC_FIELD_ID>":"Test title"}}]' \
--format json
# 2. 用返回的 recordId 查询该行 primaryDoc 对应的文档 ID
dws aitable record primary-doc-id \
--base-id <BASE_ID> \
--table-id <TABLE_ID> \
--record-id <RECORD_ID> \
--format json
期望结果
记录创建后,该行第一列 primaryDoc 应该拥有可写入的文档容器,primary-doc-id 应返回类似 dentryUuid / nodeId 的文档标识。随后可以继续执行:
dws doc update \
--node <DENTRY_UUID> \
--content-file report.md \
--mode overwrite \
--format json
实际结果
记录创建成功,但查询 primaryDoc 文档 ID 返回错误,例如:
{
"data": {},
"error": {
"code": "-1",
"message": "no record",
"retryable": true,
"type": "SYSTEM_ERROR"
},
"status": "error",
"summary": "Failed to query cell doc for record <RECORD_ID> in table <TABLE_ID>"
}
AI 表格 UI 中记录存在,但该记录第一列文档详情区域无法通过 DWS 写入,因为拿不到任何文档 ID。
已验证失败的变体
以下方式都已测试,均不能初始化 primaryDoc 文档容器:
record create 时 primaryDoc 字段写字符串标题。
- 先
record create,再 record update 写同一个标题。
record create 时省略 primaryDoc 字段。
record create 中 primaryDoc 写对象,例如 { "markdown": "..." } 或 { "title": "...", "markdown": "..." }。这类值会被判为非法字段值 / 转成 [object Object]。
- CSV 导入追加到已有表。
- 在同一个 Base 里新建默认带
primaryDoc 第一列的探针表,再创建记录。
当前 workaround
目前唯一稳定可自动化的替代方案是:
- 用
dws doc create --markdown ... --format json 创建独立钉钉文档。
- 在 AI 表格里新增一个
url 字段,例如 Trace正文文档链接。
- 用
record update 把独立文档链接回填到该 URL 字段。
这个 workaround 可用,但体验上不等价于第一列 primaryDoc 原生文档区域。
期望支持
希望 DWS / 上游能力支持以下任一方案:
aitable record create/update 在表第一列为 primaryDoc 时,能初始化该行 primaryDoc cell 的文档容器。
- 新增显式命令/API,用于按
baseId + tableId + recordId 初始化或创建该记录的 primaryDoc cell document。
- 如果 primaryDoc 文档容器初始化需要特殊 API、参数或前端交互,请在 CLI 文档中说明正确流程。
这样可以让 DWS 支持完整自动化的 AI 表格报告库:每一行既有结构化字段,也能在第一列文档区预览完整 Markdown 正文。
问题描述
使用 DWS 创建/更新钉钉 AI 表格记录时,如果数据表第一列是
primaryDoc,记录本身可以创建成功,但第一列对应的文档容器不会被初始化。随后执行dws aitable record primary-doc-id查询该记录的 primaryDoc 文档 ID,会返回no record。这会阻塞一个常见 agent 自动化场景:
目前 DWS 可以创建行,但无法拿到
dentryUuid/nodeId,因此无法继续用dws doc update写入正文。相关上下文:之前误提到了一个非官方仓库,这里补提到官方仓库:
环境
v1.0.26 (2ba1dcd, 2026-05-12T08:44:49Z)dws doctor: login/cache OK;当时版本检查提示已有新版本可用aitable+doc复现步骤
给定一个 AI 表格数据表,其第一列字段类型为
primaryDoc:期望结果
记录创建后,该行第一列
primaryDoc应该拥有可写入的文档容器,primary-doc-id应返回类似dentryUuid/nodeId的文档标识。随后可以继续执行:实际结果
记录创建成功,但查询 primaryDoc 文档 ID 返回错误,例如:
{ "data": {}, "error": { "code": "-1", "message": "no record", "retryable": true, "type": "SYSTEM_ERROR" }, "status": "error", "summary": "Failed to query cell doc for record <RECORD_ID> in table <TABLE_ID>" }AI 表格 UI 中记录存在,但该记录第一列文档详情区域无法通过 DWS 写入,因为拿不到任何文档 ID。
已验证失败的变体
以下方式都已测试,均不能初始化 primaryDoc 文档容器:
record create时 primaryDoc 字段写字符串标题。record create,再record update写同一个标题。record create时省略 primaryDoc 字段。record create中 primaryDoc 写对象,例如{ "markdown": "..." }或{ "title": "...", "markdown": "..." }。这类值会被判为非法字段值 / 转成[object Object]。primaryDoc第一列的探针表,再创建记录。当前 workaround
目前唯一稳定可自动化的替代方案是:
dws doc create --markdown ... --format json创建独立钉钉文档。url字段,例如Trace正文文档链接。record update把独立文档链接回填到该 URL 字段。这个 workaround 可用,但体验上不等价于第一列
primaryDoc原生文档区域。期望支持
希望 DWS / 上游能力支持以下任一方案:
aitable record create/update在表第一列为primaryDoc时,能初始化该行 primaryDoc cell 的文档容器。baseId + tableId + recordId初始化或创建该记录的 primaryDoc cell document。这样可以让 DWS 支持完整自动化的 AI 表格报告库:每一行既有结构化字段,也能在第一列文档区预览完整 Markdown 正文。