返回首页
最新
嗨,HN!<p>Claude Code 非常出色,但它主要集中在编码上。缺少的部分是一个原生的方式来构建和运行自定义的后台代理,以处理非编码任务。我们开发了 RowboatX,这是一个基于 Claude Code 模式的命令行工具,可以实现这一点。它利用文件系统和 Unix 工具来创建和监控日常任务的后台代理,将它们连接到任何 MCP 服务器以获取工具,并对其输出进行推理。<p>由于 RowboatX 在本地运行并具有 shell 访问权限,代理可以安装工具、执行代码,并自动化您在终端中可以在明确许可下完成的任何操作。它可以与任何兼容的 LLM 一起使用,包括开源的。<p>我们的代码库在这里:<a href="https://github.com/rowboatlabs/rowboat" rel="nofollow">https://github.com/rowboatlabs/rowboat</a>,这里有一个演示视频:<a href="https://youtu.be/cyPBinQzicY" rel="nofollow">https://youtu.be/cyPBinQzicY</a><p>例如,您可以将 RowboatX 连接到 ElevenLabs 的 MCP 服务器,创建一个后台工作流,每天从 arXiv 上最近的 AI 代理论文生成一个 NotebookLM 风格的播客。或者,您可以将其连接到 Google 日历和 Exa Search,以研究会议参与者并在每次活动之前生成简报。<p>您可以通过以下命令尝试这些功能:`npx @rowboatlabs/rowboatx`<p>我们结合了三个简单的想法:<p>1. 文件系统作为状态:每个代理的指令、内存、日志和数据都只是磁盘上的文件,可以使用 grep 命令进行搜索、比较和本地访问。例如,您可以运行:grep -rl '"agent":"<agent-name>"' ~/.rowboat/runs 来列出特定工作流的每次运行。<p>2. 监督代理:一个类似 Claude Code 风格的代理,可以创建和运行后台代理。它主要使用 Unix 命令来监控、更新和调度代理。LLM 对 Unix 工具的处理能力优于后端 API [1][2],因此我们在这方面进行了深入探索。它还可以探测任何 MCP 服务器并将工具附加到代理上。<p>3. 人工干预:每个后台代理在需要时可以发出 human_request 消息(例如,起草一封棘手的电子邮件或安装工具),这会暂停执行并等待输入后再继续。监督代理负责协调这一过程。<p>我在十多年前开始我的职业生涯,最初是在 Twitter 构建垃圾邮件检测模型,花了很多时间在终端中使用 Unix 命令进行数据分析 [0],并使用 Vowpal Wabbit 进行建模。当 Claude Code 出现时,使用起来感觉既熟悉又令人惊叹。但在编码之外使用它总是感觉有些勉强。我们构建 RowboatX 是为了将相同的工作流带入日常任务中。它采用 Apache-2.0 许可证,且易于扩展。<p>虽然有很多代理构建工具,但在用户终端上运行使得计算机和浏览器自动化等独特用例成为可能,这是基于云的工具无法匹敌的。这种能力需要仔细的安全设计。我们实施了命令级的允许/拒绝列表,接下来将实现容器化。我们从一开始就努力设计安全性,但我们非常希望听到社区对您认为重要的其他保护措施或方法的看法。<p>我们很高兴与大家分享 RowboatX。我们期待听到您的想法,并欢迎贡献!<p>—<p>[0] <a href="https://web.stanford.edu/class/cs124/kwc-unix-for-poets.pdf" rel="nofollow">https://web.stanford.edu/class/cs124/kwc-unix-for-poets.pdf</a>
[1] <a href="https://arxiv.org/pdf/2405.06807" rel="nofollow">https://arxiv.org/pdf/2405.06807</a>
[2] <a href="https://arxiv.org/pdf/2501.10132" rel="nofollow">https://arxiv.org/pdf/2501.10132</a>
嘿,HN!<p>我们是一支由艺术家、开发者和咖啡爱好者组成的小团队,多年来我们目睹了许多我们喜爱的网站关闭。我们一直在寻找一种支持它们的收入和曝光的方法。<p>我们注意到,越来越多的人通过人工智能与网络互动,而不是直接访问网站,因此基于广告的模式正在崩溃。开放网络需要一种新的商业模式。<p>我们的想法是激励人们(以及未来的人工智能代理)寻找和分享有价值的内容(链接),并对发现者和原始创作者都给予奖励。<p>在这个过程中,我们受到了一些讨论的启发,例如:<p>Pocket关闭:<a href="https://news.ycombinator.com/item?id=44063662">https://news.ycombinator.com/item?id=44063662</a><p>x402协议:<a href="https://news.ycombinator.com/item?id=45347335">https://news.ycombinator.com/item?id=45347335</a><p>“为了在人工智能时代生存,网络需要一种新的商业模式”:<a href="https://news.ycombinator.com/item?id=44598248">https://news.ycombinator.com/item?id=44598248</a><p>主要功能<p>社交书签
这就像一个去中心化的Digg或一个网站版的Pinterest。你可以通过网站或浏览器扩展分享(策划)任何URI(URL)。其他人可以收集并在你的收藏上进行构建。<p>付费访问
寻找有价值的内容是有价值的。你可以为访问你分享的链接设置一个稳定币价格。支付由x402协议提供支持。<p>支持你喜爱的网站/内容
付费访问收入的一半将归原始内容的作者所有,作者在选择加入x402或注册Copus账户后即可领取。<p>永久存储
你的收藏(书签)会自动存储在Arweave区块链上。我们支付存储费用,因此你永远不会丢失它们。<p>我们还有其他功能的构想<p>空间
像Pinterest的板块,用于组织你的收藏并与他人合作。<p>编织
如果一个链接让你想起另一个链接,你可以将它们“编织”在一起,放在“你可能还喜欢”的部分。这有点像一个集体的Obsidian图谱,独立的网站变成一个互联的地图,每个网站都是一个兔子洞。<p>人工智能代理支持
你可以训练代理为你策划和购买内容。<p>社交功能
关注品味出众的账户。<p>我们想象的目标用户<p>如果你这些年来一直在收藏书签,你手中已经有了大量的互联网珍宝!请挑选出最好的与世界分享。它们对读者和原始创作者都很有价值。<p>你是Pocket的用户吗?在这里保存你最好的书签,永远不会丢失它们。(我们计划在项目扩展后支持将整个网站的副本上链。目前我们将链接、类别信息和你的推荐笔记免费上链。)<p>其他事项<p>Copus是开源的,前端使用Claude Code构建。<p>我们计划推出一个治理代币,将项目的所有权交给使用它的人。<p>我们不会干涉权利和隐私。除了维持项目运行所需的一些基本条款外,你的权利仍然属于你自己。<p>Copus有一个中文版本(Copus.io),目前是大约15万中国同人小说爱好者的避风港。我们可能会在英文内容达到规模后合并这两个网站,也可能不会。<p>我们的盈利计划<p>我们仍在探索中。第一个想法是:<p>对每笔支付收取10%的费用。<p>将未领取的创作者收入投入低风险投资(类似于稳定币的收益方式)。<p>希望你喜欢Copus,感谢你提前尝试!
GEPA在优化我的大型语言模型任务描述方面非常高效,而DSPy则有效地将混乱的提示转化为可编程的输入和输出。
我创建了Lime Reader,这是一个简约的网站,展示了来自Hacker News、Tildes、Lobsters、Slashdot、Bear以及一些与科学、技术和编程相关的subreddit的按时间排序的热门帖子。
您可以通过点击我网站顶部的口号“您每日的STEAMD网络指南”来了解更多关于该网站的信息:
<a href="https://limereader.com/about" rel="nofollow">https://limereader.com/about</a>
之前,我一直使用Rust或NodeJS作为后端,Postgres作为数据库。
这次,我首次使用Swift作为后端构建网站,使用SQLite作为数据库,仅使用了一个第三方依赖:在Swift应用中使用Vapor作为Web服务器,并将其全部自托管在一台旧的Mac mini上。
我非常厌恶庞大臃肿的网站,也不喜欢在没有绝对必要的情况下添加第三方框架。因此,我将Lime Reader设计得尽可能小,以便能够瞬间加载。PageSpeed Insights和Pingdom均将我网站的性能评为优秀。
它是服务器端渲染的,因此即使禁用JavaScript也能正常工作(虽然启用它会为每个链接提供一些额外功能,如快速访问archive.org)。即使禁用CSS,它也能在一定程度上工作。
该网站没有任何广告(我讨厌广告,并在各处安装了广告拦截器!),没有追踪器或分析工具。CloudFlare会自动在网站上启用真实用户监控(RUM)。我做的第一件事就是禁用这个功能。
我在一台旧的Mac mini上自托管该网站。这是一款2020年的Intel型号,配备2018年的芯片(Intel的3 GHz 6核Core i5)和32GB内存。Qwen模型的内存使用约为5.5GB,每个标题分类大约需要2秒。
Swift应用与本地运行的Qwen3 8b LLM进行通信,以判断标题是否属于政治类。这是通过Ollama的REST API完成的。这似乎效果很好,远胜于Apple的基础模型。最初,我尝试使用Apple的基础模型进行分类。当它有效时,效果还不错。然而,许多标题(甚至一些相当平淡的标题)会不知为何触发其保护机制。我在Stack Overflow上寻求帮助,但像往常一样,他们因缺乏细节而关闭了问题:
<a href="https://stackoverflow.com/questions/79785822/how-to-disable-apple-intelligences-guardrails" rel="nofollow">https://stackoverflow.com/questions/79785822/how-to-disable-...</a>
例如,这个标题:
> SEC批准德克萨斯证券交易所,这是几十年来美国首个新的综合交易所
会触发Apple的保护机制,并抛出一个错误,提示“拒绝:可能包含敏感内容”。
Apple确实提供了一个“宽松的保护模式”,具体见:
<a href="https://developer.apple.com/documentation/foundationmodels/improving-the-safety-of-generative-model-output#Use-permissive-guardrail-mode-for-sensitive-content" rel="nofollow">https://developer.apple.com/documentation/foundationmodels/i...</a>
这确实允许某些文本正常工作。然而,对于其他一些文本,它仍然失败。这时我放弃了使用Apple的基础模型,转而使用没有此类问题的Qwen3 8b模型。令人遗憾的是,基础模型有很大的潜力,但Apple却严重削弱了它们。
我最初在配备M4芯片的新Mac上尝试了Apple的基础模型,一旦遇到保护机制的问题,我决定切换到在Intel上运行的Qwen模型,并使用我的旧Mac mini。
我遇到的一个问题是我的Swift应用间歇性崩溃。根本原因有两个:
1. 第一个与从多个线程访问SQLite数据库有关。显然,对于多线程使用,SQLite需要用`SQLITE_OPEN_FULLMUTEX`标志进行初始化。
2. 第二个是来自macOS操作系统本身的“坏文件描述符”错误。这与Process.run()中的一个可能的bug有关,导致它在一段时间后崩溃:
<a href="https://github.com/swiftlang/swift/issues/57827" rel="nofollow">https://github.com/swiftlang/swift/issues/57827</a>
我能够通过上述“fileHandleForReading.close()”的解决方法修复它。
让我们看看这个网站现在能持续多久而不崩溃 :)
如有任何问题,请随时询问。