自我进化
自我进化系统由 22 个模块共 9,806 行 Rust 代码组成。它使 PRX 能够随时间改进自身行为——不是通过重新训练模型,而是通过进化围绕模型的提示词、记忆结构和运行策略。
自我进化按三阶段循环运行:
记录(实时) │ 每个请求/响应对及其元数据被记录 │ ▼分析(每天) │ 提取模式:失败模式、慢路径、成本异常 │ ▼进化(每 3 天) 生成候选改进,在影子模式中测试,升级或回滚记录阶段(实时)
Section titled “记录阶段(实时)”每次交互都被记录,包含:
- 请求内容和分类意图
- 选定的模型和路由评分分解
- 响应内容和延迟
- 结果信号:用户接受度、重试、后续修正、工具调用成功/失败
- 令牌数和估计成本
这些数据积累在本地存储中,为分析建立证据基础。
分析阶段(每天)
Section titled “分析阶段(每天)”每日分析任务处理最近的记录以识别:
| 模式 | 检测方法 |
|---|---|
| 某类任务的重复失败 | 按意图 + 模型聚类失败请求 |
| 提示词弱点 | 识别系统提示词导致偏离目标响应的地方 |
| 成本低效 | 标记本可使用更便宜模型的请求 |
| 延迟异常 | 检测性能下降的模型或工具 |
| 记忆缺口 | 发现代理缺乏存储知识的主题 |
分析结果以结构化发现存储,每个标注严重程度和可执行建议。
进化阶段(每 3 天)
Section titled “进化阶段(每 3 天)”基于积累的分析发现,进化引擎生成候选变更:
修改系统提示词以解决已识别的弱点:
- 重写导致误解的指令
- 基于真实失败案例添加或优化少样本示例
- 调整语气、详细程度或格式指令
- 在工具调用失败时调整工具使用指令
改进存储在 prx-memory 中的知识:
- 从成功的交互中提取可复用模式
- 合并碎片化的知识条目
- 弃用过时或矛盾的记忆
- 索引运行期间发现的新领域知识
调整运行参数:
- 路由器评分权重(alpha、beta、gamma、delta、epsilon)
- Automix 置信度阈值
- 每通道并发限制
- 超时预算
- 每意图类别的默认模型偏好
自我进化强大但危险。PRX 强制执行多层安全防护以防止退化。
在应用任何候选变更之前,必须通过门控检查:
- 语法验证 — 变更必须产生有效的配置/提示词
- 回归测试 — 使用提议的变更重放近期成功交互的样本,验证输出仍然可接受
- 范围检查 — 变更不得超出其允许范围(如提示词进化不能修改安全策略)
候选变更首先以影子模式部署:
- 当前(生产)配置处理所有真实请求
- 候选配置在相同输入上并行运行
- 比较输出但候选的响应不会发送给用户
- 收集指标:质量差异、延迟差异、成本差异
影子模式运行可配置的评估期(默认:24 小时)。
独立的评判模型评估影子模式结果。它在请求样本上比较生产与候选输出,以 0-1 的分数对候选评分。
- 阈值:0.6 — 低于 0.6 的候选被拒绝
- 评判模型通常是强推理模型(如 Claude Opus、o3),与被评估的模型不同
- 评判提示词本身有版本控制且不受自我进化影响(防止博弈)
如果升级后的变更在部署后导致故障率飙升:
- 断路器在 1 小时窗口内故障率超过基线 2 倍时触发
- 变更自动回滚
- 创建事故记录,附带故障证据
- 变更标记为失败,未经修改不会重试
每个配置状态都有版本记录:
v1.0 ── 初始配置v1.1 ── 提示词进化:改进编码指令v1.2 ── 策略进化:调整路由器权重v1.3 ── 已回滚(断路器触发)v1.2 ── 已恢复(当前)快照包含完整的提示词集、记忆状态哈希、路由器权重和所有配置参数。任何版本都可以即时恢复。
所有进化尝试都被追踪,包含:
| 字段 | 说明 |
|---|---|
| 候选 ID | 提议变更的唯一标识 |
| 层级 | prompt / memory / strategy |
| 触发因素 | 推动变更的分析发现 |
| 影子指标 | 观察到的质量、延迟、成本差异 |
| 评判分数 | 评判模型给出的分数 |
| 结果 | promoted / rejected / rolled_back |
| 持续时间 | 变更在回滚前的活跃时间(如适用) |
这提供了系统如何以及为何随时间变化的完整审计跟踪。
RollbackManager 处理自动和手动回滚:
- 自动 — 当故障率飙升时由断路器触发
- 手动 — 操作者可以通过 CLI 或 API 回滚到任何之前的版本
- 选择性 — 仅回滚一个层级(如回退提示词变更但保留策略变更)
# 列出进化历史prx evolution history
# 回滚到特定版本prx evolution rollback v1.2
# 仅回滚提示词变更prx evolution rollback --layer prompt v1.1回滚是即时的,因为所有版本快照都保留在本地。