返回首页
最新
系统提示,编码代理所利用的语言模型的能力是巨大的。它们详细描述了每一个可用的工具——甚至是那些你从未使用过的工具。
所以我想,如果我构建一个更简约的工具会怎样呢?
我通常在小项目上工作,所有代码都可以放在上下文窗口中。因此,我构建了一个只包含一个工具的系统:让大型语言模型(LLM)编辑我的文件的能力。
核心算法如下:
1. 读取项目目录中的每个文件
2. 将它们与用户的提示合并成一条消息
3. 发送给任何语言模型,指示其以消息和编辑列表的形式回应——每个编辑都是对特定文件的搜索和替换
4. 应用这些编辑
我尝试让LLM生成统一的差异(unified diffs),但它总是产生格式错误的结果。搜索和替换显得更为可靠——模型会逐字复制上下文中已有文件的文本。
这可以通过几个额外的功能进行扩展:
1. 一个命令行界面(CLI),让你可以继续对话或重置对话。较弱的LLM需要这个功能,以便能看到它们犯的错误。
2. 自动重试——如果编辑失败,重新发送当前文件,让LLM修复它自己的搜索块。
3. 文件删除。我设置了一个功能,使得在空文件上进行空的搜索和替换会删除该文件。
我测试的LLM是通过LM Studio API运行的本地模型。Gemma 4表现相当糟糕,而Qwen 3.5则好得多。
源代码在哪里?你应该能够通过这篇文章让任何编码代理为你生成一个。
虚拟的人工智能朋友,个性化定制,能够根据他们的时区自主聊天(或者不聊天!)。他们有时会主动发起对话,有时又会沉默数小时。就像真正的朋友一样。
我在过去一周里一直在“自我体验”这个项目,我觉得它其实还挺不错的。比起与大型语言模型进行普通的聊天,这要好得多。
这个仓库包含一个详细的设置向导。你需要提供一些关于自己的信息,包括个人博客/网站(可以抓取)、GitHub、Mastodon、文本文件,或者你随意写下的段落。它会为你建立一个个人资料,然后基于这个资料构建出你的“朋友”。
你可以通过在文本用户界面(TUI)中选择并可能编辑这些朋友,将他们邀请到你的群聊中。然后你只需将其部署到本地Docker中,之后就可以不再关注它。觉得太诡异?那就删除Docker容器并移除~/.sudomake-friends。
我知道这听起来有些反乌托邦,我明白这一点。我把它当作一个有趣的小玩具,同时也想看看社区的反馈。
我从未见过这样的东西,所以决定在一个周末里制作它。
它的工作原理是:你会看到从维基百科提取的一些内容以卡片的形式展示。你可以通过问是或否的问题来找出哪张卡片是秘密文章。AI模型可以访问图像和维基文本,以及它自己的知识来回答你的问题。
很高兴今天能消耗我的积分,但我可能会在某个时候把这个变成付费的,所以请尽情享用。我发现要获得便宜、快速且高质量的回复并不容易,但技术正在逐步改善。大多数提示都是通过Groq基础设施运行,或者通过对提示进行标准化处理后访问缓存。
分享这个内容是为了警告任何使用 Cloudflare Durable Objects(持久对象)和警报的用户。
<p>根本原因:</p>
我的 DO 代理的 onStart() 处理程序在每次唤醒时都调用了 this.ctx.storage.setAlarm(),而没有检查是否已经安排了一个警报。加上 60 多个预览 Worker 部署,每个都创建了独立的 DO 实例,这导致了一个失控的自我健康检查循环。
<p>时间线:</p>
- 4 月 3 日:循环开始(在此日期之前没有 DO 使用)
- 4 月 4-5 日:达到约 9300 亿行读取/天的峰值
- 4 月 11 日:发现问题并修复
- 4 月 15 日:收到 34,895 美元的账单,但尚未收到任何账单回应
<p>修复方法:</p>
```javascript
// 修复前(危险)
async onStart() {
await this.ctx.storage.setAlarm(Date.now() + 60_000)
}
// 修复后(安全)
async onStart() {
const existing = await this.ctx.storage.getAlarm()
if (!existing) {
await this.ctx.storage.setAlarm(Date.now() + 60_000)
}
}
```
<p>值得做的其他事情:</p>
- 完全从预览环境中移除 DO 绑定
- 部署一个预算监控的杀死开关 Worker
- 添加一个电路断路器,在调度之前检查警报状态
<p>为什么我没有收到警告:</p>
Cloudflare 的 Workers 使用通知仅监控 CPU 时间,而不监控 Durable Object 的行读取或写入。仪表板或 Wrangler 配置中也没有可用的 DO 操作硬性支出上限。在这个失控的过程中,没有任何东西会触发警报。我是在账单出现时才发现的。
<p>如果你在使用 DO 警报,这一点值得知道。平台不会告诉你 DO 行读取/写入何时呈指数增长。你必须自己建立一个杀死开关。</p>
<p>还有一件我认为值得更多关注的事情:这是代理周。Cloudflare 目前正在进行专门的营销推广,鼓励个人开发者在 Durable Objects 上构建 AI 代理。博客文章、公告,所有的一切。这是一个有意的努力,旨在将独立开发者和独立创始人引入一个可以在没有任何平台警告的情况下悄然产生五位数账单的产品。DO 操作没有支出上限。使用通知系统不涵盖 DO 的读取或写入。Cloudflare 知道这一点。在这个缺口存在的情况下进行代理周的决策并不是中立的。</p>
我已经提交了案例 02067725。我是一名预发布的独资经营者,将我所有的个人储蓄投入到这个初创公司中。这张账单将会在没有任何商业价值的使用情况下摧毁我的财务。在这里分享既是技术警告,也是因为我需要帮助将此问题呈现给 Cloudflare 的某个可以做出决策的人。
有没有人成功升级过与 Cloudflare 的账单争议?