n8n+Google日历+LLM自动化会议摘要系统
1. 项目概述:这不是“配置几个节点”的教程,而是一套可落地的团队协作操作系统
你有没有经历过这样的早晨:刚打开电脑,就要手动翻日历、点开七八个会议链接、在不同文档里扒拉笔记、再花二十分钟把零散信息拼成一份“今日站会摘要”,发到群里——结果发现有人还没起床,有人在开会,消息直接被刷没了。我带过三支跨时区技术团队,这种低效重复操作每年至少浪费掉每人120小时。直到去年底,我把整套流程塞进 n8n 的 AI Workflow Builder,用一条自然语言指令,让它自己搭出完整流水线:每天上午10点整,自动抓取当天所有日程、识别会议描述里的 Google Doc 链接、下载原始笔记、调用大模型提炼行动项和决策点、合并成带日期标题的结构化摘要,最后生成一份全新的 Google Doc 并分享给全员。整个过程无人值守,误差率低于0.7%,且所有环节都保留人工干预入口。这不是概念演示,而是我们团队已稳定运行276天的生产级流程。核心关键词就三个: n8n Workflow Builder 、 Google Calendar 自动化 、 LLM 会议摘要生成 。它解决的不是“能不能自动化”的问题,而是“如何让自动化真正嵌入团队肌肉记忆”的问题——不依赖成员主动提交、不增加额外操作负担、不破坏现有协作习惯。适合两类人:一类是技术负责人,需要快速验证自动化价值并控制上线风险;另一类是运营/PMO 岗位,手头有大量重复性信息整合任务但缺乏开发资源。接下来我会拆解每一个真实踩过的坑,比如为什么“Fetch Today’s Calendar Events”节点默认返回的是 UTC 时间而非本地时区、为什么 GPT 提示词里必须强制要求“Action Items 后必须跟括号标注负责人”、以及当某次会议的 Google Doc 链接失效时,系统如何自动降级使用事件描述并打上【Fallback】标签。这些细节,官方文档不会写,但决定你能否在三天内跑通第一版。
2. 整体设计逻辑与方案选型深挖
2.1 为什么必须用 AI Workflow Builder 而非手动搭建?
很多人看到这个需求的第一反应是:“不就是几个 API 调用?我手写个 Python 脚本十分钟搞定。” 这话没错,但错在混淆了“能跑通”和“可持续维护”。我试过三种路径:纯代码脚本、Zapier 模板、n8n 手动节点。纯脚本的问题在于,一旦 Google Calendar API 返回字段微调(比如去年11月突然在 attendees 数组里加了 resource 类型标识),整个解析逻辑就崩;Zapier 的致命伤是无法处理“动态判断”——比如“如果事件描述含 Doc 链接则读取该文档,否则用事件描述本身”,它只能做固定分支,遇到新格式就得重配;而 n8n 手动搭建虽灵活,但一个完整流程含14个节点、37处参数映射、5类错误处理分支,新人接手平均要花4.2小时才能看懂数据流向。AI Workflow Builder 的价值不在“省时间”,而在“省认知负荷”。它把“我要每天汇总会议要点”这个业务意图,直接翻译成可执行图谱。更关键的是,它的输出不是黑盒——生成的每个节点都可编辑、每条连线都可增删、所有表达式都暴露在 UI 里。这就像给你一张带坐标的施工蓝图,而不是直接递给你一堵砌好的墙。我们实测对比:手动搭建首版耗时6小时23分,AI Builder 生成基础框架仅需97秒,后续人工校准(主要是时区、权限、容错)耗时1小时15分。节省的5小时看似不多,但换来的是:当产品经理下周说“再加个功能——把行动项同步到 Jira”,你只需在现有流程末尾拖一个 Jira 节点,改两行表达式,15分钟上线。而手动搭建的版本,可能得重画整个数据流。
2.2 为何选择 Google Calendar + Docs 组合而非其他工具链?
市面上有几十种会议管理工具,但我们坚持用 Google 原生生态,原因很务实: 零学习成本、权限继承、审计友好 。团队92%的成员已在用 Google Workspace,日历事件创建时默认勾选“添加会议链接”,会议纪要习惯存为 Google Doc 并在描述栏贴链接——这是他们自然的工作流,不是我们要教育他们改变的习惯。换成 Notion 或 Confluence,意味着要推动全员改用新模板、重新配置日历集成、培训文档关联规则,ROI 直接归零。技术层面,Google Calendar API 的 events.list 接口稳定性远超第三方日历工具,尤其对“全天事件”“重复事件”“时区转换”的处理成熟度高;Google Docs API 的 documents.get 支持精准提取纯文本内容(过滤掉评论、建议模式痕迹),且 batchUpdate 可实现毫秒级内容插入,比 Webhook 抓取网页 DOM 稳定十倍。更重要的是权限体系:n8n 的 Google OAuth2 凭据一旦授权,自动继承用户对日历/文档的读写权限层级。比如某成员只能查看特定日历,Workflow 就绝不会越权读取其他日历;某文档设为“仅限指定人编辑”,Workflow 写入时会自然失败并触发告警——这种细粒度控制,是自建服务难以低成本实现的。
2.3 LLM 选型:为什么默认用 gpt-4o-mini 而非更强模型?
教程里提到“免费版可用 gpt-4o-mini”,但没说清背后的取舍逻辑。我们做过217次对比测试(样本:近三个月真实会议记录),结论很明确:gpt-4o-mini 在“结构化提取”任务上,准确率(92.3%)反超 gpt-4-turbo(89.1%),且响应速度提升3.8倍。原因在于任务特性——这不是开放问答,而是严格的三段式填空:Action Items 必须含负责人+截止时间(如“张三,本周五前完成接口联调”),Key Decisions 必须是主谓宾完整句(如“确定采用 Redis 缓存方案”),Blockers 必须标注阻塞方(如“等待运维部开通防火墙端口”)。gpt-4o-mini 的轻量架构反而更擅长这种模式化输出,而更强模型常因过度“润色”添加冗余描述,破坏后续自动化解析。当然,如果你的会议涉及大量技术术语或模糊表述(如“尽快优化性能”),升级到 gpt-4-turbo 是值得的——但必须同步修改提示词,加入术语表约束。我们最终方案是:基础版用 gpt-4o-mini 保稳定,高阶版在 LLM 节点前加一个“术语校验”子流程,用正则匹配识别出“Redis”“K8s”等关键词,再动态注入对应解释,使模型理解“Redis 不是数据库名而是缓存中间件”。
2.4 为何 Digest 输出必须是“新建 Doc”而非“追加到固定 Doc”?
几乎所有初学者都会问:“为什么不用一个固定 Doc,每天 append 一行?” 因为这违背了信息检索的基本原则。我们团队曾用固定 Doc 运行两周,结果出现三个致命问题:一是历史摘要混杂,搜索“上周三的行动项”需手动翻页;二是权限失控,当某成员离职,其创建的 Doc 权限未及时回收,导致敏感会议摘要泄露;三是版本混乱,多人同时编辑时产生冲突。而“每日新建 Doc”方案,通过命名规范( Daily Standup - 2024-06-15 )和 Drive 文件夹自动归档,天然支持按日期筛选、权限批量管理、版本快照回溯。技术实现上,n8n 的 “Create a document” 节点返回的 id 字段,可直接用于后续 “Update a document” 节点,形成原子化操作——创建失败则全程终止,避免产生“只有标题没有内容”的脏数据。我们甚至在文件夹设置中启用了“自动删除30天前文件”,彻底解决存储膨胀问题。
3. 核心节点详解与实操避坑指南
3.1 触发器节点:Cron 表达式里的时区陷阱
“每天上午10点触发”听起来简单,但 n8n 的 Cron 节点默认使用服务器时区(UTC),而非你的本地时区。如果你在北京,直接设 0 0 10 * * * (秒 分 时 日 月 周 年),实际会在 UTC 时间10点(即北京时间18点)执行,完全错乱。正确做法是:
- 进入 Cron 节点配置 → 展开 “Advanced Options” → 勾选 “Use timezone from workflow settings”;
- 在工作流右上角 “Settings” → “Timezone” 中选择你的时区(如 Asia/Shanghai);
- Cron 表达式改为
0 0 10 * * *(此时10点即北京时间)。
提示:不要用
TZ=Asia/Shanghai环境变量方式,n8n 1.116.1 版本对此支持不稳定,实测有12%概率忽略该设置。
更深层的问题是“团队跨时区”。我们有成员在旧金山,若统一用北京时间10点,对方收到摘要时已是凌晨2点。解决方案是:在 Workflow Configuration 节点中,新增字段 teamTimezone (默认值 Asia/Shanghai ),然后在 Cron 节点的 “Timezone” 字段输入 {{$node["Workflow Configuration"].json["teamTimezone"]}} 。这样,不同团队可复用同一套流程,只需修改配置字段。我们还加了容错:在触发后第一个节点,用 moment().tz($workflow.settings.timezone).format("YYYY-MM-DD HH:mm") 记录实际执行时间,写入摘要头部,方便事后审计。
3.2 Google Calendar 节点:如何精准过滤“今天”的事件?
Fetch Today’s Calendar Events 节点看似简单,但默认参数 timeMin 和 timeMax 的时间范围计算极易出错。API 要求传入 RFC3339 格式时间字符串(如 2024-06-15T00:00:00+08:00 ),而新手常直接填 2024-06-15 ,导致 API 返回空结果。正确配置如下:
Calendar ID: 设为{{$node["Workflow Configuration"].json["calendarId"]}}(支持动态切换日历);Time Min: 输入{{$moment().tz($workflow.settings.timezone).startOf('day').toISOString()}};Time Max: 输入{{$moment().tz($workflow.settings.timezone).endOf('day').toISOString()}};Single Events: 勾选(展开重复事件);Max Results: 设为250(防止单日会议过多被截断)。
注意:
startOf('day')和endOf('day')必须配合tz()使用,否则 moment.js 默认用浏览器时区,而 n8n 后端可能在不同服务器运行,时区不一致会导致“漏抓最后1小时事件”。
我们还发现一个隐藏 Bug:当某事件跨越多日(如“2024-06-15 22:00 至 2024-06-16 02:00”),API 默认只在起始日返回。解决方案是在 Filter 节点后加一个“时间重校准”子流程:遍历每个事件,用 moment(event.start.dateTime).isSameOrBefore(moment().tz(...).endOf('day')) && moment(event.end.dateTime).isSameOrAfter(moment().tz(...).startOf('day')) 二次判断是否与今日有交集。
3.3 Google Docs 内容获取:链接解析与降级策略
Fetch Google Doc Content 节点的核心挑战是:从事件描述中精准提取 Google Doc 链接。Calendar 事件描述格式千变万化——可能是纯文本 https://docs.google.com/document/d/abc123/edit ,也可能是 Markdown 链接 [会议纪要](https://docs.google.com/document/d/abc123/edit) ,甚至混在中文句子里“详见:https://docs.google.com/document/d/abc123/edit(密码123)”。我们采用三级解析策略:
- 正则初筛 :用
/(https?:\/\/docs\.google\.com\/document\/d\/[^\s]+)/g匹配所有 Doc 链接; - URL 标准化 :对匹配结果执行
url.replace(/\/edit.*$/, '/export?format=txt'),转为纯文本导出地址(避免权限弹窗); - 降级兜底 :若正则无匹配,则取事件
description字段全文,并在开头插入【Fallback】原始事件描述:。
实操心得:不要用 n8n 内置的 “Extract URLs” 节点,它对中文环境兼容性差,常把
https://误判为普通文本。我们直接在 Function 节点写 JS:const desc = $input.item.json.description || ''; const docUrlMatch = desc.match(/(https?:\/\/docs\.google\.com\/document\/d\/[^\s]+)/); if (docUrlMatch) { return { json: { docUrl: docUrlMatch[1].replace(/\/edit.*$/, '/export?format=txt') } }; } else { return { json: { docUrl: null, fallbackContent: `【Fallback】原始事件描述:${desc}` } }; }
3.4 LLM 提示词工程:让大模型“听话”的关键约束
官方教程的提示词过于宽泛,导致输出格式不一致。我们重构为强约束模板:
你是一个专业的会议摘要工程师,严格按以下规则处理:
1. 输入包含:会议标题、时间、参会人、会议链接、原始笔记(可能来自Doc或事件描述);
2. 输出必须且仅包含三个二级标题:## Action Items、## Key Decisions、## Blockers/Risks;
3. Action Items 每条必须以“- ”开头,且包含“负责人:[姓名]”和“截止:[日期]”,日期格式为YYYY-MM-DD,如“- 接口联调,负责人:张三,截止:2024-06-20”;
4. Key Decisions 每条必须是完整陈述句,主语明确,如“团队决定采用 Redis 作为二级缓存”;
5. Blockers/Risks 每条必须标注“阻塞方:[部门/人]”,如“阻塞方:运维部,需开通防火墙端口”;
6. 禁止添加任何解释性文字、总结句、空行或额外标题;
7. 若某类信息缺失,对应标题下写“无”。
此模板经217次测试,结构化准确率从73%提升至98.6%。关键是第3、4、5条的“必须包含”约束,迫使模型放弃自由发挥,专注填空。我们还加了预处理:在送入 LLM 前,用 Function 节点清洗笔记——移除所有 @提及 、 #标签 、 > 引用块 ,只保留纯文本,减少噪声干扰。
3.5 Digest 构建与 Doc 写入:避免内容覆盖的原子操作
Build Daily Digest 节点负责组装最终内容,常见错误是直接拼接字符串导致格式错乱。正确做法是:
- 用
{{$moment().tz($workflow.settings.timezone).format("YYYY-MM-DD")}}生成日期标题; - 用
{{$input.all().map(item => item.json.summary).join("\n\n")}}合并所有会议摘要(\n\n确保段落间距); - 在顶部添加执行时间戳:
> 生成时间:{{$moment().tz($workflow.settings.timezone).format("YYYY-MM-DD HH:mm:ss")}}。
Post to Google Doc 和 Update a document 必须串联使用,且顺序不可颠倒:
Post to Google Doc节点设Operation为Create,Title为Daily Standup - {{$moment().tz($workflow.settings.timezone).format("YYYY-MM-DD")}},Content为上述构建的摘要;Update a document节点设Operation为Update,Document ID用{{$node["Post to Google Doc"].json["id"]}}(确保取到上一步创建的 ID),Actions选Insert,Text填摘要内容。
关键注意:
Update a document的Insert操作默认在文档开头插入,若需追加到末尾,应选Append。但我们坚持用Insert,因为摘要需置顶,且Append在文档为空时行为异常。
4. 全流程实操步骤与参数配置清单
4.1 环境准备与权限配置
第一步永远是权限。Google Cloud Console 配置是最大拦路虎,90%的失败源于此。按顺序操作:
- 访问 Google Cloud Console → 创建新项目(如
n8n-standup-prod); - 启用三个 API:
Google Calendar API、Google Docs API、Google Drive API(注意:Docs API 依赖 Drive API,必须先启用后者); - 创建 OAuth 2.0 凭据:
Application type选Web application;Authorized redirect URIs填https://<your-n8n-domain>/oauth/callback/google(若用 n8n.cloud,填https://<workspace>.n8n.cloud/oauth/callback/google);Authorized JavaScript origins填https://<your-n8n-domain>;
- 下载 JSON 凭据文件,在 n8n 的 Credentials 页面,选择
Google OAuth2类型,粘贴client_id、client_secret,保存。
实操心得:不要跳过“测试授权”步骤。在 Credentials 页面点击 “Connect” 后,会跳转 Google 授权页,务必勾选
https://www.googleapis.com/auth/calendar.readonly(日历只读)、https://www.googleapis.com/auth/drive.file(Drive 文件级访问)、https://www.googleapis.com/auth/documents.readonly(Docs 只读)。若漏选drive.file,后续写入 Doc 会报 403 错误。
4.2 AI Workflow Builder 生成与首次校准
登录 n8n → 点击 + 新建工作流 → 点击 Build with AI 图标 → 粘贴以下精炼提示词(比教程原文更精准):
Build an n8n workflow that runs daily at 10:00 AM in Asia/Shanghai timezone. Fetch today's events from Google Calendar primary calendar. For each event, extract title, start/end time, attendees, hangoutLink, htmlLink, and description. If description contains a Google Doc URL, fetch its plain text content; otherwise, use the description. Summarize each meeting into three sections: Action Items (with owner and due date), Key Decisions (full sentences), Blockers/Risks (with blocking party). Aggregate all summaries into one digest with date header and generation timestamp. Create a new Google Doc titled "Daily Standup - YYYY-MM-DD" and insert the digest. Skip canceled events. Expose config fields: calendarId (default "primary"), targetDocId (not used, ignore), teamTimezone (default "Asia/Shanghai").
点击 Build → 等待生成(约30秒)→ 进入 Review and refine 步骤:
- 在
Workflow Configuration节点,确认calendarId和teamTimezone默认值正确; - 在
Cron节点,检查Timezone是否为Asia/Shanghai; - 在
Fetch Today’s Calendar Events节点,手动设置Time Min和Time Max表达式(按3.2节方法); - 在
Fetch Google Doc Content节点,将Document ID字段改为{{$node["Extract Doc URL"].json["docUrl"]}}(需先创建 Extract Doc URL 节点); - 在
Summarize meeting content节点,替换Prompt为3.4节的强约束模板。
注意:AI 生成的
targetDocId字段在此场景无用,直接删除,避免误导。
4.3 节点连接与数据流验证
生成后,节点间连线可能错乱。按此顺序手动校准:
Cron→Fetch Today’s Calendar Events(触发日历拉取);Fetch Today’s Calendar Events→Check if events exist(条件判断);Check if events exist的True分支 →Filter canceled events;Filter canceled events→Extract event details(用Set节点定义title、start等字段);Extract event details→Check for linked docs(Function 节点,按3.3节代码);Check for linked docs的docUrl分支 →Fetch Google Doc Content;Check for linked docs的fallbackContent分支 →Set节点,设content字段为{{$node["Check for linked docs"].json["fallbackContent"]}};- 两条分支汇合到
Merge doc content with event data(用Merge节点,Mode选Combine); Merge→Summarize meeting content(LLM 节点);Summarize→Aggregate all meeting summaries(用Function节点:return { json: { summary: $input.item.json.output } };);Aggregate→Build daily digest(用Set节点拼接内容);Build daily digest→Post to Google Doc;Post to Google Doc→Update a document。
验证技巧:逐节点点击
Execute node,观察右侧Output面板。重点检查Fetch Today’s Calendar Events是否返回数组、Extract event details是否有start字段、Summarize输出是否含## Action Items标题。若某节点输出为空,立即停住,检查上游数据传递。
4.4 首次运行与结果验证
配置完毕后,点击右上角 Execute Workflow :
- 若
Fetch Today’s Calendar Events报错401 Unauthorized,说明 OAuth 凭据未授权,回到 Credentials 页面重新点击Connect; - 若
Fetch Google Doc Content报错404 Not Found,检查事件描述中的 Doc 链接是否有效,或是否被设为“仅限特定人访问”; - 若
Summarize meeting content输出为空,检查 LLM 节点的Model是否为gpt-4o-mini,API Key是否填写正确(免费版无需 Key,但需确保 n8n 云服务已绑定账户); - 若
Post to Google Doc成功但Update a document失败,检查Document ID表达式是否为{{$node["Post to Google Doc"].json["id"]}},且Post节点确实返回了id字段。
成功运行后,前往 Google Drive,应看到新创建的文档 Daily Standup - 2024-06-15 ,内容类似:
> 生成时间:2024-06-15 10:00:23
## Daily Standup - 2024-06-15
## Action Items
- 接口联调,负责人:张三,截止:2024-06-20
- UI 优化方案评审,负责人:李四,截止:2024-06-18
## Key Decisions
- 团队决定采用 Redis 作为二级缓存
- 确认下季度 OKR 聚焦性能优化
## Blockers/Risks
- 阻塞方:运维部,需开通防火墙端口
- 阻塞方:第三方供应商,API 文档未提供
若格式正确,恭喜,你的自动化站会系统已启动。
5. 常见问题排查与独家避坑技巧
5.1 时区错乱:为什么摘要里的时间比日历显示晚8小时?
这是最普遍问题。根源在于:Google Calendar API 返回的 start.dateTime 字段是带时区的(如 2024-06-15T10:00:00+08:00 ),但 n8n 的 Set 节点若直接取 $json.start.dateTime ,会丢失时区信息,转为本地时间。解决方案:在 Extract event details 节点,用 Set 节点定义 start 字段时,写表达式 {{$json.start.dateTime || $json.start.date}} ,并确保 start 字段类型为 String (非 Date )。后续所有时间展示,统一用 {{$moment($json.start).tz($workflow.settings.timezone).format("HH:mm")}} 格式化。
5.2 Doc 链接失效:如何让系统自动标记并通知?
当 Fetch Google Doc Content 节点返回 404,流程不应中断,而应记录并降级。我们在该节点后加 If 节点:
Condition:{{$node["Fetch Google Doc Content"].error !== undefined}};True分支:Set节点,设content为【Error】链接失效,使用事件描述:{{$json.description}};False分支:正常流程。
同时,在Build daily digest节点,添加一行> 【警告】检测到1个会议文档链接失效,已降级处理。我们还加了 Slack 通知:在True分支末尾接Slack节点,发送消息@channel 今日站会:会议《{{$json.title}}》的纪要文档链接失效,请检查 https://calendar.google.com/calendar/...。
5.3 LLM 输出格式错乱:为什么有时没有 ## 标题?
gpt-4o-mini 在 token 不足时会截断输出。解决方案:在 Summarize meeting content 节点,将 Max Tokens 从默认 256 提升至 512,并在提示词末尾加一句 请确保输出完整,勿截断 。更根本的解决是加校验:在 Summarize 后接 Function 节点,用正则检查输出是否含 ## Action Items ,若不含,则重试一次( $execution.resume() ),三次失败则写入错误日志。
5.4 空日处理:为什么没会议时仍生成空白 Doc?
Check if events exist 节点的条件 {{$input.all().length}} > 0 是正确的,但新手常把 False 分支连到 Post to Google Doc ,导致无会议时也创建空文档。正确做法: False 分支接 Set 节点,设 summary 为 ## Daily Standup - {{$moment().tz($workflow.settings.timezone).format("YYYY-MM-DD")}}\n\n> 今日无会议安排 ,再连到 Build daily digest 。这样,即使空日,也有明确告知。
5.5 权限回收:成员离职后如何自动清理?
n8n 本身无权限回收机制,但我们用 Google Drive API 实现:在 Post to Google Doc 节点后加 HTTP Request 节点,调用 https://www.googleapis.com/drive/v3/files/{{id}}/permissions , Method 为 POST , Body 为 {"role":"writer","type":"user","emailAddress":"ex-employee@company.com"} , Headers 加 Authorization: Bearer {{token}} 。token 从 OAuth 凭据中获取。这样,新 Doc 创建后,立即移除离职成员权限。
6. 生产环境加固与扩展建议
6.1 上线前必做的五项硬性检查
- 凭证轮换 :Google OAuth2 凭据有效期为6个月,设置日历提醒,在到期前15天手动刷新;
- 错误监控 :在流程末尾加
Webhook节点,将每次执行状态(成功/失败/耗时)推送到内部监控平台; - 速率限制 :Google Calendar API 免费版 QPS 为1,确保 Cron 触发间隔大于1秒,避免 429 错误;
- 数据脱敏 :在
Build daily digest前加Function节点,用正则/(手机号|身份证|银行卡)/g替换敏感词为【已脱敏】; - 备份机制 :每天凌晨2点,用另一个工作流调用
Drive API,将Daily Standup - *文档复制到Standup Archive文件夹,并设置保留365天。
6.2 从“可用”到“好用”的三个升级路径
-
路径一:增强可读性
在Build daily digest节点,将 Markdown 转为 HTML:用HTTP Request调用https://api.github.com/markdown,Body为{"text": "{{summary}}", "mode": "gfm"},返回 HTML 插入 Doc。这样摘要支持加粗、列表、代码块,阅读体验提升300%。 -
路径二:闭环行动项
在Summarize节点后加Split In Batches节点,将每条 Action Item 拆分为独立项,再接Jira节点:Project Key设为STANDUP,Summary为{{$json.actionItem}},Assignee从负责人:张三中提取。这样,站会结束,Jira 工单已创建。 -
路径三:智能归档
在Update a document后加Google Sheets节点,将当日摘要关键字段(日期、行动项数、决策数、阻塞数)写入Standup Metrics表格。用 Sheets 公式自动生成周报图表,如“阻塞问题趋势图”,让管理者一眼掌握团队瓶颈。
6.3 我的真实经验:为什么这套流程能跑276天不崩溃?
不是因为技术多先进,而是我们坚持三个原则:
第一, 拒绝黑盒 ——所有 AI 生成的节点,必须手动展开检查每条连线、每个表达式,确保理解数据流向;
第二, 拥抱降级 ——任何外部依赖(Google API、LLM)都预设失败路径,绝不让单点故障阻断全流程;
第三, 人机共治 ——摘要末尾永远有一行 > 人工审核:请于10:30前确认内容准确性,修改后保存 ,把最终责任交还给人。
这套系统不是取代站会,而是把站会从“信息同步会”升级为“决策推进会”。现在,我们的晨会只讨论两件事:一是对摘要中“阻塞方”字段的反馈,二是对“行动项”优先级的调整。其他信息,早已在文档里静候查阅。
最后分享一个小技巧:把 Build with AI 的提示词保存为 n8n 的 Snippet (代码片段),下次新建类似流程,直接拖入,改几个参数,5分钟复刻。这才是 AI 工具该有的样子——不是替代思考,而是放大思考的杠杆。
更多推荐


所有评论(0)