前端路上

枪在手,跟我走,前端路上不回头

在消费级扫地机刚兴起的时候,曾在B站上看过一个扫机器测评,过程中有一个无关测评主题的结论让我印象深刻,带有路径规划的高端扫地机实际清洁效果反而不如不带路径规划的低端机。因为低端机的路径策略是遇到障碍物就无脑反射,所以最终的完整路径存在大量的重叠,相当于一片地拖了 N 遍,清洁效果自然更好。

说这个是因为这个现象跟我们学习掌握一门新技术的某些过程很相似。当我们需要掌握一门新技术时,通常会经过基础调研、横向竞品对比、纵向生态位对比、设计一个最大化覆盖技术应用场景的需求、边学习边开发这个需求、最终复盘。整个过程最花时间的就是开发,毛估会占到整体的七成以上,而这七成里的绝大部分时间又都花在查文档、理解API、踩坑、调试、重构、再踩坑,周而复始,经过这个不断碰壁的学习过程,最终我们不光学会了该技术是什么,同时也深刻理解了该技术不是什么,而这就特别像一个低端扫地机扫地的过程,大量微观上重复的犯错,获得宏观上深刻的正确。

然而这种方式太慢了,有办法提速吗?之前没有,现在有了。

最近想学习 Agent 开发,利用周末两天时间,借助 ChatGPT + Codex 完成了正常八周的企业级 Agent 开发学习。基本思路是将学习过程中所有与物理世界的摩擦成本转嫁给 AI ,我只负责拿结果。快是真的快,但我不想像公众号一样鼓吹 AI 有多么神奇,随着对这次学习过程的复盘,其实可以清晰的看到快是快在哪里,代价又是什么。

首先我在 ChatGPT 里提问:

1
我想学习企业级Agent的开发,希望通过个人项目开发了解 Agent 开发的基本思路和常用问题以及处理方案

然后ChatGPT给了我一个方案,大致意思是:

1
2
3
4
5
6
7
我帮你设计课程路线、项目架构、每一步目标和验收标准

Codex 帮你生成/修改具体代码

你本地部署、运行、报错、调试

我帮你解释代码、拆解问题、决定下一步

继续请 ChatGPT 设计具体课程:

1
好,我已经创建了git 仓库用于完成这个项目,你来设计一套 8 周项目制课程大纲,每一课都配好,然后告诉我接下来该怎么做

于是得到了项目成果目标:

1
2
3
4
5
6
7
8
9
10
11
一个通过 Telegram Bot / 飞书 Bot 使用的个人 Agent 服务:

- 支持基础对话
- 支持工具调用
- 支持待办管理
- 支持长期记忆
- 支持文档总结 / 简单 RAG
- 支持高风险操作确认
- 支持 workflow
- 支持日志、trace、eval
- 支持部署

建议技术栈:

1
2
3
4
5
6
7
8
TypeScript
Node.js
OpenAI Agents SDK JS/TS
Telegram Bot 起步,后续可接飞书 Bot
SQLite 起步,后续可换 Postgres
Drizzle ORM
Zod
Docker

以及8 周项目制课程大纲:

1
2
3
4
5
6
7
8
第 1 周:项目骨架 + Bot + Agent 最小闭环
第 2 周:工具调用系统 Tool Calling
第 3 周:长期记忆 Memory System
第 4 周:Human-in-the-loop + Dry-run + 权限控制
第 5 周:文档处理 + 简单 RAG
第 6 周:Workflow + 定时任务
第 7 周:Observability + Debug Dashboard
第 8 周:Eval + 部署 + 项目复盘

并且贴心的将后续每一步需要我参与的操作都交代的清清楚楚,把上手难度降到了胎教级,比如:

  • 需要交给Codex的提示词
  • 本地如何运行开发服务
  • 每一步结束后需要把哪些结果发回来检查

在每一个阶段的学习中我需要做的就是:

  • 阅读并理解阶段任务目标
  • 阅读 Codex 提示词并理解开发思路
  • 等待 Codex 执行
  • Review 代码,理解技术细节,判断大方向的合理性
  • 运行结果并再次对照代码理解技术细节。

为了巩固学习效果,还增加了每一阶段必须让我通过阶段考核的强制要求,确保掌握当前阶段内容才进入下一阶段:

1
2
3
4
5
6
7
进入第二周之前先确保我能正确回答前一周的问题,以后也都按这个顺序来。
我尝试回答:
1. 消息进入代码的入口在在 bot/telegram.js 中的 `bot.on("text", async (ctx) => {` 这一行。
2. generateReply 还不是Agent,只是一个llm 包装。
3. runs解决的是记录模型会话。
4. 模型API报错时用户看到的和数据库记录的都是"Model returned an empty response"。
5. 这个我不知道。

整个学习过程,就是将上述过程重复八次,平均每次两小时,共计耗时两天。

纵观整个过程,会发现几乎每一个环节都被极大的提速了。技术调研成本可以趋近于零;设计学习路径在 AI 到来之前也是很一件考验工程素养的事,现在也可以几乎零成本设计出符合自身情况的学习路径;对照文档敲代码这种事更是不需要再做了。而且 ChatGPT 还充当了导师角色,为每一个学习阶段提供明确的推进结构,可以让我每一步都知道为什么这么做、需要做到什么程度、做完要理解什么。

1
2
3
4
5
6
7
目标
技术点
代码任务
Codex Prompt
验收标准
复盘问题
下一步

回到扫地机的例子,低端机的”笨”,恰恰是它深度清洁的来源,这次两天的 AI 辅助学习,更像是高端扫地机的路径规划,每一个知识点都精准覆盖,没有冗余,没有重复,整整齐齐走完课程大纲。

但是,恰恰因为我没撞过墙,所以不知道哪些设计决策在实践中会反弹;我没有亲自做调研,所以对于竞品间的差异缺少真实体感;我没有在调试中反复绕路,所以对技术设计思路缺乏理解;我没有踩过坑,所以下次遇到同样的坑,我甚至不知道那是个坑。这就是极速学习的代价:只得到了知识的骨架,却没有得到血肉。

知识的血肉是那种仅凭直觉就能做出正确判断的能力,是大脑中的肌肉记忆,是靠时间堆出来的,是犯错、反思、重构、再犯错的循环产物,是在实际运用中要发挥出技术厚重性所必须的东西。

所以这种学习方式有一个容易被忽略的前提:学习者本身需要有相应的工程经验和系统化知识储备,需要知道什么是好的架构、能识别 AI 产出的代码质量、知道在哪一步该追问、哪一步差不多就够了。也就是说,他的知识体系要能容纳这个凭空增加的技术骨架。

过去我们衡量一个工程师,很大程度上看的是实现能力——你能多快写出能用的代码、能记住多少 API、能覆盖多少技术栈。当这些能力被 AI 拉平之后,真正稀缺的能力会转移到更上游:

第一,判断力。 能看出 AI 写出来的代码是真好还是看起来好——这不仅需要技术深度,还需要见过足够多的烂代码和好代码,知道好与坏的边界在哪里。AI 可以写代码,但它不会为你的生产事故负责。

第二,系统思维。 能设计系统、拆解问题、定义模块边界。AI 擅长在一个清晰的边界内做填空题,但谁来画这个边界?谁来确保八个模块拼在一起是一个自洽的整体?需要人,一个能从全局视角做权衡的人。

最后回顾这次经历,我得到了我需要的关于 Agent 开发的认知地图,效果就像一个科班出身的优秀毕业生给我讲了一遍专业课。之所以说是毕业生,是因为模型只能给你阳光下的知识,而我认为任何一个行当都应该至少还有一半阴影下的知识,那是学校不教的,模型大概率也没戏。

除此之外如果说还有什么美中不足,那就是竞品分析这个环节我认为最好还是得亲力亲为,竞品分析的过程,就是对一项技术做横向和纵向对比的过程,期间会自然而然的了解到更多的关联技术和完整的上下游生态,最终会完善并扩大我们自己的知识图谱。而一个足够宽广的知识图谱,是一切工程师优秀素养的前提,理想清况下当我们遇到任何新技术时,都应该可以快速为其在知识图谱中找到大致的纵横定位,只有这样,后面的判断力和系统思维才能够成为可能。

Hello Obsidian

hello-obsidian

作为两个 Pro 账号接力撑不到月底的 Cursor 重度用户、Google AI Pro 用户、AI IDE 羊毛无差别收割者,这是我近一年多 AI 辅助编程的心得体会。

阅读全文 »

本文完整记录了我与 Gemini 3.1 Pro 之间的一次对话,这次对话中的模型表现让我印象深刻,因为它好像真的能理解我输入的内容,即便语言组织随意甚至有些凌乱,但其依然能理解到话语背后的意图、情绪甚至潜意识冲突,而且对我的观点都能给出恰如其分的承接、理解、反馈,没有一惊一乍的跳脱感。最突出的是 Gemini 3.1 Pro 自始至终没有忘记对话的初衷,表现出极强的主题维系能力,整轮对话层层递进,话题自然延伸,语言风格一致,这一切都太“自然”了,太不 AI 了,可能唯一的瑕疵就是彩虹屁有点多。这是我第一次感受到 AI 在开发工作之外的沟通价值,AI 不再是那个满腹经纶但头脑混乱的扭蛋机,而是一个可以平等对话的对象,这不禁让我在对话的最后,向其表达了自己微末的善意。

阅读全文 »

GitPortrait 是一个专注于将 GitHub 开发者数据转化为可视化画像和可分享卡片的创新平台,为程序员和工程师提供个性化的代码贡献分析和 AI 驱动的洞察。

核心功能

多维度数据可视化

  • GitHub 数据深度分析:自动分析用户的代码贡献、仓库活跃度、技术栈偏好等多维度数据
  • 可分享卡片生成:一键生成精美的个人开发者画像卡片,支持多种模板(Linktree、Flomo、Multidimension、AI Portrait 等)
  • 排行榜系统:公开的开发者排行榜,展示活跃度和贡献度排名,激发社区参与

AI 驱动的智能分析

阅读全文 »

GitHub Card 是一个在线工具,能够将 GitHub 用户资料转换为精美的个人名片。通过 OAuth 认证获取用户 GitHub 数据,自动生成包含贡献统计、编程语言分析等信息的可视化卡片。用户可以选择不同模板定制个性化展示,支持一键下载高清图片或者复制分享链接,便于分享到社交平台,并提供了开发者排行榜功能。适合开发者展示个人技术实力和项目成就。

阅读全文 »

New Countdown Timer 是一款多功能的浏览器倒计时工具,帮助你以精准和灵活的方式管理时间。除了简单的倒计时外,该扩展还允许你为不同任务创建、保存和管理多个自定义计时器,无论是专注工作、烹饪还是锻炼间隔,都能轻松应对。

阅读全文 »

红茶中当以滇红最为馥郁,滇红中又以金芽最为鲜甜。

金芽红茶取自茶株芽头,通常一杯金芽的最佳饮用周期是前六泡,第 1-2 泡茶质未开,汤色偏白,醇浓中略带茶涩,仿佛人之青年;第 3-4 泡茶质舒展,汤色微红,口感香甜醇厚,仿佛人至中年,这也是一杯金芽的最佳饮用时期;第 5-6 泡茶质疏软,茶涩尽褪,口感柔滑中不失爽口,仿佛人之暮年。要得到金芽的最佳口感需要严格把控冲泡时间,水温以 85 度为宜,第一泡冲泡时间不能超过 7 秒,第二泡 14 秒,第三泡 30 秒,第四泡 1 分钟,第五泡 2 分钟,第六泡 5 分钟。因为金芽非常细嫩,冲泡过久容易损伤茶叶内质,茶汤会变得浓浊酸涩,而一旦冲泡时间过久,则整杯茶的生命周期将被破坏,基本就只能换茶重来了。

什么意思呢,就是说一个专注工作的人在上班时间是不可能喝好茶的。

阅读全文 »

这个博客是用 Hexo 构建的,最近换电脑 Hexo 博文源文件全部丢失了,这才发现像 Hexo 这种构建工具需要特别注意源文件备份,否则数据风险还挺高的。如果像我一样源文件已然丢失,其实也没有什么好的恢复方法,只能手动再配置一遍主题,再将博文搬运过来。

这个过程非常需要 html 转 markdown 工具,比如我用的这个,如果文章数量不太多,其实也花不了太多时间。而且这个重建博客的过程中往往我们会解决很多之前不完美而又懒得解决的问题。本文主要记录一下这两天我遇到的问题和解决过程。

阅读全文 »

网络视频(Web 视频)是指利用 HTML5 技术在浏览器中播放的视频,这类视频资源通常可以被随意下载,某些行业(比如教培行业)如果希望保护自己的视频资源不被下载,就需要对视频做防盗链处理。

阅读全文 »
0%