1作者: risethagain大约 2 个月前原帖
如果你使用Claude Code(或类似的AI编码工具),你可能已经注意到,单次执行`cargo test`或`npm run build`可能会在你的上下文窗口中产生数千个无用的令牌。通过的测试、重复的警告、完整的堆栈跟踪——这些对人类在终端中浏览时是有用的,但对于只需要知道失败原因的语言模型(LLM)来说却是浪费。 tokf是一个用Rust编写的命令行工具,它可以拦截命令输出并使用TOML定义的过滤器进行压缩。你可以去除通过的测试、合并重复的错误、缩减堆栈跟踪等。 棘手的部分是让它与构建调度器一起工作。如果嘈杂的输出来自于内部运行的`cargo test`,那么挂钩`just test`就没有帮助。我最终根据工具的不同,采用了三种不同的解决方案: - make/just:使用它们的--shell标志通过tokf路由执行 - git hooks / 其他工具:在PATH前添加一个shim目录 我详细记录了这个过程: [https://pecan.si/posts/getting-into-make-just-and-hooks/](https://pecan.si/posts/getting-into-make-just-and-hooks/) 该工具是用Rust构建的,在我的工作流程中每天执行约1,800次。过滤器使用TOML,并提供Lua的逃生口。开源项目:[https://tokf.net](https://tokf.net)
1作者: ktshvsk大约 2 个月前原帖
我的医生让我保持一个饮食日记。我尝试了MyFitnessPal、Lifesum等应用,但没有一个能轻松导出特定日期范围的总结。因此,我用Claude Code在一个晚上编写了一个远程MCP服务器。现在我只需拍一张食物的照片,发送给Claude,它就会记录下所有的卡路里和营养成分。当我需要报告时,只需在对话中请求即可。没有应用程序,也无需手动输入——只需一个数据库和一个聊天界面。
1作者: filipbalucha大约 2 个月前原帖
你好,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>