AI 实践观察
每周五下午写周报大概是程序员最头疼的事之一:翻聊天记录、回忆本周做了什么、整理进展、汇总风险... 我估了一下,每周至少花 2 小时在这件事上。一年下来就是 100 多小时。
如果说有什么任务最适合交给 AI 来做,周报绝对是其中之一——它的格式固定、信息来源明确、不需要创造性思考。
自动化周报的核心流程其实很简单:
我最终选用的技术栈如下:
| 环节 | 方案 | 理由 |
|---|---|---|
| 编排框架 | LangGraph | 支持复杂的状态机和条件分支 |
| LLM | GPT-4o-mini | 性价比高,处理结构化任务足够 |
| Git 信息提取 | GitPython | 成熟稳定的 Git 操作库 |
| 飞书推送 | 飞书开放 API | 官方 SDK,文档完善 |
| 定时触发 | APScheduler | 轻量级定时任务框架 |
收集模块是整个 Agent 的基础。核心代码如下:
def collect_git_commits(repo_path: str, since: str) -> list[dict]:"""从 Git 仓库收集指定日期之后的提交记录"""repo = git.Repo(repo_path)commits = []for commit in repo.iter_commits(since=since):commits.append({"hash": commit.hexsha[:8],"message": commit.message.strip(),"date": commit.committed_datetime.isoformat(),"author": commit.author.name,})return commits
关键点:
since 参数过滤本周的提交,避免处理过多历史数据如果你的团队使用 Conventional Commits 规范(如 feat: xxx、fix: xxx),收集后的信息质量会高很多,建议推广。
收集到的原始信息通常是碎片化的,需要 LLM 来归纳整理。我设计了一个专门的 Prompt:
你是一个周报助手。根据以下 Git 提交记录和任务卡片信息,按「已完成」「进行中」「遇到的风险」三个类别进行归纳。每条不超过 50 字,用动宾短语开头。原始信息:{raw_data}
经过测试,GPT-4o-mini 在这个任务上的表现非常稳定,归纳准确率在 90% 以上。
生成周报后,通过飞书 Webhook 推送到指定群聊:
def send_to_feishu(webhook_url: str, content: str):"""通过飞书 Webhook 发送消息"""payload = {"msg_type": "interactive","card": {"header": {"title": {"content": "本周工作周报"}},"elements": [{"tag": "markdown", "content": content}],},}requests.post(webhook_url, json=payload)
部署上线后,每周五下午 5 点自动执行,2 分钟内完成全部流程:
每周节省约 2 小时,周报质量比手写的更好——因为 AI 不会遗漏任何一条提交。
—End—
如果觉得不错 随手点个 赞、在看、转发 三连吧
关注+星标 可第一时间收到更多精彩思考和总结
您的支持是我继续写下去的动力
注:原创不易,合作请在公众号后台留言,未经许可,不得随意修改及盗用原文。