迁移到 2.4¶
迁移基线是Nexa 3.0 内保留的 2.4 兼容源码。先保留原运行数据和旧源码,再在隔离工作区执行以下检查。
编译与接口¶
- 将嵌入式编译统一到
src.compiler.compile_file/compile_source,使用返回的python_code、ast、sources与diagnostics。 - include 相对导入文件解析;循环依赖和缺失文件会返回具体诊断。
- 声明模块可以独立编译。运行模型前完成
validate和完整程序编译。 - 连续会话直接返回值使用
run;独立可检查运行使用execute;已结束状态的新一轮使用 continue_run。
执行语义变化¶
| 原有依赖 | 迁移动作 |
|---|---|
exit_when 自由文本包含判断 |
改为与最终文本或 status 精确匹配的状态值 |
忽略 verify 或结构化输出错误继续执行 |
修复条件、schema 或输出,保留失败路径 |
| 默认允许风险工具 | 显式处理 waiting_approval 和布尔决定 |
sandbox 仅作为注解 |
配置实际隔离执行器,或重新设计工具执行边界 |
| 将 flow 快照视为外部事务回滚 | 按深拷贝内存恢复设计,外部副作用单独处理 |
| 将缓存命中率作为固定属性 | 按无工具 Chat 新运行与完整缓存键重新评测 |
| Rust 与 Python 全量等价 | 按 Rust 支持子集选择后端 |
持久化与验证¶
保留 checkpoint 的源码、Agent 定义、provider 与工作目录。未知工具结果须先核实。总时限包含审批与恢复间隔;新任务通过新的运行入口取得新预算,旧审批不会跨轮沿用。
.nxintent 的 skip 和 error 单独统计,只有 pass 算通过。重新检查 examples/manifest.json 中每个例子的 compiled 或 historical_drafts 状态,不按文件夹版本推断可运行性。
建议验收顺序¶
- 无凭据编译完整程序,核对诊断。
- 用固定 provider fixture 检查输出、工具、副作用和终态。
- 验证审批允许/拒绝、跨进程恢复、未知结果停止。
- 验证预算、取消、超时与新一轮对话。
- 确定 provider、模型、预算后再测真实质量、成本与延迟。
来源与验证 · compilation / execution / conversations / harness / verification / rust