AI出来这么久了,你是否用她解决过工作中的那些“内卷”,现在的工作实在是太“内卷”了,每周五都要手写一份合格的工作周报,不准时提交还要扣绩效。

每周五下午,你是否也在苦苦整理 Git 提交、Excel 表格和会议纪要,然后在 Word/Markdown 里敲出一份周报?别人的周五都是快乐的,码农们还得因为周报而加班加点。

今天我们用 Golang + Genkit 构建一个 智能周报生成系统,从 Git 提交、Excel 任务表到 Markdown 文档,自动生成结构化周报,让你有更多时间写代码,而不是写周报,“把快乐的周五还给码农!”。

至于为什么用 Genkit 来做案例呢? 只是因为手上的OpenAI那可怜的Free额度一年前就已经用尽了,只能申请一个Genkit 蹭一下免费额度,至于付费的AI还是觉得个人必要性不大用得少,那天Genkit 免费额度用完了, 就该用自己搭的了。


1️⃣ 你是否也在“被周报追着跑”?

每周五下午,打开 Git 看提交、翻 Excel 看任务、再看看文档总结……你是不是已经累成狗?
更糟的是,有时候你发现自己漏掉了关键任务或者某条提交,周报就变得不完整,领导看了也心里“咯噔”一下。可恨的是还会扣绩效影响那本身就被“压榨”的薪水。

解决方案:让 AI 来帮你做这些重复又繁琐的事情——我们要做的,就是一个 自动化周报生成系统


2️⃣ 技术选型 & 架构

我们选择 Golang,因为它性能高、并发优秀、部署方便
Genkit 用来把 AI 模型和我们的工具串起来,核心思想是:


Git 仓库 → Git Tool → Excel 表格 → Excel Tool → 文档目录 → Doc Tool → Genkit Flow → AI生成结构化 JSON → Export Tool → Markdown 周报

可以把它想象成:你在办公室,AI 同事帮你整理所有信息,把它们汇总到一份漂亮的周报里。


3️⃣ 数据结构设计——给 AI 定好格式


type Metrics struct { Commits string `json:"commits"` TestsAdded string `json:"testsAdded"` CoverageChange string `json:"coverageChange"` } type WeeklyReport struct { Week string `json:"week"` Summary string `json:"summary"` KeyAchievements []string `json:"keyAchievements"` Issues []string `json:"issues"` NextWeekPlan []string `json:"nextWeekPlan"` Metrics Metrics `json:"metrics"` }

⚠️ 这里要强调:Metrics 必须显式定义字段,否则 Genkit 会吐出 400 错。
这就像你要给 AI 画地图,必须先标出关键地点,否则它可能在空白图上乱画。


4️⃣ Flow 实战演示


reportFlow := genkit.DefineFlow(g, "generateWeeklyReport", func(ctx context.Context, input *types.WeeklyInput) (*types.WeeklyReport, error) { repoSum, _ := tools.GetGitSummary(ctx, input.RepoPath) excelSum, _ := tools.GetExcelSummary(ctx, input.ExcelPath) docSum := input.DocsSummary if docSum == "" { docSum, _ = tools.SummarizeDocs(ctx, g, "./docs") } prompt := fmt.Sprintf(` 请生成周报 JSON: Git提交:%s 文档摘要:%s Excel数据:%s 字段要求:week, summary, keyAchievements, issues, nextWeekPlan, metrics `, repoSum, docSum, excelSum) report, _, err := genkit.GenerateData[types.WeeklyReport](ctx, g, ai.WithPrompt(prompt)) if err != nil { return nil, err } report.Week = time.Now().Format("2006-01-02") _, _ = tools.ExportMarkdown(ctx, report) return report, nil })

这里的 Flow 就像一个聪明助理,你把原料(Git/Excel/文档)交给它,它自动输出可用的周报 Markdown 文件。


5️⃣ 输出示例(直接看到成果才爽)


# 本周周报(2025-11-04) ## 概述 本周完成接口优化与报表导出功能初步上线。 ## 主要成果 - API重构,缓存优化 - 测试覆盖率提升 - 文档自动摘要完成 ## 问题与风险 - 测试环境偶发延迟 ## 下周计划 - 日志监控优化 - 报表功能完善 ## 关键指标 - 提交次数:24 - 新增测试:18 - 覆盖率变化:+3.2%

AI 自动生成,省掉至少 30 分钟重复整理时间。


6️⃣ 实战经验分享(轻松幽默版)

  1. 注册自定义工具:Git/Excel/文档 → Flow → AI
  2. JSON Schema 必须明确:Metrics 字段不能空
  3. 文档自动摘要:AI 提炼核心内容,比你自己看一遍快 5 倍
  4. 可扩展性:RAG 历史周报引用,风格统一
  5. 跨平台注意事项:PowerShell JSON 转义、国内代理配置

7️⃣ 总结

从“被周报追着跑”到“AI 帮你写周报”,只需要 Golang + Genkit + 5分钟配置。 一旦养成整理文档的习惯,再改改源码让她全自动帮你定时生成发布,那更省事了。你在生活和工作遇到要AI帮忙的例子没有,有的话欢迎在评论区留言讨论?

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐