AI出来这么久了,你是否用她解决过工作中的那些"内卷",现在的工作实在是太"内卷"了,每周五都要手写一份合格的工作周报,不准时提交还要扣绩效。
每周五下午,你是否也在苦苦整理 Git 提交、Excel 表格和会议纪要,然后在 Word/Markdown 里敲出一份周报?别人的周五都是快乐的,码农们还得因为周报而加班加点。
今天我们用 Golang + Genkit 构建一个 智能周报生成系统,从 Git 提交、Excel 任务表到 Markdown 文档,自动生成结构化周报,让你有更多时间写代码,而不是写周报,"把快乐的周五还给码农!"。
至于为什么用 Genkit 来做案例呢? 只是因为手上的OpenAI那可怜的Free额度一年前就已经用尽了,只能申请一个Genkit 蹭一下免费额度,至于付费的AI还是觉得个人必要性不大用得少,那天Genkit 免费额度用完了, 就该用自己搭的了。
1️⃣ 你是否也在"被周报追着跑"?
每周五下午,打开 Git 看提交、翻 Excel 看任务、再看看文档总结......你是不是已经累成狗?
更糟的是,有时候你发现自己漏掉了关键任务或者某条提交,周报就变得不完整,领导看了也心里"咯噔"一下。可恨的是还会扣绩效影响那本身就被"压榨"的薪水。
解决方案 :让 AI 来帮你做这些重复又繁琐的事情------我们要做的,就是一个 自动化周报生成系统。
2️⃣ 技术选型 & 架构
我们选择 Golang,因为它性能高、并发优秀、部署方便 ;
Genkit 用来把 AI 模型和我们的工具串起来,核心思想是:
css
Git 仓库 → Git Tool →
Excel 表格 → Excel Tool →
文档目录 → Doc Tool →
Genkit Flow → AI生成结构化 JSON →
Export Tool → Markdown 周报
可以把它想象成:你在办公室,AI 同事帮你整理所有信息,把它们汇总到一份漂亮的周报里。
3️⃣ 数据结构设计------给 AI 定好格式
go
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 实战演示
go
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️⃣ 输出示例(直接看到成果才爽)
markdown
# 本周周报(2025-11-04)
## 概述
本周完成接口优化与报表导出功能初步上线。
## 主要成果
- API重构,缓存优化
- 测试覆盖率提升
- 文档自动摘要完成
## 问题与风险
- 测试环境偶发延迟
## 下周计划
- 日志监控优化
- 报表功能完善
## 关键指标
- 提交次数:24
- 新增测试:18
- 覆盖率变化:+3.2%
AI 自动生成,省掉至少 30 分钟重复整理时间。

6️⃣ 实战经验分享(轻松幽默版)
- 注册自定义工具:Git/Excel/文档 → Flow → AI
- JSON Schema 必须明确:Metrics 字段不能空
- 文档自动摘要:AI 提炼核心内容,比你自己看一遍快 5 倍
- 可扩展性:RAG 历史周报引用,风格统一
- 跨平台注意事项:PowerShell JSON 转义、国内代理配置
7️⃣ 总结
从"被周报追着跑"到"AI 帮你写周报",只需要 Golang + Genkit + 5分钟配置。 一旦养成整理文档的习惯,再改改源码让她全自动帮你定时生成发布,那更省事了。你在生活和工作遇到要AI帮忙的例子没有,有的话欢迎在评论区留言讨论?
听说AI能改变生活,但是对于20来年的码农来说,AI只是一台听话的机器罢了。
💻 源码地址:
- GitHub: github.com/louis-xie-p...
- Gitee: gitee.com/louis_xie/w...