1作者: filipbalucha5 个月前原帖
你好,Hacker News!我们是来自 Terminal Use 的 Filip、Stavros 和 Vivek(<a href="https://www.terminaluse.com/">https://www.terminaluse.com/</a>)。我们创建 Terminal Use 是为了简化在沙盒环境中部署需要文件系统的代理程序。这包括编码代理、研究代理、文档处理代理以及读取和写入文件的内部工具。 <p>这是一个演示:<a href="https://www.youtube.com/watch?v=ttMl96l9xPA" rel="nofollow">https://www.youtube.com/watch?v=ttMl96l9xPA</a>。</p> 我们在托管代理时遇到的最大痛点是需要将多个部分拼接在一起:打包代理、在沙盒中运行、将消息流回用户、在回合之间持久化状态,以及管理文件在代理工作区之间的传输。 <p>我们希望能有类似于 Replicate 的 Cog,但用于代理的解决方案:一种简单的方法来从代码库打包代理代码,并通过干净的 API/SDK 提供服务。我们希望提供一种与代理通信的协议,但不限制代理的逻辑或框架本身。</p> 在 Terminal Use 上,您可以通过 config.yaml 和 Dockerfile 从代码库打包您的代理,然后使用我们的 CLI 部署。您需要定义三个端点的逻辑(on_create、on_event 和 on_cancel),这些端点跟踪任务(对话)的生命周期。config.yaml 包含有关资源、构建上下文等的详细信息。 <p>开箱即用,我们支持 Claude Agent SDK 和 Codex SDK 代理。所谓支持,是指我们有一个适配器,可以将 SDK 消息类型转换为我们的类型。如果您想使用自己的自定义框架,可以使用我们的类型进行消息转换和发送(兼容 Vercel AI SDK v6)。在前端,我们提供了一个 Vercel AI SDK 提供者,让您可以将代理与 Vercel 的 AI SDK 一起使用,并且有一个消息模块,这样您就不必自己管理流和持久化。</p> 我们认为最不同的部分是存储。 <p>我们将文件系统视为一等原语,与任务的生命周期分开。这意味着您可以在回合之间持久化工作区,在不同代理之间共享,或者独立于沙盒的活动上传/下载文件。此外,我们的文件系统 SDK 提供预签名的 URL,使用户可以直接上传和下载文件,这样您就不需要通过后端代理文件传输。</p> 由于您的代理逻辑和文件系统存储是解耦的,这使得您可以轻松迭代代理,而不必担心沙盒中的文件:如果您发布了一个错误,您可以部署并自动迁移所有任务到新的部署。如果您进行了一次重大更改,您可以指定现有任务保持在旧版本上,只有新任务使用新版本。 <p>我们还在添加对多文件系统挂载的支持,具有可配置的挂载路径和读/写模式,因此存储保持持久和可重用,而挂载布局保持任务特定。</p> 在部署方面,我们受到了现代开发平台的影响:简单的 CLI 部署、预览/生产环境、基于 git 的环境目标、日志和回滚。您需要的所有配置都存储在 config.yaml 文件中,这使得在 CI/CD 管道中构建和部署代理变得简单。 <p>最后,我们明确设计了我们的平台,以支持您的 CLI 编码代理,帮助您构建、测试和迭代代理。通过我们的 CLI,您的编码代理可以向已部署的代理发送消息,并下载文件系统内容,以帮助您理解代理的输出。我们测试代理的常见方法是制作包含我们想要测试的用户场景的 markdown 文件,然后请求 Claude Code 模拟我们的用户并与已部署的代理聊天。</p> 我们目前尚未实现的功能:与通用沙盒提供商的完全对等。例如,预览 URL 和更低级别的 sandbox.exec(...) 风格的 API 仍在开发计划中。 <p>我们期待在下面的评论中听到您任何的想法、见解、问题和关注!</p>
1作者: sarthaksaxena5 个月前原帖
针对大型语言模型的 npm —— 安装、运行和分享 AI 模型。<p>我们开发了 llmpm,一个命令行工具,使开源大型语言模型可以像软件包一样安装。<p>使用命令:llmpm install llama3 llmpm run llama3<p>您还可以将模型与您的项目打包,以便其他人可以轻松复现相同的设置。<p>网站:<a href="https:&#x2F;&#x2F;llmpm.co" rel="nofollow">https:&#x2F;&#x2F;llmpm.co</a><p>GitHub:<a href="https:&#x2F;&#x2F;github.com&#x2F;llmpm&#x2F;llmpm-dev" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;llmpm&#x2F;llmpm-dev</a>
4作者: AusiasTsel5 个月前原帖
我是一个多语言读者(加泰罗尼亚语/西班牙语/英语/意大利语),但我总是遇到同样的问题:我听说一本书,却不知道它是否有我所使用的语言版本。事实证明,这是一个真正未解决的问题。目前没有一个统一的数据库来跟踪哪些书籍被翻译成了哪些语言。ISBN注册在各个国家之间是碎片化的。开放图书馆在英语方面覆盖面广,但在其他语言上存在空白。维基数据的翻译数据出乎意料地丰富,但需要通过SPARQL查询来提取。此外,谷歌图书在不同地区的表现也不一致。 因此,我创建了Zenòdot,以整合这四个来源的信息,拼凑出完整的图景。 在构建过程中,我发现了以下几点: - ISBN系统比我预期的要破碎得多。ISBNdb有数百万条英文记录,但对于巴斯克语、冰岛语或孟加拉语等语言几乎没有记录。这些语言的书籍确实存在,只是它们在数据库中没有记录。 - 维基数据是最大的惊喜。它为数千部作品提供了结构化的翻译数据,但提取这些数据需要使用SPARQL查询、跨脚本的标题解析(试着将一本书的中文标题与其英文原版匹配)以及作者别名缓存。这很难构建,但结果填补了其他来源无法覆盖的空白。 - 最有趣的输出不是工具找到的内容,而是它没有找到的内容。当有人用某种语言搜索一本书而没有结果时,这就是一个需求信号。“世界上有人想要这个翻译,但它并不存在。”这些数据对出版商来说可能非常有用。 该工具优先显示您选择的语言,因此首先向您展示相关版本。其理念是“文献基础设施”:没有推荐,没有社交功能,没有账户。您搜索,您找到(或没有找到),然后可以在任何地方购买书籍。 技术栈:Next.js 15(应用路由器)、Supabase、Vercel、TypeScript。这个项目是我个人的独立项目,没有资金支持,花费了大约4个月的时间。 如果您是多语言用户或正在学习一门语言,我特别希望听到您的反馈。试着搜索您喜欢的书籍并切换语言,这正是该工具展现其价值的地方。
5作者: gbin5 个月前原帖
我构建了一个小型演示,展示了一个完全在浏览器中通过WebAssembly执行的机器人运行时。示例工作负载是一个简单的飞行控制器,连接到一个小型世界模拟器。 该运行时来自于copper-rs,这是一个用Rust编写的开源机器人运行时,适用于确定性工作负载。虽然机器人堆栈通常与特定的操作系统发行版和环境紧密耦合,但在这里,相同的代码可以在微控制器上运行(例如,这个飞行控制器也可以编译为STM32H7并控制真实的无人机),同时也可以在Linux、macOS和Windows等桌面操作系统上运行。 模拟器是使用Bevy构建的。 监控接口是使用ratatui构建的,映射到浏览器中的Bevy表面(通常它在真实终端中运行)。