这个周末我让 Agent 干了五件事,踩了三个坑
— § 01 —- COLOPHON
- Source Serif 4 · JetBrains Mono · Forge Codex
- TOOLS
- Next 15 · MDX · framer-motion
修 cron 时区、生成信息卡、翻译上下文工程文章、更新网站项目页。每个坑都是真实的工作流,记录一下。
大家好,我是极客杰尼。
这个周末没做什么大事,但从早到晚一直在跟 Agent 协作干活。修了一个 cron 时区 bug,跑通了一条信息卡工作流,翻译了一篇 1.6 万字的技术文章,更新了个人网站的项目页。
每件事都踩了坑,每个坑都是一个要记住的知识点。
今天就聊聊这个。
§cron 任务没按时跑,原因很蠢
周六早上起来,发现 AI Builder Daily 的定时推送没在预期时间执行。
查了一下,原因特别低级:cron 表达式写的是 UTC 时间,不是上海时间。
我之前配的时候直接写了 0 10 * * *,以为系统会自动识别时区。它不会。老老实实按 UTC 跑了,等于上海时间下午六点才执行。
改起来倒也简单,UTC+8 反算:
- ·上海 10:00 = UTC 02:00,写成
0 2 * * * - ·上海 10:30 = UTC 02:30,写成
30 2 * * *
手动触发了一次验证,数据拉取正常,1.8 秒出结果,1559 字符。到这一步都没问题。
推送到微信的时候,又出事了。
§微信推送报了一个我没见过的错
手动触发之后,微信端报了这么个错:
Timeout context manager should be used inside a task
翻了一圈日志,定位到原因:Hermes 网关层的 asyncio bug。cron 任务的交付跑在一个不是标准 asyncio task 的上下文里,Python 3.11+ 的 asyncio.timeout() 直接炸了。
数据拉取很快,不是性能问题。同样 3000 多字符的另一个定时任务能正常推送,也不是内容长度的问题。就是微信 SDK 那一层的 asyncio 上下文不对。
临时解法:把生成的信息卡图片上传到 jieni.ai 的 public 目录,通过 URL 分享。 不优雅,但能用。这个 bug 还没修,记在这里,后面再处理。
§跑通了一条信息卡工作流
这个周末试得最多的是一套三步组合:
- ·Get笔记 CLI 拉笔记内容
- ·claude-design-card 生成 HTML 信息卡
- ·Playwright 截图为 PNG
操作本身不复杂。拉笔记用 getnote note ID -o json,生成卡片选了 The Feature 格式,杂志深掘风格,暗色头部加不对称双栏。截出来的卡 760 乘 1441 像素,在微信里看着还行。
踩了一个半小时的坑:字体路径必须用 file:// 绝对 URL,不然 Playwright 截图时字体加载不上,出来全是默认字体。
还有一个发现。飞书发图片的正确方式不是用 send_message 工具,而是直接在回复里写 MEDIA:/path/to/image.png,网关会自动识别并发送。之前一直用工具发,各种超时报错。换成这个写法就好了。
§翻译了一篇上下文工程的文章
Nav Toor 在 X 上发了一篇文章,叫「Context Engineering Playbook: 15 Copy-Paste Templates」,讲怎么用 15 个模板让 AI 输出质量提升 10 倍。
内容很扎实,不是那种「提示词工程 101」的水文。有具体的模板,有「为什么有效」的解释,有层级结构。
我用 jina-cli 抓了原文,花了大概 20 分钟翻译成中文,放到了 jieni.ai 的文档区,路径是 /docs/prompt-guides/context-engineering-playbook。
翻译过程中的几个判断:
- ·模板的方括号占位符保留原样,因为那是用户自己填的
- ·Karpathy 说的「LLM 是 CPU,上下文窗口是内存」这个比喻原样保留,加粗处理
- ·LangChain、Anthropic 这些专有名词不翻
- ·每个「为什么有效」的小节调整了语序,让它读起来像中文,不是翻译腔
又踩了一个坑:docs 和 blog 的 i18n 规则不同。 Blog 需要中英双版文件(.mdx 加 .zh.mdx),但 docs 的 fumadocs 不认 .zh.mdx 后缀,会报 duplicated slug 错误。折腾了一圈才发现,docs 只需要一个文件就行。这个写进了 skill,下次不会再犯。
§更新了个人网站的项目页
两件事。
md2wechat 移到第一位。 之前它在项目列表排第五,但它现在 GitHub 1.6k star,是我最成熟的产品。描述也更新了:用 Markdown 写公众号文章,一键转换为精美排版并自动上传到微信草稿箱,支持 AI 多主题样式和批量发布。
新增了 claude-design-card。 这是最近在用的技能,把任意文本生成 Anthropic 设计风格的信息卡。加到了项目列表第二位。
改的是 src/config/identity.ts 里的 skills 数组,projects 页面直接从这个数组渲染。改完跑 pnpm lint 加 pnpm build,确认没有重复 slug,推上线。
§复盘一下
这个周末干的活都不大,但每一件都是真实的 Agent 工作流。
几个体会:
- ·Agent 工作流不是一次跑通的,是踩坑踩出来的。 每个坑要么记住,要么写成规则。
- ·「能用」和「好用」之间差的是细节。 字体路径用绝对 URL、飞书发图片用 gateway 回复、docs 不需要双版文件,这些都是细节,但每个细节都能卡你半小时以上。
- ·翻译不是逐字翻,是重新组织。 调整语序、保留专有名词、让读者感觉在读中文而不是在读翻译,这个判断力是关键。
如果你也在用 Agent 做日常工作,建议:遇到坑就记下来,写成 skill 或者规则。 同一个坑踩两次,是你的问题。
下次聊聊别的。
○