Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 18 additions & 13 deletions book/chapter9.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,6 @@

GAIA 经验学习提供了一个直观例子。GAIA[^gaia-2023] 包含需要综合搜索、网页阅读、文件处理和计算的多步骤问题,AWorld[^aworld-2025] 则提供运行 Agent、调用这些工具和保存轨迹的执行环境;前者像试卷,后者像考场与实验记录系统。旧式做法是在一次任务成功后立刻生成策略摘要并向量化入库;更严格的实现会先用 GAIA 答案验证或其他环境验证器标记成功、部分成功和失败,再比较同一任务族的多条路径。成功轨迹贡献策略草案,失败轨迹贡献排除性知识,部分成功轨迹则帮助识别“哪一段有效、哪一段仍有问题”。Reflexion[^reflexion-2023] 所提出的自然语言反思可以参与生成经验草案,但反思本身不是证据;只有与环境结果相符、得到跨轨迹支持并在新任务上显示正向迁移的内容,才应进入正式经验文档。

> **实验 9-2 ★★:从 GAIA 轨迹提炼经验知识文档**
>
> **实验目的**:检验多条已验证轨迹归纳出的经验文档,是否比一条成功轨迹的摘要更能迁移到新任务。
>
> **实验说明**:比较“不使用历史经验”“检索一条相似轨迹摘要”和“检索由多条轨迹共同支持的知识文档”三种方式,并把提炼用的任务与迁移任务分开。
>
> **实验说明了什么**:经验不是“记住一次成功”,而是从成功、失败和部分成功的对照中归纳出适用条件、例外和证据来源。若文档不能提高未见任务的表现,或会带来负迁移,就不能算学会了经验。
>

[^reflexion-2023]: Shinn, N., et al. *Reflexion: Language Agents with Verbal Reinforcement Learning.* arXiv:2303.11366, 2023.

[^gaia-2023]: Mialon, G., et al. *GAIA: a benchmark for General AI Assistants.* arXiv:2311.12983, 2023.
Expand All @@ -107,13 +98,27 @@ Andrej Karpathy 将这种做法称为**系统提示学习**(System Prompt Lear

系统提示学习与第二章的提示工程不是一回事。第二章讨论怎样组织一份好 Prompt;本节讨论什么反馈足以触发修改,以及更新提案怎样安全发布。修改应是带来源的最小 diff,而不是让模型每次都重写整份 Prompt——这正是第一章命名的最小 diff + 可回滚模式。待验证版本必须同时在**触发失败的边界集**和**正常工作的保留集**上测试,前者要改善,后者不能退化。

#### 例子一:基于失败轨迹优化提示词中的规则
#### 例子一:转接边界的规则化

τ²-bench 的 telecom 政策中,关于转接人工只有两条原则性规定:请求超出 Agent 的动作范围时才转接,转接前应先尽力解决。第七章解剖该环境时,这两条并未显出问题;换用能力较弱的模型运行,缺陷随即暴露——工具返回错误后 Agent 反复重试,最终以转接人工收场,提炼集的 20 条任务中有 19 条如此结束。

[第七章](https://github.com/bojieli/ai-agent-book/blob/main/book/chapter7.md#人机交互型评估环境)用 τ-bench/τ²-bench 说明了航空客服 Agent 的评估方式:用户逐步透露需求,系统既检查订单等环境状态,也检查对话中是否给出了必要信息。该章的失败归因还强调,不能只记录“失败”,而要找到**首个错误步骤**
将这 19 条失败轨迹交由模型自行归纳,产出若干条可执行的规则追加到政策末尾,再在一批未参与提炼的任务上重新运行:通过率由 12.3% 升至 19.3%,且原本通过的任务无一被改坏

本例的问题案例是:用户对退票、改签费或行李政策不满,Agent 没有查政策、解释规则或寻找允许的替代方案,就调用 `transfer_to_human`。普通政策争议不需要转接;**用户明确要求人工或出现安全/人身风险时才必须转接**。因此,问题不是“Agent 不够礼貌”,而是 Prompt 没有写清转接边界。
**提炼所依据的材料决定了能够归纳出什么。** 同样是这 19 条轨迹,仅提供失败摘要与错误文本时,模型归纳出的是“同一工具反复报错即不应继续调用”;补充 Agent 与用户各自可调用的工具清单之后,归纳结果变为“网络状态、SIM 卡、APN 等项属于用户设备侧,应引导用户自行操作而非直接调用”。前者记录的是教训,后者理解的是职责归属。

**模型会把观察到的行为当作应然的行为。** 第一版规则中有两条为“连续三次调用失败即转接人工”“用户两次未提供号码即转接人工”——轨迹中出现最频繁的正是转接人工,模型据此将其视为合理的兜底手段。但在这套评估中转接人工必然判定失败,这两条规则等于把失败写入了规范。提炼产物因此不能直接发布,须经与提炼者相互独立的验证。

**被修复的往往是极朴素的缺陷。** 基线中有一条典型轨迹:Agent 需要用户的电话号码,于是调用查询工具,并将“请您提供您的电话号码”填入参数,连续五次,五次报错,随后转接人工。它已经判断出应当询问用户,却把这句话说给了工具。规则生效后,它先在对话中提出请求,取得号码再行查询;此后欲检查 SIM 卡状态遭工具拒绝,转而引导用户自行重新插拔 SIM 卡,任务通过。

> **实验 9-2 ★★:从 τ²-bench 失败轨迹提炼转接与工具使用规则**
>
> 沿用第七章的 τ²-bench telecom 环境。提炼集与迁移集在上游仓库中本就是两套互不相交的任务,提炼过程接触不到迁移集。
>
> 先以弱模型运行提炼集并保存失败轨迹;规则由模型归纳而非人工撰写,生成后追加至原始政策末尾;再在迁移集上对照原始策略与两个进化版本。三臂之间只替换策略文件,用户模拟器保持不变。
>
> 除通过率外,还需记录三项与规则直接对应的行为指标:转接人工的比例、Agent 越界调用用户侧工具的次数、参数缺失即发出的调用次数。后两项在进化版本中均下降约八成,说明通过率的提升来自规则修复了具体动作。

这条诊断可以直接变成提示词中的一条规则:先查询并解释政策,识别用户真正想解决的目标,提供合规替代方案;只有在明确要求人工或超出权限/涉及安全时才转接
同样的做法可以移植到其他领域。航空客服 Agent 的典型问题案例是:用户对退票费、改签费或行李政策提出异议,Agent 未查询政策、未解释规则、未寻找合规的替代方案,即调用 `transfer_to_human`。一般的政策争议无须转接,**只有用户明确要求人工介入,或出现安全相关情形时才必须转接**。诊断同样指向转接边界未予明确,修法同样是将其落成一条带出处的最小规则

> **实验 9-3 ★★:基于失败轨迹优化航空客服的系统 Prompt**
>
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.ar.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
| التجربة | المشروع | النوع | الوصف |
| :--: | --- | :--: | --- |
| 9-1 | [متحقق المسار](trajectory-verifier/) | ✅ | التجربة 9-1: تجمع نتائج البيئة وقواعد العمليات والمعايير اللغوية في تشخيص مدعوم بالأدلة لمسارات خدمة العملاء |
| 9-2 | [خبرة GAIA](gaia-experience/) | ✅ | التجربة 9-2: تقارن المسارات الناجحة والجزئية والفاشلة لإنشاء وثائق خبرة بصيغة Markdown تستخلص الأنماط المشتركة بينها |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | التجربة 9-2: في نطاق telecom من τ²-bench يستخلص نموذج قواعد التحويل واستخدام الأدوات من 19 مسارًا فاشلًا؛ ترتفع نسبة النجاح على مجموعة النقل المكوّنة من 114 مهمة من 12.3% إلى 19.3% دون أي تراجع؛ [الأدلة](tau2-escalation-experience/validation/evidence.json) تحفظ إيصال الاستخلاص وبصمات السياسات لكل ذراع والمؤشرات السلوكية |
| 9-3 | [التحسين التلقائي للموجّهات](prompt-auto-optimization/) | ✅ | التجربة 9-3: توليد تعديلات دنيا للموجّه من المسارات الفاشلة، وضبط الإطلاق باستخدام مجموعة حالات حدية ومجموعة احتفاظ |
| 9-4 | تجربة في النص | 🚧 | التجربة 9-4: تطوير مهارة «توضيح المتطلبات + تأكيد المواصفات» انطلاقًا من ملاحظات المستخدمين؛ يعرض النص تصميم A/B ثلاثي الأذرع والمقاييس وبوابات الإطلاق، أما التنفيذ المصاحب فلم يُضف بعد |
| 9-5 | [تحويل مسارات المتصفح إلى RPA](browser-use-rpa/) | ✅ | التجربة 9-5: تحوّل مسارات المتصفح إلى سير عمل ذي شروط حالة، ثم تتحقق منه بإعادة الضبط والتشغيل |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ On a first pass, skip credential loading, presentation code, and provider-compat
| Exp. | Project | Type | Description |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Experiment 9-1: combines environment outcomes, process rules, and language rubrics into evidence-backed diagnoses of customer-service trajectories |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | Experiment 9-2: compares successful, partially successful, and failed trajectories to generate cross-trajectory Markdown experience documents |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | Experiment 9-2: on τ²-bench telecom, a model derives escalation and tool-use rules from 19 failed trajectories; pass rate on the 114-task transfer set goes 12.3% → 19.3% with zero regressions; [evidence](tau2-escalation-experience/validation/evidence.json) keeps the derivation receipt, per-arm policy hashes and behavioral metrics |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | Experiment 9-3: generates minimal prompt patches from failed trajectories, controlling release with a boundary set and a retention set |
| 9-4 | Text experiment | 🚧 | Experiment 9-4: evolves a requirements-clarification and Spec-confirmation Skill from user feedback, with a three-arm A/B design and release gates |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Experiment 9-5: compiles browser trajectories into workflows with state predicates, verified by reset-and-replay |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ En la primera pasada puedes omitir credenciales, presentación y compatibilidad
| Exp. | Proyecto | Tipo | Descripción |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Diagnóstico de trayectorias con evidencias basadas en resultados del entorno y reglas |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | Comparación de trayectorias exitosas y fallidas para generar documentación de experiencia |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | Experimento 9-2: en τ²-bench telecom, un modelo deriva reglas de escalado y uso de herramientas a partir de 19 trayectorias fallidas; la tasa de éxito en el conjunto de transferencia de 114 tareas pasa de 12,3% a 19,3% sin regresiones; la [evidencia](tau2-escalation-experience/validation/evidence.json) conserva el recibo de derivación, los hashes de política por brazo y las métricas de comportamiento |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | Generación de parches mínimos de prompts a partir de trayectorias fallidas con control de versión |
| 9-4 | Experimento del texto | 🚧 | Experimento 9-4: hace evolucionar un Skill de «clarificación de requisitos + confirmación de Spec» a partir de los comentarios de los usuarios; el texto presenta un diseño A/B de tres brazos, las métricas y las puertas de publicación, y la implementación está pendiente |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Compilación de trayectorias de navegador en flujos de trabajo con predicados de estado |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.hu.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Első olvasáskor átugorható a hitelesítő adatok betöltése, a megjelenít
| Kísérlet | Projekt | Típus | Leírás |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | A környezeti eredményeket, folyamatszabályokat és rubrikákat bizonyítékalapú diagnózissá egyesíti. |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | Sikeres, részben sikeres és sikertelen nyomvonalakból tapasztalati dokumentumot készít. |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | 9-2. kísérlet: a τ²-bench telecom tartományában egy modell 19 sikertelen trajectoryból vezet le átadási és eszközhasználati szabályokat; a 114 feladatos átviteli halmazon a sikerarány 12,3%-ról 19,3%-ra nő, regresszió nélkül; a [bizonyíték](tau2-escalation-experience/validation/evidence.json) megőrzi a levezetési nyugtát, a karonkénti házirend-hasheket és a viselkedési metrikákat |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | Minimális promptjavítást készít, és határ- valamint megtartási készlettel vezérli a kiadást. |
| 9-4 | Törzsszövegbeli kísérlet | 🚧 | 9-4. kísérlet: felhasználói visszajelzésekből fejleszt ki egy „követelménytisztázás + Spec-megerősítés” Skillt; a szöveg háromkarú A/B tervet, metrikákat és kiadási kapukat ad meg, a hozzá tartozó implementáció még hiányzik |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Böngészőnyomvonalakat fordít reset és visszajátszás segítségével ellenőrzött munkafolyamattá. |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.id.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Pada pembacaan pertama, lewati kredensial, presentasi, dan kompatibilitas provid
| Eksperimen | Proyek | Jenis | Deskripsi |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Menggabungkan hasil lingkungan, aturan proses, dan Rubric menjadi diagnosis berbasis bukti. |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | Membandingkan trajectory sukses, parsial, dan gagal untuk membuat dokumen pengalaman. |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | Eksperimen 9-2: pada τ²-bench telecom, sebuah model menurunkan aturan eskalasi dan penggunaan tool dari 19 trajectory gagal; tingkat lulus pada himpunan transfer 114 tugas naik dari 12,3% ke 19,3% tanpa regresi; [bukti](tau2-escalation-experience/validation/evidence.json) menyimpan resi penurunan, hash kebijakan tiap lengan, dan metrik perilaku |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | Menghasilkan patch prompt minimal dan mengendalikan rilis dengan set batas serta retensi. |
| 9-4 | Eksperimen dalam teks | 🚧 | Eksperimen 9-4: mengembangkan Skill "klarifikasi kebutuhan + konfirmasi Spec" dari umpan balik pengguna; teks utama memberikan desain A/B tiga lengan, metrik, dan gerbang rilis, sedangkan implementasi pendampingnya belum tersedia |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Mengompilasi trajectory browser menjadi workflow yang diverifikasi melalui reset dan replay. |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
| 実験 | プロジェクト | 種類 | 説明 |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | 実験 9-1:環境の結果・プロセスルール・言語 Rubric を組み合わせ、証拠付きのカスタマーサービス軌跡診断を形成する |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | 実験 9-2:成功・部分成功・失敗の軌跡を比較し、軌跡横断の Markdown 経験ドキュメントを生成する |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | 実験 9-2:τ²-bench telecom で、モデルが 19 本の失敗トラジェクトリから転送とツール利用のルールを導出;114 タスクの移行セットで通過率 12.3% → 19.3%、リグレッションはゼロ;[証拠](tau2-escalation-experience/validation/evidence.json)に導出レシート、各アームのポリシーハッシュ、行動指標を保存 |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | 実験 9-3:失敗軌跡から最小の Prompt パッチを生成し、境界セットと保持セットでリリースを制御する |
| 9-4 | 本文の対照実験 | 🚧 | 実験 9-4:ユーザーフィードバックから「要件明確化 + Spec 確認」Skill を進化させる。本文は三アームの A/B 設計、指標、リリース基準を示すが、付随する実装は未提供 |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | 実験 9-5:ブラウザ軌跡を状態述語付きのワークフローにコンパイルし、リセット再生で検証する |
Expand Down
2 changes: 1 addition & 1 deletion chapter9/README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
| 실험 | 프로젝트 | 유형 | 설명 |
| :--: | --- | :--: | --- |
| 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | 실제 고객 서비스 호출 28건, Judge 호출 8건, 전문가 표본 8건을 검수했습니다. [증거](trajectory-verifier/validation/real_20260729T165247Z/evidence.json)에는 핵심 위반의 안정성 주장이 재현되지 않은 사실도 함께 기록돼 있습니다. |
| 9-2 | [gaia-experience](gaia-experience/) | ✅ | 실제 GAIA 궤적 세 그룹과 지식 문서 대조를 검수했습니다. [증거](gaia-experience/validation/real_20260729T164012Z/evidence.json)에는 지식 문서 그룹이 25%, 두 대조군이 각각 50%였던 부정적 결과가 기록돼 있습니다. |
| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | 실험 9-2: τ²-bench telecom에서 모델이 실패 궤적 19건으로부터 이관·도구 사용 규칙을 도출; 114개 과제 이전 세트 통과율 12.3% → 19.3%, 회귀 없음; [증거](tau2-escalation-experience/validation/evidence.json)에 도출 영수증, 각 팔의 정책 해시, 행동 지표 보관 |
| 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | 실제 작업 에이전트, LLM Judge, 코딩 에이전트로 초기·자동·수동 세 그룹의 전체 보존 세트와 경계 세트를 실행했으며, 원본 응답과 배포 기준을 보존했습니다. |
| 9-4 | 본문 대조 실험 | 🚧 | 실험 9-4: 사용자 피드백에서 ‘요구사항 명확화 + Spec 확인’ Skill을 진화시킵니다. 본문은 3암 A/B 설계와 지표, 릴리스 게이트를 제시하지만 구현은 아직 제공되지 않습니다. |
| 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | 실제 ARK 에이전트와 Chromium이 초기화 가능한 로컬 메시지 사이트에서 탐색, 독립 검증, 매개변수화된 재실행, 거짓 성공 대조, 페이지 변경에 따른 무효화를 완료했습니다. |
Expand Down
Loading
Loading