diff --git a/book/chapter9.md b/book/chapter9.md index 301280c5c..db8f5dcd7 100644 --- a/book/chapter9.md +++ b/book/chapter9.md @@ -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. @@ -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** > diff --git a/chapter9/README.ar.md b/chapter9/README.ar.md index 2a46e2091..32ffc2f5c 100644 --- a/chapter9/README.ar.md +++ b/chapter9/README.ar.md @@ -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: تحوّل مسارات المتصفح إلى سير عمل ذي شروط حالة، ثم تتحقق منه بإعادة الضبط والتشغيل | diff --git a/chapter9/README.en.md b/chapter9/README.en.md index e6216977a..c9aaf3310 100644 --- a/chapter9/README.en.md +++ b/chapter9/README.en.md @@ -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 | diff --git a/chapter9/README.es.md b/chapter9/README.es.md index a794858e6..1179bc87e 100644 --- a/chapter9/README.es.md +++ b/chapter9/README.es.md @@ -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 | diff --git a/chapter9/README.hu.md b/chapter9/README.hu.md index 8ad480a90..3e8daf1e5 100644 --- a/chapter9/README.hu.md +++ b/chapter9/README.hu.md @@ -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á. | diff --git a/chapter9/README.id.md b/chapter9/README.id.md index 0df44c7bd..70473e132 100644 --- a/chapter9/README.id.md +++ b/chapter9/README.id.md @@ -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. | diff --git a/chapter9/README.ja.md b/chapter9/README.ja.md index e81ed0da2..b147431aa 100644 --- a/chapter9/README.ja.md +++ b/chapter9/README.ja.md @@ -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:ブラウザ軌跡を状態述語付きのワークフローにコンパイルし、リセット再生で検証する | diff --git a/chapter9/README.ko.md b/chapter9/README.ko.md index f7a22fc8d..150a610ca 100644 --- a/chapter9/README.ko.md +++ b/chapter9/README.ko.md @@ -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이 초기화 가능한 로컬 메시지 사이트에서 탐색, 독립 검증, 매개변수화된 재실행, 거짓 성공 대조, 페이지 변경에 따른 무효화를 완료했습니다. | diff --git a/chapter9/README.md b/chapter9/README.md index bbefbf277..b6cbe97c7 100644 --- a/chapter9/README.md +++ b/chapter9/README.md @@ -17,7 +17,7 @@ | 编号 | 项目 | 类型 | 一句话说明 | | :--: | --- | :--: | --- | | 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | 实验 9-1:28 条真实客服调用、8 次 Judge 调用与 8 条专家标注样本已通过验收;[证据](trajectory-verifier/validation/real_20260729T165247Z/evidence.json)同时记录关键违规稳定性主张未复现 | -| 9-2 | [gaia-experience](gaia-experience/) | ✅ | 实验 9-2:真实 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/) | ✅ | 实验 9-3:真实任务 Agent、LLM Judge 与 Coding Agent 跑完初始/自动/人工三组完整保留集和边界集;原始回执与发布门槛已保存 | | 9-4 | 正文对照实验 | 🚧 | 从用户反馈中进化“需求澄清 + Spec 确认”Skill;正文给出三臂 A/B 设计、指标和发布门槛,配套实现待补充 | | 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | 实验 9-5:真实 ARK Agent + Chromium 在可重置本地消息站完成探索、独立验证、参数化回放、假成功对照与页面变化失效 | diff --git a/chapter9/README.ru.md b/chapter9/README.ru.md index 5d72d43fb..130b52f6f 100644 --- a/chapter9/README.ru.md +++ b/chapter9/README.ru.md @@ -19,7 +19,7 @@ | Эксп. | Проект | Тип | Описание | | :--: | --- | :--: | --- | | 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Эксперимент 9-1: объединяет результаты среды, процессные правила и языковые рубрики в диагностику траекторий клиентской поддержки с привязкой к доказательствам | -| 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: генерирует минимальные патчи промпта из неудачных траекторий и управляет релизом через граничный и удерживающий наборы | | 9-4 | Эксперимент в тексте | 🚧 | Эксперимент 9-4: развивает Skill «уточнение требований + подтверждение Spec» на основе отзывов пользователей; в тексте даны трёхрукавный A/B-дизайн, метрики и критерии выпуска, реализация пока не добавлена | | 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Эксперимент 9-5: компилирует браузерные траектории в рабочие процессы с предикатами состояния, проверенные сбросом и повторным воспроизведением | diff --git a/chapter9/README.ta.md b/chapter9/README.ta.md index e9dddc014..07fdb56fd 100644 --- a/chapter9/README.ta.md +++ b/chapter9/README.ta.md @@ -19,7 +19,7 @@ | சோதனை | Project | Type | Description | | :--: | --- | :--: | --- | | 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 தோல்வி trajectory களிலிருந்து ஒரு மாதிரி மாற்றுதல் மற்றும் கருவிப் பயன்பாட்டு விதிகளை உருவாக்குகிறது; 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: உலாவிப் பாதைகளை நிலை முன்னுரிமைகளுடன் (state predicates) கூடிய பணிப்பாய்வுகளாகத் தொகுத்து, மீளமைப்பு-மறுஇயக்கத்தால் சரிபார்க்கப்பட்டதாக்குகிறது | diff --git a/chapter9/README.tr.md b/chapter9/README.tr.md index 8a00bc6e9..6492a526b 100644 --- a/chapter9/README.tr.md +++ b/chapter9/README.tr.md @@ -19,7 +19,7 @@ Metin, kontrol akışını açıklamak için kısa mekanizma skeleton'ları kull | Deney | Proje | Tür | Açıklama | | :--: | --- | :--: | --- | | 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Deney 9-1: ortam sonuçlarını, süreç kurallarını ve dil rubriklerini, müşteri hizmetleri izlencelerine ilişkin kanıta dayalı tanılarda birleştirir. | -| 9-2 | [gaia-experience](gaia-experience/) | ✅ | AWorld çerçevesi ve GAIA kıstasına dayalı olarak eksiksiz bir "öğren-uygula" döngüsü uygular. Ajan, başarılı görev izlencelerini otomatik olarak yapılandırılmış deneyimlere özetler ve bunları yeni görevlerde getirip uygulayarak kendi kendine evrim gerçekleştirir. | +| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | Deney 9-2: τ²-bench telecom üzerinde bir model 19 başarısız trajectory'den devir ve araç kullanım kuralları çıkarır; 114 görevlik aktarım kümesinde geçme oranı %12,3 → %19,3, regresyon yok; [kanıt](tau2-escalation-experience/validation/evidence.json) çıkarım makbuzunu, kol başına politika hash'lerini ve davranış metriklerini saklar | | 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | İnsan geri bildirimine dayalı otomatik sistem istemi öğrenimi: tau-bench tarzı havayolu müşteri hizmetleri "aşırı aktarma" sorununu örnek alarak, bir Coding Agent sistem istem dosyasını okur, sorunlu kuralları belirler, kesin değişiklikler üretir ve istem dosyasını gerçekten yeniden yazar. Ardından değişiklikleri yeniden değerlendirir, "geri bildirim → yeniden yazma → doğrulama" döngüsü oluşturur. | | 9-4 | Metin içi deney | 🚧 | Deney 9-4: kullanıcı geri bildiriminden "gereksinim netleştirme + Spec onayı" Skill'i geliştirir; metin üç kollu A/B tasarımını, metrikleri ve yayın kapılarını verir, eşlik eden uygulama henüz eklenmemiştir. | | 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Tarayıcı otomasyonu için bir iş akışı kayıt sistemi uygular; tekrarlanan işlem dizilerini otomatik olarak parametreli araçlara kapsüller. Pahalı LLM çıkarımından kesin otomatik yürütmeye geçerek 3-5 kat hız artışı sağlar. | diff --git a/chapter9/README.vi.md b/chapter9/README.vi.md index 91d951fbc..e011d6bec 100644 --- a/chapter9/README.vi.md +++ b/chapter9/README.vi.md @@ -19,7 +19,7 @@ Lần đầu có thể bỏ qua credential, lớp trình bày và tương thích | Thí nghiệm | Project | Type | Description | | :--: | --- | :--: | --- | | 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | Thí nghiệm 9-1: kết hợp kết quả môi trường, quy tắc quá trình và rubric ngôn ngữ thành chẩn đoán trajectory chăm sóc khách hàng có bằng chứng | -| 9-2 | [gaia-experience](gaia-experience/) | ✅ | Thí nghiệm 9-2: so sánh trajectory thành công, thành công một phần và thất bại để sinh tài liệu kinh nghiệm Markdown xuyên trajectory | +| 9-2 | [tau2-escalation-experience](tau2-escalation-experience/) | ✅ | Thí nghiệm 9-2: trên τ²-bench telecom, một mô hình rút ra các quy tắc chuyển tiếp và sử dụng công cụ từ 19 trajectory thất bại; tỷ lệ vượt qua trên tập chuyển giao 114 nhiệm vụ tăng từ 12,3% lên 19,3%, không có hồi quy; [bằng chứng](tau2-escalation-experience/validation/evidence.json) lưu biên nhận rút trích, hash chính sách từng nhánh và các chỉ số hành vi | | 9-3 | [prompt-auto-optimization](prompt-auto-optimization/) | ✅ | Thí nghiệm 9-3: sinh bản vá prompt tối thiểu từ trajectory thất bại, kiểm soát phát hành bằng tập biên và tập giữ lại | | 9-4 | Thí nghiệm trong sách | 🚧 | Thí nghiệm 9-4: tiến hóa Skill "làm rõ yêu cầu + xác nhận Spec" từ phản hồi người dùng; phần chính đưa ra thiết kế A/B ba nhánh, các chỉ số và cổng phát hành, phần triển khai đi kèm còn thiếu | | 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | Thí nghiệm 9-5: biên dịch trajectory trình duyệt thành workflow có vị từ trạng thái (state predicates), được kiểm chứng bằng phát lại sau reset | diff --git a/chapter9/README.zh-TW.md b/chapter9/README.zh-TW.md index 402509582..baef35ed0 100644 --- a/chapter9/README.zh-TW.md +++ b/chapter9/README.zh-TW.md @@ -19,7 +19,7 @@ | 編號 | 專案 | 型別 | 一句話說明 | | :--: | --- | :--: | --- | | 9-1 | [trajectory-verifier](trajectory-verifier/) | ✅ | 實驗 9-1:用環境結果、過程規則和語言 Rubric 形成帶證據的客服軌跡診斷 | -| 9-2 | [gaia-experience](gaia-experience/) | ✅ | 基於 AWorld + GAIA 的「學習-應用」閉環:自動總結成功軌跡為結構化經驗,在新任務中檢索應用 | +| 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/) | ✅ | 以 tau-bench 航空客服「過度轉接」為例,Coding Agent 讀/改 prompt 檔案 → 重新評測 → 驗證閉環 | | 9-4 | 正文實驗 | 🚧 | 實驗 9-4:從使用者回饋進化「需求澄清 + Spec 確認」Skill,正文提供三臂 A/B 設計與發布門檻 | | 9-5 | [browser-use-rpa](browser-use-rpa/) | ✅ | 實驗 9-5:瀏覽器工作流錄製系統,把重複操作封裝為參數化工具,透過重置與回放驗證 | diff --git a/chapter9/gaia-experience/.gitignore b/chapter9/gaia-experience/.gitignore deleted file mode 100644 index ea1472ec1..000000000 --- a/chapter9/gaia-experience/.gitignore +++ /dev/null @@ -1 +0,0 @@ -output/ diff --git a/chapter9/gaia-experience/AWorld/Dockerfile_gaia b/chapter9/gaia-experience/AWorld/Dockerfile_gaia deleted file mode 100644 index 301336dae..000000000 --- a/chapter9/gaia-experience/AWorld/Dockerfile_gaia +++ /dev/null @@ -1,43 +0,0 @@ -FROM python:3.11-slim AS base - -RUN mkdir -p /app/aworld - -WORKDIR /app/aworld - -RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ - -RUN rm -fv /etc/apt/sources.list.d/* && \ - echo "deb [trusted=yes] https://mirrors.aliyun.com/debian bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \ - echo "deb [trusted=yes] https://mirrors.aliyun.com/debian bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ - echo "deb [trusted=yes] https://mirrors.aliyun.com/debian bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ - echo "deb [trusted=yes] https://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -RUN apt-get update && apt-get install -y wget unzip openssh-client procps nodejs npm - -# Config Env -RUN npx playwright install chrome -RUN npm install @playwright/mcp @negokaz/excel-mcp-server - -# GAIA Docker Image -FROM base AS gaia_env - -# Install aworld -COPY ./aworld aworld -COPY ./setup.py setup.py -RUN python setup.py install - -# Copy examples -COPY ./examples/ examples - -# Create GAIA benchmark directory -RUN mkdir -p gaia-benchmark/fs && \ - mkdir -p gaia-benchmark/logs && \ - mkdir -p static - -ENV PYTHONPATH=/app/aworld${PYTHONPATH:+:${PYTHONPATH}} -ENV GAIA_DATASET_PATH=/app/aworld/examples/gaia/GAIA/2023 -ENV LOG_FILE_PATH=/app/aworld/gaia-benchmark/logs - -CMD [ "python", "examples/gaia/gaia_agent_server.py" ] diff --git a/chapter9/gaia-experience/AWorld/LICENSE b/chapter9/gaia-experience/AWorld/LICENSE deleted file mode 100644 index 43e80c00d..000000000 --- a/chapter9/gaia-experience/AWorld/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 [Inclusion AI] - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/chapter9/gaia-experience/AWorld/README.md b/chapter9/gaia-experience/AWorld/README.md deleted file mode 100644 index c4e4d54f9..000000000 --- a/chapter9/gaia-experience/AWorld/README.md +++ /dev/null @@ -1,736 +0,0 @@ -
| Category | -Achievement | -Performance | -Key Innovation | -Date | -
|---|---|---|---|---|
| 🤖 Agent | -
- GAIA Benchmark Excellence - - - |
-
- Pass@1: 67.89 - Pass@3: 83.49 - (109 tasks) - - |
-
- Multi-agent system stability & orchestration - - - |
- 2025/08/06 | -
| 🧠 Reasoning | -
- IMO 2025 Problem Solving - - - |
-
- 5/6 problems solved in 6 hours - - - |
- Multi-agent collaboration beats solo models |
- 2025/07/25 | -
| Category | -Achievement | -Status | -Expected Impact | -
|---|---|---|---|
| 🖼️ Multi-Modal | -Advanced OS / Web Interaction | -In Progress | -Visual reasoning environment understanding |
-
| 💻 Code | -Advanced installation, coding, testing, debugging, etc. ability |
- In Progress | -Automated software engineering capabilities |
-
| 🔧 Tool Use | -Advanced multi-turn function call | -Coming soon | -Impact the real world | -
| Agents | -Env | -Experience | -Training | -Code | -
|---|---|---|---|---|
| GAIA Agent | -- Terminal, code, search, playwright, and 4 additional tools - | -
- Collected from 165 samples in the GAIA validation dataset - - |
- - Rollout, reward calculation, and gradient updates via GRPO - | -
- Three lines of code to run.
- - - |
-
| 智能体 | -环境 | -经验 | -训练 | -代码 | -
|---|---|---|---|---|
| GAIA 智能体 | -- 终端、代码、搜索、playwright 和 4 个额外工具 - | -
- 从 GAIA 验证数据集的 165 个样本中收集 - - |
- - 通过 GRPO 进行 rollout、奖励计算和梯度更新 - | -
- 3行代码即可
- - - |
-
Math.floor(m+t)){v=h-1;break}}for(var g=0,b=p-1;b>=0;b-=1){var w=e.get(s[b].key)||Qa;if(w[f]0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push($l(t.slice(o),o>0,!1)),i.join("")}function $l(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===Sl||i===wl;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===Sl||i===wl;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function l2(e,t){const n={type:"text",value:s2(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function c2(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const u2={blockquote:Dw,break:Bw,code:Fw,delete:Hw,emphasis:Ww,footnoteReference:Vw,heading:Uw,html:Xw,imageReference:Gw,image:qw,inlineCode:Yw,linkReference:Kw,link:Zw,listItem:Jw,list:e2,paragraph:t2,root:n2,strong:r2,table:o2,tableCell:a2,tableRow:i2,text:l2,thematicBreak:c2,toml:Nr,yaml:Nr,definition:Nr,footnoteDefinition:Nr};function Nr(){}const Id=-1,ho=0,qn=1,Jr=2,ha=3,ga=4,va=5,ya=6,Pd=7,Td=8,El=typeof self=="object"?self:globalThis,d2=(e,t)=>{const n=(o,i)=>(e.set(i,o),o),r=o=>{if(e.has(o))return e.get(o);const[i,a]=t[o];switch(i){case ho:case Id:return n(a,o);case qn:{const s=n([],o);for(const l of a)s.push(r(l));return s}case Jr:{const s=n({},o);for(const[l,c]of a)s[r(l)]=r(c);return s}case ha:return n(new Date(a),o);case ga:{const{source:s,flags:l}=a;return n(new RegExp(s,l),o)}case va:{const s=n(new Map,o);for(const[l,c]of a)s.set(r(l),r(c));return s}case ya:{const s=n(new Set,o);for(const l of a)s.add(r(l));return s}case Pd:{const{name:s,message:l}=a;return n(new El[s](l),o)}case Td:return n(BigInt(a),o);case"BigInt":return n(Object(BigInt(a)),o);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:s}=new Uint8Array(a);return n(new DataView(s),a)}}return n(new El[i](a),o)};return r},Il=e=>d2(new Map,e)(0),gn="",{toString:f2}={},{keys:p2}=Object,Hn=e=>{const t=typeof e;if(t!=="object"||!e)return[ho,t];const n=f2.call(e).slice(8,-1);switch(n){case"Array":return[qn,gn];case"Object":return[Jr,gn];case"Date":return[ha,gn];case"RegExp":return[ga,gn];case"Map":return[va,gn];case"Set":return[ya,gn];case"DataView":return[qn,n]}return n.includes("Array")?[qn,n]:n.includes("Error")?[Pd,n]:[Jr,n]},kr=([e,t])=>e===ho&&(t==="function"||t==="symbol"),m2=(e,t,n,r)=>{const o=(a,s)=>{const l=r.push(a)-1;return n.set(s,l),l},i=a=>{if(n.has(a))return n.get(a);let[s,l]=Hn(a);switch(s){case ho:{let u=a;switch(l){case"bigint":s=Td,u=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);u=null;break;case"undefined":return o([Id],a)}return o([s,u],a)}case qn:{if(l){let m=a;return l==="DataView"?m=new Uint8Array(a.buffer):l==="ArrayBuffer"&&(m=new Uint8Array(a)),o([l,[...m]],a)}const u=[],f=o([s,u],a);for(const m of a)u.push(i(m));return f}case Jr:{if(l)switch(l){case"BigInt":return o([l,a.toString()],a);case"Boolean":case"Number":case"String":return o([l,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const u=[],f=o([s,u],a);for(const m of p2(a))(e||!kr(Hn(a[m])))&&u.push([i(m),i(a[m])]);return f}case ha:return o([s,a.toISOString()],a);case ga:{const{source:u,flags:f}=a;return o([s,{source:u,flags:f}],a)}case va:{const u=[],f=o([s,u],a);for(const[m,p]of a)(e||!(kr(Hn(m))||kr(Hn(p))))&&u.push([i(m),i(p)]);return f}case ya:{const u=[],f=o([s,u],a);for(const m of a)(e||!kr(Hn(m)))&&u.push(i(m));return f}}const{message:c}=a;return o([s,{name:l,message:c}],a)};return i},Pl=(e,{json:t,lossy:n}={})=>{const r=[];return m2(!(t||n),!!t,new Map,r)(e),r},Qr=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Il(Pl(e,t)):structuredClone(e):(e,t)=>Il(Pl(e,t));function h2(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function g2(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function v2(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||h2,r=e.options.footnoteBackLabel||g2,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},s=[];let l=-1;for(;++l