Eve 1.0:把科研 Agent 的执行、证据和工作区连起来
一次远程分析是否完成,不能只看 Agent 的回答。还要确认文件来自选定的主机,代码确实运行过,结论能对应到执行结果。Eve 1.0 延续原有工作区和持久任务引擎,把这条执行链进一步连接到科研阶段、比较契约和产物证据。
这一轮也将桌面端名称统一为 Eve。界面默认采用浅色和灰阶配色,项目文件与最近会话共用侧栏,完整工作台作为首页。每个会话分别保存工作区、模型与权限。任务运行时可以切换目录、启动另一个任务,也可以发送引导、排队补充要求或批注,无需取消当前模型请求。
先确认代码在哪里执行
此前的真实 SSH 验收曾发现,远端文件能读,Python Worker 却不能启动,原因是上传逻辑指向了不存在的脚本路径。另一个断连来源是连接管理:一个调用获取连接时,可能关闭另一个调用仍在使用的客户端。
修复后,每个主机通过连接锁管理客户端,使用 15 秒保活,并在断线后重建传输和 Worker。执行环境从任务传到工具层,文件、搜索、编辑、Shell、Python 和技能都遵循绑定的工作区。SSH 失败会返回错误,不能切换到本机继续执行。密码可复用系统加密存储,密钥和系统 SSH Agent 的接口也保留。
本轮增加了科研证据的远程验证:本机和远端放置不同内容的同名文件,阶段记录中的哈希必须对应远端文件;基线指标则由远端 Python 计算并读取。真实 SSH 检查通过 18 项。这里使用的是同一台物理主机,不能据此声称多主机或长时间连接稳定性已经得到验证。
把 DeepScientist 对应到具体模块
参考 DeepScientist 的提交 b36624417f0c6b8238ec02db37b94d6db2faa5b0,Eve 新增科研课题工作区,显示从 scout 到 finalize 的七个阶段。每个课题绑定工作区,保存研究问题、数据集标识、评估协议和指标方向。
| 参考机制 | Eve 的实现 |
|---|---|
| Quest 与 Research Map | 持久课题列表与七阶段可视图 |
| Baseline Gate | 比较契约、真实指标 JSON 与文件哈希 |
| Runner 与阶段技能 | 复用 RunService 和现有 Harness,按需加载技能 |
| Findings 与 Artifacts | 阶段结论、失败与阴性结果、指标差值和来源 |
| Finalize | 用户复核后结题,模型不能代替批准 |
这些模块使用同一个 Agent Loop。启动阶段会创建普通持久任务,聊天页负责订阅运行、接收引导和呈现审批。记录证据时,后端实际读取当前工作区的文件,并检查指标是否有限、数据集和协议是否与课题一致。前序证据缺失时不能跳过阶段,已登记证据也不能直接被后续调用覆盖。
任务完成、证据登记和科学结论成立是三个不同状态。即使阶段产物已经登记、用户已经结题,系统仍保留科学结论待复核的标记。当前的证据门禁检查来源与比较契约,不替代实验设计审查、统计推断或同行评议。
大量技能不等于一次加载全部内容
Eve 保留原有 8 个基础技能,另外预装 278 项去重的方法技能,来源包括 K-Dense Scientific Agent Skills、OpenClaw Medical Skills、Composio Awesome Codex Skills、Superpowers 和 DeepScientist。各来源固定到具体 commit,资源保留上游许可和内容哈希。
导入后,文本资源约 26.4 MB,共享压缩包约 9.1 MB。搜索只读取名称和描述,模型选中技能后才加载指令;首屏限制为 8,000 字符,后续内容和资源目录分别分页。单个资源解压后校验 SHA-256,解码文本缓存上限为 4 MB。能力中心每页最多显示 32 项,避免一次渲染数百张卡片。
实际界面测试发现,扩大目录后,通用关键词匹配有时挤掉用户点名的 csv-analysis。精确名称优先后,该用例恢复。另一个问题出现在真实模型运行时:连续加载两个长技能,最近两条工具结果就可能超过上下文预算。压缩器此前保留这两条,因而无法把请求缩回预算。本轮调整为从较早结果开始压缩,必要时处理最近结果,同时保留调用配对和原始结果取回入口。
后续阶段又暴露了较难察觉的情况:每条结果都不长,累积后仍然超限,长报告还会同时出现在写文件参数和文件结果中。逐级压缩现在也处理中等长度的观察。已完成调用的大段参数在原始决定持久化后转为摘要,尚未确认结果的操作保留原参数,供恢复时核对。课题工具则减少重复返回已登记的长结论。完整记录继续保存在数据库和检查点中,模型需要细节时再读取原始结果或文件。
预装参考技能并不意味着依赖已经安装或脚本已经执行。没有声明执行入口的技能通过授权的工作区工具运行审阅后的代码。上游部分条目缺少再分发许可,另有文件带限制性版权声明,这些没有进入公开安装包。导入报告逐项保留来源、去重与未分发原因,本版没有把全部上游条目都算作已安装。
执行记录也用于恢复和验证
工具结果与检查点保留在持久存储中。压缩后的上下文可以按调用标识读取原始结果,无需为了重建上下文再执行一次文件写入或远程命令。恢复任务仍需核对未知结果,并重新采用请求批准模式。
科研页面的验收还复现了一个前后端连接问题:任务已从阶段图启动,聊天页却显示为空。聊天只寻找浏览器保存的运行标识,没有读取会话中的 last_run_id。补上后端运行订阅后,已有任务和审批才出现在消息流中。验收随后增加了最终 Harness 状态检查,避免仅凭“证据已经登记”就把整个任务算作通过。
还有两类失败来自执行校验与协议适配。校验器曾把课题 JSON 中的“创建报告”和后文的“技能”连成必须创建技能的要求;OpenAI 调用也曾误走 Anthropic 的历史序列化,在无效工具参数之后终止。修复分别收紧了操作判断的文本范围和提供商分支,避免模型为通过校验补做无关操作。
当前回归通过 265 项 TypeScript 测试和 582 项 Python 测试,另有 1 项 TypeScript 测试因 Windows 符号链接权限跳过。科研页面的真实模型源码验收通过 23 项,包括阶段启动、工具结果、产物哈希、指标比较、人工结题和页面刷新后的持久化。受控模型协议测试与真实模型测试分别记录,不相互替代。
安装包上的完整流程进一步通过 31 项界面检查。模型从 scout 连续完成六个执行阶段,实际读取三行 CSV,调用 Python 计算两组指标,再由界面人工结题。常数零预测的 accuracy 为 1/3,阈值预测为 1。测试还检查了每个阶段最终的 Harness 状态,不能只靠中途登记的文件判定成功。正式页面与真实 SSH 的模型验收通过 37 项,未记录到渲染错误。
固定的 22 项任务使用同一个 deepseek-v4.1-flash-economy 模型、配置与断言。最后一轮在其他真实模型验收结束后单独运行,结果如下:
| 指标 | 修改前 | Eve 1.0 |
|---|---|---|
| 任务断言通过 | 22/22 | 22/22 |
| 成功工具调用 | 56/62 | 53/60 |
| 含工具失败后仍完成断言 | 2/2 | 3/3 |
| P50 | 7,649 ms | 7,310 ms |
| P95 | 21,697 ms | 34,845 ms |
| Token 总量 | 283,308 | 277,171 |
中位延迟和 Token 略降,但工具成功率和尾延迟变差,不能据此概括为整体性能提升。公开检索仍有偶发错误,本轮通过有限回退恢复。此前一轮并行验收也曾只有 21/22:模型写成 Context Isolation,没有命中固定断言的 contextIsolation。该次保留为失败记录,没有修改断言。引用检查只确认 URL 来自实际工具结果,没有评测每句回答是否受到来源的语义支持;提供方未返回金额,也没有补造成本数值。
仍然存在的边界
本轮的阶段图和技能调用验证使用小型 CSV 和可核对的测试产物,不代表已经完成某个真实科学发现任务。仍需要在具体科研问题上检验方法选择、数据质量和结论可靠性。
桌面性能另做了一次配对测量。正式工作台启动时间为 12,265→10,413 ms,已追踪进程工作集为 528.5→539.1 MB。主进程定时器延迟 P95 为 6.80→6.64 ms,渲染进程为 1.30→1.40 ms。启动变快,但内存和渲染延迟没有改善。样本只有一次、空闲观察窗口很短,安全软件注入也影响 CPU,因此这些数据不足以支持整体性能提升的结论。
实际主机的私钥与系统 SSH Agent 登录、第二台物理主机、多小时耐久、系统重启后的任务交接,以及干净虚拟机安装,都没有计为通过。
远程工作区仍不支持把本机 stdio MCP 当作远端工具执行;HTTP MCP 按已有配置使用。Python 子进程隔离也不等于操作系统安全沙箱。安装包目前未签名。
代码、固定来源和验收记录保存在 项目仓库,安装包、源码压缩包与校验值见 Eve 1.0.0 发布页。这个版本更关注一次任务是否在正确的工作区执行、是否留下可核对的证据,以及失败后能否继续检查。阶段图只是这些记录的入口。