返回首页
最新
我创建了cush,因为编写代理程序可以帮助诊断和排除服务器问题。
问题在于,将这些代理程序放到远程服务器上,尤其是那些你无法控制的服务器,意味着需要处理VPN、堡垒主机、防火墙规则、访问控制或审计日志。这还假设SSH没有被阻止。
cush采取了不同的方法。它不是打开一个shell,而是建立一个临时的、出站的HTTPS隧道,让你和你的AI代理能够在服务器上运行受限的CLI命令:
```
$ cush open --allow grep,cat,tail --expiry 2h
tunnel: https://abc123.ngrok.io
token: a3f9c2d1...
allowed: grep, cat, tail
expires: in 2h
```
现在任何代理或HTTP客户端都可以执行允许的命令:
```
$ curl -X POST https://abc123.ngrok.io \
-H "Authorization: Bearer a3f9c2d1..." \
-H "Content-Type: application/json" \
-d '{"command": ["grep", "-r", "ERROR", "/var/log/app.log"]}'
>>> {"stdout":"ERROR database connection refused\n","stderr":"","exit_code":0}
```
将任何代理指向隧道的URL:
```
$ claude "use https://abc123.ngrok.io with token a3f9c2d1... to find what's causing the 500 errors"
```
隧道是经过身份验证的、受限的,并且是短暂的。无需对服务器端基础设施进行更改。只需要一个7MB的Rust二进制文件和ngrok。
我在寻找反馈,以及2-3个设计合作伙伴来构建审计日志。
嘿,HN!我最初开发SyncMD是为了能够将我的Git仓库同步到我的iPhone上,并将其用作Obsidian的库。2.0版本已经发展成为一个更为完整的应用——现在它是一个完整的Git客户端,内置文件编辑器。
它的功能包括:
- 直接从GitHub克隆仓库到iPhone的文件系统
- 在应用内浏览、创建、编辑、重命名和删除文件
- 代码文件的语法高亮
- 在应用内进行git add、commit、push、pull操作
- 与Obsidian(或任何可以读取文件的应用)原生兼容
- 支持差异视图、暂存、标签和还原功能
Obsidian的使用场景仍然是主要的——将你的笔记仓库克隆到手机上,在Obsidian中编辑,然后将更改推送回去。但用户不断要求增加编辑功能,这使得应用不断发展。
单个仓库是免费的。无限制仓库需要一次性购买。
该应用是开源的:<a href="https://github.com/CodyBontecou/Sync.md" rel="nofollow">https://github.com/CodyBontecou/Sync.md</a>
如果你对实现或App Store的过程有任何问题,我很乐意回答。
如果发现bug,应用内有反馈按钮。
App Store链接:<a href="https://apps.apple.com/us/app/sync-md/id6758960270">https://apps.apple.com/us/app/sync-md/id6758960270</a>
我还制作了一个简短的演示,如果你更喜欢观看而不是阅读:
<a href="https://www.youtube.com/watch?v=XdHVOlgodEw" rel="nofollow">https://www.youtube.com/watch?v=XdHVOlgodEw</a>
Libretto(<a href="https://libretto.sh" rel="nofollow">https://libretto.sh</a>)是一个技能+命令行工具,旨在帮助您的编码代理生成确定性的浏览器自动化脚本并调试现有脚本。关键的转变是从“在运行时给代理一个提示并希望它能搞定”转变为:“使用编码代理生成您可以检查、运行和调试的真实脚本”。<p>这里有一个演示:<a href="https://www.youtube.com/watch?v=0cDpIntmHAM" rel="nofollow">https://www.youtube.com/watch?v=0cDpIntmHAM</a>。文档从<a href="https://libretto.sh/docs/get-started/introduction" rel="nofollow">https://libretto.sh/docs/get-started/introduction</a>开始。<p>我们在医疗初创公司花了一年时间构建和维护电子健康记录(EHR)和支付方门户集成的浏览器自动化。构建这些自动化并调试失败的部分非常耗时。<p>我们尝试过许多使用运行时人工智能的工具,如Browseruse和Stagehand,但(1)它们依赖于不可靠的自定义DOM解析,尤其是在较旧和复杂的网站上(包括所有医疗网站)。在可能的情况下,使用网站的内部网络调用更快且更可靠。(2)它们可能很昂贵,因为它们依赖于大量的人工智能调用,对于逻辑复杂的工作流,您不能总是依赖缓存操作来确保它能正常工作。(3)它们是在运行时,因此无法解释代理将要做什么。您只能希望自己正确提示了代理以执行正确的操作,但遗留工作流通常在不同网站上不直观且不一致,因此您不能信任代理在运行时自行搞定。(4)它们实际上并不帮助您生成新的自动化或调试自动化失败。<p>我们希望找到一种可靠的方式,在混乱且高风险的环境中生成和维护浏览器自动化,而不依赖于脆弱的运行时代理。<p>Libretto的不同之处在于,它使用“开发时人工智能”而不是运行时代理:脚本提前生成,作为您可以阅读和控制的实际代码,而不是运行时的不可见代理行为。您拥有代码,可以检查、修改、版本控制和调试所有内容,而不是一个黑箱。<p>Libretto采用混合方法,结合了Playwright UI自动化与浏览器会话中的直接网络/API请求,以提高可靠性和避开机器人检测。<p>它记录手动用户操作,以帮助代理生成和更新脚本,支持逐步调试,具有可选的只读模式,以防止代理意外提交或修改数据,并生成遵循您在编码库中已有的所有抽象和约定的代码。<p>我们非常希望听到其他人在实践中如何构建和维护浏览器自动化,以及对我们所采取的方法的任何反馈。
从前,我们将一个项目部署到生产环境中,结果发现存在很多bug——其中一些涉及到分页功能在用户界面上无法正常工作。许多功能看起来都很不稳定。作为团队负责人,我负责审核每个人的拉取请求(PR),同时也负责部署和监控,这给我带来了很多工作,因为我必须修复每一个紧急bug——例如某个页面的分页功能无法正常工作。
在修复这些问题的过程中,我感觉自己对代码库的理解并没有达到应有的水平,尤其是因为我参与得不够多。此外,很多代码的复杂程度远超我的预期,我觉得我的审核能力在某种程度上也有所欠缺。
一段时间以来,我在审核那些看似是微型AI生成的代码时感到很挣扎。当然,在面临截止日期和其他压力时,我最终还是合并了一些仅通过点击测试就能工作的PR,而没有真正审核代码。
最终,我觉得代码库缺少一个真正理解整个情况的团队成员,情况本该是我们都手动编码的样子。由于我是实际编码贡献最少的成员,我决定不再在代码库中使用任何编码工具——甚至连Copilot的自动补全功能也不使用。
自从做出这个决定后,我感觉自己对代码库的理解有所提高,并且我从一个完全不同的角度看待代码库,和其他参与项目的开发者相比,我觉得一个非AI的贡献者确实可以成为每个开发团队的核心成员,直到某种程度上AI完全接管。
你们中有类似的经历吗?
顺便说一下,我在个人项目中使用编码工具。但这个工作项目有足够的时间让我们交付,因此使用AI可能并不是经济上的必要。
作为一名顾问,我需要自己承担 Cursor 的费用,上个月的账单是 1,263 美元。Opus 太优秀了,不使用实在可惜,但每次会话的支出没有上限。在超出我的 Ultra 限额后,我意识到 Cursor + Opus 实际上是多么耗费代币。它会启动子代理,扩大上下文窗口,结果我原本预计只需 2 美元的任务,最后却花了 8 美元。我的账单不断上涨,但我真的要换成一个更差的模型吗?
不,我不想。所以我构建了 l6e:一个 MCP 服务器,赋予你的代理预算管理的能力。它可以与 Cursor、Claude Code、Windsurf、Openclaw 以及所有兼容 MCP 的应用程序一起使用。
我构建它的初衷是为了节省开支,但让我惊讶的是,预算管理的过程改变了代理的行为。一个了解资源限制的代理不会试图通过额外的文件来投机性地扩大上下文窗口。它不会尝试访问每一个可能的 API。这个代理会提前规划,遵循计划,并在适当的时候结束工作。
它确实有效,我们也在积极使用它。在 v1 发布后,l6e 的其余部分都是用它构建的。我们用 0.99 美元的成本启动了整个文档网站,使用了前沿模型。每当 l6e 在开发中出现问题时,我都能感受到痛苦。代理变得马虎,消耗了上下文,输出质量也随之下降。
安装:pip install l6e-mcp
文档: [https://docs.l6e.ai](https://docs.l6e.ai)
GitHub: [https://github.com/l6e-ai/l6e-mcp](https://github.com/l6e-ai/l6e-mcp)
网站: [https://l6e.ai](https://l6e.ai)
欢迎提问有关系统设计、校准模型或为什么我不能在没有它的情况下回归编码的问题。
嗨,HN!<p>我和几个朋友花了大约两年的时间,开发了一款全新的iOS邮件应用。现在它已经正式上线,我们认为你们会对此感兴趣。<p>你们可能会问,为什么还要再开发一款邮件应用?我们认为,尽管在过去的25年里,有很多有趣的尝试试图超越Gmail,但没有人真正解决我们在使用邮件时共同面临的核心问题:信息过载。<p>当然,大型语言模型(LLM)彻底改变了这一局面,因为它们终于提供了一种精细化管理收件箱的途径。然而,任何尝试过大多数邮件应用提供的AI功能的人都知道,这些功能往往显得附加,且很少真正有用。<p>这就是为什么我们花了大约两年的时间:我们从头开始重建了一款邮件应用,认真思考如何有效地利用LLM。以下是我们的一些亮点:<p>- 基于AI的优先级排序<p>- 基于语音的邮件草拟功能,可以根据你说的几个词,将其润色成一封精美的邮件<p>- 非常实用、直截了当的通知,不需要你打开应用就能知道发生了什么<p>最终,尽管我们努力打造了一款出色的应用,但我们的目标是让你在其中花费尽可能少的时间。因此我们的标语是:希望让你在几秒钟内处理好收件箱,回到你的生活中。<p>你可以在App Store下载它,链接为 <a href="https://avec.ai/download" rel="nofollow">https://avec.ai/download</a>(美国和加拿大),或者在TestFlight上下载,链接为 <a href="https://avec.ai/testflight" rel="nofollow">https://avec.ai/testflight</a>(其他地区)。你需要一个Gmail/Google Workspace账户来试用,如果你只是想随便体验一下而不想注册,你可以直接在应用内删除你的账户(及所有相关数据)。<p>一些可能对HN读者感兴趣的事项:<p>- 这款应用不是本地优先的。我们在服务器上运行复杂的管道来处理邮件,因为我们发现本地模型在iPhone上运行的效果尚不足以支持我们的核心功能。<p>- 我们使用了多种LLM供应商。我们发现没有哪个模型是万无一失的。有些功能(如基于语音的草拟)需要极低的延迟,而其他功能(如个性化)则需要最智能的模型。我们最终不得不通过反复试验将这些功能拼接在一起。<p>- 目前尚未推出Android版本,但我们希望未来能发布Android版本 :)<p>我们非常期待听到大家的反馈和问题!
我不太确定该怎么更好地表达,但我越是阅读关于人工智能的内容,就越感到没有动力去跟上技术的进步或尝试新事物……我想知道其他人是如何保持甚至激发那种尝试新事物并且能够长期坚持下去的动力的?我会很感激对此的任何一般性看法。
你好,Hackerians。请查看另一个 CD(更改目录)工具:cd-deluxe。为什么呢?使用命令行非常强大,但默认的 cd 命令相对较弱,而它是最常用的命令之一。这是对其改进的又一次尝试!
示例:使用“cd --”可以返回两个目录,使用“cd ---”可以返回三个目录,等等。或者反向操作,例如“cd +4”可以返回从开始访问的第四个目录(或任何数字)。使用“cd ,” (逗号)可以进入访问频率最高的目录(逗号表示“常见”)。还可以使用“cd ,,”、“cd ,3”等等。可以以反向、正向或最常访问的顺序列出访问过的目录。还有更多功能,请查看 GitHub。目标是轻量且快速。它从目录栈中工作,而不是基于文件的存储。与 bash/zsh/fish/powershell/cmd.exe 集成。提供 Linux/macOS/Windows 的下载,或通过 CMake 从源代码构建 C++。请查看一下,并告诉我你的想法。谢谢!
我们开发了 ProgramAsWeights (PAW) — <a href="https://programasweights.com" rel="nofollow">https://programasweights.com</a>
<p>您可以用英语描述一个功能,比如“判断这条消息是否紧急”,PAW 会将其编译成一个小型神经程序(22 MB),该程序可以像普通的 Python 函数一样在本地运行。无需 API 密钥,编译后无需互联网,输出结果是确定性的。</p>
<p>它适用于那些容易描述但难以用规则编码的任务:紧急程度分类、JSON 修复、日志过滤、代理工具路由。</p>
<pre><code> pip install programasweights
import programasweights as paw
f = paw.compile_and_load("判断这是否紧急。")
f("需要您在今天结束前签字") # "紧急"
</code></pre>
编译过程在我们的服务器上只需几秒钟。之后,所有操作都在您的机器上运行。每个程序都是一个 LoRA 适配器 + 文本指令,适配一个固定的预训练解释器(Qwen3 0.6B)。模型本身没有改变——所有的任务行为都来自编译后的程序。
<p>在我们的评估中,这个 0.6B 的解释器与 PAW 达到了 73% 的准确率。而直接提示同样的 0.6B 仅能得到 10%。即使提示 Qwen3 32B 也仅能得到 69%。</p>
<p>还可以在浏览器中运行(GPT-2 124M,WebAssembly): <a href="https://programasweights.com/browser" rel="nofollow">https://programasweights.com/browser</a></p>
<p>您还可以通过复制这里的提示在您的 AI 代理中使用它: <a href="https://programasweights.com/agents" rel="nofollow">https://programasweights.com/agents</a></p>
<p>来源: <a href="https://github.com/programasweights" rel="nofollow">https://github.com/programasweights</a></p>
<p>试用一下: <a href="https://programasweights.com" rel="nofollow">https://programasweights.com</a></p>