这篇能做出什么
先看结果,再讲怎么搭。配置完成之后,一天的工作流大致是这样运转的:
- 早上打开 Gmail,未读邮件已经分成三类:需要你亲自回复的、需要你做决定的、只需要知道的。前两类各带一句摘要和一个截止时间。
- 需要回复的邮件,草稿已经写好放在草稿箱,语气按你平时的习惯,你改几个字就能发。
- 日历里下周有三处时间冲突,智能体列出了冲突双方、涉及的人、以及两个可行的改期方案。
- 会后纪要和行动项自动生成,行动项按负责人拆开写进一张表格,同时在你自己的「AI 待办」日历上占好时间格。
有一条边界要提前说清楚:智能体不替你按发送键。至少在头两周,所有对外的动作都停在草稿和待确认这一步。等你看过几十份输出、确认它的判断可靠了,再逐项放开。
前置条件清单
动手之前先对齐这几件事:
1. 账号类型。Gemini 在 Google Workspace 中的可用范围取决于你所购买的版本和组织策略,不同版本包含的能力不一样,具体以官方页面为准。个人 Google 账号在 Gemini 应用里也有部分能力,但和 Workspace 内的集成深度不同。
2. 管理员开关。如果你用的是组织账号,Gemini 相关服务通常需要管理员在管理控制台里开启,并决定是否允许智能体访问 Gmail、日历、Drive 数据。这条路走不通的话,后面所有步骤都会卡住。
3. 双重验证。账号必须开启两步验证,并且设置好恢复方式。让智能体接触你的邮件和日历,等于把一部分身份权限交出去,这一步不能省。
4. 浏览器与网络。用桌面版 Chrome 或 Edge 登录,侧边栏类功能在手机端和小屏窗口里往往不显示。
5. 一段可支配的试错时间。头一次配置大约需要 40 分钟,之后每天花 5 分钟核对结果,连续一周。
第 1 步:摸清入口,别急着授权
Gemini 在 Workspace 里的入口不止一个,功能边界也不同。先用一张表把你能用的入口列出来:
| 入口 | 典型用途 | 是否可写操作 |
|---|---|---|
| Gmail 侧边栏 | 总结长邮件串、起草回复、查历史 | 可生成草稿 |
| 日历右侧面板 | 找空闲时间、建事件、改期 | 可创建与修改事件 |
| Docs 侧边栏 | 生成提纲、改写、从会议记录提炼行动项 | 可写入文档内容 |
| Drive | 跨文件检索与总结 | 只读为主 |
| Gemini 应用 / 独立界面 | 跨应用的多步任务 | 取决于授权范围 |
| Workspace Flows 或 Apps Script | 定时、批量、条件触发 | 可编程控制 |
打开每一个入口,先只问它一句:「你现在能看到我哪些数据?」把它自己的回答记下来,和你以为的权限范围对一遍。这一步能提前发现八成的问题。
第 2 步:授权,从最小范围开始
组织账号:让管理员在管理控制台里找到附加 Google 服务或 Gemini 相关设置项,开启服务,并确认数据访问策略允许智能体读取 Gmail、日历、Drive。菜单的层级名称会随界面调整,路径以官方文档当前版本为准。
个人账号:到账号的「安全性」页面查看「第三方应用访问权限」,确认没有多余的授权;同时确认 Gemini 应用的活动记录设置符合你的预期。
关于数据处理,Google 对 Workspace 企业版有客户数据不用于训练通用模型的承诺,条款细节以官方说明为准。即便如此,下面这条规则仍然建议自己执行:不要让它处理你不希望出现在任何日志里的内容,比如身份证件、薪资明细、医疗记录。
授权力度建议按三个阶段推进,每个阶段停留三到五天:
1. 只读阶段:只允许读取和总结,不允许生成草稿。
2. 草稿阶段:允许生成邮件草稿、文档草稿、日程建议,但所有内容都需要你手动确认。
3. 执行阶段:允许创建日历事件、写入文档、给内部同事发日程邀请。对外邮件仍然手动发送。
第 3 步:划一块试验田
不要让智能体一上来就面对整个收件箱,那会得到一份又长又泛的总结。给它划定范围。
Gmail 侧:新建两个标签,比如「AI-待处理」和「AI-已归档」。再建一条过滤规则:来自固定几个发件人、或者主题包含特定关键词的邮件,自动打上「AI-待处理」。
日历侧:新建一个独立日历,命名成「AI 待办」,颜色设成醒目的。智能体创建的所有任务型事件都进这个日历,不混进你的主日历。这样你随时可以整个关掉它。
Drive 侧:建一个文件夹专门放生成物,比如「AI 产出物-待核对」。文件名带上日期前缀,方便回溯。
第 4 步:下发第一份任务说明
提示词的质量直接决定输出质量。不要把需求写成一句「帮我处理邮件」,而要写成一份任务说明书。下面这份可以直接复制修改:
```text
【角色】你是我的办公助理,只处理我明确指定的范围。
【范围】Gmail 中带「AI-待处理」标签的会话,时间范围为最近 7 天。
不包含任何已归档会话。
【任务】逐条阅读,按下面三类归并:
1. 需要我亲自回复的:列出主题、发件人、一句话摘要、建议截止时间。
2. 需要我做决定的:列出决策点、可选方案、各自影响。
3. 只需知道的:一行摘要即可。
【输出格式】Markdown 表格,列为:分类 | 主题 | 发件人 | 摘要 | 截止时间。
【禁止】不要发送任何邮件;不要删除或归档任何会话;不要邀请日历参会人。
【不确定时】把该条放进「需要人工确认」区,并用一句话说明你不确定的点。
```
关键在最后两段。禁止动作防止它越权,不确定时如何处理防止它编造。少了这两段,输出看起来漂亮但没法用。
日历任务同理:
```text
请在 3 月 12 日到 3 月 15 日之间,为我找出一个 45 分钟的时段,
和 zhang@example.com、li@example.com 开一个线上会。
约束:我的时区是 Asia/Shanghai;前后各留 15 分钟缓冲;
避开每天 12:00-13:30;不要动我主日历上已有的任何事件。
输出:三个候选时段,按推荐顺序排列,并说明每个时段的冲突情况。
```
文档任务:
```text
阅读 Drive 中「会议记录」文件夹里最近一次会议的纪要文档,
提取所有行动项,输出表格,列为:行动项 | 负责人 | 截止时间 | 原文出处。
原文出处要写明文档里的段落位置,方便我核对。
如果某项没有明确负责人或时间,在对应单元格写「未指定」,不要猜测。
```
「不要猜测」这四个字,能省掉大量核对时间。
第 5 步:把结果落到可核查的地方
智能体聊完就忘,结果必须落到结构化载体上。用 Apps Script 做两个小工具,一个导出日程快照,一个巡检待处理邮件。
打开一张 Google 表格,菜单里进入扩展程序 → Apps Script,粘贴下面的代码:
```javascript
// 把未来 7 天的日程导出到「日程快照」工作表,用于每日核对
function exportWeekToSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('日程快照') || ss.insertSheet('日程快照');
sheet.clearContents();
var header = ['开始', '结束', '标题', '地点', '参会人', '我的状态'];
sheet.appendRow(header);
var cal = CalendarApp.getDefaultCalendar();
var now = new Date();
var later = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
var events = cal.getEvents(now, later);
var rows = events.map(function (e) {
return [
e.getStartTime(),
e.getEndTime(),
e.getTitle(),
e.getLocation(),
e.getGuestList().map(function (g) { return g.getEmail(); }).join(', '),
String(e.getMyStatus())
];
});
if (rows.length > 0) {
sheet.getRange(2, 1, rows.length, header.length).setValues(rows);
sheet.getRange(1, 1, 1, header.length).setFontWeight('bold');
}
Logger.log('导出完成,共 ' + rows.length + ' 条');
}
```
再用一段代码统计还没处理的邮件数量:
```javascript
// 统计「AI-待处理」标签下未读的会话数,低于阈值说明该催智能体干活了
function countPendingTriage() {
var label = GmailApp.getUserLabelByName('AI-待处理');
if (!label) {
Logger.log('没有找到「AI-待处理」标签,请先创建');
return;
}
var threads = label.getThreads(0, 100);
var unread = threads.filter(function (t) { return t.isUnread(); });
Logger.log('待处理会话总数:' + threads.length + ',其中未读:' + unread.length);
unread.slice(0, 10).forEach(function (t) {
Logger.log('- ' + t.getFirstMessageSubject());
});
}
```
在编辑器左侧的触发器里,给这两个函数各加一个时间触发器,比如每天早上 8 点和晚上 7 点各跑一次。注意:exportWeekToSheet 每次会清空重写,所以不要在同一张表里手动加备注;如果需要备注,另开一列或另开一张表。
第 6 步:结果校验,三张清单
智能体的输出必须过三关,缺一不可。
事实关:人名、邮箱、时间、金额、承诺事项,逐条对照原文。凡是输出里出现了原文没有的信息,一律标红退回。
权限关:这份文档的分享范围是什么?这个日历事件的参会人能看到什么?智能体的默认设置有时候比你想的更开放,创建之后立刻检查一次共享设置。
完整性关:用「AI-待处理」标签下的未读数量,和智能体给出的条目数量对一遍。差得多了,说明它的筛选条件有问题,通常是标签过滤或会话合并导致的漏读。
校验时间控制在每天 5 分钟以内。如果超过 10 分钟,说明前面的任务说明写得太模糊,回头改提示词,而不是每天硬扛。
常见坑与排错
智能体说「看不到那封邮件」。多数情况是三个原因:邮件被打上了不匹配的标签;会话视图把多封邮件合并成一个会话;或者邮件在共享邮箱、代理访问的账号里,而你登录的身份没有代理权限。
日程时间对不上。先确认系统时区和日历显示时区是否一致。跨时区会议建议在任务说明里明确写「所有时间以 Asia/Shanghai 表示」。
修改了日历事件但没有生效。检查你对该日历是否有写入权限。只读订阅日历无法被修改,需要先在自己的日历里创建一个副本。
文档链接发出去别人打不开。组织策略可能禁止了对外共享。这种情况不是智能体的问题,去管理控制台确认共享策略。
输出越来越跑偏。通常是上下文太长导致的。把一个长任务拆成三个短任务,每个任务只给必要背景,效果反而更稳。
它编造了不存在的会议或参会人。在任务说明里加上「所有事实必须给出来源位置,没有来源的条目标记为未指定」,并要求它把不确定项单列。
草稿被误发。立刻关闭自动发送相关的选项,退回草稿阶段。这类问题一次就够警醒了。
重复创建任务。定时脚本重复运行会生成重复事件。参考第 5 步的代码,在写事件之前先查一遍当天是否已存在同名事件,或者用固定的标题前缀加日期做去重键。
下一步建议
跑顺一周之后,可以往三个方向扩展。
一是加巡检。用触发器每天早上汇总一次「未处理邮件数 + 今日日程 + 到期行动项」,生成一页简报发给自己。这比让智能体主动推消息可靠。
二是做周复盘。每周五把这一周生成的草稿和被采纳的比例拉出来看。如果某一类草稿你从来不采纳,说明那类任务不适合交给它,直接从任务说明里删掉。
三是把任务说明变成团队模板。一份好的任务说明书就是一份流程文档,同事可以直接复用。前提是先把涉及个人隐私的部分抽掉。
最后提醒一句:入口名称、功能可用范围、订阅版本对应关系都会随产品迭代变化,动手前花两分钟看一眼官方文档当前版本的说明,比照着半年前的教程踩坑要省事得多。
