Gemini agent 接手表格整理 / 为什么最后一步总需要人工确认?

文章导读
让 Gemini agent 接手表格整理,最后一步还需要人工确认,通常不是模型能不能做的问题,而是三件事没被界定清楚:任务描述里没说哪些字段可以自动写回、表格结构本身有歧义(合并单元格、空行、多表头)、写回动作一旦执行就不容易回退。要判断卡在哪一步,可以先让 agent 输出从读取到写回的过程记录,再看人工确认是集中在格式类操作还是内容判断类操作上。
📋 目录
  1. 一 记录表格整理任务的每一步输出
  2. 二 检查输入表格的合并单元格与空值
  3. 三 区分格式整理和内容判断两类操作
  4. 四 把最后一步改成显式确认点
  5. 五 用同一样例复跑并对比人工确认次数
A A

让 Gemini agent 接手表格整理,最后一步还需要人工确认,通常不是模型能不能做的问题,而是三件事没被界定清楚:任务描述里没说哪些字段可以自动写回、表格结构本身有歧义(合并单元格、空行、多表头)、写回动作一旦执行就不容易回退。要判断卡在哪一步,可以先让 agent 输出从读取到写回的过程记录,再看人工确认是集中在格式类操作还是内容判断类操作上。

判断方向:先定位人工确认发生在读取、处理还是写回阶段,再决定是改任务描述还是改表格结构。适用场景是单表或少量工作表的常规整理;操作上让 agent 分步输出中间记录,并把「需人工确认」写成独立的候选文件;验证方式是同一份样例复跑,比较确认项的数量和类型;边界是内容判断类操作(补全缺失值、合并疑似同一实体)通常无法完全自动化,建议保留人工确认点。

记录表格整理任务的每一步输出

不要只看最终结果表。先要求 agent 在每一步输出一份可核对的中间记录,用来判断问题出在读取范围、处理动作还是写回环节。观察节点可以分成三个:读取时确认实际读到的区域和表头行数;处理时确认哪些单元格被改写、哪些被跳过;写回时确认目标表、写入行数和是否覆盖原数据。

下面是一份通用记录骨架,可放在提示词里,也可以要求 agent 以固定字段返回。字段名可按你的实际字段替换,关键是每步都有可对比的量。

任务:整理表格,并按步骤输出中间记录
要求:每步输出一行 JSON,不要只给最终表

{"step":"read","sheet":"Sheet1","range":"A1:F200","rows":199,"header_rows":1}
{"step":"transform","rule":"统一日期格式","changed_cells":["D12","D13"],"skipped":["D20"]}
{"step":"write","target":"sales_clean.csv","written_rows":199,"overwrite":false}

验证方式:把 read 的行数、列数与源表核对,把 transform 的 skipped 列表单独导出,把 write 的 written_rows 与源表行数对比。如果 skipped 那一列有内容,人工确认的来源往往就在这里——agent 主动放弃判断的单元格,而不是它写错的地方。

检查输入表格的合并单元格与空值

很多「最后一步要人工确认」的情况,其实是表格结构在前端就制造了歧义。可以先在源表上做一轮结构体检,再决定要不要让 agent 处理。合并单元格会让某一列只有首行有值,读出来就是大量空值;空行和隐藏行会让行号偏移;多表头会让第一条数据被当成表头。

Gemini agent 接手表格整理 / 为什么最后一步总需要人工确认?
结构特征常见影响观察与处理方式
合并单元格被合并列只有首行有值,其余为空先取消合并并向下填充,或在描述里说明「空值继承上一行」
空行、空列读取范围判断偏差,行数对不上先删除整行为空的记录,再交给 agent
多行表头第一条数据被识别为字段名,列数少一行在描述里写清表头占几行
公式与文本混排读到公式结果还是公式文本不确定先复制为值,再上传或传入
文本前后空格、全半角混用同一客户出现多个不同写法作为格式整理步骤显式声明

结构问题通常能在本地用几行脚本或表格软件的「定位空值」功能先看清,比事后追查 agent 的输出更省事。

区分格式整理和内容判断两类操作

人工确认之所以集中在最后,常见原因是格式整理和内容判断被写在同一条指令里,agent 对两类操作的处理能力和可验证性完全不同。格式整理有客观标准,结果可以用行数、列数、schema 或 diff 校验;内容判断没有唯一答案,只能给候选值再让人确认。

操作类型示例结果验证方式
格式整理去空格、统一日期格式、调整列顺序、重命名表头、删除完全重复行行数列数比对、字段类型校验、前后 diff
内容判断补全缺失的城市、合并疑似同一客户、判断哪一列为准、纠正疑似错别字输出候选值和依据,抽样人工确认

如果确认项集中在格式整理,通常说明任务描述或源表结构还有问题;如果集中在内容判断,属于这类任务的正常边界,重点应转向「让确认点更明确」,而不是追求零确认。

把最后一步改成显式确认点

与其事后人工排查,不如在任务描述里提前声明确认条件、确认对象和确认方式。改写前的描述往往把两类操作混在一起:

# 改写前
帮我把 sales.xlsx 整理一下,合并重复客户,补全缺失的城市,输出到新表。

改写后把可自动执行、需人工确认、写入条件和输出格式分开写,agent 就有了明确的停点:

Gemini agent 接手表格整理 / 为什么最后一步总需要人工确认?
# 改写后
目标:整理 sales.xlsx,输出 sales_clean.csv

可自动执行:
- 删除整行为空的行、去掉文本前后空格
- 日期统一为 YYYY-MM-DD
- 表头重命名:客户名 -> customer_name

需人工确认(不要直接写入最终表):
1) 客户名相似度合并,给出疑似同一实体的候选对
2) 缺失城市补全,给出候选值和判断依据

确认方式:
- 先输出 confirm.csv,列:row_id, field, current, proposed, reason
- 只有 approved=yes 的行才写回最终表

输出格式:CSV,UTF-8,首行表头

三个要素要写全:确认条件(什么情况触发确认)、确认对象(哪个字段、哪几行)、确认方式(候选文件还是逐行询问)。确认文件比对话里逐条问更省事,因为确认项可以批量处理,也便于留档。

用同一样例复跑并对比人工确认次数

改完描述后,建议用同一份样例复跑几次,记录每次的确认情况。对比的目的不是证明确认次数一定下降,而是看确认项变得更集中、更可解释。

跑次任务描述版本人工确认项确认项类型是否事先声明
1改写前按实际记录填写格式/内容混合否
2改写后按实际记录填写主要是内容判断是

对比维度建议看四项:确认项数量、确认项是否事先声明、确认项是否集中在内容判断类、agent 的输出是否可以直接接受。如果第二轮确认项仍然很多但都落在内容判断上,这通常是可以接受的边界;如果格式类确认项没有减少,需要回去检查源表结构和描述里的规则是否写清楚。

需要结合环境确认的一点是:不同表格工具、不同文件格式(xlsx 与 csv)对合并单元格和空值的处理方式并不一致,先在小样例上验证一次,再决定是否套用到完整表上。