首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

Pi 耐用

摘要

Today Earendil and the Pi community shipped Pi 1.0 . This reflects our belief that after countless hours of hardening, maintenance, and active development, Pi is now a solid foundation on which to bui...

the and harness that Durable coding agent run also with
2026-10-02 1 阅读 约6分钟阅读 paulsmith
分享:
字号:
今天,Earendil 和 Pi 社区发布了 Pi 1.0。这反映了我们的信念:经过无数个小时的强化、维护和积极开发,Pi 现在已成为构建的坚实基础。 Pi 也在不断发展。与 Pi 1.0 一起,我们推出了一个名为 Pi Durable 的实验性新软件包。 Pi Durable 专为可在任何地方运行的长期运行、耐用且可延展的代理而构建。我们希望您能加入其中,并帮助我们将其打造成最耐用的安全带。为什么 Pi 耐用? Pi 编码代理旨在在您的(远程)机器上的终端内运行,由一个人驱动。如果进程终止,您将查看发生的情况并告诉它继续。这就是 Pi 1.0 所关注和擅长的,并且不会改变。在 Earendil,我们希望以最适合他们需求的形式将这项技术带给每个人。为此,我们需要一种可以在任何地方运行、可以从不同的表面到达、支持无限长的对话、能够承受灾难性的内部和外部故障、并让多个人操纵同一个代理的安全带。 Pi Durable 就是那个安全带。它不会取代 Pi 编码剂。它是用于构建任何代理应用程序(包括编码代理)的框架。它不仅与 Pi 编码代理(如 pi-ai)共享代码,而且还共享其原则:极简主义和可延展性。它还让我们能够在不干扰编码代理 Pi 的情况下探索这个领域的设计。我们在 Pi Durable 上构建代理应用程序所学到的经验将回流到 Pi 编码代理中,因为它们证明了自己的价值。什么是马具?每个人对安全带都有自己的定义。我们之前写过这一点,但让我们重新介绍一下 Pi Durable 线束的概念。线束是存储加上并行运行一个或多个大型语言模型对话所需的机制。它提供了这些模型调用的工具以及这些工具运行的执行环境。对话是您和代理之间的交互,记录为文字记录。 Agent是一个大的语言模型及其设置,比如思维层次,以及它可以调用的工具。工具通过执行环境完成工作,该环境可以是您的笔记本电脑、远程虚拟机或内存沙箱。代理获得哪些工具和执行环境取决于每个对话。线束运行的所有内容(从调用模型到执行工具)都是一项任务。与 Pi 中的所有内容一样,Pi Durable 的构建是为了让您的代理能够理解它。整个源代码(未经测试)大约有 15,000 行,使用 GPT 时大约有 150,000 个令牌,使用 Claude 时大约有 250,000 个令牌。这是最坏的情况。要在 Pi Durable 的基础上进行构建,您的代理很少需要全部;仅存储后端一项通常就可以跳过 3,000 行。现在让我们简单介绍一下 Pi Durable,以说明我们构建的内容以及构建它的原因。随时随地长时间运行 我们希望代理能够长时间运行并且能够在任何地方运行,目前的任何地方意味着任何有 JavaScript 运行时的地方。在 Pi Durable 中,线束在存储后端上方打开。 Pi Durable 提供内存、SQLite 和 JSONL 存储,以及适用于您自己的后端的一致性套件和基准测试。 SQLite 和 JSONL 存储代码不使用 Node API,因此通过一个小型适配器,它可以在 Bun 上或 Cloudflare Durable 对象内部运行。存储接口很小,并且很容易在您拥有的任何东西(例如键值存储或 Postgres)之上实现。一个进程一次拥有一个存储,其他客户端附加到该进程。在 SQLite 上,该工具仅将工作集保留在内存中:活动记录、实时任务和待提交的提交。其他所有内容都保留在磁盘上,直到需要为止。活动转录本自然受到模型上下文窗口的限制,因为压缩会在旧消息溢出之前对其进行总结。因此,即使是包含数万条消息的对话也能牢牢地融入记忆中。需要文件或 shell 的工具从执行环境获取它们。 Pi Durable 提供了一个 Node 执行环境,使工具能够访问本地文件。与存储一样,执行环境接口很小且易于实现,因此您还可以向您的工具公开远程执行环境。这使得线束可以在一台机器上运行,而其工具可以在另一台机器上运行。您的 env 函数从对话的工作目录为每个工具调用构建环境,因此每个对话都可以在不同的位置运行。从“@earendil-works/chord/context”导入{Background_CONTEXT};从“@earendil-works/pi-ai/models”导入{createModels};从“@earendil-works/pi-ai/providers/openai”导入 { openaiProvider } ;从“@earendil-works/pi-durable”导入{createRegistry,Harness};从“@earendil-works/pi-durable/env/node”导入 { NodeExecutionEnv } ;从“@earendil-works/pi-durable/storage/sqlite/node”导入 { openNodeSqliteStorage, } ;从“@ea”导入{CodingTools}
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱