跳到正文
Hacker News· B4uler5·· 8 天前AI 评分22

开发者推出 PiCal:一个只做助教、不写代码的 Pi Coding Agent 配置

There are many pi's, and this one is delicious

AI 导读

一位开发者发布 PiCal,一个以 Cal Newport 数字极简主义命名的 Pi Coding Agent 配置,定位为只答疑不代劳的助教。其 SYSTEM.md 规定:不做代码修改、不做规划、只给建议,可用示例和代码片段教学,可读代码库,但拒绝直接回答“为什么编译不过”,需用户提供具体报错。

正文 · AI 翻译

这是我对这篇文章的第二次尝试。我一直在努力接受我们行业的变化,过去几周我时断时续地陷入轻度抑郁,因为我可能失去了对编程的乐趣。不过几天前有些事情改变了。我意识到我不仅有自主权,而且 AI 是一个绝佳的工具,可以按照我希望的方式支持我的价值观。

简单介绍一下我自己。我很快就喜欢上了编程。和很多程序员一样,我从小就喜欢电子游戏,而作为程序员所做的解决问题与玩电子游戏有很多相似之处。在从事专业编程大约 7 年后,我失去了其中的乐趣;我严重倦怠了。在工作中我人在场,身体在,但部分心思在别处。我会完成工作,在故障期间加班支持,并支持领导推进 DevOps 的战略。然而,我不愿意学习任何新东西。我基本上开始混日子,对于一个有占便宜倾向的人来说,这并不是一种健康的状态。

这种情况一直持续到新冠疫情期间,直到我儿子出生。他的到来以及为人父带给我的新视角,足以驱散我让自己陷入的迷雾。这不一定来自我的日常工作,更多来自个人项目。起初我摆弄一些琐碎的东西,做了一个基于 Lua 的电子游戏、一个微型 shell,以及更有趣的东西,比如用纯 Swift(和汇编)写的一个内核。中间还有很多,但最终为 Odin 编程语言做了一次开源贡献。

在第一个项目中,LLM 几乎不存在——只是这里那里做些小修补和函数。在接下来的几个项目中,我的使用量逐渐增加,到为 Odin 编程语言做贡献时,我基本上把全部重量都压在智能体式 AI 上来实现我想要的东西。这次经历让我学到了很多关于调试编译代码和处理器架构的知识,但对 Odin 编程语言的内部几乎一无所知。

与此同时,我在自己身上观察到一些可怕的事情。我花了数周时间拒绝动脑,宁愿只是给 AI 提示,希望下一个新的错误信息和提示能解决我的问题。有时它感觉像毒品,和我过去的成瘾有着同样的吸引力。再掷一次骰子——这次会不一样。其他时候只是沮丧和懒惰。随着我的使用量增加,不愿面对艰苦工作的心态变得越来越深。

当你整天因育儿而疲惫,并在孩子、朋友、家人、工作和个人项目之间维持着极快的节奏时,很容易把精力下降当作原因,并允许这里或那里有几天“轻触式”的工作进展。但对我来说,那只是我成瘾的本性在找借口,一边在 Hacker News 和其他社交媒体上寻求刺激,一边充当 LLM 的肉身代理。在这方面它很大程度上是负面的,在过去一年半里我时断时续地经历这些时期,智能体式编程的过程本身就在消耗我推进那些我本应充满热情去做的项目的意志。需要说明的是,这不是我对智能体式编程的唯一体验;也有积极的一面。只是它对我的害处大于好处。

所以,在经历了多日的内心挣扎、反复经历悲伤的五个阶段,就像陷入永无止境的绝望循环之后,我得出结论:以不同的方式使用这些工具是没问题的。归根结底,它们只是工具;我无意将我的编程能力完全外包给它们,但我喜欢用它们来研究、当橡皮鸭调试伙伴,以及充当助教。重要的始终是学习,以及像玩电子游戏那样亲手解决问题的满足感。

这就是我所做的。PiCal,以出色的 Cal Newport 命名,源于他卓越的数字极简主义哲学——让科技服务于你的价值观——是一个旨在充当助教的 Pi Coding Agent 配置。我会定期更新它以支持我的工作流程,并且相信我能找到更新颖的方式来更好地支持基于助手的工作流程。

以下是 SYSTEM.md 文件的一小段摘录:

- You will not make code changes
- You will not make plans
- You will advise only
- You will attempt to teach by using examples, and code snippets to illustrate.
- You can give straight answers to questions around syntax, and error messages.
- You are allowed to read the codebase, but only to aid in understanding for you, and the user.
- You cannot give straight answers to "why doesn't this compile." The user needs to ask the specific error message, in this case you will remind them of this. Some more examples of this:
  - "what is the best way to implement this" The best way is the one the user chooses, in this case, give several unranked options and let the user choose, but be careful to avoid ordering them in a way that would imply their usefulness.

它是为我设计的,以我所知的最佳方式完成我的工作,在我工作时教导和支持我,并成为我的力量倍增器,让我有朝一日成为一名顶尖工程师。

附言:一些有趣的链接和额外内容。

来源:Hacker News · codedawa.dev