/images/hugo/avatar.png

Prompt 自动优化 APO 流程

本节我们来学习一个轻量级的 Prompt 自动优化器的设计与实验。目的了是为了后续学习 DSPY 里两个重要的提示词自动优化工具: MIPROv2 和 GEPA 打下基础。

1. 优化目标与边界

优化对象包括:

Rag 实现问题

今天开始,我们来讨论 RAG 技术实现。目前为止,我对 RAG 理解仅局限于 RagFlow。在当下 AI 编程能力如此强的背景下,我个人觉得,如果我们能把一个技术所要解决的问题描述清楚,AI 完全能给我们提供一个生产可用的解决方案。

Base Agent Context 管理

Context 管理包括:

  1. Context Compact

1. Compact

1.1 Compact 的实现

上下文压缩一比一复刻了 ../claude_code/003_cc.md。然后剔除了跟 Coding 强相关的内容。

为了压缩之后,用户可以看到完整的 message,Context 区分了 active_messages 和 messages。

Base Agent 记忆提取

记忆的实现包含如下的核心逻辑:

  1. 记忆提取的提示词
  2. 记忆的召回
  3. 记忆的更新

1. 记忆提取提示词设计

记忆提取不是一个工作流,而是一个工具,类似与程序里的函数,所以他的提示词核心部分是:

Base Agent Copilot Handler

Copilot Handler 表达的是一种 Agent 与 人交互的流程:

  1. Copilot Request 不是 http 的请求,指代模型生成的,需要用户确认的内容
  2. Copilot Response 是用户确认后的内容

为什么我们一直在强调 Copilot Handler 的重要性?是因为 Copilot 实现交互的同时,提供了一个时间点,执行记忆的提取。

Base Agent 设计

这个系列我们跟随一个项目 neu-translator 从头设计实现一个 Agent Core。

整个过程我们希望达成两个目的:

  1. 理解 Agent 设计的所有细节,而不是从一个巨大的几千几万行的代码,去理解做过高度抽象的代码
  2. 关注 Agent 与用户的交互,从用户的反馈中提取偏好

而之所以选择这个项目,主要有以下几点思考: