- SignalDesk2小时前
EverAgent 是一个面向长时间 AI 任务的可持久化、可恢复 Agent Harness 。 EverAgent 将 Agent 的执行生命周期纳入持久化 Harness:对话、模型轮次、工具调用、排队输入、checkpoint 和 Agent 状态都会先提交到 SQLite ,再由 TUI 和 Web 任务控制台呈现。 欢迎 star: https://github.com/oujingzhou/everagent 它主要解决什么问题? 假设一个 AI Agent 需要: 分析代码库。 修改多个文件。 执行测试。 根据测试结果修复问题。 最后生成总结。 普通的进程内 Agent 循环容易遇到以下问题: 进程崩溃 :对话和执行进度可能只存在于内存中。 任务中断 :重新启动后难以准确判断之前执行到了哪一步。 重复执行 :恢复时可能重复调用模型或工具。 状态不一致 :对话记录、工具结果和任务状态可能分别更新。 EverAgent 从执行层解决这些问题。它不只是保存聊天记录,而是持久化任务本身的完整执行生命周期。 核心能力 持久化对话和执行状态 EverAgent 将对话、Agent 配置、submission 、模型轮次、工具结果、任务状态、checkpoint 、上下文压缩状态和用量保存在 SQLite 中。 数据库是执行状态的唯一事实来源,TUI 和 Web UI 都是已提交状态的展示界面。 崩溃恢复与断点续跑 模型生成和工具调用都作为持久化任务运行。如果进程在执行中途退出,新的进程可以重新打开数据库,接管未完成的任务,并从最后一个已提交的 checkpoint 继续。 工具调用与任务管理 工具调用会作为独立的持久化任务记录,并保留父子关系。运行时会保存任务输入、进度、结果、失败状态,以及创建该工具任务的模型轮次。 控制重复执行风险 Submission 支持 requestId 去重。重复提交同一个已接收请求时,可以返回原有的持久化 submission ,而不是创建重复工作。 工具恢复仍然取决于 replay 策略。涉及外部副作用的操作需要使用幂等键、事务或应用层去重。 长对话与多轮交互 EverAgent 支持排队的后续输入、对话恢复、reset 边界、上下文压缩、历史导出和 provider session identity 。 工作原理 用户请求 │ ▼ EverAgent Harness 接收输入并创建持久化任务 │ ▼ 模型轮次 规划工作并请求工具 │ ├── 工具任务:读取或编辑文件 ├── 工具任务:执行命令 └── 工具任务:运行测试 │ ▼ 原子持久化提交 对话 + checkpoint + 工具结果 + 任务状态 │ ▼ 下一次模型轮次或最终回复 如果进程崩溃,EverAgent 会重新打开同一份存储并恢复未完成的任务。 相关的对话、文档和任务变更通过持久化提交机制协调,避免执行状态只更新了一部分。 与普通 Agent 循环的区别 能力 普通自定义 Agent 循环 EverAgent 对话持久化 需要单独实现 内置 任务 checkpoint 需要单独实现 持久化任务状态 进程重启恢复 需要自行设计 恢复未完成工作 工具执行跟踪 通常由应用管理 持久化子任务 Submission 去重 需要单独实现 支持 requestId 原子状态更新 由应用自行保证 协调持久化提交 执行过程查看 依赖自定义日志 TUI 和 Web 工作流 普通 Agent 也可以通过数据库、队列和工作流引擎实现这些能力。EverAgent 的价值是将它们集成到一个 Agent 运行时中。 适用场景 AI 编程任务 :分析仓库、修改多个文件、运行测试和自动修复。 长时间自动化 :需要运行几分钟甚至数小时的任务。 可恢复工作流 :不能因终端退出或进程重启而丢失工作。 可审计执行 :查看模型轮次、工具调用、checkpoint 和结果。 Agent 运行时开发 :在持久化执行原语之上构建更高层工作流。 安装与配置 需要 Node.js 22.19 或更高版本: npm install -g everagent everagent 欢迎 star: https://github.com/oujingzhou/everagent
- 情报分类:硬件与数码
- 分类依据:内容涉及硬件、数码产品或通信卡
- 信息来源:服务器 / V2EX
- 发布时间:2026/10/15 19:41:17
- 暂无回复