【Code With SOLO】用 SOLO 开发飞书会议纪要自动处理 CLI 工具

【Code With SOLO】用 SOLO 开发飞书会议纪要自动处理 CLI 工具 —— 基于 lark-cli,一键获取转写、AI 提取决策待办、自动创建飞书任务

一、摘要

用 TRAE SOLO 从零开发了一个名为 meeting-processor 的飞书 CLI 工具。会议结束后,只需一条命令即可自动获取会议转写文本,调用 AI(支持 OpenAI/智谱/百炼等多后端)提取关键决策和待办事项,并通过飞书官方 CLI(lark-cli)自动创建飞书任务并分配给对应人员。整个项目经历了从架构设计、全量开发、10 项 Bug 修复、到基于 lark-cli 的完整重构,最终 26 个测试全部通过并推送到 GitHub。

二、背景

我是一名开发者,日常工作中频繁参加飞书视频会议。每次会后都需要:

  1. 手动打开飞书妙记查看转写

  2. 从冗长的转写中提炼关键决策和待办

  3. 手动在飞书任务中创建待办并分配负责人

这个流程每周重复多次,每次至少耗时 30-60 分钟。我希望用 SOLO 开发一个自动化工具,实现"一条命令搞定会后处理"。

三、实践过程

3.1 任务拆解

我将整个项目拆解为以下步骤,逐步交给 SOLO 完成:

步骤 任务 说明
1 需求分析与技术选型 确定 Python + Click + lark-cli 技术栈
2 飞书 API 调研 研究妙记、任务、通讯录等 API 文档
3 项目骨架搭建 pyproject.toml + 8 个模块的目录结构
4 核心模块开发 认证、API 客户端、AI 处理、输出格式化
5 CLI 入口开发 Click 命令组 + Rich 美化输出
6 全面测试与修复 发现并修复 10 个 Bug
7 lark-cli 重构 从 httpx 直接调用重构为基于 lark-cli
8 README + GitHub 完善文档并推送

3.2 关键技术决策

技术栈选择:

  • Python 3.10+ — 开发效率高,AI SDK 生态成熟

  • Click — 成熟的 Python CLI 框架

  • Rich — 终端美化和进度条

  • lark-cli — 飞书官方 CLI,统一处理认证和 API 调用

  • OpenAI SDK — 兼容多种 AI 后端(OpenAI/智谱/百炼/自定义)

lark-cli 命令映射设计:

功能 lark-cli 命令 类型
认证检查 lark-cli auth status --format json 快捷命令
获取妙记元信息 lark-cli minutes minutes get --params ‘…’ --format json 快捷命令
获取转写文本 lark-cli api GET …/transcript --params ‘…’ -o - 原始 API
查询用户 ID lark-cli api POST …/batch_get_id --data ‘…’ --format json 原始 API
创建任务 lark-cli task +create --summary “…” --assignee “ou_xxx” --due “YYYY-MM-DD” --format json 快捷命令

设计说明:lark-cli 提供了 23 个快捷命令(Agent Skills),但转写导出没有快捷命令,邮箱查用户仅支持关键词搜索不支持精确查询,因此这两处使用 lark-cli api 调用原始接口。

3.3 项目架构

meeting-processor/
├── pyproject.toml              # 项目配置(无 httpx 依赖)
├── config.example.yaml         # 配置模板
├── src/meeting_processor/
│   ├── cli.py                  # CLI 入口(Click + Rich)
│   ├── config.py               # 配置管理(YAML + 环境变量)
│   ├── auth.py                 # lark-cli 认证检查
│   ├── feishu_client.py        # 飞书 API 客户端(LarkCliRunner + FeishuClient)
│   ├── ai_processor.py         # AI 处理(多后端支持)
│   ├── processor.py            # 核心流程编排
│   └── output.py               # 输出格式化(Markdown/JSON)
└── tests/
    └── test_meeting_processor.py  # 26 个单元测试

3.4 开发过程中的关键 Prompt

初始需求 Prompt:

开发一个飞书 CLI Skill,命名为 meeting-processor。会议结束后,一键自动获取会议纪要和录音转写,AI 提取关键决策和待办事项,自动创建飞书任务并分配给对应人员。要求:Python 实现,可配置多 AI 后端,需要飞书应用凭证,完整可运行项目。

测试审查 Prompt:

测试确认,全面排查所有的问题

重构 Prompt:

重构为基于 lark-cli 的实现

3.5 踩坑记录与修复

在开发过程中,SOLO 帮我发现并修复了 10 个 Bug:

# 问题 严重程度 修复方式
1 UnboundLocalError:变量在 async with 块外引用 严重 将变量声明提升到 with 块之前
2 build-backend 配置错误 严重 修正为 setuptools.build_meta
3 CLI 命令缺少异常处理 中等 添加 try/except + 友好错误提示
4 raise_for_status 阻塞业务错误检查 中等 改为显式检查 status_code
5 response_format 不兼容智谱/百炼 中等 仅对 OpenAI 原生后端启用
6 非 JSON 错误响应解析崩溃 中等 添加 try/except 保护
7 测试用例未跟随重命名更新 同步更新测试代码
8 lark-cli 安装后不在 PATH 中 创建符号链接
9 lark-cli docs +create 路径问题 使用相对路径
10 整个项目未使用 lark-cli 严重 完整重构为 lark-cli 实现

3.6 lark-cli 重构过程

这是整个开发中最关键的一步。初始版本使用 httpx 直接调用飞书 REST API,需要手动管理 tenant_access_token。SOLO 在我的追问下坦诚地承认了这个问题,随后完成了完整重构:

  • 移除 httpx 依赖,所有飞书 API 调用改为 subprocess 调用 lark-cli

  • 新增 LarkCliRunner 类封装命令执行逻辑

  • 认证从手动 token 管理改为依赖 lark-cli auth status

  • FeishuConfig(app_id/app_secret)替换为 LarkCliConfig(cli_path)

  • processor.py 从 async 改为 sync(subprocess 是同步调用)

  • 26 个测试全部重写为 mock subprocess

四、成果展示

4.1 使用方式

# 一键处理会议纪要
meeting-processor process <minute_token>

# 仅获取转写
meeting-processor transcript <minute_token>

# 仅 AI 分析
meeting-processor analyze <minute_token>

# 检查配置和 lark-cli 状态
meeting-processor check

4.2 处理流程

获取妙记元信息 → 获取转写文本 → AI 智能分析 → 自动创建飞书任务 → 生成报告
   (lark-cli)      (lark-cli)    (OpenAI兼容)     (lark-cli)       (MD/JSON)

4.3 输出示例

🚀 Meeting Processor v0.2.0

飞书会议纪要自动处理工具(基于 lark-cli)

📝 会议摘要
  本次会议讨论了 Q3 产品路线图,确定了三个核心方向...

✅ 关键决策 (3 条)
  1. 确认 Q3 重点推进 AI 功能集成
     相关人员: 张三, 李四
  2. ...

📌 待办事项 (4 条)
  🔴 1. 完成 AI 集成技术方案 → 张三 截止: 2025-02-15
  🟡 2. 协调设计资源 → 李四

🚀 飞书任务创建结果
  ✅ 成功: 3  |  ❌ 失败: 1
  ✓ 完成 AI 集成技术方案
  ✓ 协调设计资源
  ✗ 更新竞品分析文档 (未找到用户 open_id)

生成飞书云文档:https://my.feishu.cn/docx/UpWZdv18YoVayIxnwiNcRZxonKf?from=from_copylink

4.4 项目链接

五、效果与总结

提效数据

指标 之前 之后 提升
会后处理时间 30-60 分钟 2-3 分钟 ~20x
任务创建 手动逐条创建 自动批量创建 全自动
信息遗漏率 偶有遗漏 AI 全面提取 显著降低

SOLO 在开发中的价值

  1. 全栈开发能力:从项目架构设计到 7 个模块的完整实现,SOLO 独立完成了全部编码工作

  1. 代码质量把控:通过"全面排查"指令,SOLO 自主发现并修复了 10 个 Bug,包括严重的 UnboundLocalError

  1. 架构重构能力:当发现技术方案偏离需求(未使用 lark-cli)时,SOLO 完成了从 httpx 到 lark-cli 的完整重构,包括同步/异步模型转换、测试重写

  1. 文档与工程化:自动生成 README、配置模板、单元测试,并完成 GitHub 推送

  1. 诚实与自省:在被追问"是否真的基于 lark-cli"时,SOLO 坦诚承认问题并立即执行重构

可复用经验

  • 分步推进:将大任务拆解为小步骤,每步验证后再继续,避免返工

  • 及时审查:在关键节点要求 SOLO 做全面检查,能提前发现隐藏问题

  • 敢于推翻重来:当发现架构方向错误时,果断重构比修补更高效

  • 善用测试:26 个单元测试为重构提供了安全网,确保改动不引入新问题