From 664e69bfc6029b3973a703dda834b480bb63ec0d Mon Sep 17 00:00:00 2001 From: Zane Date: Tue, 9 Jun 2026 10:48:33 +0800 Subject: [PATCH] Add Milky notes: 20 file(s) --- ...›¢é˜Ÿçº§_AI_编程驾驭工程_BV1SZoXBkErT_笔记.md | 352 +++++++ ... ¼é©±åЍè½åœ°_文档管ç†ç­–ç•¥_BV1mZV76eEPC_笔记.md | 177 ++++ ...ç†_核心组件和实战应用_å­¦ä¸ä¼šæˆ‘_BV1Hn9UBrEsH_P1_笔记.md | 320 ++++++ InBox/Multi-Agent与Multi-Task编排架构.md | 934 ++++++++++++++++++ ...ill的自动评分器怎么æ­_BV1HWd6BsEmG_笔记.md | 316 ++++++ ...»„织è¦çš„䏿˜¯ä¸ªäººææ•ˆ_是组织自进化_BV1i77X6pE1C_笔记.md | 187 ++++ ...de技巧了_Autoresearch帮你æžå®š_BV1tJwKzDE8x_笔记.md | 317 ++++++ ...程能力更新_å¼€æºagent生æ€åˆ†åŒ–_BV1LjdzB3EAu_笔记.md | 180 ++++ InBox/milky_BV17y7U6EER5.md | 158 +++ InBox/milky_BV1ArVU62Eac.md | 435 ++++++++ InBox/milky_BV1HWd6BsEmG.md | 321 ++++++ InBox/milky_BV1Hn9UBrEsH.md | 324 ++++++ InBox/milky_BV1LjdzB3EAu.md | 186 ++++ InBox/milky_BV1SZoXBkErT.md | 365 +++++++ InBox/milky_BV1i77X6pE1C.md | 192 ++++ InBox/milky_BV1mZV76eEPC.md | 181 ++++ InBox/milky_BV1p9QnBtEMq.md | 273 +++++ InBox/milky_BV1tJwKzDE8x.md | 320 ++++++ ...出Agent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果接近翻å€_BV17y7U6EER5_笔记.md | 156 +++ ...框架解决逻辑断层_实现92.0_平衡准确率_BV1p9QnBtEMq_笔记.md | 269 +++++ ...¶æž„编程范å¼_è¶…è¶ŠOOPå’ŒMVC_BV1ArVU62Eac_笔记.md | 423 ++++++++ 21 files changed, 6386 insertions(+) create mode 100644 InBox/2026-04-25_Harness_for_AI_coding_团队级_AI_编程驾驭工程_BV1SZoXBkErT_笔记.md create mode 100644 InBox/2026-05-30_SDD_规格驱动è½åœ°_文档管ç†ç­–ç•¥_BV1mZV76eEPC_笔记.md create mode 100644 InBox/Harness_Engineering最佳实践_深度解æžAgentHamness的底层原ç†_核心组件和实战应用_å­¦ä¸ä¼šæˆ‘_BV1Hn9UBrEsH_P1_笔记.md create mode 100644 InBox/Multi-Agent与Multi-Task编排架构.md create mode 100644 InBox/OpenAI_Skill的自动评分器怎么æ­_BV1HWd6BsEmG_笔记.md create mode 100644 InBox/Shopify_内部_Agent__为什么ä¸å‡†å‘˜å·¥ç§èŠ___AI_native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆ_是组织自进化_BV1i77X6pE1C_笔记.md create mode 100644 InBox/_AI翻译_别å†è‡ªå·±é’»ç ”Claude技巧了_Autoresearch帮你æžå®š_BV1tJwKzDE8x_笔记.md create mode 100644 InBox/_播客__Agent技术周报2_harness工程能力更新_å¼€æºagent生æ€åˆ†åŒ–_BV1LjdzB3EAu_笔记.md create mode 100644 InBox/milky_BV17y7U6EER5.md create mode 100644 InBox/milky_BV1ArVU62Eac.md create mode 100644 InBox/milky_BV1HWd6BsEmG.md create mode 100644 InBox/milky_BV1Hn9UBrEsH.md create mode 100644 InBox/milky_BV1LjdzB3EAu.md create mode 100644 InBox/milky_BV1SZoXBkErT.md create mode 100644 InBox/milky_BV1i77X6pE1C.md create mode 100644 InBox/milky_BV1mZV76eEPC.md create mode 100644 InBox/milky_BV1p9QnBtEMq.md create mode 100644 InBox/milky_BV1tJwKzDE8x.md create mode 100644 InBox/北大Agent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果翻å€åŒ—大æžå‡ºAgent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果接近翻å€_BV17y7U6EER5_笔记.md create mode 100644 InBox/让AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœ_æ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层_实现92.0_平衡准确率_BV1p9QnBtEMq_笔记.md create mode 100644 InBox/é¢å‘架构编程范å¼_è¶…è¶ŠOOPå’ŒMVC_BV1ArVU62Eac_笔记.md diff --git a/InBox/2026-04-25_Harness_for_AI_coding_团队级_AI_编程驾驭工程_BV1SZoXBkErT_笔记.md b/InBox/2026-04-25_Harness_for_AI_coding_团队级_AI_编程驾驭工程_BV1SZoXBkErT_笔记.md new file mode 100644 index 0000000..cb0b694 --- /dev/null +++ b/InBox/2026-04-25_Harness_for_AI_coding_团队级_AI_编程驾驭工程_BV1SZoXBkErT_笔记.md @@ -0,0 +1,352 @@ +# æ•æ·å›¢é˜Ÿ AI 编程驾驭工程体系 + +## 一ã€èƒŒæ™¯ä¸Žæ ¸å¿ƒé—®é¢˜ + +### 1.1 为什么需è¦å›¢é˜Ÿçº§ AI 编程体系 + +å½“å‰ AI 编程工具(如 SuperPoweã€Claude Codeã€Cursor 等)已ç»éžå¸¸å¼ºå¤§ï¼Œä½†**在团队级ã€é¡¹ç›®çº§åœºæ™¯ä¸‹è½åœ°å›°éš¾**。核心原因是: + +- **需求衔接问题**:产å“ç»ç†/BA 给的需求格å¼ä¸ç»Ÿä¸€ï¼Œé¢—粒度ä¸ä¸€è‡´ï¼Œå¯¼è‡´ AI 无法有效ç†è§£ +- **å¼€å‘实践问题**:多人å作时,AI 生æˆçš„代ç é£Žæ ¼ä¸ç»Ÿä¸€ã€éš¾ä»¥å½¢æˆä¸€è‡´çš„æ•´ä½“ +- **å·¥å…·ç”Ÿæ€æ··ä¹±**:Claude Codeã€Cursorã€windsurfã€SuperPower 等工具差异大,没有统一标准 +- **æµç¨‹ä¸Žåˆ¶åº¦é—®é¢˜**:团队工作习惯难以改å˜ï¼Œè¿™æ˜¯æœ€å¤§çš„é˜»åŠ›æ¥æº + +### 1.2 当å‰å›¢é˜Ÿä½¿ç”¨ AI 编程的认知分级 + +æ ¹æ®å¼€å‘者能力分层: + +| 级别 | æè¿° | 典型行为 | +|------|------|----------| +| åˆçº§å¼€å‘者 | 照猫画虎,ä¸çŸ¥é“系统如何工作 | 抄代ç ã€å†™ä¸šåŠ¡é€»è¾‘ï¼Œè¢« AI 替代 | +| 专家型开å‘者 | åšæŠ€æœ¯å…¬å…³ï¼Œå¤æ‚ç»„ä»¶å¼€å‘ | ä»éœ€è¦ï¼Œä½† AI å¯è¾…助 | +| 架构型开å‘者 | 设计æœåŠ¡ã€åšæƒè¡¡å†³ç­– | AI 辅助设计,但è¦äººå·¥æŠŠå…³ | +| 技术ç»ç†/CTO | 处ç†å¤æ‚混乱的问题 | 构建团队 AI 工作体系 | + +> **关键洞察**:"è¿™ä¸ªçŽ©å…·ä¸æ˜¯çŽ© AI,是玩人"——真正的挑战ä¸åœ¨äºŽ AI 能力,而在于如何让团队按照统一的方å¼å·¥ä½œã€‚ + +### 1.3 AI 辅助软件工程全æµç¨‹å›¾ + +``` +éœ€æ±‚åˆ†æž â†’ 技术方案设计 → 代ç ç¼–写 → Code Review → 测试 → 部署 → 生产 Bug ä¿®å¤ + ↓ ↓ ↓ ↓ ↓ ↓ ↓ + 录音转文档 打样工程 API/å•元测试 äº¤å‰æ¨¡åž‹ E2E测试 K8S部署 MCP自动 + è®¿è°ˆçºªè¦ ä»£ç æ¨¡æ¿ TDD 循环 Review Playwright 触å‘åˆå¹¶ å‘通知 + 需求文档 技术规范 + 原型链接 +``` + +## 二ã€éœ€æ±‚阶段:如何让需求 AI å‹å¥½ + +### 2.1 需求规格模æ¿å¿…须包å«çš„内容 + +BA 或产å“ç»ç†ç»™çš„需求文档必须包å«ä»¥ä¸‹ 4 个关键部分: + +1. **业务背景**:为什么åšè¿™ä¸ªéœ€æ±‚ +2. **字段清å•**:所有业务字段的类型ã€é»˜è®¤å€¼ã€ä¸šåŠ¡è§„åˆ™ï¼ˆé¿å…åªç»™åŽŸåž‹å›¾è®© AI 去猜) +3. **原型链接**:Figma 图等设计稿的链接(AI å¯é€šè¿‡ MCP è¯»å– Figma) +4. **业务规则**ï¼šæŒ‰æ¡æ‹†åˆ†ï¼Œä¾‹å¦‚: + - 订å•å·ç”Ÿæˆè§„则 + - å‘货规则 + - 状æ€è½¬æ¢è§„则 + +### 2.2 需求颗粒度的判断标准 + +**ä¸è¦ç”¨ Story 拆分需求**ï¼ˆä¸€ä¸ªäººå¢žäº§æ”¹æŸ¥æ‹†æˆ 4 个 story 对 AI æ¥è¯´ä¿¡æ¯é‡ä¸å¤Ÿï¼‰ã€‚ + +æ­£ç¡®åšæ³•:**一个模å—一个文档**,判断颗粒度的标准是: +- æ˜¯å¦æœ‰ç‹¬ç«‹çš„表结构 +- 是å¦å¯ä»¥å•独上线 + +### 2.3 新建需求 vs å˜æ›´éœ€æ±‚ + +**新建需求**:告诉 AI 有多少表ã€å¤šå°‘页é¢ã€å¤šå°‘功能æ“作 → AI 生æˆå®Œæ•´æ¨¡å— + +**å˜æ›´éœ€æ±‚**(é‡è¦ï¼‰ï¼š +- å¿…é¡»ç”¨æ ‡ç­¾æ ‡æ³¨å˜æ›´ç±»åž‹ï¼š`[+字段]` `[-字段]` `[修改字段]` +- ä¸è¦æŠŠæœ€ç»ˆå®Œæ•´çжæ€ç»™ AI,因为 AI 需è¦å¯¹æ¯”çŽ°æœ‰ä»£ç  â†’ æµªè´¹å¤§é‡ Token 且效果差 +- 示例: + +```markdown +# è®¢å•æ¨¡å—å˜æ›´éœ€æ±‚ + +## 新增内容 [+] +- 新增字段:order_type(订å•类型,枚举值:NORMAL, VIP, B2B) + +## 修改内容 [~] +- 修改字段:shipping_address 最大长度从 200 改为 500 + +## 删除内容 [-] +- 删除字段:legacy_flag(已废弃) +``` + +### 2.4 用 Obsidian æ­å»ºçŸ¥è¯†åº“ç»™ AI åšä¸Šä¸‹æ–‡ + +å°†æ‰€æœ‰éœ€æ±‚è§„æ ¼ã€æŠ€æœ¯è§„æ ¼éƒ½æ”¾åˆ°çŸ¥è¯†åº“ä¸­ï¼Œç”¨ Obsidian + Markdown 管ç†ï¼š + +- 用æµè§ˆå™¨æ’ä»¶ä¸€é”®å°†ç½‘é¡µè½¬æˆ Markdown å¹¶ä¿å­˜å›¾ç‰‡æœ¬åœ° +- 用 backlink 功能åšä¸Šä¸‹æ–‡å…³è” +- AI 通过读å–这个知识库获得长期记忆 → "Single source of truth" + +## ä¸‰ã€æŠ€æœ¯è§„æ ¼é˜¶æ®µï¼šæŠ€æœ¯æ–¹æ¡ˆè®¾è®¡ + +### 3.1 技术规格必须包å«çš„内容 + +技术规格是开å‘的核心输入,必须包å«ä»¥ä¸‹ 5 个部分: + +| 内容 | 工具/æ ¼å¼ | 说明 | +|------|----------|------| +| 领域模型 | PlantUML / Mermaid | 代ç åŒ–表达,便于 AI ç†è§£ | +| æ•°æ®åº“设计 | DBML / Flyway 脚本 | ä¸è¦è®© AI 直接æ“作数æ®åº“,用版本化的 Flyway 脚本 | +| API 定义 | OpenAPI / Markdown | åŽç«¯å†™å®Œ API åŽè¾“出 API 文档给å‰ç«¯ | +| æ—¶åºå›¾ | Mermaid | 夿‚æµç¨‹éœ€è¦æ—¶åºå›¾ | +| 专项设计 | Markdown | æƒé™ã€äº‹åŠ¡ã€ç¼“存等专项内容 | + +> **é‡è¦æ•™è®­**:ä¸è¦ç»™ AI 写数æ®åº“的写æƒé™ï¼Œæ›¾ç»å› ä¸º AI 动ä¸åŠ¨ä¿®æ”¹æ•°æ®åº“导致多人æ“作冲çªã€‚把写æƒé™å…³æŽ‰ï¼Œè®© AI ç”Ÿæˆ Flyway 脚本,本地测试时让 Flyway 跑。 + +### 3.2 DSL 驱动的技术规格 + +用领域特定语言(DSL)æ¥é©±åŠ¨æŠ€æœ¯è§„æ ¼ï¼š +- 领域模型用 PlantUML +- æ•°æ®åº“用 DBML +- API 用 OpenAPI +- 这些 DSL 都å¯ä»¥é€šè¿‡ä»£ç ç”Ÿæˆ → ä¿è¯å‰åŽç«¯ä¸€è‡´æ€§ + +> 这实际上就是模型驱动架构(Model-Driven Architecture),当团队从零开始全新的 AI 项目时,这ç§ä¸¥æ ¼çš„æ£€æŸ¥å’Œçº¦æŸæ›´å®¹æ˜“建立。 + +## å››ã€æ‰“样工程:AI å‹å¥½çš„ä»£ç æ¡†æž¶ + +### 4.1 什么是打样工程 + +打样工程(Seed Projectï¼‰æ˜¯ä¸€ä¸ªé¢„å…ˆå®šä¹‰å¥½çš„ä»£ç æ¡†æž¶æ¨¡æ¿ï¼ŒåŒ…å«ï¼š +- æ¯å±‚的类åå’ŒèŒè´£å®šä¹‰ +- 代ç è§„范和最佳实践 +- ä¾èµ–é…置和目录结构 + +### 4.2 打样工程的作用 + +1. **AI 生æˆä»£ç é£Žæ ¼ä¸€è‡´**:所有 AI 都基于åŒä¸€ä¸ªæ¡†æž¶ç”Ÿæˆä»£ç  +2. **å‡å°‘é‡å¤ä»£ç **:AI 会å¤ç”¨æ¡†æž¶ä¸­çš„ç»„ä»¶è€Œä¸æ˜¯é‡å¤å†™ +3. **é™ä½Žè®¤çŸ¥è´Ÿæ‹…**:AI ä¸éœ€è¦æ¯æ¬¡ç†è§£é¡¹ç›®ç»“æž„ + +### 4.3 如何创建打样工程 + +1. 从旧项目中蒸é¦å‡ºä¸€ä¸ªå¹²å‡€çš„æ–°é¡¹ç›®éª¨æž¶ +2. 定义æ¯å±‚èŒè´£ï¼š`Controller → Service → Repository → Entity` +3. 定义类命å规范和包结构 +4. 放入 Git 仓库供团队共享 + +## 五ã€å¼€å‘阶段:让 AI å¬è¯å†™å‡ºç»Ÿä¸€é£Žæ ¼çš„ä»£ç  + +### 5.1 用 RAG(检索增强生æˆï¼‰æä¾›ä¸Šä¸‹æ–‡ + +将技术规格ã€ä»£ç è§„范ã€åކå²å†³ç­–ç­‰ä¿¡æ¯æ”¾åˆ°ä»£ç ä»“库的 `/docs` 或 `/book` 目录下,AI 通过检索这些文档获得上下文: + +```markdown +/my-project + /book + /requirements # 需求规格 + /specifications # 技术规格 + /api-docs # API 文档 + /src + /skills + /mcp +``` + +### 5.2 å¤šä»»åŠ¡åŒæ­¥å¼€å‘:Worktree 的使用 + +Git Worktree å¯ä»¥æŠŠåˆ†æ”¯æ˜ å°„æˆç›®å½•,实现多任务并行: + +```bash +# 创建多个工作目录 +git worktree add ../feature-order feature/order +git worktree add ../feature-user feature/user + +# 在ä¸åŒç›®å½•ä¸‹åŒæ—¶å·¥ä½œï¼Œåšå®ŒåŽåˆå¹¶ +``` + +**ä½†è¦æ³¨æ„**: +- å¤šäººåŒæ—¶æ“作多人工作时,版本管ç†ä¼šæ¯”较痛苦 +- 建议æå‰æŠŠè§„格设计好,让 AI æ…¢æ…¢è·‘ï¼Œè€Œä¸æ˜¯åŒæ—¶å¼€å¤ªå¤šä»»åŠ¡ + +### 5.3 ä¸è¦è®© AI 边写代ç è¾¹åšè®¾è®¡ + +用 `rapper5` çš„æ€è·¯ï¼š**Discovery/Design å’Œ Coding 分两个阶段**。 +- å…ˆåšæŽ¢ç´¢æ€§è®¾è®¡ï¼Œè®©ä¸åŒ AI 模型(GPTã€Claudeã€Gemini)å„自给出方案 +- 选定方案åŽï¼Œå†æ¿€æ´» Coding 角色专èŒå†™ä»£ç  +- 切æ¢è§’色时é‡ç½®ä¸Šä¸‹æ–‡ï¼Œé¿å… AI 注æ„力分散 + +## å…­ã€æµ‹è¯•阶段:AI 写代ç å½¢æˆé—­çŽ¯çš„æ ¸å¿ƒ + +### 6.1 为什么测试是 AI 编程的命脉 + +> "没有 API 测试和å•å…ƒæµ‹è¯•ï¼Œæ— æ³•å½¢æˆ AI 写代ç çš„闭环。" + +AI 生æˆä»£ç åŽå¿…须能**自我验è¯**,å¦åˆ™ï¼š +- äººå·¥éªŒè¯æ•ˆçއæžä½Ž +- AI 无法å‘现自己的问题 +- å›¢é˜Ÿæ— æ³•çœŸæ­£ææ•ˆ + +### 6.2 测试策略(3 层) + +| 测试类型 | 工具 | é©±åŠ¨æ–¹å¼ | +|----------|------|----------| +| å•元测试 | JUnit / pytest | TDD:先写测试让 AI 失败,å†å†™å®žçް | +| API 测试 | REST Assured / Newman | 自动化回归,å¯ç›´æŽ¥å¡ 90%+ 覆盖率 | +| E2E 测试 | Playwright(推è,替代了 Selenium) | ä¸Šçº¿å‰ 80% çš„ case 回归覆盖 | + +### 6.3 TDD 循环(SuperPower 的工作方å¼ï¼‰ + +1. 让 AI 先写 API 测试/å•元测试 +2. AI è¿è¡Œæµ‹è¯• → 失败 +3. AI å†å†™å®žçŽ°ä»£ç  +4. AI 自动è¿è¡Œæµ‹è¯•éªŒè¯ â†’ 通过 + +> **效果**:å•元测试å¯è¾¾ 100% 覆盖率,API 测试å¯è¾¾ 90%+ 覆盖率。 + +### 6.4 AI 写测试解决å‡é˜³æ€§é—®é¢˜ + +有时候 AI 为了让测试通过,会伪造测试逻辑。解决方案: +- **TDD 先写测试**:先让测试失败,å†è®© AI 写实现 +- **交å‰éªŒè¯**:用ä¸åŒçš„ AI 模型互相 review 代ç å’Œæµ‹è¯• + +### 6.5 æµ‹è¯•ç”¨ä¾‹çš„ç®¡ç† + +测试用例直接放到代ç ä»“库中: +- å•元测试:跟éšä»£ç æ¨¡å— +- API 测试:放在 `/test/api` 目录 +- E2E 测试:用 TypeScript + Playwright,放在代ç ä»“库根目录(或与å‰ç«¯é¡¹ç›®åŒä»“库) + +## 七ã€Review 阶段:AI 辅助 Code Review + +### 7.1 å¤šç§ Review æ–¹å¼ + +1. **工具扫æ**:SonarQube ç­‰é™æ€åˆ†æžå·¥å…· + AI è‡ªåŠ¨ä¿®å¤ +2. **AI Review**:用å¦ä¸€ä¸ª AI 模型åšäº¤å‰ reviewï¼ˆæ¢æ¨¡åž‹åš review 是常用技巧) +3. **Agent 自动触å‘**:在 PR é˜¶æ®µè‡ªåŠ¨è§¦å‘ Review Agent + +### 7.2 AI Review 的问题与解决方案 + +**问题**:AI Review æ€»æ˜¯ä¼šææ”¹è¿›å»ºè®®ï¼Œå“ªæ€•没有明显问题(因为你的 prompt 让它æé—®é¢˜ï¼‰ã€‚ + +**解决方案**: +- è®¾ç½®é˜ˆå€¼ï¼šè¾¾åˆ°ä¸€å®šçº§åˆ«æ‰æé—®é¢˜ï¼Œå¦åˆ™ä¸è¾“出 +- 让 AI åªå…³æ³¨ bug 和逻辑错误,ä¸è¿‡åº¦å…³æ³¨é£Žæ ¼é—®é¢˜ +- 用团队的架构规约æ¥çº¦æŸ Review 标准 + +### 7.3 ä¸åŒåœºæ™¯çš„ Review ç­–ç•¥ + +- **全新项目(AI 100% 生æˆï¼‰**:å¯ä»¥ç”¨æœ€ä¸¥æ ¼çš„规则,AI 写完直接修 +- **æ··åˆé¡¹ç›®ï¼ˆäºº + AI)**:å¯èƒ½å­˜åœ¨åކå²é—留问题,Review 结果噪音多,建议从新模å—开始逿­¥è§„范 +- **跨系统场景**:AI å®¹æ˜“çŠ¯é”™ï¼ˆå°¤å…¶æ¶‰åŠ 3-5 个系统的交互),建议收敛到å•ä¸ªä»“åº“å¤„ç† + +> **ç»éªŒ**:跨系统时 AI 犯错误概率高达 70-80%,核心原因是缺少完整的系统间关系和业务规则上下文。 + +## å…«ã€å·¥å…·é“¾ï¼šAI 编程工具全景 + +### 8.1 三类 AI 编程工具 + +| 类型 | 代表工具 | 特点 | +|------|----------|------| +| 命令行 CLI | Claude Code, OpenAI Codex | 适åˆå¿«é€Ÿæ“作ã€è„šæœ¬åŒ– | +| IDE é›†æˆ | Cursor, Windsurf, VS Code AI | é€‚åˆæ—¥å¸¸å¼€å‘,界é¢å‹å¥½ | +| 辅助æ’ä»¶ | SuperPower(推è个人), Copilot | 按需使用 | + +### 8.2 常用 MCP(Model Context Protocol) + +| MCP | 用途 | +|-----|------| +| æ•°æ®åº“ MCP | æ“作数æ®åº“(注æ„:åªè¯»ï¼Œå†™æƒé™å»ºè®®å…³é—­ï¼‰ | +| Figma MCP | 读å–设计稿 | +| Jira MCP | 管ç†å·¥å• | +| Git MCP | ä»£ç æäº¤ã€PR æ“作 | + +### 8.3 Skills 体系 + +Skills = 一段æç¤ºè¯ + æ¨¡æ¿ + 脚本,用于æè¿°å·¥ä½œæ–¹æ³•。 + +- 把打样工程的åˆå§‹åŒ–åšæˆ Skill +- æŠŠå›¢é˜Ÿè§„èŒƒåšæˆ Skills +- Skills 放到代ç ä»“库中共享 + +**é‡è¦è§‚点**: +> "现在 AI ç†è§£åЛ已ç»å¾ˆå¼ºå¤§ï¼Œä¸éœ€è¦æŠŠè§„范è½å®žä¸ºéžå¸¸å›ºå®šçš„æ ¼å¼ï¼Œåªè¦è¡¨è¾¾æ¸…楚信æ¯ã€å¼ºè°ƒé‡ç‚¹å³å¯ã€‚" + +**ä¸»æµ Skill 框架**: +- SuperPowerï¼šå†…ç½®å¤§é‡ Skills,开箱å³ç”¨ï¼Œé€‚åˆä¸ªäºº +- Claude Agent(hermes):自动基于对è¯ç”Ÿæˆå’Œä¼˜åŒ– Skills +- MCP:工具调用åè®® + +### 8.4 ä¸ºä»€ä¹ˆä¸æŽ¨è SDD 框架 + +SDD(Scenario-Driven Development)框架本身很好,但**è½åœ°éš¾åº¦åœ¨äºŽå›¢é˜Ÿå…±è¯†**: + +- 需è¦å›¢é˜Ÿæ‰€æœ‰äººæŒ‰ç…§ç›¸åŒæµç¨‹å·¥ä½œ +- çŽ°å®žå›¢é˜Ÿä¸­é˜»åŠ›å¾ˆå¤§ï¼ˆä¸æ˜¯ä¸æ„¿æ„用,是习惯改ä¸äº†ï¼‰ +- SuperPower 对个人很好用,但团队级很难推广 + +> **结论**:与其强推 SDD 框架,ä¸å¦‚团队自己定义一套 Roos + Skills + MCP 的组åˆã€‚ + +## ä¹ã€æž¶æž„åž‹æ€è€ƒï¼šæœªæ¥è¶‹åŠ¿ + +### 9.1 Agent Code 的趋势 + +未æ¥å¿…然会出现 "Agent Code" 的概念——把整个团队的所有产物(需求ã€è§„æ ¼ã€è§„èŒƒã€æµ‹è¯•)全部代ç åŒ–,放到代ç ä»“库中统一管ç†ï¼š + +```markdown +/.agent + /skills # 工作方法 + /mcp # 工具é…ç½® + /templates # æ¨¡æ¿ + /rules # 规范 + /docs # 文档 +``` + +所有 AI 工具(SuperPowerã€Claude Code 等)安装时都从代ç åº“读å–é…置,实现æžè‡´é«˜æ•ˆã€‚ + +### 9.2 多 Agent å调的挑战 + +当å‰å¤š Agent 框架(如 CrewAIã€AutoGen)还处于早期阶段: +- 缺少程åºçº§åˆ«çš„精确校验(ä¸èƒ½å®Œå…¨ä¾èµ– AI 判断) +- Agent 与代ç ä¹‹é—´çš„交互需è¦ç¨‹åºé©±åŠ¨è€Œéžçº¯ AI 驱动 +- å¯èƒ½éœ€è¦è‡ªå·±å†™ workflow 调度器 + +### 9.3 共识是第一è¦åŠ¡ + +> "工具是玩人的,为了获得团队的共识。" + +大公å¸ä¹‹æ‰€ä»¥æ¯”å°å…¬å¸/åˆ›ä¸šå…¬å¸æ›´éš¾æŽ¨è¿› AI 编程å˜é©ï¼Œæ˜¯å› ä¸ºï¼š +- ä¹ æƒ¯éš¾ä»¥æ”¹å˜ +- 团队文化难以调整 +- 需è¦ä»Žä¸Šåˆ°ä¸‹çš„强力推动 + +## åã€å›¢é˜Ÿå®žè·µå»ºè®® + +### 10.1 æ¸è¿›å¼è½åœ°è·¯çº¿ + +1. **å•人验è¯é˜¶æ®µ**:选择一个简å•项目,用 SuperPower + TDD éªŒè¯ AI 编程效率 +2. **规范建立阶段**:定义技术规格模æ¿ã€ä»£ç è§„èŒƒã€æ‰“样工程 +3. **团队推广阶段**:用 Skills æ ‡å‡†åŒ–å·¥ä½œæ–¹æ³•ï¼Œé€æ­¥è®©å›¢é˜ŸæŽ¥å— +4. **自动化阶段**:打通从需求到部署的全æµç¨‹ï¼Œå®žçް"代ç å³ä¸€åˆ‡" + +### 10.2 技术ç»ç†çš„æ ¸å¿ƒèŒè´£ + +- 定义 AI å‹å¥½çš„éœ€æ±‚è§„æ ¼æ¨¡æ¿ â†’ 推动 BA/äº§å“æŽ¥å— +- 建立打样工程和代ç è§„范 → 控制代ç è´¨é‡ä¸‹é™ +- 推动测试文化 → 这是专业和éžä¸“业软件公å¸çš„分界线 +- 构建团队共识 → 这是最难也是最é‡è¦çš„事 + +### 10.3 é¿å‘æŒ‡å— + +1. **ä¸è¦è®© AI 直接写数æ®åº“**:用 Flyway è„šæœ¬ç‰ˆæœ¬åŒ–ç®¡ç† +2. **ä¸è¦æ‹†åˆ†è¿‡äºŽç»†å°çš„需求**:一个模å—一个文档 +3. **å˜æ›´éœ€æ±‚ä¸€å®šè¦æ ‡æ³¨å˜æ›´ç±»åž‹**:ä¸è¦ç»™å®Œæ•´çŠ¶æ€ +4. **ä¸è¦è®© AI åŒæ—¶åšè®¾è®¡å’Œä»£ç **:分阶段,用ä¸åŒè§’色 +5. **ä¸è¦å®Œå…¨ä¾èµ– AI Review**:用规则约æŸã€AI + äººå·¥ç»“åˆ + +## å一ã€è§‚ä¼—å馈与补充 + +- **åŽä¸º CodeArts Agent**ï¼šå¸¦æœ‰è§„èŒƒé©±åŠ¨å¼€å‘æ¨¡å¼ï¼Œå¯ä»¥å‚考 +- **Obsidian + Opal**:适åˆåš Markdown 知识库管ç†ï¼Œæ‰‹æœºå’Œç”µè„‘åŒæ­¥ï¼Œé€‚åˆåœ¨å¤–也能用手机+终端工作 +- **看æ¿å¼ AI ååŒ**:所有需求ã€è®¾è®¡ã€ä»»åŠ¡å…¨éƒ¨çœ‹æ¿åŒ–,共享给团队æˆå‘˜ +- **è·¨ Agent 通信**:契约文件(如 OpenAPI JSON)放到共享目录,å‰åŽç«¯å„è‡ªè¯»å– â†’ é¿å…å‰ç«¯æ”¹å®ŒåŽç«¯ä¸çŸ¥é“的问题 +- **sonarlint 本地扫æ + AI 自动修å¤**:在 pre-commit 阶段触å‘陿€æ‰«æï¼ŒAI 自动修å¤ä»£ç é£Žæ ¼é—®é¢˜ï¼Œæ•ˆæžœå¾ˆå¥½ \ No newline at end of file diff --git a/InBox/2026-05-30_SDD_规格驱动è½åœ°_文档管ç†ç­–ç•¥_BV1mZV76eEPC_笔记.md b/InBox/2026-05-30_SDD_规格驱动è½åœ°_文档管ç†ç­–ç•¥_BV1mZV76eEPC_笔记.md new file mode 100644 index 0000000..f8ea206 --- /dev/null +++ b/InBox/2026-05-30_SDD_规格驱动è½åœ°_文档管ç†ç­–ç•¥_BV1mZV76eEPC_笔记.md @@ -0,0 +1,177 @@ +# SDD 规格驱动è½åœ°ï¼šæ–‡æ¡£ç®¡ç†ç­–ç•¥ + +## 研讨会背景与目的 + +本次分享是 AI 编程相关è¯é¢˜çš„延续,主è¦èšç„¦ **SDD(Spec-Driven Development,规格驱动开å‘)** 的文档管ç†ç­–略。 + +### 研讨会机制 + +- **目的**:让å‚会者能够å‚与达æˆç¤¾åŒºå…±è¯†ï¼Œåˆ†äº«å„å…¬å¸åœ¨ AI 编程实践中的ç»éªŒ +- **å½¢å¼**:咨询师分享观察到的公å¸å®žçŽ°æ–¹æ¡ˆã€æž¶æž„设计ã€ç³»ç»Ÿè®¾è®¡ç­‰å†…容 +- **价值**:对个人和团队帮助都éžå¸¸å¤§ï¼Œé€šè¿‡é›†ä½“讨论形æˆå…±è¯† + +> 特别感谢å¡å°¼å…‹è€å“¥åœ¨ç ”讨会期间贡献了大é‡åˆ†äº«æ€æƒ³ï¼Œå—益颇多。 + +--- + +## AI 编程å‘展历程回顾 + +### 时间线概览 + +| æ—¶é—´ | 分享内容 | 核心概念 | +|------|----------|----------| +| 2025å¹´6月 | 早期 AI 编程实践 | DPER5 方法论 | +| åŽç»­ | MCP ç­‰å·¥å…·æ•´åˆ | MCPã€Scales | +| 5月9æ—¥ | Plan å’Œ Build æ¨¡å¼ | æ–°å› å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念 | +| 本次 | SDD 文档管ç†ç­–ç•¥ | 规格驱动è½åœ° | + +--- + +## DPER5 方法论 + +### æ ¸å¿ƒæ€æƒ³ + +DPER5 将软件工程中使用 AI 进行开å‘的过程分为 **5 个弱阶段(Weak Stages)**: + +``` +Discover → Plan → Execute → Review → Refine + ↓ ↓ ↓ ↓ ↓ + å‘现 规划 执行 评审 优化 +``` + +### 阶段特性 + +- ä¸åŒé˜¶æ®µ AI 会按照ä¸åŒçš„æ¨¡å¼è¿è¡Œ +- 例如在 **Design** æ¨¡å¼æˆ– **Discover** 模å¼ä¸‹ï¼ŒAI **ä¸ä¼šä¿®æ”¹ä»£ç ** +- è¿™ç§åˆ†é˜¶æ®µçº¦æŸæ˜¯é©¯æœ AI çš„ç®€å•æœ‰æ•ˆæ–¹æ³• + +### 实践应用 + +- 在早期阶段(2025年),演讲者已ç»åœ¨å…¬å¸å†…部领先应用 +- 采用 `Design → Plan → Execute` çš„æµç¨‹é©±åŠ¨å¼€å‘ +- 该方法使用了较长时间,有效规范了 AI è¾…åŠ©å¼€å‘æµç¨‹ + +--- + +## MCP(Model Context Protocolï¼‰å·¥å…·ç”Ÿæ€ + +### å·¥å…·æ•´åˆ + +åŽç»­éšç€ MCP 以åŠç›¸å…³å·¥å…·å¥—件的出现,形æˆäº†å®Œæ•´çš„ AI 编程工具生æ€ï¼š + +- **MCP(Model Context Protocol)**:模型上下文åè®® +- **Scales**:扩展工具 +- **SDD**ï¼šè§„æ ¼é©±åŠ¨å¼€å‘æ–¹æ³•论 + +这些工具被整åˆåˆ°ä¸€ä»½ PPT 手册中,作为团队 AI ç¼–ç¨‹çš„æŒ‡å—æˆ–手册å‚考。 + +--- + +## SDD(规格驱动开å‘) + +### SDD çš„æ ¸å¿ƒæ¨¡å¼ + +SDD æä¾›äº†å¤šç§å·¥ä½œæ¨¡å¼ï¼Œé€‚用于ä¸åŒçš„å¼€å‘场景: + +| æ¨¡å¼ | 适用场景 | AI è¡Œä¸ºç‰¹å¾ | +|------|----------|-------------| +| **Design** | 需求分æžã€æž¶æž„设计 | ä¸ä¿®æ”¹ä»£ç ï¼Œä»…æä¾›è®¾è®¡å»ºè®® | +| **Discover** | 探索å‘çŽ°ã€æ–¹æ¡ˆè°ƒç ” | ä¸ä¿®æ”¹ä»£ç ï¼Œä¸“æ³¨äºŽä¿¡æ¯æ”¶é›† | +| **Plan** | 规划分解ã€ä»»åŠ¡æ‹†è§£ | 生æˆå®žçŽ°è®¡åˆ’ | +| **Build** | 代ç å®žçްã€å…·ä½“å¼€å‘ | 执行代ç ç¼–写和修改 | + +### æ–°å› å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念 + +ç”± countic 大佬在 5月9日的分享中引入: + +**物ç†å­¦çš„æ¦‚念解释**: + +- 在混沌系统中,存在两ç§éœ‡è¡å馈的系统 +- è¿™ç§ç³»ç»Ÿæœ€ç»ˆä¼šæ”¶æ•›åˆ°ä¸€ä¸ªç¨³å®šçŠ¶æ€ +- 这个收敛点被称为 **å¸å¼•å­ï¼ˆAttractor)** + +**在 AI 编程中的应用**: + +- 通过引入新因å­ï¼Œå¯ä»¥å¼•导 AI 的输出趋å‘äºŽé¢„æœŸçš„ç¨³å®šçŠ¶æ€ +- 帮助控制 AI åœ¨å¤æ‚ä»»åŠ¡ä¸­çš„å‘æ•£æ€§ +- å®žçŽ°æ›´å¯æŽ§çš„ AI é©±åŠ¨å¼€å‘æµç¨‹ + +--- + +## SDD 文档管ç†ç­–ç•¥ + +> 本次分享的核心主题,èšç„¦äºŽè§„格驱动开å‘çš„æ–‡æ¡£ç®¡ç†æ–¹æ³• + +### 文档在 SDD 中的作用 + +1. **规格定义**:明确需求和设计规范,作为开å‘的基准 +2. **上下文传递**:在ä¸åŒé˜¶æ®µä¹‹é—´ä¼ é€’ä¸Šä¸‹æ–‡ä¿¡æ¯ +3. **版本控制**ï¼šè®°å½•è§„æ ¼çš„å˜æ›´åŽ†å² +4. **团队å作**:统一团队对需求的ç†è§£å’Œå®žçŽ°æ–¹å¼ + +### æ–‡æ¡£ç®¡ç†æœ€ä½³å®žè·µ + +(基于 SDD 方法论,文档管ç†åº”éµå¾ªä»¥ä¸‹åŽŸåˆ™ï¼‰ + +- **规格优先**:在开å‘å‰å…ˆå®Œæˆè§„格文档的编写 +- **增é‡è¿­ä»£**:规格文档éšé¡¹ç›®è¿›å±•逿­¥å®Œå–„ +- **åŒå‘追溯**ï¼šè§„æ ¼ä¸Žå®žçŽ°ä¹‹é—´ä¿æŒå¯è¿½æº¯æ€§ +- **工具集æˆ**:将文档管ç†ä¸Ž AI ç¼–ç¨‹å·¥å…·é“¾æ•´åˆ + +--- + +## å·¥å…·é“¾æ•´åˆæ–¹æ¡ˆ + +### 推èçš„ AI 编程工具栈 + +``` +┌─────────────────────────────────────────────────────┠+│ 规格层 (Spec) │ +│ ┌─────────────┠┌─────────────┠┌─────────────┠│ +│ │ Design │ │ Discover │ │ Plan │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ 工具层 (Tools) │ +│ ┌─────────────┠┌─────────────┠┌─────────────┠│ +│ │ MCP │ │ Scales │ │ SDD │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ 执行层 (Execution) │ +│ ┌─────────────┠┌─────────────┠│ +│ │ Build │ │ Review │ │ +│ └─────────────┘ └─────────────┘ │ +└─────────────────────────────────────────────────────┘ +``` + +### MCP 的核心功能 + +- æä¾›æ ‡å‡†åŒ–的上下文åè®® +- 实现 AI 与外部工具的无ç¼é›†æˆ +- 支æŒå¤šå·¥å…·ååŒå·¥ä½œ + +--- + +## 社区贡献者致谢 + +| 贡献者 | 贡献内容 | +|--------|----------| +| å¡å°¼å…‹ | 大é‡åˆ†äº«æ€æƒ³ï¼Œç ”讨会核心å‚与者 | +| countic | 引入新因å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念,分享 Plan/Build æ¨¡å¼ | +| å°‘ä¸ªåˆ†å· | SDD 方法论整ç†ï¼Œå·¥å…·é“¾æ•´åˆï¼Œæ–‡æ¡£ç®¡ç†ç­–略分享 | + +--- + +## åŽç»­è¯é¢˜é¢„告 + +本次分享的议程安排: + +1. **SDD 文档管ç†ç­–ç•¥**(当å‰å†…容) +2. **AIGC 模æ¿ç›¸å…³è¯é¢˜**(由å¡å°¼å…‹è€å“¥åˆ†äº«ï¼‰ + +--- + +## å‚è€ƒèµ„æº + +- 本次分享的 PPT 资料(å¯ä½œä¸ºå›¢é˜Ÿ AI 编程手册/指å—) +- æœç´¢å…³é”®è¯ï¼š`AI编程`ã€`MCP`ã€`SDD`ã€`DPER5`ã€`规格驱动开å‘` +- 相关标签:`人工智能`ã€`规格驱动开å‘`ã€`AI编程` \ No newline at end of file diff --git a/InBox/Harness_Engineering最佳实践_深度解æžAgentHamness的底层原ç†_核心组件和实战应用_å­¦ä¸ä¼šæˆ‘_BV1Hn9UBrEsH_P1_笔记.md b/InBox/Harness_Engineering最佳实践_深度解æžAgentHamness的底层原ç†_核心组件和实战应用_å­¦ä¸ä¼šæˆ‘_BV1Hn9UBrEsH_P1_笔记.md new file mode 100644 index 0000000..1211b26 --- /dev/null +++ b/InBox/Harness_Engineering最佳实践_深度解æžAgentHamness的底层原ç†_核心组件和实战应用_å­¦ä¸ä¼šæˆ‘_BV1Hn9UBrEsH_P1_笔记.md @@ -0,0 +1,320 @@ +# Harness Engineering 最佳实践:Agent Harness 底层原ç†ã€æ ¸å¿ƒç»„件与实战应用 + +## 目录 + +1. [AI 工程师的岗ä½åˆ†å±‚体系](#1-ai-工程师的岗ä½åˆ†å±‚体系) +2. [大模型应用的三层进化范å¼](#2-大模型应用的三层进化范å¼) +3. [Prompt Engineering:让模型"会说"](#3-prompt-engineering让模型会说) +4. [Context Engineering:解决上下文膨胀问题](#4-context-engineering解决上下文膨胀问题) +5. [Agent Harness 核心架构](#5-agent-harness-核心架构) +6. [Harness Engineering 的工程实践](#6-harness-engineering-的工程实践) + +--- + +## 1. AI 工程师的岗ä½åˆ†å±‚体系 + +### 1.1 三层架构概述 + +在 2026 年,AI 工程师å¯åˆ†ä¸ºä¸‰ä¸ªå±‚级,æ¯ä¸ªå±‚级有明确的技术侧é‡ç‚¹ï¼š + +| 层级 | å®šä½ | 核心èŒè´£ | æŠ€æœ¯ä¾§é‡ | +|------|------|----------|----------| +| **AI 产å“化** | AI 产å“ç»ç†ã€AI 解决方案架构师 | å‘现 AI 价值场景,é‡å¡‘业务æµç¨‹ | 业务分æžã€äº§å“设计 | +| **AI 应用层** | AI 应用工程师ã€å¤§æ¨¡åž‹åº”ç”¨å¼€å‘ | 业务方案è½åœ°ï¼ŒAI 赋能场景 | Prompt Engineeringã€Context Engineeringã€RAG | +| **AI 大模型算法层** | 模型研å‘工程师 | æå‡æ¨¡åž‹åž‚直能力 | SFT 微调ã€RLHF 对é½ã€å®‰å…¨æŠ¤æ  | + +### 1.2 å„层级的核心差异 + +**AI 产å“化层**: +- èšç„¦äºŽæ‰¾åˆ° AI 的价值场景 +- 釿–°å®šä¹‰ä¸šåŠ¡äº§å“线 +- å±žäºŽä¸šåŠ¡ä¸Žäº§å“æ–¹å‘ + +**AI 应用层**(Harness Engineering çš„è½åœ°å±‚): +- å业务 + 方案è½åœ° +- åˆ©ç”¨å¼€æºæ¨¡åž‹æž„建垂直应用 +- 2026 å¹´æœ€ç¨€ç¼ºã€æœ€å…·æœºä¼šçš„æ–¹å‘ + +**AI 大模型算法层**: +- ä¸åšåŸºåº§æ¨¡åž‹ï¼ˆGPT-4ã€Qwen3.6 等基座由大厂完æˆï¼‰ +- èšç„¦äºŽæ¨¡åž‹çš„**垂直能力æå‡** +- 包括: + - **SFT 微调**(Supervised Fine-Tuning) + - **RLHF**(Reinforcement Learning from Human Feedback) + - **对é½è®­ç»ƒ**(Alignment) + - **安全护æ **(Safety Guardrails) + +### 1.3 èŒä¸šé€‰æ‹©å»ºè®® + +``` +技术背景 → AI 应用层(最佳入场点) +产å“背景 → AI 产å“化层 → å¯å»¶ä¼¸è‡³åº”用层 +算法背景 → AI 大模型算法层 +``` + +> **核心观点**:2026 年是**大模型应用è½åœ°**的关键年份,大多数人的机会在于 AI 应用层。 + +--- + +## 2. å¤§æ¨¡åž‹åº”ç”¨çš„ä¸‰å±‚è¿›åŒ–èŒƒå¼ + +从时间维度看,AI 应用开å‘ç»åŽ†äº†ä¸‰ä¸ªé˜¶æ®µçš„èŒƒå¼è½¬å˜ï¼š + +``` +2022-2024:Prompt Engineering 时代 + ↓ +2025:Context Engineering 时代 + ↓ +2026:Agent Harness / Harness Engineering 时代 +``` + +--- + +## 3. Prompt Engineering:让模型"会说" + +### 3.1 æ—¶é—´çª—å£ + +2022 å¹´ 11 月 ChatGPT å‘å¸ƒåŽæˆä¸ºç„¦ç‚¹ + +### 3.2 核心问题 + +**解决"如何说"的问题**â€”â€”å¦‚ä½•æ›´å¥½åœ°ä¸Žæ¨¡åž‹æ²Ÿé€šï¼Œè®©æ¨¡åž‹ç”Ÿæˆæ›´é«˜è´¨é‡çš„回答。 + +### 3.3 æŠ€æœ¯ç‰¹å¾ + +- å•对å•å¯¹è¯æ¨¡å¼ +- 用户输入一å¥è¯ï¼Œæ¨¡åž‹è¿”回一å¥è¯ +- 关注点:如何编写有效的 Prompt + +### 3.4 典型场景 + +``` +用户 → Prompt → LLM → Response +``` + +--- + +## 4. Context Engineering:解决上下文膨胀问题 + +### 4.1 æ—¶é—´çª—å£ + +2025 å¹´ + +### 4.2 核心问题 + +éšç€ Agent å¼€å‘引入工具调用(如 MCP å议),上下文窗å£ä¸­çš„内容越æ¥è¶Šå¤šï¼Œå¯¼è‡´æ¨¡åž‹èƒ½åŠ›å而下é™ã€**幻觉(Hallucination)** 问题加剧。 + +### 4.3 核心目标 + +**解决"有什么"的问题**——让模型清楚地知é“当剿‹¥æœ‰å“ªäº›ä¿¡æ¯ã€‚ + +### 4.4 关键概念 + +**Context Window(上下文窗å£ï¼‰**: +- 多轮对è¯çš„æ‰§è¡Œè¿‡ç¨‹ä¸­ï¼Œæ‰€æœ‰åކå²ä¿¡æ¯éƒ½å­˜å‚¨åœ¨ä¸Šä¸‹æ–‡çª—å£ä¸­ +- 当内容越æ¥è¶Šå¤šæ—¶ï¼Œæ¨¡åž‹ä¼šå‡ºçް"迷失"现象 + +**迷失问题(Lost in Context)**: +- 模型在大é‡ä¸Šä¸‹æ–‡ä¸­æ— æ³•å‡†ç¡®è¯†åˆ«å…³é”®ä¿¡æ¯ +- 导致: + - å“应质é‡ä¸‹é™ + - 幻觉增加 + - 任务执行失败 + +### 4.5 Context Engineering çš„èŒè´£ + +| 问题 | 解决方案 | +|------|----------| +| 上下文过长 | ä¸Šä¸‹æ–‡åŽ‹ç¼©ã€æ‘˜è¦ | +| ä¿¡æ¯æ··ä¹± | 结构化组织ã€åˆ†ç±»ç®¡ç† | +| 关键信æ¯è¢«æ·¹æ²¡ | 关键信æ¯çªå‡ºã€æ£€ç´¢å¢žå¼º | + +--- + +## 5. Agent Harness 核心架构 + +### 5.1 å®˜æ–¹æ¥æº + +本文档基于 **LangChain 团队**å‘布的关于 Agent Harness 的官方åšå®¢ï¼Œæ˜¯å…¨çƒæœ€æ‡‚ Agent 的团队å‘布的系统性技术文档。 + +### 5.2 Agent Harness çš„å®šä½ + +**Harness** çš„æœ¬æ„æ˜¯"驾驭ã€åˆ©ç”¨",Agent Harness å³å¯¹ Agent 的工程化驾驭框架。 + +### 5.3 核心架构体系 + +``` +┌─────────────────────────────────────────┠+│ Agent Harness │ +├─────────────────────────────────────────┤ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 规划层 │ │ 执行层 │ │ +│ │ Planning │ │ Execution │ │ +│ └─────────────┘ └─────────────────┘ │ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 工具层 │ │ 记忆层 │ │ +│ │ Tools │ │ Memory │ │ +│ └─────────────┘ └─────────────────┘ │ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 感知层 │ │ 评估层 │ │ +│ │ Perception │ │ Evaluation │ │ +│ └─────────────┘ └─────────────────┘ │ +└─────────────────────────────────────────┘ +``` + +### 5.4 å„层核心组件详解 + +#### 5.4.1 规划层(Planning) + +**èŒè´£**ï¼šå°†å¤æ‚ä»»åŠ¡åˆ†è§£ä¸ºå¯æ‰§è¡Œçš„å­ä»»åŠ¡ + +**关键技术**: +- **任务分解**(Task Decomposition) +- **æ€ç»´é“¾**(Chain of Thought, CoT) +- **å­ä»»åŠ¡è§„åˆ’** + +#### 5.4.2 执行层(Execution) + +**èŒè´£**:执行规划层生æˆçš„å­ä»»åŠ¡ + +**关键技术**: +- **工具调用**(Tool Calling) +- **动作执行**(Action Execution) +- **结果å馈** + +#### 5.4.3 工具层(Tools) + +**èŒè´£**:为 Agent æä¾›å¤–部能力 + +**典型工具类型**: +- **MCP 工具**(Model Context Protocol) +- API 调用 +- æœç´¢å¼•擎 +- æ•°æ®åº“查询 +- 文件系统æ“作 + +#### 5.4.4 记忆层(Memory) + +**èŒè´£**ï¼šå­˜å‚¨å’Œç®¡ç† Agent 的历å²çжæ€ä¸Žä¸Šä¸‹æ–‡ + +**记忆类型**: +| 类型 | 说明 | 用途 | +|------|------|------| +| 短期记忆 | 当å‰å¯¹è¯ä¸Šä¸‹æ–‡ | 处ç†å³æ—¶ä»»åŠ¡ | +| 长期记忆 | æŒä¹…化存储 | 跨会è¯ç»éªŒç§¯ç´¯ | +| 工作记忆 | å·¥ä½œè¿‡ç¨‹ä¸­çš„ä¸´æ—¶çŠ¶æ€ | ä»»åŠ¡æ‰§è¡Œä¸­é—´æ€ | + +#### 5.4.5 感知层(Perception) + +**èŒè´£**:接收和处ç†å¤–部输入 + +**感知内容**: +- 用户指令 +- 文档输入 +- 多模æ€ä¿¡æ¯ï¼ˆå›¾åƒã€éŸ³é¢‘等) +- çŽ¯å¢ƒçŠ¶æ€ + +#### 5.4.6 评估层(Evaluation) + +**èŒè´£**:评估 Agent æ‰§è¡Œç»“æžœçš„è´¨é‡ + +**评估维度**: +- 输出正确性 +- 任务完æˆåº¦ +- 安全性检查 +- 效率评估 + +--- + +## 6. Harness Engineering 的工程实践 + +### 6.1 定义 + +**Harness Engineering** æ˜¯ç³»ç»Ÿæ€§åœ°æž„å»ºã€æµ‹è¯•ã€ä¼˜åŒ– Agent 行为能力的工程学科。 + +### 6.2 与传统软件工程的区别 + +| 维度 | 传统软件工程 | Harness Engineering | +|------|-------------|---------------------| +| ä¸ç¡®å®šæ€§ | 低(确定性逻辑) | 高(概率性输出) | +| 测试难度 | å¯ç²¾ç¡®æ–­è¨€ | 需概率评估 | +| 调试方法 | 日志追踪 | è¡Œä¸ºè½¨è¿¹åˆ†æž | +| è´¨é‡ä¿éšœ | å•元测试 + é›†æˆæµ‹è¯• | è¯„ä¼°é©±åŠ¨å¼€å‘ | + +### 6.3 核心工程实践 + +#### 6.3.1 评估驱动开å‘(Evaluation-Driven Development) + +``` +设计评估指标 → å¼€å‘ Agent → æŒç»­è¯„ä¼° → 迭代优化 +``` + +#### 6.3.2 行为å¯å¤çŽ°æ€§ + +- 通过ç§å­ï¼ˆseedï¼‰æŽ§åˆ¶éšæœºæ€§ +- æž„å»ºå¯æµ‹è¯•çš„ Agent 行为 +- 建立回归测试机制 + +#### 6.3.3 多维度评测 + +- **任务完æˆçއ**:Agent 是å¦å®Œæˆç›®æ ‡ +- **效率指标**:消耗的 Token æ•°é‡ã€æ‰§è¡Œæ—¶é—´ +- **è´¨é‡è¯„分**:输出的人力评估 +- **安全性检查**:有害内容过滤 + +### 6.4 LangChain Agent Harness 的工具链 + +``` +┌──────────────────────────────────────────┠+│ LangChain ç”Ÿæ€ â”‚ +├──────────────────────────────────────────┤ +│ LangChain │ Agent 开呿¡†æž¶ │ +│ LangSmith │ è¿½è¸ªä¸Žè¯„ä¼°å¹³å° â”‚ +│ LangServe │ Agent 部署æœåŠ¡ │ +│ LangGraph │ Agent 工作æµç¼–排 │ +└──────────────────────────────────────────┘ +``` + +--- + +## 7. 补充:观众å馈中的有价值观点 + +> 本节整ç†è‡ªè§†é¢‘弹幕中观众的补充与讨论 + +### 7.1 关于 Context Engineering 的延伸 + +- Context Engineering ä¸ä»…解决"上下文膨胀",还需è¦è€ƒè™‘**ä¿¡æ¯å¯†åº¦**问题 +- 有效上下文 = 去除噪音åŽçš„æ ¸å¿ƒä¿¡æ¯ +- 常用的压缩策略:LLM 摘è¦ã€å…³é”®ä¿¡æ¯æå–ã€ä¿¡æ¯åŽ»é‡ + +### 7.2 关于 Agent å¹»è§‰çš„å¤„ç† + +- 幻觉问题在å•轮对è¯ä¸­å·²å­˜åœ¨ +- 在多轮 Agent 执行中,幻觉会被**çº§è”æ”¾å¤§** +- 建议在æ¯ä¸ªå…³é”®æ­¥éª¤å¢žåŠ **自我校验**机制 + +### 7.3 关于实际è½åœ°çš„建议 + +- ä¸è¦è¿‡åº¦è¿½æ±‚ Agent 的自主性,**人机ååŒ**往往更å¯é  +- åˆæœŸåº”èšç„¦åž‚直场景,积累领域知识åŽå†æ‰©å±• + +--- + +## 附录:关键术语表 + +| 英文术语 | 中文解释 | +|----------|----------| +| **Harness Engineering** | 驾驭工程,Agent 的系统工程化方法 | +| **Agent Harness** | Agent æ¡†æž¶çš„æ ¸å¿ƒç»„ä»¶é›†åˆ | +| **Prompt Engineering** | æç¤ºè¯å·¥ç¨‹ï¼Œä¼˜åŒ–äººæœºäº¤äº’è´¨é‡ | +| **Context Engineering** | 上下文工程,管ç†ä¿¡æ¯è¾“å…¥è´¨é‡ | +| **Hallucination** | 幻觉,LLM 生æˆè™šå‡æˆ–ä¸å‡†ç¡®å†…容 | +| **Chain of Thought (CoT)** | æ€ç»´é“¾ï¼Œå¼•导模型展示推ç†è¿‡ç¨‹ | +| **SFT** | Supervised Fine-Tuning,有监ç£å¾®è°ƒ | +| **RLHF** | Reinforcement Learning from Human Feedback,基于人类å馈的强化学习 | +| **MCP** | Model Context Protocol,模型上下文åè®® | +| **Agent** | 智能体,能够自主执行任务的 AI 系统 | + +--- + +> **笔记说明**:本笔记基于 LangChain 团队å‘布的官方åšå®¢æ•´ç†ï¼Œèšç„¦äºŽ Agent Harness çš„æŠ€æœ¯æž¶æž„ä¸Žå·¥ç¨‹å®žè·µã€‚è§†é¢‘åŽŸç‰ˆå¯¹ä¸‰å±‚æž¶æž„æœ‰è¯¦ç»†å±•å¼€ï¼Œè¯»è€…å¯æ ¹æ®éœ€è¦ç»“åˆåŽŸè§†é¢‘æ·±å…¥ç†è§£å„层级的技术细节。 \ No newline at end of file diff --git a/InBox/Multi-Agent与Multi-Task编排架构.md b/InBox/Multi-Agent与Multi-Task编排架构.md new file mode 100644 index 0000000..15d24ef --- /dev/null +++ b/InBox/Multi-Agent与Multi-Task编排架构.md @@ -0,0 +1,934 @@ +# Multi-Agent与Multi-Task编排架构 + +> æ¥æºï¼š[知乎专æ ](https://zhuanlan.zhihu.com/p/2045496378252588635?utm_psn=2045633590483068568) +> æŠ“å–æ—¶é—´ï¼š2026-06-03 22:39 + +--- + +Multi-Agent 与 Multi-Task 编排架构 + +定ä½ï¼šStaff/Architect é¢è¯•中「多智能体å作ã€ä¸Žã€Œå¤šä»»åŠ¡å¹¶è¡Œè°ƒåº¦ã€çš„ 专题深潜。区分 Multi-Agent(多个"è°")与 Multi-Task(多个"什么"),覆盖拓扑模å¼ã€é€šä¿¡åè®®ã€ä»»åŠ¡ DAGã€çжæ€å…±äº«ã€æˆæœ¬å»ºæ¨¡ä¸Žç”Ÿäº§å模å¼ã€‚ +ä¸é‡å¤ï¼šæ¡†æž¶é€‰åž‹è§ 04ï¼›12 èƒ½åŠ›åŸŸè§ 13;七视图与æˆç†Ÿåº¦ Stage è§ 27ï¼›Buy 领域è½åœ°è§ 18。 +DevEx 对照:Cursor Subagent / Fork / Resume 与本篇 Coordinator/Supervisor 的映射 → 06。 +工业级索引:编排/Token/多任务场景 → 96 §2.6–§2.7 · 深读索引(MA_* / MT_* / CTX_*)。 +风格:沿 L1 概念 → L2 åŽŸç† â†’ L3 生产 → L4 Staff 答辩 四层递进;æ¯å±‚有 âš  难点 / 🔥 高频 / 💀 陷阱 标注。 + +0. 本篇注æ„点与核心难点速查 + +é¢è¯•å‰ 3 åˆ†é’Ÿè¿‡ä¸€éæ­¤è¡¨ï¼Œå®šä½è–„弱项。 + +# 难点 / 注æ„点 为什么难 对应章节 🔥频率 +1 Multi-Agent vs Multi-Task 概念混淆 é¢è¯•å®˜å¸¸æ•…æ„æ··ç”¨ï¼Œéœ€ 30s 内澄清 §1 ★★★★★ +2 拓扑选型说ä¸å‡º trade-off åªçŸ¥é“ Supervisor,ä¸çŸ¥ Hierarchical/Peer/Swarm 差异 §2 ★★★★ +3 Coordinator token 爆炸 N 个 Worker × R è½® → context è¶…çª—å£ â†’ 幻觉 §5, §6 ★★★★★ +4 Fan-out 写æ“作一致性 并行写 → é‡å¤é€€æ¬¾/å‘货;需 DAG + 幂等 + Saga §3, §7 ★★★★★ +5 何时上 Multi-Agent 的准入判断 很多人跳 Stage 1 直上多 Agent → æˆæœ¬ç¿»å€ã€completion ä¸‹é™ Â§2.4, §9 ★★★★ +6 A2A vs MCP åˆ†ä¸æ¸… 两者都是å议,但层次和解决问题ä¸åŒ §4 ★★★ +7 è·¨ Agent å¯è§‚测 trace 断裂 æ¯ä¸ª Agent 独立 trace → 无法端到端归因 §8 ★★★★ +8 Multi-Agent Memory/Context 共享边界 过度共享 → token 爆炸;过度隔离 → ä¿¡æ¯æ–­å±‚ §5 ★★★★ +9 åŠ¨æ€ Agent 编排(Swarm/OpenAI Agents SDK) æ–°èŒƒå¼ vs 传统 Supervisor,何时用 §2.5 ★★★ +10 Multi-Agent 测试与 Eval å• Agent eval ä¸å¤Ÿï¼Œéœ€å调质é‡+端到端+收敛性 §9 ★★★★ +1. 概念辨æžï¼šMulti-Agent vs Multi-Task +1.1 定义对比 🔥 +维度 Multi-Agent(多智能体) Multi-Task(多任务) +定义 多个具备独立 Prompt/工具/角色 çš„ Agent å作完æˆç›®æ ‡ 多个å­ä»»åŠ¡è¢«åˆ†è§£ã€è°ƒåº¦ã€å¹¶è¡Œæˆ–ä¾èµ–执行 +关注点 角色设计ã€é€šä¿¡åè®®ã€çжæ€å…±äº«ã€å†²çªè§£å†³ 任务分解ã€ä¾èµ–图(DAG)ã€è°ƒåº¦ç­–ç•¥ã€ç»“æžœèšåˆ +独立存在 ✅ 多 Agent 处ç†åŒä¸€ä»»åŠ¡ï¼ˆè¾©è®ºå¼éªŒè¯ï¼‰ ✅ å• Agent Fan-out 多个 tool calls +交集 多 Agent å„领一个 Task → Multi-Agent Multi-Task +Staff 考点 拓扑选型ã€Coordinator 设计ã€A2A åè®® DAG 调度ã€Fan-out/Fan-inã€å¹‚ç­‰èšåˆ +1.2 å››è±¡é™æ¨¡åž‹ âš  + å•任务 多任务 + ┌───────────────┬───────────────┠+ å• Agent │ 标准 Agent │ Fan-out │ + │ ReAct 循环 │ 并行 tool │ + ├───────────────┼───────────────┤ + 多 Agent │ è¾©è®ºéªŒè¯ â”‚ å作编排 │ + │ 红è“对抗 │ (生产主æµ) │ + └───────────────┴───────────────┘ + +å·¦ä¸Šï¼šå• Agent å•任务 → 最简å•,Stage 1 起点 +å³ä¸Šï¼šå• Agent 多任务 → LangGraph Send API / OpenAI parallel tool calls +左下:多 Agent å•任务 → 用于验è¯ã€è´¨é‡æå‡ï¼ˆå¦‚ Generator + Verifier) +å³ä¸‹ï¼šå¤š Agent 多任务 → 生产级系统,本篇é‡ç‚¹ +1.3 💀 å¸¸è§æ··æ·† +错误说法 纠正 +“Multi-Agent 就是 Multi-Task†ä¸å¯¹ï¼ŒMulti-Agent 是角色维度,Multi-Task 是任务维度 +â€œå• Agent ä¸èƒ½åš Multi-Task†ä¸å¯¹ï¼Œå• Agent å¯ä»¥ Fan-out 并行调用多个 tool +“Multi-Agent 一定更好†ä¸å¯¹ï¼ŒCoordinator 开销å¯èƒ½è®©æˆæœ¬ç¿»å€ä½†è´¨é‡ä¸å‡ +“Pipeline 䏿˜¯ Multi-Agent†Pipeline 也是 Multi-Agent çš„ä¸€ç§æ‹“扑 + +一å¥è¯ï¼šMulti-Agent 解决"è°æ¥åš",Multi-Task 解决"åšä»€ä¹ˆå’Œæ€Žä¹ˆæŽ’"ã€‚ç”Ÿäº§ç³»ç»Ÿä¸¤è€…é€šå¸¸åŒæ—¶å‡ºçŽ°ã€‚ + +2. Multi-Agent 拓扑模å¼ï¼ˆL2 原ç†ï¼‰ +2.1 å…­ç§æ ¸å¿ƒæ‹“扑 +2.2 拓扑选型矩阵 🔥 +拓扑 适用场景 优势 劣势 典型框架 +Supervisor 明确角色分工ã€å¯æžšä¸¾å­ä»»åŠ¡ 简å•ã€å¯æŽ§ã€æ˜“审计 å•点瓶颈ã€Supervisor token 开销 LangGraph supervisor node +Hierarchical 大规模 Agent 团队ã€è·¨åŸŸå作 分层管ç†ã€å±€éƒ¨è‡ªæ²» 层间延迟ã€Manager prompt 夿‚ AutoGen GroupChat + nested +Peer-to-Peer 辩论/验è¯ã€åˆ›æ„头脑风暴 æ— å•点ã€å¤šè§†è§’ 难收敛ã€token 爆炸 CrewAI process off +Pipeline çº¿æ€§æµæ°´çº¿ï¼ˆæå–→转æ¢â†’校验) 最低å调开销 无并行ã€ä¸Šæ¸¸é˜»å¡ž LangGraph 线性 StateGraph +Mixture/Dynamic 请求类型差异大ã€éœ€åЍæ€è·¯ç”± çµæ´»ã€æŒ‰éœ€åˆ†é… 路由逻辑本身需维护 LangGraph conditional_edges +Swarm/Handoff 对è¯å¼å®¢æœã€é€æ­¥ç§»äº¤ ä¸Šä¸‹æ–‡è‡ªç„¶ä¼ é€’ã€æŒ‰éœ€å‡çº§ 回退困难ã€handoff æ¡ä»¶éœ€ç²¾ç¡® OpenAI Swarm / Agents SDK +2.3 Staff 级架构决策树 +2.4 准入门槛与 Stage å¯¹é½ âš  +Stage 拓扑 准入门槛 æ¥æº +Stage 1 å• Agent 有 checkpoint + trace 27 §8.1 +Stage 2 Supervisor / Pipeline å• Agent eval ≥ 80% 本篇 §9 +Stage 3 Hierarchical / Mixture + Workflow 写æ“作全 HITL 或 Saga 13 §19 +Stage 4 Agent Mesh / Swarm è”邦 AI Gateway + 统一 eval 24 + +💀 忍¡å¼ï¼šè·³ Stage 1 直上 Multi-Agent → æˆæœ¬ç¿»å€ã€completion 下。先 Single Agent 优化到æžè‡´å†åР夿‚度。 + +2.5 Swarm / Handoff 模å¼è¯¦è§£ï¼ˆæ–°èŒƒå¼ï¼‰ 🔥 + +OpenAI Agents SDK å’Œ Swarm 框架引入的 handoff 范å¼ä¸Žä¼ ç»Ÿ Supervisor 有本质区别: + +维度 Supervisor Swarm/Handoff +æŽ§åˆ¶æµ ä¸­å¿ƒåŒ–ï¼šSupervisor åˆ†å‘ åŽ»ä¸­å¿ƒåŒ–ï¼šAgent 间直接移交 +上下文传递 通过 Coordinator state 通过 handoff æºå¸¦ conversation history +适用 结构化任务拆分 对è¯å¼ã€æ„图逿­¥æ˜Žç¡® +回退 Coordinator 釿–°åˆ†é… éœ€æ˜¾å¼ handoff å›žæº Agent +典型场景 退款处ç†åˆ†è§’色 客æœä»Žé€šç”¨â†’专业→人工层层å‡çº§ +# OpenAI Agents SDK handoff 示例概念 +triage_agent = Agent( + name="Triage", + instructions="判断用户æ„图,移交给专业 Agent", + handoffs=[order_agent, refund_agent, faq_agent] +) +refund_agent = Agent( + name="Refund", + instructions="处ç†é€€æ¬¾ç›¸å…³é—®é¢˜", + tools=[check_order, calculate_refund], + handoffs=[human_agent] # 夿‚caseå‡çº§äººå·¥ +) + + +âš  难点:Handoff æ¡ä»¶ä¸å¤Ÿç²¾ç¡® → Agent 乒乓跳转(A→B→A→B…);解法:handoff 带 reason + max_handoff_count。 + +3. Multi-Task 编排模å¼ï¼ˆL2 原ç†ï¼‰ +3.1 任务分解策略 +ç­–ç•¥ æè¿° 适用 风险 +LLM Plan LLM 自主将目标拆为å­ä»»åŠ¡åˆ—è¡¨ 开放域ã€ç”¨æˆ·æ„图模糊 Plan 漂移ã€å¹»è§‰ä»»åŠ¡ +Template DAG é¢„å®šä¹‰ä»»åŠ¡æ¨¡æ¿ + 傿•°å¡«å…… 已知 SOPã€èµ„金æ“作 çµæ´»æ€§ä½Ž +Hybrid 固定骨架 + LLM å¡«å……å¯å˜èŠ‚ç‚¹ 生产推è 需 policy guard 防溢出 +3.2 任务ä¾èµ– DAG 🔥 +3.3 Plan 输出结构化 schema âš  +{ +"goal" +: +"处ç†ç”¨æˆ·é€€æ¬¾è¯·æ±‚" +, +"tasks" +: +[ +{ +"id" +: +"t1" +, +"action" +: +"query_order" +, +"agent" +: +"order_agent" +, +"deps" +: +[ +] +, +"write" +: +false +} +, +{ +"id" +: +"t2" +, +"action" +: +"query_profile" +, +"agent" +: +"profile_agent" +, +"deps" +: +[ +] +, +"write" +: +false +} +, +{ +"id" +: +"t3" +, +"action" +: +"calc_refund" +, +"agent" +: +"refund_calc_agent" +, +"deps" +: +[ +"t1" +, +"t2" +] +, +"write" +: +false +} +, +{ +"id" +: +"t4" +, +"action" +: +"create_refund" +, +"agent" +: +"refund_exec_agent" +, +"deps" +: +[ +"t3" +] +, +"write" +: +true +, +"hitl" +: +true +} +, +{ +"id" +: +"t5" +, +"action" +: +"send_notification" +, +"agent" +: +"notify_agent" +, +"deps" +: +[ +"t3" +] +, +"write" +: +true +} +] +, +"constraints" +: +{ +"write_tasks_sequential" +: +true +, +"max_parallel" +: +3 +, +"timeout_per_task_s" +: +30 +} +} + +💀 陷阱:Plan 中 write: true 的任务如果没有标 hitl 且没有幂等键 → é‡å¤æ‰§è¡Œé£Žé™©ã€‚ + +3.4 并行调度:Fan-out / Fan-in + ┌─→ Task A ──┠+User Request → Plan ├─→ Task B ──┼─→ Merge → Respond + └─→ Task C ──┘ + +组件 èŒè´£ 实现è¦ç‚¹ +Plan 拆分å­ä»»åŠ¡ã€å£°æ˜Žä¾èµ– 输出结构化 JSONï¼ˆè§ Â§3.3 schema) +Scheduler 按ä¾èµ–图调度ã€å¹¶è¡Œæ— ä¾èµ–任务 æ‹“æ‰‘æŽ’åº + asyncio.gather / thread pool +Worker 执行å•任务ã€è¿”回结构化结果 幂等ã€è¶…æ—¶ã€é‡è¯•ã€è¾“出 schema 固定 +Merger èšåˆç»“æžœã€å†²çªè§£å†³ reduce å‡½æ•°ï¼›å†²çªæ—¶ escalate ç»™ Supervisor +3.5 ä»»åŠ¡çŠ¶æ€æœº +3.6 Replan ç­–ç•¥ âš  +è§¦å‘æ¡ä»¶ ç­–ç•¥ 风险 +å• task 失败且 retry exhausted 跳过该 task + 调整下游ä¾èµ– ä¿¡æ¯ä¸å®Œæ•´ +多 task 并行结果矛盾 Coordinator ä»²è£æˆ–å¢žåŠ éªŒè¯ task 增加轮数 +用户中途改å˜ç›®æ ‡ 清除未执行 task,基于新 goal replan plan 膨胀 +Plan 漂移(goal å移检测) 比对 goal embedding 相似度 < 阈值 → æ‹’ç» è¯¯æŠ¥ + +💀 陷阱:Replan ä¸å—é™ â†’ æ— é™ replan 循环。必须设 max_replan_count ≤ 3。 + +4. Agent 间通信å议(L2 原ç†ï¼‰ +4.1 å››ç§é€šä¿¡èŒƒå¼ +èŒƒå¼ æè¿° 延迟 耦åˆåº¦ 适用 +Direct Call Agent A åŒæ­¥è°ƒç”¨ Agent B 低 高 åŒè¿›ç¨‹ã€Pipeline +Message Bus 通过队列/事件异步通信 中 低 è·¨æœåŠ¡ Multi-Agent +Shared State 通过共享 checkpoint/黑æ¿å†™è¯» 中 中 LangGraph StateGraph +Handoff Agent A 将控制æƒ+context 移交 Agent B 低 中 对è¯å¼ Swarm +4.2 A2A(Agent-to-Agent)åè®® 🔥 + +Google æå‡ºçš„ A2A å议为跨组织 Agent 互æ“作æä¾›æ ‡å‡†ï¼š + +概念 说明 +Agent Card JSON æè¿° Agent 能力ã€è¾“入输出 schemaã€è®¤è¯æ–¹å¼ +Task A2A 的原å­å•ä½ï¼ŒåŒ…å« input/output/status +Streaming SSE æµå¼è¿”回中间结果 +Push Notification 长任务异步回调 +Artifact 任务产生的文件/æ•°æ®ï¼Œå¯ä¼ é€’给下游 Agent +Agent A ──AgentCard å‘现──→ Agent B + ──Task 请求────→ + â†â”€SSE æµå¼ç»“果── + â†â”€Artifact 交付── + â†â”€å®Œæˆå›žè°ƒâ”€â”€â”€â”€â”€â”€ + +4.3 MCP 与 A2A 的关系 🔥 +维度 MCP A2A +解决问题 Agent ↔ Tool/Data çš„æ ‡å‡†æŽ¥å£ Agent ↔ Agent 的互æ“作åè®® +类比 USB 接å£ï¼ˆè¿žæŽ¥å¤–设) HTTP/gRPC(æœåŠ¡é—´é€šä¿¡ï¼‰ +互补 Agent B å¯ä»¥é€šè¿‡ MCP 暴露自己为 Tool A2A 在上层编排,MCP 在下层连接 +è®¤è¯ MCP Server éœ€ç‹¬ç«‹é‰´æƒ A2A Agent Card å£°æ˜Žè®¤è¯æ–¹å¼ +çŠ¶æ€ æ— çŠ¶æ€ï¼ˆæ¯æ¬¡è°ƒç”¨ç‹¬ç«‹ï¼‰ 有状æ€ï¼ˆTask 生命周期管ç†ï¼‰ +4.4 通信 Schema ç‰ˆæœ¬ç®¡ç† âš  +问题 解法 +Worker 输出 schema å˜æ›´ å¹¶å­˜ 2 版 30 天 + Coordinator é€‚é… +Agent Card èƒ½åŠ›å˜æ›´ semver + å‘现æœåŠ¡è‡ªåŠ¨åˆ·æ–° +Handoff context æ ¼å¼ä¸å…¼å®¹ 中间层 adapter + 版本å商 +5. 状æ€å…±äº«ä¸Žéš”离(L3 生产) +5.1 状æ€åˆ†å±‚模型 🔥 +┌─────────────────────────────────────────┠+│ Global State(共享·Coordinator å•写) │ +│ → goal, plan, completed_steps, │ +│ current_round, error_summary │ +├─────────────────────────────────────────┤ +│ Agent-local Stateï¼ˆéš”ç¦»Â·å„ Agent 写) │ +│ → scratchpad, tool_cache, memory │ +├─────────────────────────────────────────┤ +│ Task-local State(隔离·å•任务写) │ +│ → input, output, retry_count, status, │ +│ idempotency_key, duration_ms │ +└─────────────────────────────────────────┘ + +5.2 设计原则 +原则 说明 è¿ååŽæžœ +Single Writer åŒä¸€ state key åªæœ‰ä¸€ä¸ª Agent å¯å†™ 写冲çªã€çŠ¶æ€æ±¡æŸ“ +Coordinator æŒ Plan åªæœ‰ Coordinator å¯ä¿®æ”¹ goal / plan Worker 儿”¹ plan → 呿•£ +Structured Observation Worker 返回 JSON,ä¸è¿”回自由文本 Coordinator è§£æžå¤±è´¥ +Checkpoint 租户隔离 tenant_id 行级过滤 跨租户记忆泄æ¼ï¼ˆè§ 27 §12) +Append-only for Workers Worker åª append observation,ä¸è¦†ç›– 历å²ä¸¢å¤±ã€å®¡è®¡æ–­è£‚ +5.3 Context Engineering for Multi-Agent âš  难点 + +多 Agent çš„ Context Engineering æ¯”å• Agent 夿‚一个数é‡çº§ã€‚ + +层级 ç­–ç•¥ 实现 +Coordinator æ»‘åŠ¨çª—å£ + æ‘˜è¦ åªè¯»æœ€è¿‘ N è½® observation + completed_steps å…¨é‡ +Worker 最å°ä¿¡æ¯åŽŸåˆ™ åªæŠ•é€’è¯¥ Worker 需è¦çš„ task context,ä¸ç»™å…¨å±€ plan +è·¨ Agent 摘è¦ä¼ é€’ Agent A çš„è¾“å‡ºç» summarizer 压缩åŽå†ç»™ Agent B +长期 外部记忆 共享 checkpoint å­˜ PG,按需检索而éžå…¨é‡åŠ è½½ +# Context 压缩示例 +def compress_observation(raw_obs: dict) -> dict: + """å°† Worker 的原始 observation 压缩为摘è¦""" + return { + "task_id": raw_obs["task_id"], + "status": raw_obs["status"], + "key_findings": raw_obs["key_findings"][:3], # 最多3æ¡ + "error": raw_obs.get("error"), + # ä¸ä¼ é€’: raw_data, tool_logs, debug_info + } + +5.4 LangGraph å®žçŽ°æ¨¡å¼ +from langgraph.graph import StateGraph +from typing import TypedDict, Annotated +from operator import add + +class MultiAgentState(TypedDict): + goal: str # Coordinator 写 + plan: list[dict] # Coordinator 写 + current_round: int # Coordinator 写 + completed_tasks: Annotated[list[str], add] # Workers append-only + observations: Annotated[list[dict], add] # Workers append-only(压缩åŽï¼‰ + final_answer: str # Coordinator 写 + error_summary: list[dict] # Coordinator 写 + +graph = StateGraph(MultiAgentState) +# Coordinator node: 读 observations → æ›´æ–° plan → 分é…下一批 task +# Worker nodes: 读 plan 中自己的 task → 执行 → append observation(压缩) +# Merge node: èšåˆå¹¶è¡Œç»“æžœ → pre-condition 校验 → 交回 Coordinator + +5.5 Memory å…±äº«æ¨¡å¼ âš  +æ¨¡å¼ æè¿° 适用 风险 +No Sharing å„ Agent 独立 memory Pipeline ä¿¡æ¯æ–­å±‚ +Blackboard 共享黑æ¿ï¼ŒæŒ‰ key 读写 Supervisor å†™å†²çª +Event Sourcing 所有 observation è¿½åŠ åˆ°äº‹ä»¶æµ å®¡è®¡è¦æ±‚高 存储膨胀 +Selective Sharing 按 tag 选择性投递 生产推è 需维护 tag 映射 +6. æˆæœ¬ä¸Žå»¶è¿Ÿå»ºæ¨¡ï¼ˆL3 生产) +6.1 Token å¼€é”€åˆ†æž ðŸ”¥ +组件 Token 消耗 优化手段 +Coordinator æ¯è½®è¯»æ‰€æœ‰ observations → O(N×T) 摘è¦åŽ‹ç¼©ã€æ»‘åŠ¨çª—å£ +Worker 仅读自身 task context → O(T) é™åˆ¶ context window +Plan 节点 ä¸€æ¬¡æ€§ç”Ÿæˆ â†’ O(1) 缓存相似请求的 plan +Merge 节点 èšåˆ N 个结果 → O(N×T) 结构化 reduce è€Œéž LLM åˆå¹¶ +总开销 å• Agent: T ; Multi-Agent: N×T + Coordinator×Rè½® + Merge 控制轮数 R≤5 +6.2 并行 vs 串行 Trade-off +维度 串行 Pipeline 并行 Fan-out +延迟 所有 Agent 延迟之和 max(å„ Agent 延迟) +Token 较少(无 Coordinator) 较多(+Coordinator+Merge) +夿‚度 低 高(需 schedulerã€è¶…æ—¶ã€éƒ¨åˆ†å¤±è´¥å¤„ç†ï¼‰ +适用 严格顺åºä¾èµ– å­ä»»åŠ¡ç‹¬ç«‹å¯å¹¶è¡Œ +部分失败 上游失败 → åŽç»­å…¨åœ å• Worker 失败 → é™çº§æˆ– replan +6.3 æˆæœ¬å…¬å¼ +Cost_single = tokens_per_turn × turns × price_per_token +Cost_multi = Σ(worker_tokens) + coordinator_tokens × rounds + merge_tokens +ROI 准入 = (Quality_multi - Quality_single) / (Cost_multi - Cost_single) > threshold + +6.4 容é‡ä¼°ç®—(Staff 白æ¿å¿…会)⚠ +å‡è®¾ï¼š + 峰值 Agent QPS = 100 + 平凿¯è¯·æ±‚拆分 3 个 Worker 任务 + æ¯ Worker å¹³å‡ 1.5k token(输入+输出) + Coordinator æ¯è½® 3k tokenï¼Œå¹³å‡ 2.5 è½® + Token å•ä»· $3/1M (GPT-4o) + +Worker token/s = 100 × 3 × 1500 / avg_task_duration(3s) = 150k token/s +Coord token/s = 100 × 3000 × 2.5 / avg_round_duration(5s) = 150k token/s +总 token/s ≈ 300k +$/hour = 300k × 3600 × $3 / 1M = $3,240/hour + +å¯¹æ¯”å• Agent(2k token × 5 轮): +å• Agent token/s = 100 × 2000 × 5 / 15s ≈ 67k +$/hour = 67k × 3600 × $3 / 1M ≈ $720/hour + +Multi-Agent æˆæœ¬çº¦ = 4.5x → éœ€è¦ completion æå‡ ≥ 15% æ‰å€¼å¾— + + +准入规则(æ¥è‡ª 27 §11.7ï¼‰ï¼šå• Agent eval ≥ 80% åŽå†ä¸Š Multi-Agent,å¦åˆ™æˆæœ¬ç¿»å€ä½†è´¨é‡ä¸å‡ã€‚ + +7. ç”Ÿäº§åæ¨¡å¼ä¸Žäº‹æ•…(L3 生产) +7.1 忍¡å¼æ¸…å• ðŸ”¥ +# 忍¡å¼ åŽæžœ æ­£ç¡®åšæ³• +1 æ—  Coordinator çš„ Peer-to-Peer 循环对è¯ã€token 爆炸ã€ä¸æ”¶æ•› 设 max_rounds + Coordinator è£å†³ +2 Worker ç§è‡ªä¿®æ”¹ Plan 目标漂移ã€ä»»åŠ¡é‡å¤ Coordinator å•写 plan +3 è·³ Stage 1 直上 Multi-Agent Completion 低 + æˆæœ¬é«˜ å• Agent eval ≥ 80% 准入 +4 å…¨ Agent 共享完整 context token 爆炸ã€O(N²) æŒ‰éœ€æŠ•é€’ã€æ‘˜è¦åŽ‹ç¼© +5 并行 Worker æ— è¶…æ—¶ 一个慢 Worker 阻塞全局 è¶…æ—¶ → é™çº§/跳过 + Coordinator replan +6 无幂等的写æ“作 Fan-out é‡å¤é€€æ¬¾ã€é‡å¤å‘è´§ 写æ“作å•线程 + 幂等键 +7 Multi-Task æ— ä¾èµ–声明 并行本应串行的任务 → æ•°æ®ä¸ä¸€è‡´ æ˜¾å¼ DAG + æ‹“æ‰‘æŽ’åº +8 Agent 间自由文本通信 è§£æžå¤±è´¥çŽ‡é«˜ 结构化 JSON schema +9 Handoff æ—  max_count Agent 乒乓跳转 A→B→A→B… handoff 带 reason + max_handoff ≤ 3 +10 Replan æ— ä¸Šé™ æ— é™ replan 循环 max_replan_count ≤ 3 +11 Coordinator 无进度检测 连续空转消耗 token 连续 2 轮无新 completed_task → 强制终止 +12 Multi-Agent 无独立 eval ä¸çŸ¥é“ Multi-Agent 是å¦çœŸçš„ä¼˜äºŽå• Agent 对照实验 + eval gate +7.2 STAR-M-P 事故案例 1:Multi-Agent 退款å调失败 🔥 +字段 内容 +S ç”µå•†å®¢æœ Multi-Agent 上线:Planner 拆分为"查å•→算退款→执行"三个 Worker,无ä¾èµ–声明,三者并行å¯åŠ¨ã€‚ +T “执行退款†Worker 在"查å•"完æˆå‰å°±è°ƒç”¨äº† create_refund,传入 null è®¢å• â†’ 退款金é¢ä¸º 0 → 用户投诉。 +A â‘  补充 DAG ä¾èµ–声明;② 写æ“作 Worker 强制等待å‰ç½® task Success;③ 写æ“作增加 pre-condition 校验(订å•éž null);④ 添加 dry-run 阶段。 +R 事故率归零;延迟增加 200msï¼ˆå¯æŽ¥å—);åŽç»­æŽ¨å¹¿åˆ°æ‰€æœ‰å†™æ“作 Worker。 +M 方法论:Multi-Task 必须显å¼å£°æ˜Žä¾èµ–;写æ“作 ç¦æ­¢æ— æ¡ä»¶å¹¶è¡Œã€‚ +P 推动平å°çº§ Task Scheduler æ”¯æŒ DAG æ‹“æ‰‘æŽ’åº + pre-condition guard。 +7.3 STAR-M-P 事故案例 2:Coordinator Token 爆炸 🔥 +字段 内容 +S 5 个 Worker æ¯è½®è¿”回 2k token observation,Coordinator æ¯è½®è¯»å…¨é‡ → 第 4 è½® context è¶… 128k 被截断 → Plan ä¸¢å¤±å…³é”®ä¿¡æ¯ â†’ 幻觉。 +T 在ä¸é™ä½Ž completion çš„å‰æä¸‹æŽ§åˆ¶ Coordinator 上下文。 +A â‘  Worker observation 压缩为结构化摘è¦ï¼ˆâ‰¤200 token);② Coordinator åªè¯»æœ€è¿‘ 2 è½® + 全局 completed_steps;③ åŽ†å² observation å­˜ checkpoint,按需检索。 +R Coordinator token 从 40k/è½® é™è‡³ 8k/轮;completion ä¸é™åå‡ï¼ˆå™ªå£°å‡å°‘)。 +M Multi-Agent çš„ Context Engineering æ˜¯æˆæœ¬å’Œè´¨é‡çš„å…³é”®æ æ†ã€‚ +P 沉淀 ObservationCompressor 组件,强制 Worker 输出 ≤ schema 上é™ã€‚ +7.4 STAR-M-P 事故案例 3:Handoff 乒乓风暴 +字段 内容 +S 对è¯å¼å®¢æœ Swarm 架构,Triage → Order → Refund → Triage → Order… 用户问"退款åŽé‡æ–°ä¸‹å•"è§¦å‘ Agent é—´æ— é™ handoff。 +T 24h 内止血,防止 token 消耗失控。 +A â‘  加 max_handoff_count = 5;② handoff 带 reason 字段,é‡å¤ reason 触å‘熔断;③ è¶…é™åŽè‡ªåŠ¨è½¬äººå·¥ã€‚ +R ä¹’ä¹“äº‹ä»¶ä»Žæ—¥å‡ 200 次é™è‡³ 0;用户体验评分æŒå¹³ï¼ˆè½¬äººå·¥åŽå¤„ç†ï¼‰ã€‚ +M Swarm/Handoff 的收敛性ä¸å¦‚ Supervisor,必须有硬上é™ã€‚ +P å¹³å°çº§ handoff 中间件:全局 count + reason dedup + 熔断。 +7.5 STAR-M-P 事故案例 4:Multi-Agent è·¨ç§Ÿæˆ·çŠ¶æ€æ±¡æŸ“ +字段 内容 +S 多租户 Agent å¹³å°ï¼Œä¸¤ä¸ªç§Ÿæˆ·çš„ Worker 共享了åŒä¸€ä¸ª checkpoint namespace → 租户 A çš„ observation 出现在租户 B çš„ Coordinator context 中。 +T éš”ç¦»ä¿®å¤ + å½±å“é¢è¯„ä¼° + åˆè§„报告。 +A â‘  Checkpoint 表增加 tenant_id + 行级安全策略(RLS);② 免釿‰«æåŽ†å² checkpoint åˆ é™¤è¶Šæƒæ•°æ®ï¼›â‘¢ Worker observation 增加 tenant_id 校验中间件。 +R å½±å“ 12 个会è¯ï¼Œæ— èµ„金æŸå¤±ã€‚7 天内修å¤ã€‚ +M Multi-Agent çš„ checkpoint éš”ç¦»æ¯”å• Agent 更易出问题(多写入æºï¼‰ã€‚ +P å¹³å°çº§ checkpoint 写入层强制 tenant_id;新租户上线å‰è‡ªåŠ¨åŒ–éš”ç¦»æµ‹è¯•ã€‚ +8. Multi-Agent å¯è§‚测性(L3 生产) âš  难点 +8.1 è·¨ Agent Trace å…³è” +┌─ trace_id: abc-123 ────────────────────────────────────────┠+│ span: coordinator │ +│ ├─ span: fan-out-scheduler │ +│ │ ├─ span: worker-order (agent_id: order, task_id: t1) │ +│ │ ├─ span: worker-profile (agent_id: profile, task_id: t2)│ +│ │ └─ span: worker-risk (agent_id: risk, task_id: t3) │ +│ ├─ span: merge │ +│ └─ span: worker-refund (agent_id: refund, task_id: t4) │ +└─────────────────────────────────────────────────────────────┘ + +必须的 trace 属性 说明 +trace_id 用户请求级,贯穿所有 Agent +agent_id 哪个 Agent +task_id 哪个 Task +round 第几轮 +tokens_in / tokens_out æ¯ä¸ª span çš„ token 统计 +tool_calls 该 span 调用了哪些工具 +decision Coordinator 的路由/分é…决策 +8.2 æˆæœ¬å½’å›  +æ€»è¯·æ±‚æˆæœ¬ → 按 agent_id å½’å›  → 按 task_id å½’å›  + → Coordinator å æ¯” (通常 30-50%) + → Worker A å æ¯” + → Worker B å æ¯” + → Merge å æ¯” + +8.3 告警规则 +指标 阈值 动作 +rounds_per_request > 5 æ”¶æ•›ä¸è‰¯ é™çº§åˆ°å• Agent +coordinator_tokens > 50k context å³å°†æº¢å‡º 触å‘压缩 +handoff_count > 3 乒乓风险 熔断转人工 +task_timeout_rate > 10% Worker 性能问题 扩容或é™çº§ +cost_per_completion > budget 超预算 切æ¢å°æ¨¡åž‹ + +→ è¯¦è§ 25 AI å¯è§‚测性。 + +9. Multi-Agent Eval 体系(L3 生产) +9.1 四层 Eval 🔥 +层级 评估什么 指标 工具 +å• Agent æ¯ä¸ª Worker 的任务完æˆè´¨é‡ accuracy, latency, tool_call_success LangSmith / Braintrust +åè°ƒè´¨é‡ Coordinator çš„ä»»åŠ¡æ‹†åˆ†å’Œåˆ†é… plan_precision, plan_recall, routing_accuracy 自建 eval dataset +端到端 用户目标是å¦è¾¾æˆ completion_rate, user_satisfaction A/B test +æˆæœ¬æ•ˆçއ åŒè´¨é‡ä¸‹çš„ token 消耗 cost_per_completion LiteLLM 统计 +收敛性 多少轮达æˆç›®æ ‡ avg_rounds, timeout_rate, handoff_count trace åˆ†æž +9.2 准入 Gate âš  +┌─ Stage 1 → Stage 2 准入 ─────────────────────────────┠+│ å• Agent eval ≥ 80% │ +│ 有 checkpoint + trace + 至少 30 æ¡ eval case │ +├─ Stage 2 留存æ¡ä»¶ ─────────────────────────────────────┤ +│ Multi-Agent eval ≥ å• Agent + 5% │ +│ Multi-Agent cost ≤ å• Agent × 2 │ +│ avg_rounds ≤ 5 │ +│ timeout_rate ≤ 5% │ +├─ ä¸è¾¾æ ‡ → 自动回退 ────────────────────────────────────┤ +│ eval 连续 3 天低于阈值 → ç°åº¦ç¼©é‡ → å›žé€€å• Agent │ +└─────────────────────────────────────────────────────────┘ + +9.3 Multi-Agent 专属 Eval Case âš  +用例类别 测什么 通过标准 +Plan 拆分正确性 给定 goal → plan 包å«å¿…需 task F1 ≥ 0.9 +ä¾èµ–æŽ’åºæ­£ç¡®æ€§ 写æ“作在å‰ç½®è¯»æ“ä½œä¹‹åŽ 100% +部分失败é™çº§ 1 个 Worker è¶…æ—¶ → 系统ä»å¯è¿”回有æ„义结果 ≥ 80% +Coordinator æ”¶æ•› ä¸å‡ºçŽ°ç©ºè½¬ï¼ˆè¿žç»­ 2 轮无新完æˆï¼‰ timeout_rate ≤ 5% +è·¨ Agent 一致性 Worker A å’Œ B çš„ observation ä¸çŸ›ç›¾ 矛盾率 ≤ 2% +Handoff åˆç†æ€§ handoff reason 与用户æ„å›¾åŒ¹é… accuracy ≥ 90% +é‡å¤å†™æ“作 Fan-out åŽæ— é‡å¤ side effect duplicate_write = 0 +Replan 正确性 replan åŽ goal ä¸åç§» goal_drift = 0 +10. 框架实战对比(L3 生产) +10.1 LangGraph Multi-Agent +from langgraph.graph import StateGraph, START, END +from langgraph.constants import Send + +# Supervisor 拓扑 +graph = StateGraph(MultiAgentState) +graph.add_node("coordinator", coordinator_node) +graph.add_node("researcher", researcher_node) +graph.add_node("writer", writer_node) +graph.add_node("reviewer", reviewer_node) + +graph.add_edge(START, "coordinator") +graph.add_conditional_edges("coordinator", route_to_worker, + {"research": "researcher", "write": "writer", + "review": "reviewer", "done": END}) +graph.add_edge("researcher", "coordinator") +graph.add_edge("writer", "coordinator") +graph.add_edge("reviewer", "coordinator") + +# Fan-out 多任务并行:用 Send API +def fan_out(state): + return [Send("worker", {"task": t}) + for t in state["plan"] if t["status"] == "pending" + and all_deps_met(t, state)] + +graph.add_conditional_edges("coordinator", fan_out) + +10.2 AutoGen Multi-Agent +from autogen import AssistantAgent, GroupChat, GroupChatManager + +planner = AssistantAgent("planner", system_message="你负责拆解任务...") +researcher = AssistantAgent("researcher", system_message="你负责查询...") +coder = AssistantAgent("coder", system_message="你负责实现...") + +group_chat = GroupChat( + agents=[planner, researcher, coder], + messages=[], + max_round=10, + speaker_selection_method="auto" # 或 "round_robin" +) +manager = GroupChatManager(groupchat=group_chat) + +10.3 CrewAI Multi-Task +from crewai import Agent, Task, Crew, Process + +researcher = Agent(role="Researcher", goal="...", tools=[search_tool]) +writer = Agent(role="Writer", goal="...", tools=[]) + +task1 = Task(description="调研竞å“", agent=researcher, expected_output="报告") +task2 = Task(description="撰写文章", agent=writer, expected_output="文章", + context=[task1]) # 显å¼ä¾èµ– + +crew = Crew(agents=[researcher, writer], tasks=[task1, task2], + process=Process.sequential) # 或 Process.hierarchical + +10.4 生产选型决策 🔥 +场景 推è ç†ç”± +资金写æ“作 LangGraph checkpoint + interrupt + 幂等 + 显å¼è¾¹ +ç ”å‘æŽ¢ç´¢/Code Review AutoGen 多角色对è¯è‡ªç„¶ã€å¿«é€Ÿè¿­ä»£ +内容生产(无写æ“作) CrewAI Task ä¾èµ–声明直观ã€ä¸Šæ‰‹å¿« +对è¯å¼å®¢æœå‡çº§ OpenAI Agents SDK / Swarm handoff 自然ã€ä¸Šä¸‹æ–‡ä¼ é€’好 +ä¼ä¸šçº§ Java æ ˆ Spring AI + 自建 Coordinator 与 Spring 生æ€é›†æˆã€äº‹åŠ¡ç®¡ç† +跨组织 Agent 互æ“作 A2A åè®® + 任一框架 标准化å‘现与通信 +11. Staff é¢è¯•高频题与满分答(L4 答辩) + +æ ¼å¼ï¼šç»“论先行 → 原ç†å±•å¼€ → 边界/陷阱 → è½åœ°ç»éªŒ → å问引导。答题时间标注在题目åŽã€‚ + +11.1 Multi-Agent vs Multi-Task 区别?🔥🔥🔥🔥🔥 + +Q:Multi-Agent å’Œ Multi-Task 有什么区别? + +答(30s):Multi-Agent 是"多个è°"——多个具备独立角色/æç¤º/工具的 Agent å作;Multi-Task 是"多个什么"——多个å­ä»»åŠ¡è¢«åˆ†è§£è°ƒåº¦æ‰§è¡Œã€‚å• Agent å¯ä»¥ Multi-Task(Fan-out tool calls),多 Agent 也å¯ä»¥åªå¤„ç†å•一任务(辩论验è¯ï¼‰ã€‚ç”Ÿäº§ä¸­ä¸¤è€…é€šå¸¸åŒæ—¶å‡ºçŽ°ï¼šCoordinator 拆任务(Multi-Task),分给ä¸åŒ Worker(Multi-Agent)去并行执行。 + +追问预判:→ é‚£ä»€ä¹ˆæ—¶å€™ç”¨å• Agent Multi-Task 就够了?→ 当 角色 skill 无差异 时,加 Agent åªåŠ æˆæœ¬ä¸åŠ è´¨é‡ã€‚ + +11.2 什么时候上 Multi-Agent?🔥🔥🔥🔥🔥 + +Q:什么时候值得用 Multi-Agent? + +答(60s):三个æ¡ä»¶åŒæ—¶æ»¡è¶³ï¼šâ‘  å­ä»»åŠ¡å¯å¹¶è¡Œä¸”上下文å¯éš”离——å¦åˆ™å…±äº« context å而浪费 token;② 角色 skill 差异大——ä¸åŒ system prompt + 工具集能显著æå‡å„å­ä»»åŠ¡è´¨é‡ï¼›â‘¢ å• Agent completion < ç›®æ ‡â€”â€”å…ˆè¯æ˜Žå• Agent ä¸å¤Ÿå†åР夿‚åº¦ã€‚å‡†å…¥é—¨æ§›ï¼šå• Agent eval ≥ 80%,Multi-Agent å¿…é¡»æ¯”å• Agent 至少高 5 ä¸ªç‚¹ä¸”æˆæœ¬ ≤ 2 å€ã€‚ + +追问预判:→ 如果 eval é«˜äº†ä½†æˆæœ¬è¶… 2x 怎么办?→ 看 completion vs cost 曲线的边际收益,有的场景(资金)å¯ä»¥æŽ¥å— 3x æˆæœ¬æ¢ 5% completion。 + +11.3 拓扑怎么选?🔥🔥🔥🔥 + +Q:Multi-Agent 有哪些拓扑模å¼ï¼Ÿæ€Žä¹ˆé€‰ï¼Ÿ + +答(60sï¼‰ï¼šå…­ç§æ ¸å¿ƒæ‹“扑——Supervisor(中心分å‘)ã€Hierarchical(分层管ç†ï¼‰ã€Peer-to-Peer(去中心辩论)ã€Pipelineï¼ˆçº¿æ€§æµæ°´çº¿ï¼‰ã€Mixture/Dynamic(按类型路由)ã€Swarm/Handoff(对è¯å¼ç§»äº¤ï¼‰ã€‚决策点:å­ä»»åС坿žšä¸¾ → Supervisorï¼›DAG ä¾èµ–+角色<5 → Pipeline å­å›¾ï¼›è§’色>5 跨域 → Hierarchical;对è¯é€æ­¥å‡çº§ → Swarmï¼›éœ€éªŒè¯ â†’ Peer。核心原则:Supervisor 够用就ä¸ä¸Š Hierarchical,Pipeline 够用就ä¸ä¸Š Fan-outï¼Œå¤æ‚åº¦æ˜¯æˆæœ¬ã€‚ + +追问预判:→ Swarm å’Œ Supervisor 本质区别?→ Supervisor 控制æµä¸­å¿ƒåŒ–,Swarm 控制æµåŽ»ä¸­å¿ƒåŒ–ï¼ŒSupervisor æ›´å¯æŽ§ä½†å•点瓶颈,Swarm 更自然但收敛难ä¿è¯ã€‚ + +11.4 Coordinator 设计的关键原则?🔥🔥🔥🔥🔥 + +Q:Multi-Agent 系统中 Coordinator 怎么设计? + +答(60s):五个原则:① Single Writerâ€”â€”åªæœ‰ Coordinator å¯å†™ goal/plan/completed_steps,Worker åª append observation;② 结构化通信——Worker 返回固定 JSON schema,ä¸è¿”回自由文本;③ 摘è¦åŽ‹ç¼©â€”â€”æ¯è½®åªè¯»æœ€è¿‘ N è½® observation + 全局 completed 列表,防 token 爆炸;④ æ”¶æ•›ä¿è¯â€”—设 max_rounds + 进度检测,连续 2 轮无进展 → 强制汇总或 escalate;⑤ 最å°ä¿¡æ¯æŠ•递——Worker åªæ‹¿è‡ªå·± task çš„ contextï¼Œä¸æ‹¿å…¨å±€ plan。 + +追问预判:→ Coordinator 本身 context 溢出怎么办?→ 三招:observation 压缩到 ≤200 tokenã€æ»‘动窗å£åªä¿ç•™æœ€è¿‘ 2 è½®ã€åކå²å­˜ checkpoint 按需检索。 + +11.5 并行任务的一致性怎么ä¿è¯ï¼ŸðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ + +Q:Fan-out 多任务并行时怎么ä¿è¯ä¸€è‡´æ€§ï¼Ÿ + +答(60s):三层ä¿éšœï¼šâ‘  æ˜¾å¼ DAG ä¾èµ–——写æ“作的å‰ç½®ä»»åŠ¡å¿…é¡» Success æ‰å¯åŠ¨ï¼Œæ‹“æ‰‘æŽ’åºå¼ºåˆ¶æ‰§è¡Œï¼›â‘¡ 写æ“ä½œç¦æ­¢æ— æ¡ä»¶å¹¶è¡Œâ€”—多个写æ“作走 Saga ä¸èµ° Fan-out,补å¿é€»è¾‘明确;③ Merge pre-condition——èšåˆå‰æ ¡éªŒæ‰€æœ‰å¿…需 task 已完æˆï¼Œç¼ºå¤±åˆ™ replan 而éžç”¨ null 值拼接。é¢å¤–:写æ“作必须有 幂等键(业务键如 order_id + refund_type),防止é‡è¯•导致é‡å¤å†™ã€‚ + +11.6 A2A 与 MCP 的关系?🔥🔥🔥 + +Q:A2A å议和 MCP 有什么关系? + +答(30s):MCP 解决 Agent 到 Tool/Data 的标准连接,类比 USB 接å£ï¼›A2A 解决 Agent 到 Agent 的互æ“作å议,类比 HTTP。两者互补:A2A 在上层编排 Agent å作,MCP 在下层让æ¯ä¸ª Agent 接入工具。一个 Agent 也å¯ä»¥é€šè¿‡ MCP 把自己暴露为å¦ä¸€ä¸ª Agent çš„ Tool。关键区别:MCP 无状æ€ï¼ŒA2A 有 Task 生命周期管ç†ã€‚ + +11.7 画一个 Multi-Agent 退款系统的架构?🔥🔥🔥🔥 + +Q:白æ¿ç”»ä¸€ä¸ª Multi-Agent 退款架构。 + +答(90s): + +User → API Gateway → Coordinator Agent + │ + ┌──────────┼──────────┠↠Fan-out (读æ“作, å¯å¹¶è¡Œ) + â–¼ â–¼ â–¼ + Order Agent Policy Agent Risk Agent + (查订å•) (查退款政策) (风控评估) + │ │ │ + └──────────┼──────────┘ + ↓ + Coordinator Merge ↠pre-condition: 3个全 Success + │ + â–¼ (全部通过) + Refund Agent ↠串行 + HITL 人审 + 幂等键 + (执行退款) + │ + â–¼ + Notify Agent ↠异步, å…许失败é‡è¯• + (å‘通知) + + +关键点:① å‰ä¸‰ä¸ª Agent å¯å¹¶è¡Œï¼ˆFan-out),因为互ä¸ä¾èµ–;② Refund Agent 必须等å‰ä¸‰ä¸ªå…¨éƒ¨ Success(DAG ä¾èµ–);③ 写æ“作(退款)走 HITL + 幂等;④ æ¯ä¸ª Agent çš„ observation 是结构化 JSON;⑤ Coordinator è´Ÿè´£ merge 和决策;⑥ 全链路统一 trace_id。 + +11.8 Multi-Agent çš„ Context Engineering 怎么åšï¼ŸðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ + +Q:多个 Agent å作时,上下文怎么管ç†ï¼Ÿ + +答(60s):三层策略——Global State(目标/计划/完æˆåˆ—表,Coordinator å•写)ã€Agent-localï¼ˆå„ Agent çš„ scratchpad 和工具缓存,互ä¸å¯è§ï¼‰ã€Task-local(å•任务的 input/output/é‡è¯•计数)。核心技巧:① Worker observation 强制压缩到 ≤200 token 的结构化摘è¦ï¼›â‘¡ Coordinator 用滑动窗å£åªè¯»æœ€è¿‘ N 轮;③ è·¨ Agent 传递用 summarizer 压缩;④ 长期 context å­˜ checkpoint PG,按需检索。过度共享 → token 爆炸,过度隔离 → ä¿¡æ¯æ–­å±‚,所以用 tag-based selective sharing。 + +11.9 Multi-Agent 怎么åšå¯è§‚测?🔥🔥🔥 + +Q:多 Agent 系统的å¯è§‚测性怎么建? + +答(60s):三个维度——Trace:统一 trace_id 贯穿所有 Agent,æ¯ä¸ª Agent/Task 一个 span,span 上打 agent_id/task_id/round/tokens/decision 标签;Cost:按 agent_id å½’å›  token 消耗,Coordinator é€šå¸¸å  30-50%ï¼Œæ®æ­¤ä¼˜åŒ–ï¼›Quality:告警 5 个阈值——rounds>5(收敛差)ã€coordinator_tokens>50k(context 溢出)ã€handoff>3(乒乓)ã€task_timeout>10%(性能)ã€cost>budget(超预算)。 + +11.10 Swarm/Handoff å’Œ Supervisor 怎么选?🔥🔥🔥 + +Q:OpenAI çš„ Swarm/Handoff 模å¼ä»€ä¹ˆæ—¶å€™ç”¨ï¼Ÿå’Œ Supervisor 区别是什么? + +答(45s):Supervisor 是 中心化控制——一个 Coordinator 决定分给è°ã€ä»€ä¹ˆæ—¶å€™æ”¶ï¼›Swarm 是 去中心化移交——æ¯ä¸ª Agent 自己决定何时 handoff ç»™è°ã€‚Supervisor é€‚åˆ ç»“æž„åŒ–ä»»åŠ¡æ‹†åˆ†ï¼ˆé€€æ¬¾æµç¨‹ï¼‰ï¼ŒSwarm é€‚åˆ å¯¹è¯å¼é€æ­¥å‡çº§ï¼ˆå®¢æœä»Žé€šç”¨â†’专业→人工)。关键风险:Swarm 的收敛性ä¸å¦‚ Supervisor,必须加 max_handoff + reason dedup 防乒乓。生产建议:资金路径用 Supervisor,对è¯è·¯å¾„用 Swarm。 + +11.11 Multi-Agent 部分失败怎么处ç†ï¼ŸðŸ”¥ðŸ”¥ðŸ”¥ðŸ”¥ + +Q:Fan-out åŽæœ‰ Worker 失败了怎么办? + +答(45s):分三级——① å¯å¿½ç•¥ï¼ˆå¦‚通知 Agent 失败):标记 skipped,继续åŽç»­æ­¥éª¤ï¼Œå¼‚æ­¥é‡è¯•;② å¯é™çº§ï¼ˆå¦‚风控 Agent 超时):用默认策略(如拒ç»é«˜é£Žé™©ï¼‰ï¼Œé™çº§å®Œæˆï¼›â‘¢ å¿…éœ€ï¼ˆå¦‚æŸ¥å• Agent 失败):阻塞åŽç»­ï¼Œretry × 3,exhausted åŽæ•´ä½“ replan 或转人工。Coordinator çš„ merge pre-condition 定义了哪些 task 是 required vs optional。é…åˆ è¶…æ—¶ ï¼šæ¯ task 30s hard timeout,10s soft timeout 触å‘é™çº§è·¯å¾„。 + +11.12 给我讲一个 Multi-Agent 的生产事故?🔥🔥🔥🔥🔥 + +Q:你在生产中é‡åˆ°è¿‡ä»€ä¹ˆ Multi-Agent 的问题? + +答(90s,用 §7.2-7.5 任一案例,STAR-M-P æ ¼å¼ï¼‰ï¼š + +选择最贴近你ç»åŽ†çš„æ¡ˆä¾‹èƒŒè¯µã€‚æŽ¨è §7.2(退款å调失败)或 §7.3(Coordinator token 爆炸),因为最高频。 + +12. é¢è¯•å‰ 30 分钟 Checklist(Staff / Architect) + +åªå‹¾ä¸çœ‹å†…容,å‘现 ⌠立å³ç¿»å¯¹åº”章节。 + +能 30s 内说清 Multi-Agent vs Multi-Task 区别(§1ã€Q11.1) +能说出 6 ç§æ‹“扑 + å„自 trade-off(§2.2) +能画 Supervisor + Fan-out 退款架构白æ¿ï¼ˆQ11.7) +能说出 Coordinator 5 个设计原则(Q11.4) +能说出 Fan-out 一致性三层ä¿éšœï¼ˆQ11.5) +能区分 A2A vs MCP(Q11.6) +能说出 Multi-Agent 准入门槛数字(eval≥80%, +5%, cost≤2x) +能讲 1 个 STAR-M-P 事故(§7.2–7.5 选一) +能说出 Context Engineering 三层策略(Q11.8) +能说出 5 个告警阈值(§8.3) +çŸ¥é“ Swarm vs Supervisor 区别和选型(Q11.10) +能说出部分失败的三级处ç†ï¼ˆQ11.11) +准备好 1 ä¸ªæˆæœ¬ä¼°ç®—例å­ï¼ˆÂ§6.4 æ›¿æ¢æ•°å­—) +能对照 06 讲 Subagent/Fork/Coordinator(§15) +能说明 LangGraph Send 与 Cursor 并行 Task 的异åŒï¼ˆÂ§15.2) +13. 全知识点 Checklist(é€é¡¹è‡ªæµ‹ï¼‰ +13.1 概念层(L1)— 8 项 +KC-01 能定义 Multi-Agent:多个独立角色/æç¤º/工具的 Agent å作 +KC-02 能定义 Multi-Task:多个å­ä»»åŠ¡åˆ†è§£ã€è°ƒåº¦ã€å¹¶è¡Œ/ä¾èµ–执行 +KC-03 能画四象é™ï¼ˆå•Agentå•Task / å•Agent多Task / 多Agentå•Task / 多Agent多Task) +KC-04 知é“å• Agent 也能 Multi-Task(Fan-out tool calls) +KC-05 知é“多 Agent å¯ä»¥å¤„ç†å•任务(辩论验è¯ï¼‰ +KC-06 能区分 Coordinator / Worker / Scheduler / Merger 四角色 +KC-07 能说出 Stage 1→4 æˆç†Ÿåº¦ä¸Žæ‹“扑对应 +KC-08 çŸ¥é“ Multi-Agent ä¸ä¸€å®šä¼˜äºŽå• Agent +13.2 拓扑与编排层(L2)— 16 项 +KC-09 Supervisor æ‹“æ‰‘ï¼šä¼˜åŠ¿ï¼ˆå¯æŽ§ï¼‰ã€åŠ£åŠ¿ï¼ˆå•点ã€token 开销) +KC-10 Hierarchical 拓扑:优势(分层自治)ã€åŠ£åŠ¿ï¼ˆå±‚é—´å»¶è¿Ÿï¼‰ +KC-11 Peer-to-Peer 拓扑:优势(多视角)ã€åŠ£åŠ¿ï¼ˆéš¾æ”¶æ•›ï¼‰ +KC-12 Pipeline 拓扑:优势(最低开销)ã€åŠ£åŠ¿ï¼ˆæ— å¹¶è¡Œï¼‰ +KC-13 Mixture/Dynamic æ‹“æ‰‘ï¼šä¼˜åŠ¿ï¼ˆçµæ´»ï¼‰ã€åŠ£åŠ¿ï¼ˆè·¯ç”±ç»´æŠ¤ï¼‰ +KC-14 Swarm/Handoff 拓扑:优势(自然传递)ã€åŠ£åŠ¿ï¼ˆå›žé€€å›°éš¾ï¼‰ +KC-15 能画拓扑选型决策树 +KC-16 任务分解三策略:LLM Plan / Template DAG / Hybrid +KC-17 Plan 输出结构化 schema(id, deps, agent, write, hitl) +KC-18 DAG 拓扑排åºè°ƒåº¦ +KC-19 Fan-out / Fan-in æ¨¡å¼ +KC-20 ä»»åŠ¡çŠ¶æ€æœºï¼ˆPending→Running→Success/Failed→Retrying/Escalatedï¼Œå« HITL) +KC-21 Replan 策略与 max_replan_count ≤ 3 +KC-22 å››ç§é€šä¿¡èŒƒå¼ï¼ˆDirect / Message Bus / Shared State / Handoff) +KC-23 A2A å议核心概念(Agent Card / Task / Streaming / Artifact) +KC-24 MCP vs A2A 区别与互补关系 +13.3 状æ€ä¸Ž Context(L2-L3)— 12 项 +KC-25 状æ€åˆ†å±‚:Global / Agent-local / Task-local +KC-26 Single Writer 原则 +KC-27 Coordinator æŒ Plan 原则 +KC-28 Structured Observation 原则 +KC-29 Append-only for Workers 原则 +KC-30 Checkpoint 租户隔离(tenant_id RLS) +KC-31 Context Engineering:Coordinator æ»‘åŠ¨çª—å£ + 摘è¦åŽ‹ç¼© +KC-32 Worker 最å°ä¿¡æ¯åŽŸåˆ™ +KC-33 è·¨ Agent 摘è¦ä¼ é€’ +KC-34 ObservationCompressor 组件(≤200 token) +KC-35 Memory 共享模å¼ï¼ˆNo Sharing / Blackboard / Event Sourcing / Selective) +KC-36 LangGraph MultiAgentState å®žçŽ°æ¨¡å¼ +13.4 生产工程层(L3)— 18 项 +KC-37 Token 开销公å¼ï¼šN×T + Coordinator×R + Merge +KC-38 并行 vs 串行 trade-off +KC-39 容é‡ä¼°ç®—:能å£ç®— $/hour +KC-40 准入门槛数字:eval≥80%, +5%, cost≤2x +KC-41 回退机制:eval ä¸è¾¾æ ‡ → ç°åº¦ç¼©é‡ → å›žé€€å• Agent +KC-42 12 ä¸ªåæ¨¡å¼ï¼ˆÂ§7.1)能说出 ≥ 5 个 +KC-43 能讲 ≥ 2 个 STAR-M-P 事故案例 +KC-44 è·¨ Agent trace å…³è”:统一 trace_id + agent_id/task_id span +KC-45 æˆæœ¬å½’因:按 agent_id 维度 +KC-46 5 个告警阈值 +KC-47 四层 Eval(å•Agent / åè°ƒ / 端到端 / æˆæœ¬ / 收敛) +KC-48 Eval Gate 准入æµç¨‹ +KC-49 8 ç±» Multi-Agent 专属 eval case +KC-50 部分失败三级处ç†ï¼ˆå¯å¿½ç•¥ / å¯é™çº§ / 必需) +KC-51 超时机制:soft timeout(é™çº§ï¼‰+ hard timeout(终止) +KC-52 写æ“作一致性:DAG ä¾èµ– + Saga + 幂等键 + pre-condition +KC-53 Handoff 防乒乓:max_handoff + reason dedup + 熔断 +KC-54 通信 Schema ç‰ˆæœ¬ç®¡ç† +13.5 框架选型层(L3)— 6 项 +KC-55 LangGraph Multi-Agent:StateGraph + Send API + conditional_edges +KC-56 AutoGen:GroupChat + GroupChatManager + speaker_selection +KC-57 CrewAI:Agent + Task(context) + Crew(process) +KC-58 OpenAI Agents SDK / Swarm:Agent + handoffs +KC-59 Spring AI + 自建 Coordinator +KC-60 场景→框架映射表(资金→LangGraph, 对è¯â†’Swarm, 内容→CrewAI) +13.6 Staff 答辩层(L4)— 12 项 +KC-61 能白æ¿ç”» Multi-Agent 退款架构 +KC-62 能 30s 说清 Multi-Agent vs Multi-Task +KC-63 能说出 Coordinator 5 原则 +KC-64 能说出 Fan-out 一致性三层ä¿éšœ +KC-65 能说出 Swarm vs Supervisor 选型逻辑 +KC-66 能讲 STAR-M-P 事故 +KC-67 能å£ç®— Multi-Agent æˆæœ¬ä¼°ç®— +KC-68 能说出 A2A vs MCP 区别 +KC-69 能说出 Context Engineering 三层策略 +KC-70 能画跨 Agent trace span 结构 +KC-71 èƒ½è¯´å‡ºéƒ¨åˆ†å¤±è´¥ä¸‰çº§å¤„ç† +KC-72 能回答"什么时候ä¸è¯¥ç”¨ Multi-Agent" +KC-73 能区分 Cursor Subagent vs 生产 Worker(06) +KC-74 能说明 IDE ä¼šè¯ Fork ä¸ç­‰äºŽä¸šåŠ¡ checkpoint +KC-75 能å£è¿° LangGraph Send Fan-out 与写æ“作互斥 +15. DevEx Subagent 与生产 Coordinator 闭环(2026 增补) + +专章:06-Coding-Agentè¿è¡Œæ—¶å¯¹ç…§ · Catalog:96 DEVEX_* + MA_* + +15.1 åŒä¸€é—®é¢˜ï¼Œä¸¤å¥—答案 +é¢è¯•问法 先答è¿è¡Œé¢ å†ç­”生产ä¸å˜å¼ +「Subagent 是什么?〠Cursor:独立 context çš„ Worker Coordinator å•写 planï¼›Worker append observation +「Coordinator 在哪?〠父 Agent éšå¼åè°ƒ MultiAgentState + checkpoint 显å¼èŠ‚ç‚¹ +「并行会ä¸ä¼šæ›´å¿«ï¼Ÿã€ 探索åªè¯»å¯å¹¶è¡Œ 写æ“作 Fan-out ç¦æ­¢ï¼›Saga 串行 +「断了怎么续?〠Resume agent ID / Fork 实验分支 thread_id + 幂等键;ç¦å…¨é‡ replan +15.2 LangGraph Send API:生产 Fan-out 标准写法 + +便®ï¼šLangGraph åŠ¨æ€æ‰‡å‡ºã€‚ + +from langgraph.types import Send + +def coordinator_fanout(state): + """Coordinator 选出å¯å¹¶è¡Œ task → Send 到对应 worker 节点""" + pending = [t for t in state["plan"] if t["status"] == "pending" and deps_met(t, state)] + # 写æ“作:åŒä¸€ round 最多 1 个 + writes = [t for t in pending if t.get("write")] + if len(writes) > 1: + pending = [writes[0]] + return [Send(worker_node(t["agent"]), {"task": t, "goal": state["goal"]}) for t in pending] + +def worker_node(agent_name: str, payload: dict) -> dict: + obs = run_worker(agent_name, payload["task"], minimal_context(payload)) + return {"observations": [compress_observation(obs)]} + +DevEx 对照 LangGraph +父 Agent å‘多个 Task Send[] +explore/bash/browser 专用 worker 节点 + 工具白åå• +background subagent 异步节点 + 轮询 merge +readonly subagent worker 图内åªè¯» tool è¾¹ +15.3 与 Cursor Subagent 的边界(Staff 必背) +å…许:用 subagent åš explore / verifier / test-runner(06 §3)。 +ç¦æ­¢ï¼šIDE 并行 subagent 直接写 生产库;Fork 会è¯å½“业务 checkpoint(DEVEX_FORK_NO_AUDIT)。 +è¿ç§»ï¼šOrchestrator 三角色(Planner→Implementer→Verifier)→ Pipeline + 验è¯èŠ‚ç‚¹ï¼ˆ06 §22)。 +15.4 Multi-Agent Eval é—¨ç¦ï¼ˆä¸Ž 06 §25 æˆæœ¬è´¦æœ¬æ ¡å‡†ï¼‰ +Gate 阈值(示æ„) 失败动作 +å• Agent baseline success ≥ 80% ä¸å‡†ä¸Š Multi-Agent +Multi vs Single completion +5pt 且 cost ≤2x 缩 Worker 或改拓扑 +Coordinator token < 50k/run 压缩 observation +Convergence rounds ≤ 5 é™çº§å• Agent +Trajectory golden åŒ¹é… â‰¥ 95% 阻断å‘布(19) +15.5 追加é¢è¯•题(与 06 §99 交å‰ï¼‰ +11.13 Subagent 与 Multi-Agent Worker 一样å—?🔥🔥🔥🔥 + +答(40s):角色åŒã€æ²»ç†ä¸åŒã€‚Subagent 缺业务 checkpoint/租户/幂等;生产 Worker 必须在 Coordinator 下 结构化 JSON 回传。IDE 父 Agent≈Coordinator,但须 显å¼åŒ– 到图与 DB。 + +11.14 Fork 会è¯èƒ½å¦ä»£æ›¿ checkpoint?🔥🔥🔥 + +答(30s):ä¸èƒ½ã€‚Fork/Resume 解决 ç ”å‘实验与续èŠï¼›checkpoint 解决 写æ“作å¯å®¡è®¡ç»­è·‘ã€‚è§ 96 DEVEX_* vs RUN_*。 + +11.15 三个 readonly subagent 并行改åŒä¸€æ¨¡å—?🔥🔥🔥🔥 + +答(40s):探索å¯å¹¶è¡Œï¼Œå®žçŽ°å¿…é¡»å•写者。å¦åˆ™ Git 冲çªä¸Žå±€éƒ¨æœ€ä¼˜ï¼ˆ06 §11 STAR)。生产åŒç†ï¼šFan-out åªç»™ 读 Worker。 + +11.16 Java 侧如何è½åœ° Supervisor?🔥🔥🔥 + +答(45s):Spring AI ChatClient åš intent → Scripted/LLM Supervisor 路由 → 多 Worker Bean → summarizeï¼›è½¨è¿¹è§ multi-agent-supervisor demo。演进:LangGraph4j 或 Plan-Execute 自研,ä¸å˜å¼åŒ §5。 + +11.17 Peer 辩论为何生产慎用?🔥🔥🔥 + +答(35s):无 Coordinator æ—¶ token 与轮次易失控(MA_PEER_NO_CONVERGE)。仅用于 离线评审/红队;资金路径用 Supervisor + HITL。 + +16. æ€»ç»“é‡‘å¥ + +Multi-Agent 解决"è°æ¥åš",Multi-Task 解决"åšä»€ä¹ˆå’Œæ€Žä¹ˆæŽ’"。Coordinator 是唯一写 plan 的人,Worker åªå馈结构化 observation。写æ“作永远串行 + 幂等 + HITLï¼Œåªæœ‰è¯»æ“作æ‰å€¼å¾— Fan-out。上 Multi-Agent å‰å…ˆè¯æ˜Žå• Agent ä¸å¤Ÿâ€”—eval ≥ 80% æ˜¯å‡†å…¥é—¨æ§›ï¼Œæˆæœ¬ ≤ 2x 是留存æ¡ä»¶ã€‚ + + + + +æ‹“æ‰‘é€‰åž‹ä¸æ˜¯æŠ€æœ¯å“味,是架构决策——Supervisor 够用就ä¸ä¸Š Hierarchical,Pipeline 够用就ä¸ä¸Š Fan-outã€‚å¤æ‚åº¦æ˜¯æˆæœ¬ï¼Œç®€å•是竞争力。 + + + + +Context Engineering 是 Multi-Agent çš„éšè— boss——过度共享 token çˆ†ç‚¸ï¼Œè¿‡åº¦éš”ç¦»ä¿¡æ¯æ–­å±‚。三层分离 + 摘è¦åŽ‹ç¼© + 按需检索是生产正解。 + + + + +æ¯ä¸ª Multi-Agent 系统都需è¦ä¸‰ä¸ªå®‰å…¨ç½‘:max_rounds 防空转ã€max_handoff 防乒乓ã€max_replan 防无é™é‡åšã€‚没有硬上é™çš„ Agent 系统迟早会在凌晨三点å«ä½ èµ·åºŠã€‚ + + + + +DevEx Subagent 与生产 Coordinator 是åŒä¸€å¥—编排的两层皮肤——IDE çœ context,生产ä¿å¹‚ç­‰ä¸Žå®¡è®¡ï¼›è¯¦è§ 06 与 §15。 + +官方文档与æºç ï¼ˆä¸€çº§ä¾æ®ï¼‰ + +AI Engineering · 正文机制应æ¥è‡ªä¸‹æ–¹ 官方文档(L1) 与 官方æºç ä»“库(L2); +ç¦æ­¢ç”¨æ•™ç¨‹ç«™/åšå®¢å……å½“æœºåˆ¶ä¾æ®ã€‚本章 QPS/延迟/STAR 为é¢è¯•示æ„。 +写作规范:docs/official-sources-registry.md §0 + +L1 · 官方文档 + +Spring AI Reference +LangGraph Interrupts +LangChain4j Docs + +L2 · 官方æºç  + +spring-projects/spring-ai +langchain-ai/langgraph +langchain4j/langchain4j + +L3 · 论文 / 开放规范 + +L3 MCP Specification + +--- + +*笔记由 Hermes Agent 自动抓å–ä¿å­˜* \ No newline at end of file diff --git a/InBox/OpenAI_Skill的自动评分器怎么æ­_BV1HWd6BsEmG_笔记.md b/InBox/OpenAI_Skill的自动评分器怎么æ­_BV1HWd6BsEmG_笔记.md new file mode 100644 index 0000000..a45374e --- /dev/null +++ b/InBox/OpenAI_Skill的自动评分器怎么æ­_BV1HWd6BsEmG_笔记.md @@ -0,0 +1,316 @@ +# OpenAI Skill è‡ªåŠ¨è¯„åˆ†å™¨æž„å»ºæŒ‡å— + +## 一ã€ä¸ºä»€ä¹ˆéœ€è¦è¯„分器 + +当更新一个 Skill 并执行完æˆåŽï¼Œ**表é¢ç»“果正常ä¸ä»£è¡¨çœŸçš„å˜å¥½äº†**。核心问题是: + +- Skill 是å¦çœŸçš„完æˆäº†é¢„期任务? +- 修改是å¦å¼•入了新的问题(回归)? +- 如何在ä¸åŒç‰ˆæœ¬ä¹‹é—´è¿›è¡Œæ€§èƒ½æ¯”较? + +评分器的èŒè´£å°±æ˜¯å›žç­”这些问题,让 Skill 的质é‡å˜åŒ–å¯è¡¡é‡ã€å¯è¿½è¸ªã€‚ + +--- + +## 二ã€è¿è¡Œè½¨è¿¹è®°å½• + +### 2.1 什么是è¿è¡Œè½¨è¿¹ + +è¯„åˆ†çš„å‰ææ˜¯æœ‰ä¸œè¥¿å¯ä»¥æ‰“分。OpenAI çš„åšæ³•是使用 **CodeExec JSON** 记录 Skill 的完整执行过程。 + +### 2.2 é…ç½®æ–¹å¼ + +```json +{ + "code_exec": true // å¯ç”¨åŽè¾“出结构化执行记录 +} +``` + +### 2.3 记录内容 + +å¯ç”¨åŽï¼ŒSkill æ¯æ‰§è¡Œä¸€æ­¥éƒ½ä¼šè¾“出结构化记录,包括: + +- 跑了什么命令 +- 创建了什么文件 +- æ‰§è¡Œé¡ºåº +- 时间戳 + +### 2.4 关键特性 + +| 特性 | 说明 | +|------|------| +| **完整性** | 记录完整执行æµç¨‹ï¼Œè€Œéžæ—¥å¿—æ‘˜è¦ | +| **å¯è§£æžæ€§** | 结构化数æ®ï¼Œå¯è¢«ç¨‹åºç›´æŽ¥è¯»å– | +| **å¯è°ƒè¯•性** | 失败时å¯ç²¾ç¡®å®šä½åˆ°å…·ä½“哪一步出错 | + +> 没有è¿è¡Œè½¨è¿¹ï¼Œè¯„分器åªèƒ½çœ‹æœ€ç»ˆäº§ç‰©ï¼Œæ— æ³•åˆ†æžæ‰§è¡Œè¿‡ç¨‹ã€‚ + +--- + +## 三ã€è¯„分器类型 + +### 3.1 确定性检查(Deterministic Checks) + +#### 3.1.1 åŽŸç† + +纯代ç è§„则驱动的检查,**ä¸ç”¨å¤§æ¨¡åž‹**,写死判断逻辑,程åºç›´æŽ¥å¯¹ç€è¿è¡Œè½¨è¿¹æ ¸å¯¹ã€‚ + +#### 3.1.2 典型检查项 + +``` +- 有没有执行 npm install +- 有没有创建 package.json +- å‘½ä»¤æ‰§è¡Œé¡ºåºæ˜¯å¦ç¬¦åˆé¢„期 +- 是å¦åœ¨æŒ‡å®šç›®å½•执行æ“作 +``` + +#### 3.1.3 核心特性 + +| 特性 | 说明 | +|------|------| +| **确定性** | åŒæ ·è¡Œä¸ºæ¯æ¬¡åˆ¤æ–­ç»“果一致,没有模糊地带 | +| **å¯è°ƒè¯•** | 一旦失败,打开记录文件å³å¯çœ‹åˆ°ä»Žå“ªä¸€æ­¥å¼€å§‹å离 | + +#### 3.1.4 局陿€§ + +确定性检查能回答"**基础动作åšäº†æ²¡æœ‰**",但无法回答"**åšå‡ºæ¥çš„ä¸œè¥¿æ˜¯ä¸æ˜¯ä½ æƒ³è¦çš„æ ·å­**"。 + +--- + +### 3.2 评分细则检查(Rubric-based Checks) + +#### 3.2.1 åŽŸç† + +使用 **LLM 作为è£åˆ¤**,读å–仓库内容,按预定义的评分细则输出结构化打分结果。 + +#### 3.2.2 适用场景 + +很多 Skill 的验收标准本æ¥å°±æ˜¯è½¯æ€§è§„则,例如: + +- 代ç ç»“构是å¦å¹²å‡€ +- 组件组织是å¦ç¬¦åˆå›¢é˜Ÿçº¦å®š +- æ ·å¼é…ç½®æ˜¯å¦æŒ‰æ—¢å®šé£Žæ ¼è½åœ° +- 命å规范是å¦éµå¾ª + +#### 3.2.3 评分细则的拆解方法 + +æŠŠæ¨¡ç³Šçš„è´¨é‡æ ‡å‡†æ‹†æˆè‹¥å¹²ä¸ª**å¯ç‹¬ç«‹åˆ¤æ–­çš„维度**: + +| 模糊标准 | 拆解åŽçš„维度 | +|----------|--------------| +| 代ç è´¨é‡å¥½ | ç»„ä»¶æ˜¯å¦æŒ‰åŠŸèƒ½åˆ†ç›®å½• | +| | æ˜¯å¦æœ‰æœªä½¿ç”¨çš„引用 | +| | æ ·å¼ç±»å是å¦éµå¾ªå‘½å约定 | +| | é…置项是å¦é›†ä¸­ç®¡ç† | + +#### 3.2.4 å…³é”®è¦æ±‚:é”å®šè¾“å‡ºæ ¼å¼ + +**å¿…é¡»æå‰å®šä¹‰è¾“出模æ¿**,规定模型必须输出哪些字段: + +```json +{ + "passed": true/false, + "total_score": 85, + "dimensions": [ + { + "name": "component_organization", + "score": 90, + "reason": "组件按功能正确分目录" + }, + { + "name": "unused_imports", + "score": 70, + "reason": "å‘现3处未使用的import" + } + ] +} +``` + +#### 3.2.5 ä¸ºä»€ä¹ˆå¿…é¡»é”æ­»æ ¼å¼ + +| 自由输出 | 锿­»æ ¼å¼ | +|----------|----------| +| æ¯æ¬¡æŽªè¾žä¸åŒ | æ ¼å¼ç»Ÿä¸€ | +| 无法跨版本比较 | 结果å¯é‡åŒ– | +| 无法进自动化æµç¨‹ | å¯ç›´æŽ¥é›†æˆ CI/CD | +| 输出是"审稿æ„è§" | 输出是"评估数æ®" | + +--- + +## å››ã€è¯„分器组åˆç­–ç•¥ + +### 4.1 分工明确 + +``` +确定性检查 ──→ 抓底线(基础动作有没有å‘生) +评分细则检查 ──→ 抓质é‡ï¼ˆåšå‡ºæ¥çš„东西åƒä¸åƒä½ è¦çš„) +输出格å¼é”定 ──→ é˜²é£˜ç§»ï¼ˆæ¯æ¬¡è¯„分结果一致) +``` + +### 4.2 集æˆåˆ°æµæ°´çº¿ + +这套组åˆè®¾è®¡ä¹‹åˆå°±é¢å‘ **æŒç»­é›†æˆï¼ˆCI)**: + +- ä¸å†ä¾èµ–å·¥ç¨‹å¸ˆæ‰‹åŠ¨è§¦å‘æµ‹è¯• +- æˆä¸ºæŒç»­è¿è¡Œçš„回归守门员 +- Skill æ¯æ¬¡æ›´æ–°éƒ½ä¼šè‡ªåŠ¨éªŒè¯ + +--- + +## 五ã€6 类扩展检查 + +åœ¨åŸºç¡€è¯„åˆ†å™¨ä¹‹ä¸Šï¼Œå¯æŒ‰éœ€å åŠ ä»¥ä¸‹æ£€æŸ¥ï¼š + +### 5.1 命令数与循环检测 + +``` +检查è¿è¡Œè®°å½•里执行了多少æ¡å‘½ä»¤ +``` + +**目的**:检测行为退化 + +> 案例:如果一个 Skill ä»¥å‰ 6 步能完æˆï¼ŒçŽ°åœ¨è¦ 18 步,表é¢ä¸Šä»»åŠ¡è¿˜æ˜¯å®Œæˆäº†ï¼Œä½†ç³»ç»Ÿæ­£åœ¨å˜å·®ã€‚ + +### 5.2 消耗é‡è¿½è¸ª + +``` +è®°å½•æ¯æ¬¡è¿è¡Œæ¶ˆè€—çš„ token æ•°é‡ +``` + +**目的**:防止 Skill è¶Šæ¥è¶Šè‡ƒè‚¿ + +- æ¯æ¬¡æ‰§è¡Œè¶Šæ¥è¶Šè´µ +- æ¯æ¬¡æ‰§è¡Œè¶Šæ¥è¶Šæ…¢ + +### 5.3 构建检查 + +```bash +# skill 完æˆåŽç›´æŽ¥æ‰§è¡Œæž„建命令 +npm run build +``` + +**目的**ï¼šç«¯åˆ°ç«¯éªŒè¯ + +- 很多项目表é¢å®Œæˆï¼Œæž„建就露馅 +- æˆæœ¬ä½Žï¼Œåº”该**默认开å¯** + +### 5.4 è¿è¡Œæ—¶å†’烟检查 + +```bash +# å¯åЍ开呿œåС噍 +npm run dev +# å‘逿µ‹è¯•请求 +curl http://localhost:3000/api/health +``` + +**目的**ï¼šéªŒè¯æœåŠ¡æ˜¯å¦çœŸæ­£å¯ç”¨ + +> 注æ„ï¼šè¿™ç±»æ£€æŸ¥æ›´æ…¢ï¼ŒæŒ‰é£Žé™©ç­‰çº§å†³å®šæ˜¯å¦æ¯æ¬¡éƒ½æ‰§è¡Œã€‚ + +### 5.5 仓库清æ´åº¦æ£€æŸ¥ + +``` +检查任务完æˆåŽæ˜¯å¦å‡ºçްä¸è¯¥æœ‰çš„æ–‡ä»¶ +``` + +**目的**:确ä¿ç³»ç»Ÿæ²¡æœ‰è¢«"弄è„" + +### 5.6 æƒé™å›žå½’检查 + +``` +éªŒè¯ skill 是å¦è¿˜èƒ½åœ¨æœ€å°æƒé™ä¸‹æ­£å¸¸å·¥ä½œ +``` + +**目的**:防止æƒé™æ¼‚ç§» + +- æŸæ¬¡æ”¹åŠ¨åŽæ‚„悄开始ä¾èµ–更高æƒé™ +- æƒé™æ¼‚移在自动化åŽä¼šå˜æˆç»“构性风险 + +### 5.7 扩展策略 + +``` +åŽŸæ–‡å»ºè®®ï¼šå…ˆåŠ å¿«é€Ÿæ£€æŸ¥ï¼Œå†æŒ‰é£Žé™©å åŠ æ…¢æ£€æŸ¥ + 䏿˜¯ä¸€æ¬¡å…¨ä¸Šï¼Œæ˜¯æŒ‰éœ€æ‰©å±• +``` + +| 检查类型 | 速度 | 建议频率 | +|----------|------|----------| +| 命令数检测 | å¿« | æ¯æ¬¡ | +| 消耗é‡è¿½è¸ª | å¿« | æ¯æ¬¡ | +| 仓库清æ´åº¦ | å¿« | æ¯æ¬¡ | +| 构建检查 | 中 | æ¯æ¬¡ | +| è¿è¡Œæ—¶å†’烟 | æ…¢ | 按风险 | +| æƒé™å›žå½’ | æ…¢ | 定期 | + +--- + +## å…­ã€5 æ¡æ ¸å¿ƒåŽŸåˆ™ + +### 原则一:é‡çœŸæ­£é‡è¦çš„东西 + +> Don't measure for the sake of measuring. First, think about what you'd actually care about if it got worse. + +**ä¸è¦ä¸ºäº†æœ‰æŒ‡æ ‡è€Œæœ‰æŒ‡æ ‡**,先想清楚什么å˜å·®äº†ï¼Œä½ ä¼šçœŸçš„在æ„。 + +### åŽŸåˆ™äºŒï¼šå…ˆå†™æ¸…æ™°å¯æ£€æŸ¥çš„定义 + +> If the success criteria are fuzzy, the evaluation will be too. + +验收标准模糊,评估就没有æ„义。**先把"什么å«åšå¯¹"写æˆå¯æ‰§è¡Œçš„判断**。 + +### 原则三:把评估扎在真实行为上 + +> Record the full execution trace and write deterministic checks around the actual actions taken. + +记录 Skill 的完整è¿è¡Œè½¨è¿¹ï¼Œå›´ç»•实际执行的动作写确定性检查。 + +### 原则四:规则ä¸å¤Ÿæ—¶ï¼Œå†è®©æ¨¡åž‹è¡¥ä¸Š + +> Use rubric-based evals to handle quality judgments that rules can't cover, not as a replacement. + +用评分细则处ç†è§„则覆盖ä¸äº†çš„è´¨é‡åˆ¤æ–­ï¼Œ**顺åºä¸èƒ½å**。确定性检查在å‰ï¼ŒLLM 评分在åŽã€‚ + +### 原则五:让真实失败去驱动样本增长 + +> Every time you manually fix something, turn it into a test case. + +æ¯æ¬¡æ‰‹åŠ¨ä¿®å¤éƒ½æ˜¯ä¸€ä¸ªä¿¡å·ï¼Œ**æŠŠå®ƒå˜æˆæµ‹è¯•用例**,让 Skill æŒç»­æŠŠè¿™ä»¶äº‹åšå¯¹ã€‚ + +--- + +## ä¸ƒã€æ•´ä½“æµç¨‹å›¾ + +``` +┌─────────────────────────────────────────────────────────┠+│ Skill 执行 │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ CodeExec JSON 记录è¿è¡Œè½¨è¿¹ │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ + ┌───────┴───────┠+ â–¼ â–¼ +┌───────────────┠┌─────────────────┠+│ 确定性检查 │ │ 评分细则检查 │ +│ (规则驱动) │ │ (LLM è£åˆ¤) │ +└───────┬───────┘ └────────┬────────┘ + â–¼ â–¼ + └────────┬─────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ ç»“æž„åŒ–è¯„ä¼°ç»“æžœï¼ˆè·¨ç‰ˆæœ¬å¯æ¯”较) │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ 进入 CI/CD æµæ°´çº¿ │ +└─────────────────────────────────────────────────────────┘ +``` + +--- + +## å…«ã€å‚考资料 + +- 原文标题:Testing Agent Skills Systematically with Evals +- 原文链接:https://developers.openai.com/blog/eval-skills +- è§†é¢‘æ¥æºï¼šæ…¢å­¦AI(BV1HWd6BsEmG) \ No newline at end of file diff --git a/InBox/Shopify_内部_Agent__为什么ä¸å‡†å‘˜å·¥ç§èŠ___AI_native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆ_是组织自进化_BV1i77X6pE1C_笔记.md b/InBox/Shopify_内部_Agent__为什么ä¸å‡†å‘˜å·¥ç§èŠ___AI_native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆ_是组织自进化_BV1i77X6pE1C_笔记.md new file mode 100644 index 0000000..6f70fde --- /dev/null +++ b/InBox/Shopify_内部_Agent__为什么ä¸å‡†å‘˜å·¥ç§èŠ___AI_native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆ_是组织自进化_BV1i77X6pE1C_笔记.md @@ -0,0 +1,187 @@ +# Shopify 内部 Agent River:为什么ä¸å‡†å‘˜å·¥ç§èŠï¼Ÿ + +## 核心观点 + +**AI-native ç»„ç»‡çš„é—¨æ§›ä¸æ˜¯ä¸ªäººæ›´å¿«ï¼Œè€Œæ˜¯ç»„织能从ç»éªŒä¸­å­¦ä¹ ã€èƒ½è‡ªè¿›åŒ–。** + +å•纯给员工é…备ç§äºº AI Agent,å¯èƒ½è®©æ¯ä¸ªäººå˜å¿«ï¼Œä½†ç»„织本身没有进化。 + +--- + +## 问题背景:ä¼ä¸šå¯¹ AI 的常è§è¯¯åŒº + +### è¯¯åŒºåšæ³• + +ç»™æ¯ä¸ªå‘˜å·¥å¼€ AI è´¦å·ï¼Œé…一个自己的 Agent,让他跑在: + +- 本地终端 +- 编辑器ç§äººå¯¹è¯æ¡† +- ç§èŠçª—å£é‡Œ + +### 效果 + +- 查问题更快 +- æ”¹ä»£ç æ›´å¿« +- 跑测试更快 + +### 真正的门槛 + +> 更硬的问题是:**组织能ä¸èƒ½ä»Žè¿™äº› AI 工作里学习?** + +èƒ½å¦æŠŠä¸€æ¬¡æŽ’æŸ¥ã€ä¸€æ¬¡ä¿®å¤ã€ä¸€æ¬¡å¥½åˆ¤æ–­ï¼Œå˜æˆåŽé¢æ‰€æœ‰äººå’Œæ‰€æœ‰ Agent 都能继承的ç»éªŒï¼Ÿ + +--- + +## 核心对比:ç§äºº Agent çš„å¤©èŠ±æ¿ + +| 维度 | ç§äºº Agent | 公开 Agent(River) | +|------|-----------|---------------------| +| æœåŠ¡èŒƒå›´ | 键盘å‰é‚£ä¸ªäºº | 整个团队 | +| ä¸Šä¸‹æ–‡æ¥æº | å•人输入 | 多人补充 | +| ç»éªŒæ²‰æ·€ | 个人日志 | 组织语料 | +| å¤çŽ°æ€§ | 低(过程ä¸å¯è§ï¼‰ | é«˜ï¼ˆå¯æœç´¢ã€å¤ç”¨ï¼‰ | +| 学习能力 | Agent 之间互相学ä¸åˆ° | 团队å作促进 Agent 进化 | + +### ç§äºº Agent çš„å±€é™æ€§ + +以一次排查å¶å‘失败测试为例: + +1. 你昨天怎么定ä½é—®é¢˜ï¼Ÿ +2. 中间错了哪些方å‘? +3. æœ€åŽæ˜¯å“ªæ¡çº¿ç´¢æŠŠé—®é¢˜æ”¶ä½ï¼Ÿ + +这些问题**å³ä½¿ç•™åœ¨æ—¥å¿—é‡Œï¼Œä¹Ÿåªæ˜¯äº‹åŽææ–™**: + +- ä¸ä¼šå¤©ç„¶å˜æˆå¤šäººå作现场 +- 别的工程师ä¸ä¼šåœ¨è¿‡ç¨‹ä¸­çœ‹åˆ° +- ä¸ä¼šæœ‰äººé¡ºæ‰‹è¡¥ä¸€ä¸ªçº¦æŸ +- 下一次类似情况,ä¸ä¼šè‡ªåŠ¨ä»Žè¿™æ¡è·¯å¾„开始 + +--- + +## River 的设计选择 + +### åŸºæœ¬å·¥ä½œæ–¹å¼ + +River 是 Shopify 内部 Slack 里的 AI Agent: + +- 员工**ä¸åœ¨ç§èŠçª—壿‰¾ä»–**,è¦åˆ°å†…部公开频é“里 @ ä»– +- River 会执行:读代ç ã€è·‘测试ã€å¼€ PRã€æŸ¥æ•°æ®ä»“库ã€çœ‹ç”Ÿäº§é“¾è·¯è®°å½• +- å¿…è¦æ—¶ï¼ŒRiver 还会**å驳他认为ä¸å¥½çš„计划** + +### 硬性产å“çº¦æŸ + +``` +åªæ”¯æŒå…¬å¼€é¢‘é“å·¥ä½œï¼Œä¸æ”¯æŒä¸€å¯¹ä¸€ç§èŠ +``` + +æ¯ä¸€æ¬¡å’Œ River 的对è¯ï¼Œéƒ½ä¼šå˜æˆä¸€æ¡ Slack 线程记录,**默认对 Shopify 内部员工å¯è§**。 + +> 注:这里的"公开"指 Shopify 内部 Slack 范围内å¯è§ï¼Œä¸æ˜¯äº’è”网公开。 + +--- + +## 公开线程的工作机制 + +### 典型场景 + +``` +1. 工程师 A åœ¨é¢‘é“æé—® + ↓ +2. River 开始工作:读文件ã€è·‘查询ã€è´´å‡ºéƒ¨åˆ†å‘现 + ↓ +3. 工程师 B 看到(通过频é“链接或被人拉进æ¥ï¼‰ + ↓ +4. B 补一å¥å…³é”®çº¦æŸï¼š + - "这个表ä¸èƒ½è¿™æ ·æŸ¥" + - "这个æœåŠ¡åˆšè¿ç§»è¿‡" + - "这个测试以å‰å¤±è´¥è¿‡ï¼ŒåŽŸå› å¯èƒ½ä¸åœ¨è¿™é‡Œ" + - "这个方案会影å“å¦ä¸€ä¸ªå›¢é˜Ÿ" + ↓ +5. River 叿”¶æ–°ä¸Šä¸‹æ–‡ï¼Œç»§ç»­å¾€ä¸‹æŸ¥ +``` + +### 公开 vs ç§äººçš„关键差别 + +- **ç§äººå¯¹è¯**:AI 多数åªç»§æ‰¿ä¸€ä¸ªäººçš„上下文 +- **公开线程**:AI 进入的是一个**多人å作现场** + +--- + +## 组织学习机制:语料挖掘与回写 + +公开线程记录会形æˆä¸€å¥—**坿Œ–掘的组织语料**,Shopify 会: + +1. **挖掘åå¤å‡ºçŽ°çš„æ¨¡å¼** +2. 把这些模å¼å›žå†™åˆ° River 的: + - 技能(Skills) + - æç¤ºè¯ï¼ˆPrompts) + - 默认动作(Default Actions) + +### 具体沉淀内容 + +| 沉淀内容 | 说明 | +|---------|------| +| 排查路径 | 哪些排查路径有效 | +| å·¥ç¨‹çº¦æŸ | 哪些工程约æŸåº”该默认带上 | +| æç¤ºè¯/技能 | 哪些æç¤ºè¯å’ŒæŠ€èƒ½åŠ¨ä½œå¯ä»¥æ²‰æ·€ä¸‹æ¥ | + +### 核心机制 + +``` +一个人硬啃出æ¥çš„ä¿®å¤åŠžæ³• → 下一个人的起点 +一个线程里åå¤å‡ºçŽ°çš„çº¦æŸ â†’ River ä»¥åŽæ›´å®¹æ˜“带上的上下文 +``` + +> **一次好的排查,ä¸å†åªæ˜¯æŸä¸ªäººå’ŒæŸä¸ª Agent çš„ç§æœ‰ç»åŽ†ï¼Œè€Œæ˜¯å¼€å§‹æ•™ä¼šåŽé¢çš„线程。** + +--- + +## 边界与é™åˆ¶ + +### ä¸ç­‰äºŽç¦æ­¢æ‰€æœ‰ç§èŠ + +ä¼ä¸š**䏿˜¯ä¸èƒ½æœ‰ä»»ä½• AI ç§èŠ**,而是 River 这个 Agent åšæŒä¸åšç§èŠå…¥å£ã€‚ + +### 需è¦è¾¹ç•ŒæŽ§åˆ¶çš„场景 + +ä»¥ä¸‹æ•æ„Ÿé—®é¢˜ä»ç„¶è¦æœ‰è¾¹ç•Œï¼š + +- æƒé™ç›¸å…³ +- 安全相关 +- 人事相关 +- 法务相关 + +### River çš„å®šä½ + +River 处ç†çš„æ˜¯**那些值得被组织记ä½çš„工作**ï¼Œè€Œä¸æ˜¯æ‰€æœ‰å¯¹è¯ã€‚ + +--- + +## 核心å¯ç¤º + +### å¯¹è€æ¿å’ŒæŠ€æœ¯è´Ÿè´£äººçš„é—®é¢˜æ¸…å• + +部署 AI Agent 时,ä¸ä»…è¦é—®ï¼š + +- ⌠员工有没有 Agent? +- âŒ å¯¹è¯æ—¥å¿—能ä¸èƒ½å›žæ”¶ï¼Ÿ +- ⌠个人效率有没有æå‡ï¼Ÿ + +æ›´è¦é—®ï¼š + +- ✅ 这些 Agent 对è¯**会ä¸ä¼šæ•™ä¼šåŽé¢çš„线程**? +- ✅ 员工用 AI 解决问题的过程,是一份**åŽå°æ—¥å¿—**,还是一个**团队能å‚与ã€èƒ½æŽ¥åŠ›ã€èƒ½å¤ç”¨çš„工作现场**? + +### 结论 + +| 类型 | 结果 | +|------|------| +| å¦‚æžœåªæ˜¯åŽå°æ—¥å¿— | ä¸€å †åˆ†æ•£çš„ä¸ªäººææ•ˆï¼Œæ¯ä¸ªäººéƒ½å¿«äº†ä¸€ç‚¹ï¼Œä½†ç»„织没有å˜èªæ˜Ž | +| 如果是å¯å作的工作现场 | ç»„ç»‡ä»Žæ¯æ¬¡ AI 工作中学习,实现**自进化** | + +### é‡‘å¥ + +> **ç§äºº Agent çš„å¤©èŠ±æ¿æ˜¯é”®ç›˜å‰é‚£ä¸ªäººã€‚** +> +> **公开 Agent 的价值是让åŽé¢çš„线程ä¸ä»Žé›¶å¼€å§‹ã€‚** \ No newline at end of file diff --git a/InBox/_AI翻译_别å†è‡ªå·±é’»ç ”Claude技巧了_Autoresearch帮你æžå®š_BV1tJwKzDE8x_笔记.md b/InBox/_AI翻译_别å†è‡ªå·±é’»ç ”Claude技巧了_Autoresearch帮你æžå®š_BV1tJwKzDE8x_笔记.md new file mode 100644 index 0000000..1396b77 --- /dev/null +++ b/InBox/_AI翻译_别å†è‡ªå·±é’»ç ”Claude技巧了_Autoresearch帮你æžå®š_BV1tJwKzDE8x_笔记.md @@ -0,0 +1,317 @@ +# AutoResearch 自动优化 Claude Code Skills å®Œæ•´æŒ‡å— + +## 目录 + +- [核心概念](#核心概念) +- [为什么需è¦è‡ªåŠ¨ç ”ç©¶](#为什么需è¦è‡ªåŠ¨ç ”ç©¶) +- [AutoResearch 仓库解æž](#autoresearch-仓库解æž) +- [自动研究的三个è¦ç´ ](#自动研究的三个è¦ç´ ) +- [评估设计原则](#评估设计原则) +- [实战演示æµç¨‹](#实战演示æµç¨‹) +- [演示结果](#演示结果) +- [最佳实践与注æ„事项](#最佳实践与注æ„事项) + +--- + +## 核心概念 + +### Claude Code Skills 现状 + +Claude Code Skillsï¼ˆäº‘ä»£ç æŠ€èƒ½ï¼‰æ˜¯ç”¨äºŽæ‰©å±• Claude Code 能力的æç¤ºè¯æ–‡ä»¶ï¼Œä½†å­˜åœ¨**稳定性问题**: + +| 指标 | 比例 | +|------|------| +| è¿è¡ŒæŠ€èƒ½å¾—到预期输出 | ~70% | +| è¿è¡ŒæŠ€èƒ½è¾“出垃圾结果 | ~30% | + +### 什么是 AutoResearch + +AutoResearch 是由 **Andre Karpathy**(OpenAI 创始æˆå‘˜ã€å‰ç‰¹æ–¯æ‹‰ AI 负责人)å‘布的一个 GitHub 仓库,核心功能是让**一组 AI 智能体能够自主优化æŸä¸ªæµç¨‹**。 + +原仓库地å€ï¼š +``` +https://github.com/karpathy/auto-research +``` + +--- + +## AutoResearch ä»“åº“è§£æž + +该仓库刻æ„设计得éžå¸¸ç²¾ç®€ï¼Œ**åªæœ‰ä¸‰ä¸ªé‡è¦æ–‡ä»¶**: + +### 文件结构 + +``` +auto-research/ +├── prepare.py # 机器学习专用(训练分è¯å™¨ç­‰ï¼‰ï¼Œä¸ŽæŠ€èƒ½ä¼˜åŒ–æ— å…³ +├── train.py # 核心文件,相当于你的 skill.md +└── program.py # 核心文件,相当于你的智能体 +``` + +### 工作原ç†ç±»æ¯” + +| AutoResearch 组件 | 对应内容 | +|-------------------|----------| +| `train.py` | ä½ çš„ `skill.md`(è¦ä¼˜åŒ–的技能æç¤ºè¯ï¼‰ | +| `program.py` | ä½ çš„**智能体**(负责改进技能) | + +### 优化æµç¨‹ + +``` +1. 给智能体(program.py)一个高级指令 +2. 智能体è¿è¡ŒæŠ€èƒ½ï¼ˆtrain.py),根æ®è¯„估标准评分 +3. 智能体判断"è¿™æ¬¡æ˜¯å¦æ¯”上次好" +4. 自动迭代,æç¤ºè¯è¶Šæ¥è¶Šä¸¥å¯† +5. æ¯ N 分钟自动è¿è¡Œä¸€æ¬¡ï¼ˆå¦‚æ¯ 5 分钟) +``` + +--- + +## 自动研究的三个è¦ç´  + +è¦è®©è‡ªåŠ¨ç ”ç©¶å·¥ä½œï¼Œä½ éœ€è¦å‡†å¤‡å¥½ï¼š + +### 1. 客观指标(Objective Metric) + +一个**å¯é‡åŒ–测é‡**çš„æ•°å­—ï¼Œè€Œä¸æ˜¯æ¨¡ç³Šçš„æ„Ÿè§‰æè¿°ã€‚ + +**示例:** + +| 应用场景 | 客观指标 | +|----------|----------| +| 网站加载速度 | 毫秒(ms) | +| 冷邮件活动 | 回å¤çŽ‡ï¼ˆ%) | +| Claude Code Skill | 通过率 / 评估分数 | + +### 2. 测é‡å·¥å…·ï¼ˆMeasurement Tool) + +ç†æƒ³æƒ…况下应该**自动化ã€å¯é **,无需人工介入。 + +**示例:** + +| 应用场景 | 测é‡å·¥å…· | +|----------|----------| +| 网站性能 | Google Lighthouse | +| 冷邮件 | 峿—¶ API åˆ†æž | +| Skills | **测试套件**(智能体编写的自动化测试) | + +### 3. 坿”¹å˜çš„东西(Variable to Change) + +整个优化的对象: + +| 应用场景 | 改å˜çš„内容 | +|----------|------------| +| 网站优化 | ä»£ç æ”¹åЍ | +| 冷邮件优化 | 邮件文案 | +| Skills 优化 | **æç¤ºè¯å†…容(skill.md 文件)** | + +--- + +## 评估设计原则 + +### 为什么需è¦å¤šæ¬¡è¿è¡Œè¯„ä¼° + +AI 输出本质上是**æ•°æ®åˆ†å¸ƒ**ï¼Œå­˜åœ¨éšæœºæ€§ï¼š + +``` +è¿è¡Œ 20 æ¬¡æŠ€èƒ½ï¼ˆç”Ÿæˆ 20 张图片) + ↓ +æ¯æ¬¡è¾“出都有细微差别 + ↓ +有些图片相似,有些ä¸åŒ + ↓ +å¿…é¡»è¿è¡Œå¤šæ¬¡ï¼Œç”¨ç»Ÿè®¡æ–¹æ³•评估 +``` + +### 评估的三个统计指标 + +| 指标 | å«ä¹‰ | 作用 | +|------|------|------| +| **众数(Mode)** | 出现频率最高的值 | 判断"最常è§çš„结果是什么" | +| **䏭使•°ï¼ˆMedian)** | 排åºåŽçš„中间值 | 判断"å¤§è‡´å¹³å‡æ°´å¹³" | +| **å¹³å‡å€¼ï¼ˆMean)** | 所有分数之和除以次数 | 判断"总体表现" | + +### 二元问题原则(核心è¦ç‚¹ï¼‰ + +> **评估应该使用二元的是/å¦ã€çœŸ/å‡é—®é¢˜ï¼Œå°½é‡é¿å…多值评分。** + +**原因:** å¤åˆæ¦‚率导致å˜å¼‚性放大 + +``` +äºŒå…ƒè¯„åˆ†ï¼šåªæœ‰ Pass/Fail → å˜å¼‚æ€§å¯æŽ§ +多值评分(如 1-7 分)→ æ¯ä¸ªçŽ¯èŠ‚çš„å˜å¼‚会累积放大 + ↓ +æƒ³è±¡ä¸€ä¸ªæ¼æ–—:开始很窄,å˜å¼‚累积åŽå¯èƒ½å·®å¾ˆå¤š +最终结果å¯èƒ½ä»Ž 39/40 å˜æˆ 2/40 +``` + +**多值评分的风险示例:** +- 如果给模型太多评估点 +- 模型å¯èƒ½å­¦ä¼š"å¤è¿°æ¯ä¸ªè¯„估点"æ¥é€šè¿‡æµ‹è¯• +- å°±åƒä¸ç†è§£ææ–™ä½†èƒ½è€ƒ 100 分的学生 + +### ä¸è¦è¿‡äºŽå…·ä½“/狭窄 + +**åé¢ç¤ºä¾‹ï¼ˆè¿‡äºŽä¸¥æ ¼ï¼‰ï¼š** +``` +"ç¡®ä¿è¾“出在 X 字以内" +"ç¡®ä¿åŒ…å«å…³ç³»ç¬¦å·" +"ç¡®ä¿ä¸åŒ…嫿Ÿäº›å­—符" +``` + +这会导致模型**过度优化评估指标**è€Œä¸æ˜¯çœŸæ­£æå‡è´¨é‡ã€‚ + +--- + +## 实战演示æµç¨‹ + +### 演示案例:图表生æˆå™¨æŠ€èƒ½ä¼˜åŒ– + +#### 步骤一:设置 Claude Code 环境 + +在 VSCode 或任æ„编辑器中安装 Claude Code 扩展,设置好开å‘环境。 + +#### æ­¥éª¤äºŒï¼šèŽ·å– AutoResearch 仓库 + +```bash +# 将仓库链接æä¾›ç»™æ™ºèƒ½ä½“ +"Read this: https://github.com/karpathy/auto-research" +``` + +#### 步骤三:创建评估标准 + +将评估标准定义为**4 个二元问题**: + +| # | 评估标准 | å…·ä½“è¦æ±‚ | +|---|----------|----------| +| 1 | 文字清晰度 | æ‰€æœ‰æ–‡å­—æ˜¯å¦æ¸…晰且语法正确 | +| 2 | é…色方案 | 是å¦ç¬¦åˆç²‰å½©è‰²ã€æŸ”和色调(é¿å…霓虹色) | +| 3 | 布局æ¡ç† | 是å¦ä»Žå·¦åˆ°å³/从上到下有æ¡ç†ï¼ˆæ— ä¹±ç³Ÿç³Ÿçš„æ°”泡和装饰) | +| 4 | æ— æ•°å­—ç¼–å· | æ˜¯å¦æ²¡æœ‰ "1, 2, 3, 4" è¿™æ ·çš„ç¼–å· | + +#### 步骤四:æä¾›é«˜çº§æŒ‡ä»¤ç»™æ™ºèƒ½ä½“ + +使用自然语言æè¿°ä»»åŠ¡ï¼š + +``` +"我想让你用 AutoResearch åº“æ¥æ”¹è¿›å›¾è¡¨ç”Ÿæˆå™¨æŠ€èƒ½ã€‚ + + 该技能的功能是生æˆçº¦ 200 字的脚本。 + + 请用上é¢çš„仓库中的自动研究方法帮我建立一套改进系统。 + + æ¯æ¬¡æµ‹è¯•è¯·ç”Ÿæˆ 10 个图表。 + + 我希望你按回车继续。" +``` + +#### 步骤五:明确评分机制 + +``` +ç”Ÿæˆ 10 张图片 +æ¯ä¸ªå›¾ç‰‡ç”¨ 4 个标准评估 +最高分 = 40 分(10 × 4) + +æµç¨‹ï¼š +1. ç”Ÿæˆ 10 张图 +2. 用 4 个标准评估所有 10 å¼  +3. 计算 40 分中的得分 +4. 修改æç¤ºè¯ +5. å†è¯•一次 +6. 选择表现更好的版本 +``` + +--- + +## 演示结果 + +### 网站优化案例 + +| 指标 | ä¼˜åŒ–å‰ | ä¼˜åŒ–åŽ | 改进 | +|------|--------|--------|------| +| 加载时间 | 1100ms | 67ms | **81.3%** | + +### 图表生æˆå™¨æŠ€èƒ½æ¡ˆä¾‹ + +| 指标 | 第一次测试 | åŽç»­è¿­ä»£ | +|------|------------|----------| +| 评估分数 | 32/40 | 37/40 | +| 迭代趋势 | 基准 | æŒç»­æå‡ | + +**视频效果:** æ™ºèƒ½ä½“ä¸æ–­è®©æç¤ºè¯è¶Šæ¥è¶Šç¬¦åˆé¢„设的粉彩色ã€å¯çˆ±å›¾æ ‡ç­‰è§„格。 + +--- + +## 最佳实践与注æ„事项 + +### ✅ 推èåšæ³• + +1. **使用二元问题评估** + - 是/å¦ã€çœŸ/å‡ + - é¿å… 1-10 分等多值评分 + +2. **ä¿æŒè¯„估标准简æ´** + - æ¯ä¸ªæŠ€èƒ½ 3-5 个核心标准 + - 太多标准会导致"å‡é€šè¿‡" + +3. **让评估自动化** + - 编写测试套件 + - 设置定时循环è¿è¡Œ + +4. **è®°å½•æ‰€æœ‰å˜æ›´** + - 模型å°è¯•çš„æ‰€æœ‰æ”¹åŠ¨æ¸…å• + - å¯ä¼ æ‰¿ç»™æœªæ¥çš„æ›´å¼ºæ¨¡åž‹ï¼ˆGPT-6ã€Claude 4.0 等) + +### ⌠é¿å…åšæ³• + +1. **ä¸è¦è¿‡äºŽå…·ä½“** + ``` + ✗ "ç¡®ä¿è¾“出在 100 字以内" + ✗ "ç¡®ä¿åŒ…å«å…³ç³»ç¬¦å·" + ``` + +2. **ä¸è¦å¤šå€¼å¤åˆè¯„分** + ``` + ✗ "X æ–¹é¢æ‰“ 1-7 分" + ✓ "X æ–¹é¢æ˜¯å¦è¾¾æ ‡ï¼šæ˜¯/å¦" + ``` + +3. **ä¸è¦åªè¿è¡Œä¸€æ¬¡** + - 必须多次è¿è¡Œå–统计结果 + - 用众数ã€ä¸­ä½æ•°åˆ¤æ–­è´¨é‡ + +--- + +## å¯åº”用场景扩展 + +AutoResearch ä¸ä»…é™äºŽ Skills 优化,å¯åº”用领域: + +| 领域 | 优化目标 | +|------|----------| +| 网站 | 加载速度ã€SEO | +| è½åœ°é¡µ | 转化率 | +| A/B 测试 | 标题ã€ç¼©ç•¥å›¾ | +| 邮件è¥é”€ | 邮件文案ã€å›žå¤çއ | +| ä»£ç  | æ€§èƒ½ã€æž¶æž„ | +| æç¤ºè¯ | 任何技能或æµç¨‹ | + +--- + +## 资æºé“¾æŽ¥ + +- **原视频:** https://www.youtube.com/watch?v=qKU-e0x2EmE +- **AutoResearch 仓库:** https://github.com/karpathy/auto-research +- **完整 Claude Code 课程:** è§ UP ä¸»é¢‘é“ + +--- + +## 总结 + +AutoResearch æä¾›äº†ä¸€ç§**让 AI 自主优化 AI** 的方法论。通过: + +1. **定义客观指标** → 知é“è¦ä¼˜åŒ–什么 +2. **建立测é‡å·¥å…·** → 知é“如何é‡åŒ–改进 +3. **æä¾›å¯å˜é‡** → æç¤ºè¯ã€ä»£ç æˆ–文案 +4. **多次è¿è¡Œ + 统计评估** → ç¡®ä¿ç»“æžœå¯é  + +å³ä½¿ä½ ä¸æ˜¯æœºå™¨å­¦ä¹ ä¸“家,也å¯ä»¥åˆ©ç”¨è¿™ä¸ªæ¡†æž¶æ˜¾è‘—æå‡ Claude Code Skills çš„å¯é æ€§å’Œå‡†ç¡®æ€§ï¼Œå®žçŽ°æŠ€èƒ½çš„**自我进化**。 \ No newline at end of file diff --git a/InBox/_播客__Agent技术周报2_harness工程能力更新_å¼€æºagent生æ€åˆ†åŒ–_BV1LjdzB3EAu_笔记.md b/InBox/_播客__Agent技术周报2_harness工程能力更新_å¼€æºagent生æ€åˆ†åŒ–_BV1LjdzB3EAu_笔记.md new file mode 100644 index 0000000..d22bc17 --- /dev/null +++ b/InBox/_播客__Agent技术周报2_harness工程能力更新_å¼€æºagent生æ€åˆ†åŒ–_BV1LjdzB3EAu_笔记.md @@ -0,0 +1,180 @@ +# Agent技术周报#2:Harness工程能力更新与开æºAgent生æ€åˆ†åŒ– + +## 本周核心主题 + +Agent开呿­£ä»Ž**å•纯的模型能力竞赛**è½¬å‘æ›´å¤æ‚çš„**系统能力构建**,Harness Engineering(脚手架工程)æˆä¸ºAgentå¼€å‘的核心差异化竞争点。 + +业界共识:有用的Agent䏿˜¯ "just best models",而是以下系统能力的组åˆï¼š + +- 文件系统访问 +- BSH(Shell)上下文压缩 +- è®°å¿†ç®¡ç† +- æƒé™æŽ§åˆ¶ +- é‡è¯•机制 +- 评估机制 +- å­Agentå作 + +--- + +## 趋势预测 + +> 预计到 **2025年下åŠå¹´**ï¼Œç«žäº‰ç„¦ç‚¹å°†ä»Žæ¨¡åž‹ç²¾åº¦è½¬å‘æ•´ä¸ªAgent系统的**鲿£’性**å’Œ**å¯è§‚测性**。 + +用户核心关注点: + +| 旧关注点 | 新关注点 | +|---------|---------| +| 啿¬¡æŽ¨ç†ç²¾åº¦ | èƒ½å¦æŒç»­è¿è¡Œæ•°å°æ—¶ç”šè‡³æ•°å¤© | +| æ¨¡åž‹æ˜¯å¦æœ€èªæ˜Ž | 任务中途出错能å¦è‡ªåЍæ¢å¤ | +| 上下文ç†è§£èƒ½åŠ› | 长对è¯ä¸­æ˜¯å¦ä¸¢å¤±ä¸Šä¸‹æ–‡ | + +--- + +## Harness工程的技术实践路径 + +### 1. 解耦与标准化 + +**代表方案:OpenAI Ediness SDK** + +- å°†Harness逻辑与实际计算存储环境分离 +- Harness本身**å¼€æºå¯å®šåˆ¶** +- å…·ä½“ä»£ç æ‰§è¡Œå§”托给第三方沙箱环境(如 Modalã€CodeFlare) +- å½¢æˆ **无状æ€ç¼–排 + 有状æ€éš”离工作区** çš„æ¨¡å¼ +- 优势:**既安全åˆçµæ´»** + +### 2. å¼ºåŒ–æŽ§åˆ¶ä¸ŽæŠ¤æ  + +**代表方案:Lachain DeepAgent** + +- å°†Agenté™çº§ä¸º**结构化的工具调用** +- 通过**中间件**å’Œ**严格的文件系统æƒé™**è®¾ç½®æŠ¤æ  +- 防止Agent行为失控 + +### 3. 技能æŒä¹…化与演化(关键创新) + +**代表方案:HermesAgent** + +æ ¸å¿ƒæ€æƒ³ï¼šæŠŠAgentæˆåŠŸå®Œæˆçš„工作æµ**自动ä¿å­˜**为å¯å¤ç”¨çš„æŠ€èƒ½ + +``` +工作æµç¨‹ï¼šæ‰§è¡Œ → æˆåŠŸ → ä¿å­˜æŠ€èƒ½ → å¯å¤ç”¨ → æŒç»­ç§¯ç´¯ +``` + +- Agentä¸å†æ˜¯"干完就忘" +- 能积累ç»éªŒï¼Œ**越用越强** +- å½¢æˆ **学习 → 固化 → å¤ç”¨** 的闭环 + +--- + +## å®žé™…å½±å“ + +### ä¼ä¸šå±‚é¢ + +- **部署门槛å˜åŒ–**:从"选GPT-4还是Claude"转å‘"如何设计稳定安全的Harness系统" +- 云æœåŠ¡å•†è¿…é€Ÿå应:Cloudflareã€Modal等推出专门的**Agent沙箱æœåŠ¡**,试图在生æ€å±‚绑定用户 +- å¼€æºHarness项目正在快速追赶闭æºç³»ç»Ÿçš„能力 + +### ç”¨æˆ·å±‚é¢ + +- 更关注Agentçš„**æŒç»­è¿è¡Œèƒ½åŠ›**ã€**自动æ¢å¤**ã€**ä¸Šä¸‹æ–‡ä¿æŒ** +- è¡ç”Ÿæ–°çŽ°è±¡ï¼š**Wing Fatigue**(æŒç»­çš„审查ã€ä¿®æ­£AI输出带æ¥çš„精神疲劳) +- åå‘æŽ¨åŠ¨ç³»ç»Ÿæœ¬èº«éœ€è¦æ›´å¯é ã€æ›´è‡ªåŠ¨åŒ– + +--- + +## å¼€æºAgent生æ€åˆ†åŒ– + +> 本周焦点:开æºAgentæ¡†æž¶æ—©æœŸç™¾èŠ±é½æ”¾ï¼ŒçŽ°åœ¨å¼€å§‹åƒæ“作系统一样出现**清晰的定ä½åˆ†åŒ–**。 + +### ä¸»è¦æ¡†æž¶å¯¹æ¯” + +| 框架 | å®šä½ | 特点 | 目标用户 | +|------|------|------|----------| +| **HermesAgent** | å¯ç¼–程专业Agent | 高度å¯å®šåˆ¶ã€æŠ€èƒ½æŒä¹…化ã€å·¥å…·ç®± | å¼€å‘者和高级用户 | +| **Open Interpreter / Open Cloud** | 峿—¶è¿è¡Œä¸ªäººåŠ©ç† | 记忆导入ã€Memory Palaceã€èŠå¤©UI优化ã€è§†é¢‘ç”Ÿæˆæ’ä»¶ | 普通用户 | + +### HermesAgent(本周更新 V0.9 / V0.10) + +核心功能: + +- 专业的本地Web管ç†ä»ªè¡¨ç›˜ +- 强大的**技能æŒä¹…化**功能 +- 丰富的集æˆèƒ½åŠ› + +典型应用场景: +> 用户用它自动修å¤å¼€æºæ¨¡åž‹çš„底层代ç bug → 跑测试 → ç”ŸæˆæŠ¥å‘Š → 上传到模型社区,全程高度自制。 + +**æ€æ‰‹é”**ï¼šä¸æ˜¯ä¼šç”¨å·¥å…·ï¼Œè€Œæ˜¯èƒ½**固化技能**——让Agentä»Žä¸´æ—¶å·¥å˜æˆæœ‰ç»éªŒçš„è€å‘˜å·¥ã€‚ + +### Open Cloud + +核心功能: + +- 记忆导入 +- Memory Palace +- èŠå¤©UI优化 +- è§†é¢‘ç”Ÿæˆæ’ä»¶é›†æˆ + +**定ä½**:更åå‘峿—¶è¿è¡Œä¸ªäººåŠ©ç†ï¼Œç”¨æˆ·ä½“验更å‹å¥½ã€‚ + +### 新入局者 + +| 框架 | 特点 | +|------|------| +| **OpenAG** | å¼€æºäº‘ç¼–ç Agentç«™ | +| **DeepAgent** | 底层è¿è¡Œ1,支æŒå¯æ’æ‹”æ¨¡åž‹ã€æä¾›å•†ã€æ²™ç®±ã€ä¸­é—´ä»¶ã€è¿½è¸ªç­‰ | + +--- + +## è¡Œä¸šæ ¼å±€å½±å“ + +> 2025å¹´å¯èƒ½è¿Žæ¥Agent框架的 **Linux vs Windows** 时刻。 + +- 用户根æ®**å¯ç¼–程性需求**(Hermesæ–¹å‘)还是**应用性需求**(Open Cloudæ–¹å‘)åšé€‰æ‹© +- å¼€æºAgent在**å¯å¤çŽ°æ€§**å’Œ**å¯å®¡è®¡æ€§**上的优势凸显 +- 开始å¸å¼•对**逿˜Žåº¦**å’Œ**å¯æŽ§æ€§**æœ‰è¦æ±‚çš„ä¼ä¸šç”¨æˆ· +- é—­æºæ–¹æ¡ˆï¼ˆGitHub Copilotã€Claude Codeç­‰ï¼‰ä»æœ‰å…ˆå‘和集æˆä¼˜åŠ¿ï¼Œä½†å¼€æºè¿½èµ¶é€Ÿåº¦éžå¸¸å¿« + +--- + +## 其他值得关注的技术趋势 + +### 1. 安全与åˆè§„转型 + +新的架构正在推动审查é‡ç‚¹ä»Ž**代ç å®‰å…¨**转å‘**AI行为安全** + +- 结åˆGit版本管ç†çš„存储方案 +- 为Agent所有æ“作æä¾›**审计追踪**å’Œ**回滚能力** + +### 2. 垂直化与平å°åŒ–并行 + +- **å¹³å°åŒ–**:通用Agent平尿‰©å±•为Agent工作区 +- **垂直化**:é¢å‘生命科学ã€ç½‘络安全等高价值领域的垂直专业Agent兴起,针对特定领域知识深度优化 + +### 3. 本地部署加速 + +- å°†Qwen 3.6模型通过**é‡åŒ–技术** +- å¯åœ¨**消费级显å¡**甚至大内存普通电脑上è¿è¡Œ + +典型场景: +> 用户用本地部署的模型分æžé•¿è¾¾**æ•°å万字**的个人日记,数æ®å®Œå…¨ä¸ç”¨ç¦»å¼€æœ¬åœ°ï¼Œ**éšç§ä¼˜åŠ¿æ— å¯æ›¿ä»£** + +--- + +## 总结 + +Agent战场已全é¢å‡çº§ï¼šä»Žå•点模型比拼扩展到**整体系统比拼**。 + +### å†³å®šæ€§ç«žäº‰ä¼˜åŠ¿æ¥æº + +| 能力 | 说明 | +|------|------| +| 容错性 | 系统容许组件失败 | +| 坿¢å¤æ€§ | 出错åŽèƒ½è‡ªåЍæ¢å¤ | +| å¯å®¡è®¡æ€§ | 所有æ“作å¯è¿½æº¯ | +| 坿¼”化性 | ç»éªŒç§¯ç´¯èƒ½åŠ› | + +**Harness工程**是构建这些能力的核心学科。 + +- å¼€æºç”Ÿæ€ä¼šç»§ç»­åˆ†åŒ–,æä¾›ä¸åŒå±‚级的解决方案 +- ä¼ä¸šåŠä¸ªäººç”¨æˆ·çš„选择标准需从"模型智能"转å‘"**模型å¯é æ€§**"等系统能力 \ No newline at end of file diff --git a/InBox/milky_BV17y7U6EER5.md b/InBox/milky_BV17y7U6EER5.md new file mode 100644 index 0000000..a67dc89 --- /dev/null +++ b/InBox/milky_BV17y7U6EER5.md @@ -0,0 +1,158 @@ +--- +title: "[Milky] 为您整ç†ã€ŠåŒ—大Agent新范å¼ï¼šä¸æ”¹æ¨¡åž‹æƒé‡ï¼Œæ•ˆæžœç¿»å€åŒ—大æžå‡ºAgent新范å¼ï¼šä¸æ”¹æ¨¡åž‹æƒé‡ï¼Œæ•ˆæžœæŽ¥è¿‘ç¿»å€ã€‹ç¬”è®° | BV17y7U6EER5" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2068 +--- + +Milky 为您整ç†äº†ã€ŠåŒ—大Agent新范å¼ï¼šä¸æ”¹æ¨¡åž‹æƒé‡ï¼Œæ•ˆæžœç¿»å€åŒ—大æžå‡ºAgent新范å¼ï¼šä¸æ”¹æ¨¡åž‹æƒé‡ï¼Œæ•ˆæžœæŽ¥è¿‘ç¿»å€ã€‹ | BV17y7U6EER5 笔记。 + +Life Harnessness:北大Agentä¼˜åŒ–æ–°èŒƒå¼ + +核心å‘现 + +传统Agent优化的核心å‡è®¾è¢«æŽ¨ç¿»ï¼šAgent的效果并éžå®Œå…¨ç”±æ¨¡åž‹èƒ½åŠ›å†³å®šã€‚åŒ—äº¬å¤§å­¦è¿™ç¯‡è®ºæ–‡è¯æ˜Žï¼Œåœ¨å¾ˆå¤šæƒ…况下,Agentçš„å¤±è´¥ä¸æ˜¯å› ä¸ºæ¨¡åž‹"笨",而是因为模型与环境之间的接å£ä¸åŒ¹é…。 + + +Agent的本质å†å®šä¹‰ + +传统观点认为:Agent ≈ LLM,能力强则Agent强 + +论文新观点:Agent是一个完整的交互循环系统,包å«ä»¥ä¸‹ç»„件: + +` +环境 → 观测 → è¿è¡Œæ—¶ç³»ç»Ÿ → 工具定义 → 动作模型 → 输出动作 + ↑ ↓ + â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â† +` + +| 组件 | 说明 | +|------|------| +| è¿è¡ŒçŽ¯å¢ƒ | 环境给观测,定义工具和动作 | +| 动作执行器 | 模型输出动作,执行器执行 | +| å馈循环 | 执行结果åé¦ˆå›žæ¥æ›´æ–°ä¸‹ä¸€æ­¥å†³ç­– | + +关键洞察:模型输出相åŒï¼Œç»“æžœå¯èƒ½å®Œå…¨ä¸åŒã€‚整个行为是模型和è¿è¡Œæ—¶çŽ¯å¢ƒå…±åŒå†³å®šçš„。 + + +问题根æºï¼šæŽ¥å£å±‚ä¸åŒ¹é… + +传统Agent常è§çš„失败场景: + +模型ä¸çŸ¥é“APIçš„è°ƒç”¨æ ¼å¼ +ä¸çŸ¥é“ä»€ä¹ˆåŠ¨ä½œæ˜¯åˆæ³•çš„ +ä¸çŸ¥é“åé¦ˆä¿¡å·æ˜¯ä»€ä¹ˆæ„æ€ +ä¸çŸ¥é“ä»€ä¹ˆæ—¶å€™è¯¥åœæ­¢ + +传统解决方案:通过SFT(监ç£å¾®è°ƒï¼‰æŠŠè¿™äº›çŸ¥è¯†çŒè¿›æ¨¡åž‹æƒé‡ + +新方案æ€è·¯ï¼šä¸ºä»€ä¹ˆæŠŠçŽ¯å¢ƒç‰¹å®šçš„çŸ¥è¯†ç¡¬ç¼–ç åˆ°æ¨¡åž‹é‡Œï¼Ÿè¿™äº›ä¸œè¥¿åº”该在接å£å±‚处ç†ã€‚ + + +Life Harnessness 框架 + +核心æ€è·¯ + +䏿”¹æ¨¡åž‹æƒé‡ï¼Œåªæ”¹è¿è¡Œæ—¶æŽ¥å£ + +从训练轨迹中学习,把åå¤å‡ºçŽ°çš„äº¤äº’å¤±è´¥è½¬æ¢æˆå¯å¤ç”¨çš„干预。 + +四个维度的å¯å¤ç”¨å¹²é¢„ + +| 维度 | 功能 | 说明 | +|------|------|------| +| 环境契约 (Environment Contract) | 告诉模型环境规则 | 明确这个环境中什么能åšã€ä»€ä¹ˆä¸èƒ½åš | +| ç¨‹åºæŠ€èƒ½ (Program Skill) | 任务分解标准化 | æŠŠå¤æ‚ä»»åŠ¡æ‹†è§£æˆæ ‡å‡†æµç¨‹ | +| 动作实现 (Action Implementation) | æ ¼å¼è½¬æ¢ | 把模型的高层æ„å›¾è½¬æ¢æˆçŽ¯å¢ƒèƒ½ç†è§£çš„ç²¾ç¡®æ ¼å¼ | +| 轨迹调控 (Trajectory Regulation) | æµç¨‹æŽ§åˆ¶ | 决定什么时候该回溯ã€ä»€ä¹ˆæ—¶å€™è¯¥åœæ­¢ã€ä»€ä¹ˆæ—¶å€™è¯¥é‡è¯• | + +æ ¸å¿ƒç‰¹å¾ + +训练åŽå›ºå®šï¼šHarness一旦训练好就固定下æ¥ï¼Œè¯„ä¼°æ—¶ä¸å†æ”¹å˜ +éžåЍæ€è°ƒæ•´ï¼šä¸æ˜¯æŽ¨ç†æ—¶è¿˜åœ¨åЍæ€è°ƒæ•´çš„东西 +标准化接å£é€‚é…层:类似于给Agenté…了一个"ç»éªŒä¸°å¯Œçš„项目ç»ç†" + + +实验结果 + +评估规模 + +7个确定性环境 +18个模型骨干(从最å°åˆ°æœ€å¤§å…¨è¦†ç›–) +126个模型-çŽ¯å¢ƒç»„åˆ + +æ•ˆæžœæ•°æ® + +| 指标 | 数值 | +|------|------| +| 有æå‡çš„ç»„åˆæ•° | 116 / 126 | +| å¹³å‡ç›¸å¯¹æå‡ | 88.5% | + +88.5%是接近翻å€çš„æå‡ï¼Œä¸æ˜¯å°æ•°ç‚¹åŽä¸€ä½çš„微弱改进。 + +è¿ç§»èƒ½åŠ›éªŒè¯ + +使用 Qwen-34B 的训练轨迹进化出æ¥çš„Harness +能直接è¿ç§»åˆ°å…¶ä»– 17个模型 上 +从最å°åˆ°æœ€å¤§çš„æ¨¡åž‹å…¨éƒ¨é€‚用 + +关键å‘现:这说明HarnessæŠ“åˆ°çš„ä¸æ˜¯æŸä¸ªæ¨¡åž‹çš„特性行为,而是环境本身的结构。 + + +范å¼è½¬å˜ + +| 维度 | 旧范å¼ï¼ˆæ¨¡åž‹ä¸­å¿ƒï¼‰ | 新范å¼ï¼ˆæŽ¥å£ä¸­å¿ƒï¼‰ | +|------|-------------------|-------------------| +| ä¼˜åŒ–æ–¹å‘ | 调模型:SFTã€è’¸é¦ã€æ›´å¤§å‚æ•° | 调接å£ï¼šä¼˜åŒ–è¿è¡Œæ—¶é€‚é…层 | +| 适用场景 | Agentä¸è¡Œå°±è°ƒæ¨¡åž‹ | Agentä¸è¡Œï¼Œå…ˆçœ‹æŽ¥å£æ˜¯å¦æœ‰é—®é¢˜ | +| å…³ç³»å®šä½ | äº’è¡¥ï¼Œéžæ›¿ä»£ | äº’è¡¥ï¼Œéžæ›¿ä»£ | + + +局陿€§ + +最适åˆç¡®å®šæ€§ã€è§„则型的环境:需è¦å¤§é‡åˆ›é€ æ€§ã€å¼€æ”¾æ€§çš„任务å¯èƒ½æ•ˆæžœä¸æ˜Žæ˜¾ +ä¾èµ–è®­ç»ƒè½¨è¿¹ï¼šéœ€è¦æœ‰è¶³å¤Ÿå¤šçš„失败案例æ‰èƒ½æ€»ç»“干预规则 +å¹²é¢„ç»´åº¦å›ºå®šï¼šç›®å‰æ˜¯4ä¸ªç»´åº¦ï¼Œèƒ½å¦æ‰©å±•åˆ°æ›´å¤šç±»åž‹çŽ¯å¢ƒè¿˜éœ€éªŒè¯ + + +未æ¥å‘å±•æ–¹å‘ + +自动å‘现与进化 +ä¸ç”¨äººå·¥å®šä¹‰4个维度,让系统自己å‘现需è¦ä»€ä¹ˆæ ·çš„æŽ¥å£é€‚é… + +跨环境è¿ç§» +在一个环境上学到的接å£é€‚é…,能å¦ç”¨åˆ°å¦ä¸€ä¸ªç±»ä¼¼çŽ¯å¢ƒ + +ååŒè¿›åŒ–(最具潜力) +Harness和模型的ååŒè¿›åŒ–,接å£å±‚与模型共åŒè¿›åŒ– + + +对普通人的æ„义 + +短期 +ä¼ä¸šçº§Agent体验大幅æå‡ +"ä½ å¾—ç”¨ç²¾ç¡®è¯æœ¯è·ŸAI说è¯"的情况越æ¥è¶Šå°‘ +接å£å±‚帮你把æ„å›¾è½¬æ¢æˆç³»ç»Ÿèƒ½ç†è§£çš„æ ¼å¼ + +中期 +Agentå¼€å‘门槛大幅é™ä½Ž +ä¸éœ€è¦æµ·é‡æ•°æ®åŽ»SFT大模型 +åªè¦æŠŠæŽ¥å£é€‚é…åšå¥½ï¼Œä¸­ç­‰æ¨¡åž‹å°±èƒ½æœ‰å¾ˆå¥½çš„æ•ˆæžœ + +长期 +å¯èƒ½æ”¹å˜æ•´ä¸ªAI产业的分工: + - 大模型厂商:负责通用推ç†èƒ½åŠ› + - 垂直领域厂商:负责接å£é€‚é…层 +比现在æ¯ä¸ªå…¬å¸éƒ½è®­ç»ƒè‡ªå·±çš„æ¨¡åž‹æ›´é«˜æ•ˆ +Harnesså¯è§£é‡Šã€å¯å®¡è®¡ï¼Œè§£å†³ç›‘管问题 + + +核心å¯ç¤º + +ä¸è¦ä¸€é‡åˆ°é—®é¢˜å°±æƒ³ç€å †ç®—力ã€å †å‚数。有时候真正的çªç ´æ¥è‡ªäºŽå¯¹é—®é¢˜æœ¬èº«çš„釿–°å®šä¹‰ã€‚ +䏿˜¯æ¨¡åž‹ä¸è¡Œï¼Œå¯èƒ½æ˜¯æˆ‘们的接å£ä¸è¡Œã€‚ +æ¢ä¸ªè§’度看问题,整个世界都ä¸ä¸€æ ·äº†ã€‚ + +────────────────────────────── +Generated by MilkyAi@Bilibili: https://space.bilibili.com/3461574540921489 \ No newline at end of file diff --git a/InBox/milky_BV1ArVU62Eac.md b/InBox/milky_BV1ArVU62Eac.md new file mode 100644 index 0000000..314567c --- /dev/null +++ b/InBox/milky_BV1ArVU62Eac.md @@ -0,0 +1,435 @@ +--- +title: "[Milky] 为您整ç†ã€Šé¢å‘架构编程范å¼ï¼Œè¶…è¶ŠOOPå’ŒMVC》笔记 | BV1ArVU62Eac" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2062 +--- + +Milky 为您整ç†äº†ã€Šé¢å‘架构编程范å¼ï¼Œè¶…è¶ŠOOPå’ŒMVC》 | BV1ArVU62Eac 笔记。 + +é¢å‘架构编程范å¼ï¼šè¶…è¶Š OOP å’Œ MVC + +一ã€ç¼–程范å¼çš„æœ¬è´¨ + +1.1 ä»€ä¹ˆæ˜¯ç¼–ç¨‹èŒƒå¼ + +编程范å¼ï¼ˆProgramming Paradigm)是指程åºçš„表达方å¼ï¼Œå®ƒä¸å†³å®šç¨‹åºèƒ½å®žçŽ°ä»€ä¹ˆåŠŸèƒ½ï¼Œåªå†³å®šèƒ½å¦æ–¹ä¾¿ã€æ˜“懂地表达功能。 + +` +过程å¼è¡¨è¾¾ï¼š +f1(); f2(); f3(); + +é¢å‘对象表达: +obj.f1(); obj.f2(); obj.f3(); +` + +两段代ç åŠŸèƒ½å®Œå…¨ç›¸åŒï¼Œéƒ½æ˜¯å…ˆæ‰§è¡Œ F1ï¼Œå†æ‰§è¡Œ F2ã€F3。表达方å¼ä¸åŒï¼Œä½†å®žçŽ°çš„åŠŸèƒ½æ˜¯ä¸€æ ·çš„ã€‚ + +关键结论: +é¢å‘对象能写的程åºï¼Œè¿‡ç¨‹å¼ä¹Ÿèƒ½å†™ +å过æ¥ä¹Ÿä¸€æ · +无论用哪ç§èŒƒå¼ï¼Œä½ çš„程åºéƒ½èƒ½å®žçŽ°ä¹°ä¸œè¥¿è¿™ä¸ªåŠŸèƒ½ + +1.2 编程范å¼çš„真正目的 + +编程范å¼çš„æ ¹æœ¬ç›®çš„æ˜¯ä¸ºäº†å¤§è§„模代ç å’Œå¤§è§„模团队分工åˆä½œã€‚ + +当代ç é‡è†¨èƒ€åˆ°ï¼š +æˆåƒä¸Šä¸‡è¡Œ +几å万行 +上百万行 + +当团队有上百å·ç¨‹åºå‘˜æ—¶ï¼Œéœ€è¦å°†æ•´ä¸ªé¡¹ç›®æ‹†åˆ†æˆå¤šä¸ªæ¨¡å—,æ¯ä¸ªç»„负责一个模å—。程åºå‘˜éœ€è¦è°ƒç”¨å…¶ä»–人开å‘的模å—,这就引出了模å—å°è£…隔离的概念。 + +1.3 模å—å°è£…隔离的概念 + +把模å—çš„è¿è¡ŒåŽŸç†å°è£…在模å—å†…ï¼Œåªæš´éœ²æŽ¥å£ã€‚模å—的调用者åªéœ€è¦ä¼šæ“作接å£ï¼Œä¸éœ€è¦ç†è§£æ¨¡å—内部的è¿è¡ŒåŽŸç†ï¼Œå°±èƒ½ä½¿ç”¨è¿™ä¸ªæ¨¡å—。 + +如果åšä¸å¥½å°è£…隔离: +è°ƒç”¨å…¶ä»–æ¨¡å—æ—¶ï¼Œéœ€è¦å……分ç†è§£é‚£ä¸ªæ¨¡å—çš„å†…éƒ¨åŽŸç† +整个项目å¯èƒ½æœ‰æˆç™¾ä¸Šåƒä¸ªæ¨¡å— +éœ€è¦æ‡‚上百个模å—的内部原ç†ï¼Œæ‰èƒ½å†™è‡ªå·±çš„ç¨‹åº +这在实际项目中是ä¸çŽ°å®žçš„ + +二ã€é¢å‘对象与模å—å°è£… + +2.1 é¢å‘对象的å°è£…优势 + +é¢å‘对象æä¾› class 语法,程åºå‘˜å¯ä»¥å¾ˆæ–¹ä¾¿åœ°æŠŠç¨‹åºæ‹†åˆ†æˆå¤šä¸ªéƒ¨åˆ†ï¼š + +`python +class A: + def interface1(self): ... + def interface2(self): ... + +class B: + def interface1(self): ... + def interface3(self): ... + +class C: + def interface2(self): ... + def interface3(self): ... +` + +æ¯ä¸ªç±»æ˜¯ä¸€ä¸ªæ¨¡å—,æ¯ä¸ªæ¨¡å—下有若干接å£ï¼ˆå¯å¤–部调用的函数)。实际项目中,æ¯ä¸ªç±»å¯èƒ½æœ‰å‡ ç™¾ä¸Šåƒè¡Œä»£ç ï¼Œå¥½å‡ å个函数接å£ï¼Œåˆ†åˆ«ç”±ä¸åŒç¨‹åºå‘˜å¼€å‘。 + +2.2 ä¸åªæ˜¯é¢å‘å¯¹è±¡åœ¨åšæ¨¡å—å°è£… + +`python +è¿‡ç¨‹å¼æ¨¡å—å°è£… +module_a.py +def f1(): ... +def f2(): ... + +module_b.py +def f3(): ... + +main.py +import module_a +import module_b +module_a.f1() +module_b.f3() +` + +效果和 class ä¸€æ ·ã€‚ä½†è¿™ç§æ–¹æ¡ˆå¤ªç¬¨é‡äº†ï¼Œæ¯”用类è¦å¤æ‚。 + +2.3 å·¥ç¨‹æˆæœ¬åŽŸåˆ™ï¼š"太麻烦,没人用" + +工程问题和数学问题ä¸åŒï¼š +数学算法ä¸éœ€è¦è€ƒè™‘æˆæœ¬ +工程问题最看é‡çš„å°±æ˜¯æˆæœ¬ + +å¦‚æžœä¸€ä¸ªä¸œè¥¿çš„ä½¿ç”¨æˆæœ¬å¤§äºŽæ”¶ç›Šï¼Œé‚£æ ¹æœ¬å°±ä¸ä¼šæœ‰äººåŽ»ç”¨å®ƒã€‚å³ä½¿è¿™æ˜¯ä¸ªå¥½ä¸œè¥¿ã€‚ + +这会导致: +åªæœ‰é‚£äº›æœ€é‡è¦çš„功能æ‰èƒ½é‡‡ç”¨è¯¥æ–¹æ¡ˆ +一些边边角角的å°åŠŸèƒ½åˆ™å®Œå…¨æ²¡æ³•ç”¨ +用它åè€Œä¼šè®©ç¨‹åºæ›´å¤æ‚ + +结论:é¢å‘对象比过程å¼é«˜çº§ï¼Œå› ä¸ºé¢å‘对象æä¾›äº†ä¸€ç§æ–¹ä¾¿çš„用于å°è£…接å£çš„语法。 + +2.4 class 的本质澄清 + +class 的本质是借å£ï¼ˆInterface)。 + +一个 class 定义得好ä¸å¥½ï¼Œå–决于: +有没有åšå¥½åŠŸèƒ½çš„å°è£… +æœ‰æ²¡æœ‰æš´éœ²å‡ºæ­£ç¡®çš„æŽ¥å£ + +至于汽车有几个轮å­ã€åƒä¸åƒé¸­å­ï¼Œæ ¹æœ¬æ— å…³ç´§è¦ã€‚ + +正确的类比:手机开机按钮就是一个接å£ã€‚按下开机键åŽï¼Œæ‰‹æœºè¿›è¡Œä¸€ç³»åˆ—夿‚çš„åˆå§‹åŒ–过程,而用户ä¸éœ€è¦æ‡‚这个过程,åªè¦ä¼šæŒ‰å¼€æœºé”®å°±å¯ä»¥äº†ã€‚ + +三ã€é¢å‘对象的设计缺陷 + +3.1 ç»§æ‰¿çš„é—®é¢˜ï¼šä»£ç æ— æ³•å¤ç”¨ + +使用继承进行代ç å¤ç”¨çš„问题: + +` + A + / \ + B C +` + +å‡è®¾ F1ã€F2ã€F3 的代ç å†™åœ¨ A 类中。用户åªéœ€è¦ F1 å’Œ F3,无法å¤ç”¨è¿™æ®µä»£ç â€”—因为继承会把 F2 也带进æ¥ã€‚ + +3.2 组åˆä¼˜äºŽç»§æ‰¿ + +ç»„åˆæ€æƒ³ï¼š +` + Main + / | \ + A B C +` + +å­æ¨¡å—æ‹†åˆ†æˆ A ç±»ã€B ç±»ã€C 类。写 Main 类的程åºå‘˜éœ€è¦ F1ã€F2ã€F3 中的哪个就组哪个,ä¸éœ€è¦çš„å°±ä¸ç»„。既简å•åˆçµæ´»ï¼Œå®Œèƒœç»§æ‰¿é“¾æ¡ã€‚ + +ç»„åˆæ˜¯ä¸€ç§æ€æƒ³ï¼Œå¹¶ä¸å±€é™äºŽæŸç§ç‰¹å®šè¯­æ³•。 + +3.3 多é‡ç»§æ‰¿çš„致命问题:é‡åå†²çª + +这是一个记账器例å­ï¼Œå­æ¨¡å— A å’Œå­æ¨¡å— C 有一个é‡å的函数 F1,这会造æˆå†²çªã€‚ + +有人会说:把其中一个函数é‡å‘½å为其他åå­—ä¸å°±å¾—了? + +现实项目里没这么简å•: +A 模å—å’Œ C 模å—å¯èƒ½åˆ†åˆ«æ˜¯ä¸¤å®¶å…¬å¸å¼€å‘的开æºåº“ +æ¯ä¸ªåº“å¯èƒ½æœ‰å‡ ä¸‡è¡Œä»£ç  +F1 函数的调用链å¯èƒ½éžå¸¸å¤æ‚ +å¦‚æžœè¦æ”¹åï¼Œå°±è¦æ”¹åŠ¨æ•´æ¡è°ƒç”¨é“¾ +项目还å¯èƒ½å­˜åœ¨å…¶ä»–库ä¾èµ–这两个库的命å +è¦æ”¹çš„è¯å°±è¦è¿žåŒå…¶ä»–库一起改 + +真正è¦å‘½çš„æ˜¯ï¼šåŽŸåº“å¯èƒ½å·²ç»åœ¨ä¸šç•Œè¿è¡Œè¿‡å¤šå¹´ï¼Œå®‰å…¨æ€§å’Œç¨³å®šæ€§æœ‰ä¿è¯ã€‚改了æºä»£ç å°±è¦æ‰¿æ‹…出 bug 的风险。 + +3.4 è¿™ç§æ”¹åŠ¨è¦æ±‚是ä¸åˆç†çš„ + +对比其他领域的例å­ï¼š +显å¡ä¸Šæœ‰ä¸€ä¸ªç”µå®¹ +主æ¿ä¸Šçš„电容å¯èƒ½å’Œæ˜¾å¡ä¸Šçš„电容é‡å或型å·ç›¸åŒ +ä¸ä¼šäº§ç”Ÿå‘½åå†²çª + +工业产å“的拆分逻辑都是组åˆã€‚å­æ¨¡å—中存在é‡å零件,根本ä¸å½±å“ä»»ä½•ä¸œè¥¿ã€‚è¿™æ‰æ˜¯æ­£ç¡®çš„å°è£…逻辑。 + +全天底下å„行å„业,就é¢å‘对象æžç‰¹æ®Šã€‚ + +å››ã€MVC æ–¹æ¡ˆçš„å±€é™ + +4.1 MVC å°±æ˜¯ç»„åˆ + +MVC æŠŠåŠŸèƒ½æ‹†åˆ†æˆæœ€ç»†çš„ Model(数æ®ï¼‰å’Œ View(函数),å†é€šè¿‡ Controller 组åˆèµ·æ¥ï¼š + +`python +class MainController: + def init(self): + self.modelA = ModelA() + self.modelB = ModelB() + self.viewC = ViewC() +` + +用哪个 model 或 view 函数就组哪个,ä¸ç”¨çš„å°±ä¸ç»„。 + +虽然 A å’Œ B 存在é‡å函数,但是并ä¸ä¼šäº§ç”Ÿå†²çªã€‚ + +4.2 MVC 的问题:抽象泄露 + +在 Main 模å—中åˆå§‹åŒ– A å’Œ B,并交æ¢ä¸¤è€…的指针时,存在一个问题: + +A å’Œ B çš„åˆå§‹åŒ–逻辑泄露到 Main 这一层了。 + +在实际项目中: +A å’Œ B å¯èƒ½æ˜¯åˆ«çš„程åºå‘˜å†™çš„底层库 +Main 模å—由业务层程åºå‘˜å†™ +底层库的逻辑本ä¸åº”该泄露到业务层 + +正确的å°è£…:æ¯ä¸€å±‚程åºå‘˜å°†æœ¬å±‚的逻辑å°è£…在本层。ä¸åº”è¯¥è¦æ±‚使用者ç†è§£æœ¬å±‚逻辑,åªè¦ä½¿ç”¨è€…会用å³å¯ã€‚ + +4.3 åˆå§‹åŒ–é€»è¾‘çš„å¤æ‚性 + +实际项目中åˆå§‹åŒ–å¯èƒ½å­˜åœ¨éžå¸¸å¤æ‚的交互关系: + +` +A å…ˆåˆå§‹åŒ–几步 +把中间结果传给 B åˆå§‹åŒ– +å†æŠŠä¸­é—´ç»“æžœä¼ å›žç»™ A,继续åˆå§‹åŒ– +` + +å¦å¤–ï¼Œå®žé™…é¡¹ç›®ä¸­å­æ¨¡å—å¯èƒ½ä¸æ­¢ä¸¤ä¸ªï¼Œå¾ˆå¯èƒ½å­˜åœ¨å¤šä¸ªå­æ¨¡å—åˆå§‹åŒ–è¿‡ç¨‹ç›¸äº’äº¤ç»‡çš„æƒ…å†µã€‚è¿™è¦æ±‚ Main 程åºå‘˜å¿…é¡»éžå¸¸ç†è§£ A å’Œ B ç­‰å­æ¨¡å—的内部实现,æ‰èƒ½å†™å‡º Main 层。 + +4.4 抽象泄露导致的问题 + +问题 1ï¼šæ¨¡å—æ— æ³•æ›¿æ¢ + +库存程åºå‘˜æ— æ³•å†™å‡ºä¸€ä¸ªæ¨¡å— C åŽ»æ›¿æ¢æ¨¡å— B,因为 Main 层耦åˆäº†æ¨¡å— B çš„åˆå§‹åŒ–é€»è¾‘ã€‚æ¨¡å— C åªè¦åˆå§‹åŒ–é€»è¾‘ç¨æœ‰ä¸åŒï¼Œå°±æ— æ³•æ›¿æ¢ B。 + +问题 2:中间层方案è¦ä¹ˆçµæ´»æ€§å·®ï¼Œè¦ä¹ˆä»£ç æžä¸ºå¤æ‚ + +ä¸€ç§æ–¹æ¡ˆæ˜¯åŠ ä¸€ä¸ªä¸­é—´å±‚ï¼ˆMiddle Layer),中间层由 A 或 B 这一层的程åºå‘˜ç¼–写。Main 层程åºå‘˜æ— éœ€ç†è§£ä¸­é—´å±‚的内部实现。 + +ä½†å­˜åœ¨ä¸¤ç§æƒ…况: +ä¸­é—´å±‚ä»£ç æœ€ä¸ºç®€å•ï¼Œä½†çµæ´»æ€§å·®ï¼šMain 程åºå‘˜æ— æ³•选择组åˆå“ªå‡ ä¸ªå­æ¨¡å—或者组åˆå…¶ä»–åŒæŽ¥å£çš„å­æ¨¡å—。比如 Main 实现ä¸äº†ç»„åˆ Aã€Cã€D 三个模å—,因为中间层åªå®žçŽ°äº† Aã€B ç»„åˆ +让中间层适é…,由 Main 层程åºå‘˜è‡ªç”±é€‰æ‹©ç»„åˆå“ªäº›å­æ¨¡å—:中间层的代ç å˜å¾—æžä¸ºå¤æ‚ + +è®°ä½"太麻烦,没人用"原则。 + +4.5 ä¾èµ–注入和微æœåŠ¡ + +ä¾èµ–注入或微æœåŠ¡ç¡®å®žè§£å†³äº†æŠ½è±¡æ³„éœ²é—®é¢˜ã€‚è¿™ä¸¤ä¸ªæ–¹æ¡ˆéƒ½èƒ½è¿›è¡Œæ¨¡å—æ›¿æ¢ã€‚ + +è¡¡é‡å°è£…得好ä¸å¥½ï¼Œå¯ä»¥çœ‹æ­¤æ¨¡å—能ä¸èƒ½æ›¿æ¢æˆåŒç±»æ¨¡å—。 + +唯一的问题是:这俩方案太é‡åž‹äº†ã€‚ä½¿ç”¨æˆæœ¬å¤ªé«˜ã€‚ + +äº”ã€æ—¶é—´æ‚–论问题 + +5.1 æ—¶é—´æ‚–è®ºçš„æ ¹æº + +å›žåˆ°ç¬¬ä¸€ç§æ–¹æ¡ˆï¼Œåˆ†æžæ ¹æœ¬åŽŸå› ï¼š + +` +A æ¨¡å— â†â†’ B æ¨¡å— + ↓ + Main æ¨¡å— +` + +这里存在一个时间悖论: +A 模å—å’Œ B æ¨¡å—æ˜¯å…ˆå†™å‡ºæ¥çš„ +Main æ¨¡å—æ˜¯åœ¨ä¹‹åŽçš„æŸä¸ªæ—¶é—´ç‚¹å†™å‡ºæ¥çš„ + +如果想é¿å…抽象泄露到 Main 层,程åºå‘˜éœ€è¦åœ¨ Main 类出现å‰è¡¨è¾¾äº¤æ¢ A å’Œ B 的指针这件事。然而,这åšä¸åˆ°ï¼Œå› ä¸º Main åªæœ‰åœ¨ A å’Œ B å­˜åœ¨åŽæ‰å‡ºçŽ°ã€‚ + +5.2 语法é™åˆ¶å¯¼è‡´çš„困境 + +但这是因为语法é™åˆ¶ã€‚å‡è®¾ç¼–译器支æŒä½¿ç”¨æŠ½è±¡å称作为指针å,其实是ä¸å­˜åœ¨æ—¶é—´æ‚–论的。 + +å…­ã€æ–°è¯­æ³•设计方案 + +6.1 核心语法设计 + +语法基本沿袭继承,但在调用函数或æˆå‘˜å˜é‡æ—¶ï¼Œä½¿ç”¨è¯¥æˆå‘˜çš„æ•´ä¸ªå称链: + +| ç¬¦å· | å«ä¹‰ | +|------|------| +| ..(两个点) | å‘上级寻找 | +| ...(三个点) | å‘平级寻找 | +| .(一个点) | å‘下级寻找 | + +也å¯ä»¥ä½¿ç”¨ä¸Šæ–œæ ã€æ¨ªæ å’Œä¸‹æ–œæ è¡¨ç¤ºã€‚符å·ä¸é‡è¦ï¼Œé‡è¦çš„æ˜¯åŽŸç†ã€‚ + +6.2 use 关键字 + +当å称列太长时,å¯ä»¥ä½¿ç”¨ use 关键字进行缩写: + +`python +use module_a.b.c as abc +` + +实际上,这个 use 关键字本质上和传统语言里包管ç†é‡Œçš„ include 或 import 是相åŒçš„东西。 + +6.3 super 关键字 + +代ç ä¸­æœ‰ä¸ª super 关键字。ABCD 模å—å¯èƒ½æ˜¯å…ˆå†™å‡ºæ¥çš„,Main æ¨¡å—æ˜¯æœªæ¥çš„æŸä¸ªæ—¶é—´ç‚¹å†™å‡ºæ¥çš„。 + +所以写 ABCD 的时候,程åºå‘˜æ˜¯ä¸çŸ¥é“未æ¥é‚£ä¸ªä¸Šçº§æ¨¡å—å«ä»€ä¹ˆå字。这时å¯ä»¥ç”¨ super 关键字表示任æ„å称的上级模å—: + +`python +class A: + def method(self): + super..call_something() # å‘上级寻找 +` + +在这ç§å†™æ³•下: +底层模å—的逻辑å°è£…在底层 +æ¯ä¸€å±‚程åºå‘˜æ— éœ€ç†è§£åº•层模å—,åªè¦ä¼šç»„åˆå°±è¡Œäº† +å¯ä»¥ä»»æ„替æ¢åŒç±»æ¨¡å— + +6.4 from å’Œ to 关键字 + +`python +from ModuleC import xxx as xxx_renamed +to ModuleX use some_function +` + +from å’Œ to 关键字比看上去更é‡è¦ï¼Œç±»ä¼¼äºŽä¸»æ¿è®¾è®¡å¸ˆåœ¨ PCB æ¿ä¸Šè¿žåŒå¯¼çº¿ã€‚这个动作是本编程范å¼ä¸‹çš„基石。 + +6.5 模å—é‡å‘½å + +æœ‰æ—¶å­æ¨¡å—å¯èƒ½éœ€è¦åŒç±»ã€‚那么å¯ä»¥åƒä¸‹é¢è¿™æ ·é‡å‘½å: + +`python +class MainB: + from ModuleA as mod_a + from ModuleB as mod_b + # 两个模å—都有相åŒçš„æŽ¥å£ï¼Œä½†åç§°ä¸åŒæ—¶è¿›è¡Œé‡å‘½å +` + +6.6 新语法的优势 + +在抽象泄露的情况下,是无法åšåˆ°è‡ªç”±æ›¿æ¢å­æ¨¡å—的,因为上级模å—耦åˆäº†ä¸‹å±‚实现。æ¯ä¸ªä¸‹å±‚实现的逻辑ä¸åŒï¼Œæ›¿æ¢æ—¶è¦è¿žå¸¦æ›¿æ¢ï¼Œæ³„露到内层的逻辑代ç ã€‚ + +使用新语法åŽï¼š +æ¯å±‚程åºå‘˜å¯ä»¥ä»»æ„ç»„åˆ B 或 C +两者åç§°ä¸åŒæ—¶ï¼Œä½¿ç”¨ from 关键字é‡å‘½åå³å¯ +模å—å¯ä»¥è‡ªç”±æ›¿æ¢ + +ä¸ƒã€æ ¸å¿ƒåŽŸç†ï¼šå·¥ä¸šæµæ°´çº¿æ€æƒ³ + +7.1 èŒèƒ½éš”离的比喻 + +æœ¬è¯­æ³•çš„æ ¸å¿ƒæ€æƒ³æ˜¯ä»¿ç…§å·¥ä¸šæµæ°´ç”Ÿäº§çº¿ç”Ÿäº§å·¥ä¸šå“: + +ä¸åŒå·¥æ®µçš„工人是èŒèƒ½éš”离的 +ä¸åŒå·¥æ®µçš„工人无需ç†è§£å‰ä¸€ä¸ªå·¥æ®µ +åªéœ€è¦ä¼šç»„装上一个工段传输过æ¥çš„é›¶ä»¶å³å¯ +åŒæ—¶ï¼Œæœ¬å·¥æ®µçš„工人也应该将å°è£…好的零件æä¾›ç»™åŽä¸€ä¸ªå·¥æ®µçš„工人,让其无需ç†è§£æœ¬å·¥æ®µé€»è¾‘ + +7.2 空间ä½ç½®å…³ç³» + +拿主æ¿å’Œæ˜¾å¡çš„例孿¥åšè¯´æ˜Žï¼š +主æ¿ä¸Šçš„一个电容和显å¡ä¸Šçš„一个电容é‡å或型å·ç›¸åŒæ—¶ï¼Œä¸ä¼šäº§ç”Ÿåç§°å†²çª +原因在于,主æ¿å’Œæ˜¾å¡æ˜¯é€šè¿‡ä¸‰ç»´ç©ºé—´ä½ç½®å¯»æ‰¾å­é›¶ä»¶ + +本语法中的全路径巡境表达的是对象æˆå‘˜çš„空间ä½ç½®å…³ç³»ï¼Œç›¸å½“于主æ¿è®¾è®¡å¸ˆåœ¨ PCB æ¿ä¸ŠæŒ‰ç©ºé—´ä½ç½®è¿žåŒå¯¼çº¿ã€‚ + +7.3 编译期ä¾èµ–注入 + +本语法相当于在é¢å‘对象的继承语法的基础上,在编译期实现ä¾èµ–注入。 + +本语法是对é¢å‘对象的语法的å‘展或改进,而éžå¦å®šã€‚ + +å…«ã€API å…³é”®å­—ä¸Žè°ƒç”¨é“¾è€¦åˆ + +8.1 基本语法存在的问题 + +但刚刚的基本语法存在一个问题:调用链耦åˆäº†å…¶ä»–模å—çš„å称链。 + +看回例å­ï¼š +æ¨¡å— A å†è°ƒç”¨æ¨¡å— B 时,调用链耦åˆäº† B 到 D 这个å称链 +åœ¨å®žé™…é¡¹ç›®ä¸­ï¼Œæ¨¡å— B å¯èƒ½æ˜¯å…¶ä»–å…¬å¸å¼€å‘的开æºåº“ +它写的å称链å¯èƒ½æ˜¯ B → E → D +æ¨¡å— A 的程åºå‘˜æ˜¯ä¸å¯èƒ½è¦æ±‚ B 程åºå‘˜æŒ‰ A çš„è¦æ±‚改åçš„ + +所以这ç§åŸºæœ¬è¯­æ³•仅适用于模å—内部,程åºå‘˜å¯ä»¥å®Œå…¨æŽ§åˆ¶ä»£ç çš„æƒ…况下。 + +8.2 API 关键字解决方案 + +当模å—间进行交互时,需è¦å¦å¤–一ç§å°è£…机制:API 关键字。 + +`python +class ModuleA: + @API # æ ‡è®°ä¸ºå…¬å¼€æŽ¥å£ + def public_interface(self): ... + + def privatemethod(self): ... # 内部方法 +` + +本语法中ä¸å­˜åœ¨å…¶ä»–é¢å‘对象语言中的 public å’Œ private 关键字,而是使用 API 关键字控制å¯è§æ€§ã€‚ + +8.3 API 关键字的作用 + +å½“æ¨¡å— M 的未标记为 API 时: +该 M çš„æˆå‘˜å˜é‡å’Œæˆå‘˜å‡½æ•°å…¨æ˜¯ public 公有 +å¯è¢«å¤–部任æ„访问 + +使用 API 关键字å¯ä»¥ï¼š +精确控制哪些接å£å¯¹å¤–暴露 +将调用链耦åˆå°è£…在模å—内部 +å…许外部替æ¢åŒæŽ¥å£çš„æ¨¡å—而ä¸å½±å“内部实现 + +ä¹ã€æ€»ç»“ + +9.1 ç¼–ç¨‹èŒƒå¼æ¼”进路径 + +| 阶段 | 特点 | 问题 | +|------|------|------| +| è¿‡ç¨‹å¼ | 简å•直接 | 代ç è†¨èƒ€åŽéš¾ä»¥ç»´æŠ¤ | +| é¢å‘对象 | class 语法便于å°è£… | ç»§æ‰¿å¯¼è‡´ä»£ç æ— æ³•å¤ç”¨ã€é‡åå†²çª | +| MVC | ç»„åˆæ€æƒ³ | 抽象泄露ã€åˆå§‹åŒ–é€»è¾‘è€¦åˆ | +| ä¾èµ–注入/å¾®æœåŠ¡ | 解决抽象泄露 | 太é‡åž‹ã€æˆæœ¬é«˜ | + +9.2 新范å¼çš„æ ¸å¿ƒè¦ç‚¹ + +全路径巡境:通过å称链完整表达模å—间的空间ä½ç½®å…³ç³» +编译期ä¾èµ–注入:在编译阶段完æˆä¾èµ–关系的绑定 +èŒèƒ½éš”ç¦»ï¼šä»¿ç…§å·¥ä¸šæµæ°´çº¿ï¼Œæ¯å±‚程åºå‘˜æ— éœ€ç†è§£åº•层 +模å—坿›¿æ¢ï¼šè¡¡é‡å°è£…好ä¸å¥½çš„æ ‡å‡†æ˜¯èƒ½å¦è‡ªç”±æ›¿æ¢åŒç±»æ¨¡å— +API 关键字:控制模å—é—´äº¤äº’çš„æŽ¥å£æš´éœ² + +9.3 对é¢å‘对象的æ€åº¦ + +本语法是对é¢å‘对象的语法的å‘展或改进,而éžå¦å®šã€‚它解决了: +继承的代ç å¤ç”¨é—®é¢˜ +多é‡ç»§æ‰¿çš„é‡å冲çªé—®é¢˜ +MVC 的抽象泄露问题 +时间悖论导致的åˆå§‹åŒ–耦åˆé—®é¢˜ + + +相关讨论补充(æ¥è‡ªå¼¹å¹•): +边界æ¡ä»¶å¤„ç†å’Œè¾“入检查在任何范å¼ä¸‹éƒ½éœ€è¦è€ƒè™‘ +ç”¨å‡½æ•°åš API å’Œç”¨ç±»åš API 区别挺大——类å¯ä»¥ç»´æŠ¤çжæ€ï¼Œå‡½æ•°å¼æ›´çº¯ç²¹ +有些æˆå‘˜å˜é‡è¦ç»´æŠ¤çš„è¯ï¼Œé¢å‘对象还是最åˆé€‚çš„ + +────────────────────────────── +Generated by MilkyAi@Bilibili: https://space.bilibili.com/3461574540921489 \ No newline at end of file diff --git a/InBox/milky_BV1HWd6BsEmG.md b/InBox/milky_BV1HWd6BsEmG.md new file mode 100644 index 0000000..077db09 --- /dev/null +++ b/InBox/milky_BV1HWd6BsEmG.md @@ -0,0 +1,321 @@ +--- +title: "[Milky] 为您整ç†ã€ŠOpenAI:Skill的自动评分器怎么æ­ã€‹ç¬”è®° | BV1HWd6BsEmG" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 1995 +--- + +Milky 为您整ç†äº†ã€ŠOpenAI:Skill的自动评分器怎么æ­ã€‹| BV1HWd6BsEmG 笔记。 + +OpenAI Skill è‡ªåŠ¨è¯„åˆ†å™¨æž„å»ºæŒ‡å— + +一ã€ä¸ºä»€ä¹ˆéœ€è¦è¯„分器 + +当更新一个 Skill 并执行完æˆåŽï¼Œè¡¨é¢ç»“果正常ä¸ä»£è¡¨çœŸçš„å˜å¥½äº†ã€‚核心问题是: + +Skill 是å¦çœŸçš„完æˆäº†é¢„期任务? +修改是å¦å¼•入了新的问题(回归)? +如何在ä¸åŒç‰ˆæœ¬ä¹‹é—´è¿›è¡Œæ€§èƒ½æ¯”较? + +评分器的èŒè´£å°±æ˜¯å›žç­”这些问题,让 Skill 的质é‡å˜åŒ–å¯è¡¡é‡ã€å¯è¿½è¸ªã€‚ + + +二ã€è¿è¡Œè½¨è¿¹è®°å½• + +2.1 什么是è¿è¡Œè½¨è¿¹ + +è¯„åˆ†çš„å‰ææ˜¯æœ‰ä¸œè¥¿å¯ä»¥æ‰“分。OpenAI çš„åšæ³•是使用 CodeExec JSON 记录 Skill 的完整执行过程。 + +2.2 é…ç½®æ–¹å¼ + +`json +{ + "code_exec": true // å¯ç”¨åŽè¾“出结构化执行记录 +} +` + +2.3 记录内容 + +å¯ç”¨åŽï¼ŒSkill æ¯æ‰§è¡Œä¸€æ­¥éƒ½ä¼šè¾“出结构化记录,包括: + +跑了什么命令 +创建了什么文件 +æ‰§è¡Œé¡ºåº +时间戳 + +2.4 关键特性 + +| 特性 | 说明 | +|------|------| +| 完整性 | 记录完整执行æµç¨‹ï¼Œè€Œéžæ—¥å¿—æ‘˜è¦ | +| å¯è§£æžæ€§ | 结构化数æ®ï¼Œå¯è¢«ç¨‹åºç›´æŽ¥è¯»å– | +| å¯è°ƒè¯•性 | 失败时å¯ç²¾ç¡®å®šä½åˆ°å…·ä½“哪一步出错 | + +没有è¿è¡Œè½¨è¿¹ï¼Œè¯„分器åªèƒ½çœ‹æœ€ç»ˆäº§ç‰©ï¼Œæ— æ³•åˆ†æžæ‰§è¡Œè¿‡ç¨‹ã€‚ + + +三ã€è¯„分器类型 + +3.1 确定性检查(Deterministic Checks) + +3.1.1 åŽŸç† + +纯代ç è§„则驱动的检查,ä¸ç”¨å¤§æ¨¡åž‹ï¼Œå†™æ­»åˆ¤æ–­é€»è¾‘,程åºç›´æŽ¥å¯¹ç€è¿è¡Œè½¨è¿¹æ ¸å¯¹ã€‚ + +3.1.2 典型检查项 + +` +有没有执行 npm install +有没有创建 package.json +å‘½ä»¤æ‰§è¡Œé¡ºåºæ˜¯å¦ç¬¦åˆé¢„期 +是å¦åœ¨æŒ‡å®šç›®å½•执行æ“作 +` + +3.1.3 核心特性 + +| 特性 | 说明 | +|------|------| +| 确定性 | åŒæ ·è¡Œä¸ºæ¯æ¬¡åˆ¤æ–­ç»“果一致,没有模糊地带 | +| å¯è°ƒè¯• | 一旦失败,打开记录文件å³å¯çœ‹åˆ°ä»Žå“ªä¸€æ­¥å¼€å§‹å离 | + +3.1.4 局陿€§ + +确定性检查能回答"基础动作åšäº†æ²¡æœ‰",但无法回答"åšå‡ºæ¥çš„ä¸œè¥¿æ˜¯ä¸æ˜¯ä½ æƒ³è¦çš„æ ·å­"。 + + +3.2 评分细则检查(Rubric-based Checks) + +3.2.1 åŽŸç† + +使用 LLM 作为è£åˆ¤ï¼Œè¯»å–仓库内容,按预定义的评分细则输出结构化打分结果。 + +3.2.2 适用场景 + +很多 Skill 的验收标准本æ¥å°±æ˜¯è½¯æ€§è§„则,例如: + +代ç ç»“构是å¦å¹²å‡€ +组件组织是å¦ç¬¦åˆå›¢é˜Ÿçº¦å®š +æ ·å¼é…ç½®æ˜¯å¦æŒ‰æ—¢å®šé£Žæ ¼è½åœ° +命å规范是å¦éµå¾ª + +3.2.3 评分细则的拆解方法 + +æŠŠæ¨¡ç³Šçš„è´¨é‡æ ‡å‡†æ‹†æˆè‹¥å¹²ä¸ªå¯ç‹¬ç«‹åˆ¤æ–­çš„维度: + +| 模糊标准 | 拆解åŽçš„维度 | +|----------|--------------| +| 代ç è´¨é‡å¥½ | ç»„ä»¶æ˜¯å¦æŒ‰åŠŸèƒ½åˆ†ç›®å½• | +| | æ˜¯å¦æœ‰æœªä½¿ç”¨çš„引用 | +| | æ ·å¼ç±»å是å¦éµå¾ªå‘½å约定 | +| | é…置项是å¦é›†ä¸­ç®¡ç† | + +3.2.4 å…³é”®è¦æ±‚:é”å®šè¾“å‡ºæ ¼å¼ + +å¿…é¡»æå‰å®šä¹‰è¾“出模æ¿ï¼Œè§„定模型必须输出哪些字段: + +`json +{ + "passed": true/false, + "total_score": 85, + "dimensions": [ + { + "name": "component_organization", + "score": 90, + "reason": "组件按功能正确分目录" + }, + { + "name": "unused_imports", + "score": 70, + "reason": "å‘现3处未使用的import" + } + ] +} +` + +3.2.5 ä¸ºä»€ä¹ˆå¿…é¡»é”æ­»æ ¼å¼ + +| 自由输出 | 锿­»æ ¼å¼ | +|----------|----------| +| æ¯æ¬¡æŽªè¾žä¸åŒ | æ ¼å¼ç»Ÿä¸€ | +| 无法跨版本比较 | 结果å¯é‡åŒ– | +| 无法进自动化æµç¨‹ | å¯ç›´æŽ¥é›†æˆ CI/CD | +| 输出是"审稿æ„è§" | 输出是"评估数æ®" | + + +å››ã€è¯„分器组åˆç­–ç•¥ + +4.1 分工明确 + +` +确定性检查 ──→ 抓底线(基础动作有没有å‘生) +评分细则检查 ──→ 抓质é‡ï¼ˆåšå‡ºæ¥çš„东西åƒä¸åƒä½ è¦çš„) +输出格å¼é”定 ──→ é˜²é£˜ç§»ï¼ˆæ¯æ¬¡è¯„分结果一致) +` + +4.2 集æˆåˆ°æµæ°´çº¿ + +这套组åˆè®¾è®¡ä¹‹åˆå°±é¢å‘ æŒç»­é›†æˆï¼ˆCI): + +ä¸å†ä¾èµ–å·¥ç¨‹å¸ˆæ‰‹åŠ¨è§¦å‘æµ‹è¯• +æˆä¸ºæŒç»­è¿è¡Œçš„回归守门员 +Skill æ¯æ¬¡æ›´æ–°éƒ½ä¼šè‡ªåŠ¨éªŒè¯ + + +五ã€6 类扩展检查 + +åœ¨åŸºç¡€è¯„åˆ†å™¨ä¹‹ä¸Šï¼Œå¯æŒ‰éœ€å åŠ ä»¥ä¸‹æ£€æŸ¥ï¼š + +5.1 命令数与循环检测 + +` +检查è¿è¡Œè®°å½•里执行了多少æ¡å‘½ä»¤ +` + +目的:检测行为退化 + +案例:如果一个 Skill ä»¥å‰ 6 步能完æˆï¼ŒçŽ°åœ¨è¦ 18 步,表é¢ä¸Šä»»åŠ¡è¿˜æ˜¯å®Œæˆäº†ï¼Œä½†ç³»ç»Ÿæ­£åœ¨å˜å·®ã€‚ + +5.2 消耗é‡è¿½è¸ª + +` +è®°å½•æ¯æ¬¡è¿è¡Œæ¶ˆè€—çš„ token æ•°é‡ +` + +目的:防止 Skill è¶Šæ¥è¶Šè‡ƒè‚¿ + +æ¯æ¬¡æ‰§è¡Œè¶Šæ¥è¶Šè´µ +æ¯æ¬¡æ‰§è¡Œè¶Šæ¥è¶Šæ…¢ + +5.3 构建检查 + +`bash +skill 完æˆåŽç›´æŽ¥æ‰§è¡Œæž„建命令 +npm run build +` + +ç›®çš„ï¼šç«¯åˆ°ç«¯éªŒè¯ + +很多项目表é¢å®Œæˆï¼Œæž„建就露馅 +æˆæœ¬ä½Žï¼Œåº”è¯¥é»˜è®¤å¼€å¯ + +5.4 è¿è¡Œæ—¶å†’烟检查 + +`bash +å¯åЍ开呿œåС噍 +npm run dev +å‘逿µ‹è¯•请求 +curl http://localhost:3000/api/health +` + +ç›®çš„ï¼šéªŒè¯æœåŠ¡æ˜¯å¦çœŸæ­£å¯ç”¨ + +注æ„ï¼šè¿™ç±»æ£€æŸ¥æ›´æ…¢ï¼ŒæŒ‰é£Žé™©ç­‰çº§å†³å®šæ˜¯å¦æ¯æ¬¡éƒ½æ‰§è¡Œã€‚ + +5.5 仓库清æ´åº¦æ£€æŸ¥ + +` +检查任务完æˆåŽæ˜¯å¦å‡ºçްä¸è¯¥æœ‰çš„æ–‡ä»¶ +` + +目的:确ä¿ç³»ç»Ÿæ²¡æœ‰è¢«"弄è„" + +5.6 æƒé™å›žå½’检查 + +` +éªŒè¯ skill 是å¦è¿˜èƒ½åœ¨æœ€å°æƒé™ä¸‹æ­£å¸¸å·¥ä½œ +` + +目的:防止æƒé™æ¼‚ç§» + +æŸæ¬¡æ”¹åŠ¨åŽæ‚„悄开始ä¾èµ–更高æƒé™ +æƒé™æ¼‚移在自动化åŽä¼šå˜æˆç»“构性风险 + +5.7 扩展策略 + +` +åŽŸæ–‡å»ºè®®ï¼šå…ˆåŠ å¿«é€Ÿæ£€æŸ¥ï¼Œå†æŒ‰é£Žé™©å åŠ æ…¢æ£€æŸ¥ + 䏿˜¯ä¸€æ¬¡å…¨ä¸Šï¼Œæ˜¯æŒ‰éœ€æ‰©å±• +` + +| 检查类型 | 速度 | 建议频率 | +|----------|------|----------| +| 命令数检测 | å¿« | æ¯æ¬¡ | +| 消耗é‡è¿½è¸ª | å¿« | æ¯æ¬¡ | +| 仓库清æ´åº¦ | å¿« | æ¯æ¬¡ | +| 构建检查 | 中 | æ¯æ¬¡ | +| è¿è¡Œæ—¶å†’烟 | æ…¢ | 按风险 | +| æƒé™å›žå½’ | æ…¢ | 定期 | + + +å…­ã€5 æ¡æ ¸å¿ƒåŽŸåˆ™ + +原则一:é‡çœŸæ­£é‡è¦çš„东西 + +Don't measure for the sake of measuring. First, think about what you'd actually care about if it got worse. + +ä¸è¦ä¸ºäº†æœ‰æŒ‡æ ‡è€Œæœ‰æŒ‡æ ‡ï¼Œå…ˆæƒ³æ¸…楚什么å˜å·®äº†ï¼Œä½ ä¼šçœŸçš„在æ„。 + +åŽŸåˆ™äºŒï¼šå…ˆå†™æ¸…æ™°å¯æ£€æŸ¥çš„定义 + +If the success criteria are fuzzy, the evaluation will be too. + +验收标准模糊,评估就没有æ„义。先把"什么å«åšå¯¹"写æˆå¯æ‰§è¡Œçš„判断。 + +原则三:把评估扎在真实行为上 + +Record the full execution trace and write deterministic checks around the actual actions taken. + +记录 Skill 的完整è¿è¡Œè½¨è¿¹ï¼Œå›´ç»•实际执行的动作写确定性检查。 + +原则四:规则ä¸å¤Ÿæ—¶ï¼Œå†è®©æ¨¡åž‹è¡¥ä¸Š + +Use rubric-based evals to handle quality judgments that rules can't cover, not as a replacement. + +用评分细则处ç†è§„则覆盖ä¸äº†çš„è´¨é‡åˆ¤æ–­ï¼Œé¡ºåºä¸èƒ½å。确定性检查在å‰ï¼ŒLLM 评分在åŽã€‚ + +原则五:让真实失败去驱动样本增长 + +Every time you manually fix something, turn it into a test case. + +æ¯æ¬¡æ‰‹åŠ¨ä¿®å¤éƒ½æ˜¯ä¸€ä¸ªä¿¡å·ï¼ŒæŠŠå®ƒå˜æˆæµ‹è¯•用例,让 Skill æŒç»­æŠŠè¿™ä»¶äº‹åšå¯¹ã€‚ + + +ä¸ƒã€æ•´ä½“æµç¨‹å›¾ + +` +┌─────────────────────────────────────────────────────────┠+│ Skill 执行 │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ CodeExec JSON 记录è¿è¡Œè½¨è¿¹ │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ + ┌───────┴───────┠+ â–¼ â–¼ +┌───────────────┠┌─────────────────┠+│ 确定性检查 │ │ 评分细则检查 │ +│ (规则驱动) │ │ (LLM è£åˆ¤) │ +└───────┬───────┘ └────────┬────────┘ + â–¼ â–¼ + └────────┬─────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ ç»“æž„åŒ–è¯„ä¼°ç»“æžœï¼ˆè·¨ç‰ˆæœ¬å¯æ¯”较) │ +└─────────────────┬───────────────────────────────────────┘ + â–¼ +┌─────────────────────────────────────────────────────────┠+│ 进入 CI/CD æµæ°´çº¿ │ +└─────────────────────────────────────────────────────────┘ +` + + +å…«ã€å‚考资料 + +原文标题:Testing Agent Skills Systematically with Evals +原文链接:https://developers.openai.com/blog/eval-skills +è§†é¢‘æ¥æºï¼šæ…¢å­¦AI(BV1HWd6BsEmG) + +────────────────────────────── +— Milky 视频总结助手 \ No newline at end of file diff --git a/InBox/milky_BV1Hn9UBrEsH.md b/InBox/milky_BV1Hn9UBrEsH.md new file mode 100644 index 0000000..fd6cb69 --- /dev/null +++ b/InBox/milky_BV1Hn9UBrEsH.md @@ -0,0 +1,324 @@ +--- +title: "[Milky] 为您整ç†ã€ŠHarness Engineering最佳实践:深度解æžAgentHamness的底层原ç†ã€æ ¸å¿ƒç»„件和实战应用 å­¦ä¸ä¼šæˆ‘退出AI圈ï¼ã€‹ P1笔记 | BV1Hn9UBrEsH" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2013 +--- + +Milky 为您整ç†äº†ã€ŠHarness Engineering最佳实践:深度解æžAgentHamness的底层原ç†ã€æ ¸å¿ƒç»„件和实战应用 å­¦ä¸ä¼šæˆ‘退出AI圈ï¼ã€‹ P1 | BV1Hn9UBrEsH 笔记。 + +Harness Engineering 最佳实践:Agent Harness 底层原ç†ã€æ ¸å¿ƒç»„件与实战应用 + +目录 + +AI 工程师的岗ä½åˆ†å±‚体系 +å¤§æ¨¡åž‹åº”ç”¨çš„ä¸‰å±‚è¿›åŒ–èŒƒå¼ +Prompt Engineering:让模型"会说" +Context Engineering:解决上下文膨胀问题 +Agent Harness 核心架构 +Harness Engineering 的工程实践 + + +AI 工程师的岗ä½åˆ†å±‚体系 + +1.1 三层架构概述 + +在 2026 年,AI 工程师å¯åˆ†ä¸ºä¸‰ä¸ªå±‚级,æ¯ä¸ªå±‚级有明确的技术侧é‡ç‚¹ï¼š + +| 层级 | å®šä½ | 核心èŒè´£ | æŠ€æœ¯ä¾§é‡ | +|------|------|----------|----------| +| AI 产å“化 | AI 产å“ç»ç†ã€AI 解决方案架构师 | å‘现 AI 价值场景,é‡å¡‘业务æµç¨‹ | 业务分æžã€äº§å“设计 | +| AI 应用层 | AI 应用工程师ã€å¤§æ¨¡åž‹åº”ç”¨å¼€å‘ | 业务方案è½åœ°ï¼ŒAI 赋能场景 | Prompt Engineeringã€Context Engineeringã€RAG | +| AI 大模型算法层 | 模型研å‘工程师 | æå‡æ¨¡åž‹åž‚直能力 | SFT 微调ã€RLHF 对é½ã€å®‰å…¨æŠ¤æ  | + +1.2 å„层级的核心差异 + +AI 产å“化层: +èšç„¦äºŽæ‰¾åˆ° AI 的价值场景 +釿–°å®šä¹‰ä¸šåŠ¡äº§å“线 +å±žäºŽä¸šåŠ¡ä¸Žäº§å“æ–¹å‘ + +AI 应用层(Harness Engineering çš„è½åœ°å±‚): +å业务 + 方案è½åœ° +åˆ©ç”¨å¼€æºæ¨¡åž‹æž„建垂直应用 +2026 å¹´æœ€ç¨€ç¼ºã€æœ€å…·æœºä¼šçš„æ–¹å‘ + +AI 大模型算法层: +ä¸åšåŸºåº§æ¨¡åž‹ï¼ˆGPT-4ã€Qwen3.6 等基座由大厂完æˆï¼‰ +èšç„¦äºŽæ¨¡åž‹çš„垂直能力æå‡ +包括: + - SFT 微调(Supervised Fine-Tuning) + - RLHF(Reinforcement Learning from Human Feedback) + - 对é½è®­ç»ƒï¼ˆAlignment) + - 安全护æ ï¼ˆSafety Guardrails) + +1.3 èŒä¸šé€‰æ‹©å»ºè®® + +` +技术背景 → AI 应用层(最佳入场点) +产å“背景 → AI 产å“化层 → å¯å»¶ä¼¸è‡³åº”用层 +算法背景 → AI 大模型算法层 +` + +核心观点:2026 年是大模型应用è½åœ°çš„关键年份,大多数人的机会在于 AI 应用层。 + + +å¤§æ¨¡åž‹åº”ç”¨çš„ä¸‰å±‚è¿›åŒ–èŒƒå¼ + +从时间维度看,AI 应用开å‘ç»åŽ†äº†ä¸‰ä¸ªé˜¶æ®µçš„èŒƒå¼è½¬å˜ï¼š + +` +2022-2024:Prompt Engineering 时代 + ↓ +2025:Context Engineering 时代 + ↓ +2026:Agent Harness / Harness Engineering 时代 +` + + +Prompt Engineering:让模型"会说" + +3.1 æ—¶é—´çª—å£ + +2022 å¹´ 11 月 ChatGPT å‘å¸ƒåŽæˆä¸ºç„¦ç‚¹ + +3.2 核心问题 + +解决"如何说"çš„é—®é¢˜â€”â€”å¦‚ä½•æ›´å¥½åœ°ä¸Žæ¨¡åž‹æ²Ÿé€šï¼Œè®©æ¨¡åž‹ç”Ÿæˆæ›´é«˜è´¨é‡çš„回答。 + +3.3 æŠ€æœ¯ç‰¹å¾ + +å•对å•å¯¹è¯æ¨¡å¼ +用户输入一å¥è¯ï¼Œæ¨¡åž‹è¿”回一å¥è¯ +关注点:如何编写有效的 Prompt + +3.4 典型场景 + +` +用户 → Prompt → LLM → Response +` + + +Context Engineering:解决上下文膨胀问题 + +4.1 æ—¶é—´çª—å£ + +2025 å¹´ + +4.2 核心问题 + +éšç€ Agent å¼€å‘引入工具调用(如 MCP å议),上下文窗å£ä¸­çš„内容越æ¥è¶Šå¤šï¼Œå¯¼è‡´æ¨¡åž‹èƒ½åŠ›å而下é™ã€å¹»è§‰ï¼ˆHallucination) 问题加剧。 + +4.3 核心目标 + +解决"有什么"的问题——让模型清楚地知é“当剿‹¥æœ‰å“ªäº›ä¿¡æ¯ã€‚ + +4.4 关键概念 + +Context Window(上下文窗å£ï¼‰ï¼š +多轮对è¯çš„æ‰§è¡Œè¿‡ç¨‹ä¸­ï¼Œæ‰€æœ‰åކå²ä¿¡æ¯éƒ½å­˜å‚¨åœ¨ä¸Šä¸‹æ–‡çª—å£ä¸­ +当内容越æ¥è¶Šå¤šæ—¶ï¼Œæ¨¡åž‹ä¼šå‡ºçް"迷失"现象 + +迷失问题(Lost in Context): +模型在大é‡ä¸Šä¸‹æ–‡ä¸­æ— æ³•å‡†ç¡®è¯†åˆ«å…³é”®ä¿¡æ¯ +导致: + - å“应质é‡ä¸‹é™ + - 幻觉增加 + - 任务执行失败 + +4.5 Context Engineering çš„èŒè´£ + +| 问题 | 解决方案 | +|------|----------| +| 上下文过长 | ä¸Šä¸‹æ–‡åŽ‹ç¼©ã€æ‘˜è¦ | +| ä¿¡æ¯æ··ä¹± | 结构化组织ã€åˆ†ç±»ç®¡ç† | +| 关键信æ¯è¢«æ·¹æ²¡ | 关键信æ¯çªå‡ºã€æ£€ç´¢å¢žå¼º | + + +Agent Harness 核心架构 + +5.1 å®˜æ–¹æ¥æº + +本文档基于 LangChain 团队å‘布的关于 Agent Harness 的官方åšå®¢ï¼Œæ˜¯å…¨çƒæœ€æ‡‚ Agent 的团队å‘布的系统性技术文档。 + +5.2 Agent Harness çš„å®šä½ + +Harness çš„æœ¬æ„æ˜¯"驾驭ã€åˆ©ç”¨",Agent Harness å³å¯¹ Agent 的工程化驾驭框架。 + +5.3 核心架构体系 + +` +┌─────────────────────────────────────────┠+│ Agent Harness │ +├─────────────────────────────────────────┤ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 规划层 │ │ 执行层 │ │ +│ │ Planning │ │ Execution │ │ +│ └─────────────┘ └─────────────────┘ │ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 工具层 │ │ 记忆层 │ │ +│ │ Tools │ │ Memory │ │ +│ └─────────────┘ └─────────────────┘ │ +│ ┌─────────────┠┌─────────────────┠│ +│ │ 感知层 │ │ 评估层 │ │ +│ │ Perception │ │ Evaluation │ │ +│ └─────────────┘ └─────────────────┘ │ +└─────────────────────────────────────────┘ +` + +5.4 å„层核心组件详解 + +5.4.1 规划层(Planning) + +èŒè´£ï¼šå°†å¤æ‚ä»»åŠ¡åˆ†è§£ä¸ºå¯æ‰§è¡Œçš„å­ä»»åŠ¡ + +关键技术: +任务分解(Task Decomposition) +æ€ç»´é“¾ï¼ˆChain of Thought, CoT) +å­ä»»åŠ¡è§„åˆ’ + +5.4.2 执行层(Execution) + +èŒè´£ï¼šæ‰§è¡Œè§„划层生æˆçš„å­ä»»åŠ¡ + +关键技术: +工具调用(Tool Calling) +动作执行(Action Execution) +结果å馈 + +5.4.3 工具层(Tools) + +èŒè´£ï¼šä¸º Agent æä¾›å¤–部能力 + +典型工具类型: +MCP 工具(Model Context Protocol) +API 调用 +æœç´¢å¼•擎 +æ•°æ®åº“查询 +文件系统æ“作 + +5.4.4 记忆层(Memory) + +èŒè´£ï¼šå­˜å‚¨å’Œç®¡ç† Agent 的历å²çжæ€ä¸Žä¸Šä¸‹æ–‡ + +记忆类型: +| 类型 | 说明 | 用途 | +|------|------|------| +| 短期记忆 | 当å‰å¯¹è¯ä¸Šä¸‹æ–‡ | 处ç†å³æ—¶ä»»åŠ¡ | +| 长期记忆 | æŒä¹…化存储 | 跨会è¯ç»éªŒç§¯ç´¯ | +| 工作记忆 | å·¥ä½œè¿‡ç¨‹ä¸­çš„ä¸´æ—¶çŠ¶æ€ | ä»»åŠ¡æ‰§è¡Œä¸­é—´æ€ | + +5.4.5 感知层(Perception) + +èŒè´£ï¼šæŽ¥æ”¶å’Œå¤„ç†å¤–部输入 + +感知内容: +用户指令 +文档输入 +多模æ€ä¿¡æ¯ï¼ˆå›¾åƒã€éŸ³é¢‘等) +çŽ¯å¢ƒçŠ¶æ€ + +5.4.6 评估层(Evaluation) + +èŒè´£ï¼šè¯„ä¼° Agent æ‰§è¡Œç»“æžœçš„è´¨é‡ + +评估维度: +输出正确性 +任务完æˆåº¦ +安全性检查 +效率评估 + + +Harness Engineering 的工程实践 + +6.1 定义 + +Harness Engineering æ˜¯ç³»ç»Ÿæ€§åœ°æž„å»ºã€æµ‹è¯•ã€ä¼˜åŒ– Agent 行为能力的工程学科。 + +6.2 与传统软件工程的区别 + +| 维度 | 传统软件工程 | Harness Engineering | +|------|-------------|---------------------| +| ä¸ç¡®å®šæ€§ | 低(确定性逻辑) | 高(概率性输出) | +| 测试难度 | å¯ç²¾ç¡®æ–­è¨€ | 需概率评估 | +| 调试方法 | 日志追踪 | è¡Œä¸ºè½¨è¿¹åˆ†æž | +| è´¨é‡ä¿éšœ | å•元测试 + é›†æˆæµ‹è¯• | è¯„ä¼°é©±åŠ¨å¼€å‘ | + +6.3 核心工程实践 + +6.3.1 评估驱动开å‘(Evaluation-Driven Development) + +` +设计评估指标 → å¼€å‘ Agent → æŒç»­è¯„ä¼° → 迭代优化 +` + +6.3.2 行为å¯å¤çŽ°æ€§ + +通过ç§å­ï¼ˆseedï¼‰æŽ§åˆ¶éšæœºæ€§ +æž„å»ºå¯æµ‹è¯•çš„ Agent 行为 +建立回归测试机制 + +6.3.3 多维度评测 + +任务完æˆçŽ‡ï¼šAgent 是å¦å®Œæˆç›®æ ‡ +效率指标:消耗的 Token æ•°é‡ã€æ‰§è¡Œæ—¶é—´ +è´¨é‡è¯„分:输出的人力评估 +安全性检查:有害内容过滤 + +6.4 LangChain Agent Harness 的工具链 + +` +┌──────────────────────────────────────────┠+│ LangChain ç”Ÿæ€ â”‚ +├──────────────────────────────────────────┤ +│ LangChain │ Agent 开呿¡†æž¶ │ +│ LangSmith │ è¿½è¸ªä¸Žè¯„ä¼°å¹³å° â”‚ +│ LangServe │ Agent 部署æœåŠ¡ │ +│ LangGraph │ Agent 工作æµç¼–排 │ +└──────────────────────────────────────────┘ +` + + +补充:观众å馈中的有价值观点 + +本节整ç†è‡ªè§†é¢‘弹幕中观众的补充与讨论 + +7.1 关于 Context Engineering 的延伸 + +Context Engineering ä¸ä»…解决"上下文膨胀",还需è¦è€ƒè™‘ä¿¡æ¯å¯†åº¦é—®é¢˜ +有效上下文 = 去除噪音åŽçš„æ ¸å¿ƒä¿¡æ¯ +常用的压缩策略:LLM 摘è¦ã€å…³é”®ä¿¡æ¯æå–ã€ä¿¡æ¯åŽ»é‡ + +7.2 关于 Agent å¹»è§‰çš„å¤„ç† + +幻觉问题在å•轮对è¯ä¸­å·²å­˜åœ¨ +在多轮 Agent æ‰§è¡Œä¸­ï¼Œå¹»è§‰ä¼šè¢«çº§è”æ”¾å¤§ +建议在æ¯ä¸ªå…³é”®æ­¥éª¤å¢žåŠ è‡ªæˆ‘æ ¡éªŒæœºåˆ¶ + +7.3 关于实际è½åœ°çš„建议 + +ä¸è¦è¿‡åº¦è¿½æ±‚ Agent 的自主性,人机ååŒå¾€å¾€æ›´å¯é  +åˆæœŸåº”èšç„¦åž‚直场景,积累领域知识åŽå†æ‰©å±• + + +附录:关键术语表 + +| 英文术语 | 中文解释 | +|----------|----------| +| Harness Engineering | 驾驭工程,Agent 的系统工程化方法 | +| Agent Harness | Agent æ¡†æž¶çš„æ ¸å¿ƒç»„ä»¶é›†åˆ | +| Prompt Engineering | æç¤ºè¯å·¥ç¨‹ï¼Œä¼˜åŒ–äººæœºäº¤äº’è´¨é‡ | +| Context Engineering | 上下文工程,管ç†ä¿¡æ¯è¾“å…¥è´¨é‡ | +| Hallucination | 幻觉,LLM 生æˆè™šå‡æˆ–ä¸å‡†ç¡®å†…容 | +| Chain of Thought (CoT) | æ€ç»´é“¾ï¼Œå¼•导模型展示推ç†è¿‡ç¨‹ | +| SFT | Supervised Fine-Tuning,有监ç£å¾®è°ƒ | +| RLHF | Reinforcement Learning from Human Feedback,基于人类å馈的强化学习 | +| MCP | Model Context Protocol,模型上下文åè®® | +| Agent | 智能体,能够自主执行任务的 AI 系统 | + + +笔记说明:本笔记基于 LangChain 团队å‘布的官方åšå®¢æ•´ç†ï¼Œèšç„¦äºŽ Agent Harness çš„æŠ€æœ¯æž¶æž„ä¸Žå·¥ç¨‹å®žè·µã€‚è§†é¢‘åŽŸç‰ˆå¯¹ä¸‰å±‚æž¶æž„æœ‰è¯¦ç»†å±•å¼€ï¼Œè¯»è€…å¯æ ¹æ®éœ€è¦ç»“åˆåŽŸè§†é¢‘æ·±å…¥ç†è§£å„层级的技术细节。 + +────────────────────────────── +— MilkyAi \ No newline at end of file diff --git a/InBox/milky_BV1LjdzB3EAu.md b/InBox/milky_BV1LjdzB3EAu.md new file mode 100644 index 0000000..b552af8 --- /dev/null +++ b/InBox/milky_BV1LjdzB3EAu.md @@ -0,0 +1,186 @@ +--- +title: "[Milky] 为您整ç†ã€Š[播客] Agent技术周报2,harness工程能力更新,开æºagent生æ€åˆ†åŒ–》笔记 | BV1LjdzB3EAu" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 1989 +--- + +Milky 为您整ç†äº†ã€Š[播客] Agent技术周报2,harness工程能力更新,开æºagent生æ€åˆ†åŒ–》| BV1LjdzB3EAu 笔记。 + +Agent技术周报#2:Harness工程能力更新与开æºAgent生æ€åˆ†åŒ– + +本周核心主题 + +Agent开呿­£ä»Žå•çº¯çš„æ¨¡åž‹èƒ½åŠ›ç«žèµ›è½¬å‘æ›´å¤æ‚的系统能力构建,Harness Engineering(脚手架工程)æˆä¸ºAgentå¼€å‘的核心差异化竞争点。 + +业界共识:有用的Agent䏿˜¯ "just best models",而是以下系统能力的组åˆï¼š + +文件系统访问 +BSH(Shell)上下文压缩 +è®°å¿†ç®¡ç† +æƒé™æŽ§åˆ¶ +é‡è¯•机制 +评估机制 +å­Agentå作 + + +趋势预测 + +预计到 2025年下åŠå¹´ï¼Œç«žäº‰ç„¦ç‚¹å°†ä»Žæ¨¡åž‹ç²¾åº¦è½¬å‘整个Agentç³»ç»Ÿçš„é²æ£’性和å¯è§‚测性。 + +用户核心关注点: + +| 旧关注点 | 新关注点 | +|---------|---------| +| 啿¬¡æŽ¨ç†ç²¾åº¦ | èƒ½å¦æŒç»­è¿è¡Œæ•°å°æ—¶ç”šè‡³æ•°å¤© | +| æ¨¡åž‹æ˜¯å¦æœ€èªæ˜Ž | 任务中途出错能å¦è‡ªåЍæ¢å¤ | +| 上下文ç†è§£èƒ½åŠ› | 长对è¯ä¸­æ˜¯å¦ä¸¢å¤±ä¸Šä¸‹æ–‡ | + + +Harness工程的技术实践路径 + +解耦与标准化 + +代表方案:OpenAI Ediness SDK + +å°†Harness逻辑与实际计算存储环境分离 +Harness本身开æºå¯å®šåˆ¶ +å…·ä½“ä»£ç æ‰§è¡Œå§”托给第三方沙箱环境(如 Modalã€CodeFlare) +å½¢æˆ æ— çŠ¶æ€ç¼–排 + 有状æ€éš”离工作区 çš„æ¨¡å¼ +优势:既安全åˆçµæ´» + +å¼ºåŒ–æŽ§åˆ¶ä¸ŽæŠ¤æ  + +代表方案:Lachain DeepAgent + +å°†Agenté™çº§ä¸ºç»“构化的工具调用 +通过中间件和严格的文件系统æƒé™è®¾ç½®æŠ¤æ  +防止Agent行为失控 + +技能æŒä¹…化与演化(关键创新) + +代表方案:HermesAgent + +æ ¸å¿ƒæ€æƒ³ï¼šæŠŠAgentæˆåŠŸå®Œæˆçš„工作æµè‡ªåЍä¿å­˜ä¸ºå¯å¤ç”¨çš„æŠ€èƒ½ + +` +工作æµç¨‹ï¼šæ‰§è¡Œ → æˆåŠŸ → ä¿å­˜æŠ€èƒ½ → å¯å¤ç”¨ → æŒç»­ç§¯ç´¯ +` + +Agentä¸å†æ˜¯"干完就忘" +能积累ç»éªŒï¼Œè¶Šç”¨è¶Šå¼º +å½¢æˆ å­¦ä¹  → 固化 → å¤ç”¨ 的闭环 + + +å®žé™…å½±å“ + +ä¼ä¸šå±‚é¢ + +部署门槛å˜åŒ–:从"选GPT-4还是Claude"转å‘"如何设计稳定安全的Harness系统" +云æœåŠ¡å•†è¿…é€Ÿå应:Cloudflareã€Modal等推出专门的Agent沙箱æœåŠ¡ï¼Œè¯•å›¾åœ¨ç”Ÿæ€å±‚绑定用户 +å¼€æºHarness项目正在快速追赶闭æºç³»ç»Ÿçš„能力 + +ç”¨æˆ·å±‚é¢ + +更关注Agentçš„æŒç»­è¿è¡Œèƒ½åŠ›ã€è‡ªåЍæ¢å¤ã€ä¸Šä¸‹æ–‡ä¿æŒ +è¡ç”Ÿæ–°çŽ°è±¡ï¼šWing Fatigue(æŒç»­çš„审查ã€ä¿®æ­£AI输出带æ¥çš„精神疲劳) +åå‘æŽ¨åŠ¨ç³»ç»Ÿæœ¬èº«éœ€è¦æ›´å¯é ã€æ›´è‡ªåŠ¨åŒ– + + +å¼€æºAgent生æ€åˆ†åŒ– + +本周焦点:开æºAgentæ¡†æž¶æ—©æœŸç™¾èŠ±é½æ”¾ï¼ŒçŽ°åœ¨å¼€å§‹åƒæ“作系统一样出现清晰的定ä½åˆ†åŒ–。 + +ä¸»è¦æ¡†æž¶å¯¹æ¯” + +| 框架 | å®šä½ | 特点 | 目标用户 | +|------|------|------|----------| +| HermesAgent | å¯ç¼–程专业Agent | 高度å¯å®šåˆ¶ã€æŠ€èƒ½æŒä¹…化ã€å·¥å…·ç®± | å¼€å‘者和高级用户 | +| Open Interpreter / Open Cloud | 峿—¶è¿è¡Œä¸ªäººåŠ©ç† | 记忆导入ã€Memory Palaceã€èŠå¤©UI优化ã€è§†é¢‘ç”Ÿæˆæ’ä»¶ | 普通用户 | + +HermesAgent(本周更新 V0.9 / V0.10) + +核心功能: + +专业的本地Web管ç†ä»ªè¡¨ç›˜ +强大的技能æŒä¹…化功能 +丰富的集æˆèƒ½åŠ› + +典型应用场景: +用户用它自动修å¤å¼€æºæ¨¡åž‹çš„底层代ç bug → 跑测试 → ç”ŸæˆæŠ¥å‘Š → 上传到模型社区,全程高度自制。 + +æ€æ‰‹é”ï¼šä¸æ˜¯ä¼šç”¨å·¥å…·ï¼Œè€Œæ˜¯èƒ½å›ºåŒ–技能——让Agentä»Žä¸´æ—¶å·¥å˜æˆæœ‰ç»éªŒçš„è€å‘˜å·¥ã€‚ + +Open Cloud + +核心功能: + +记忆导入 +Memory Palace +èŠå¤©UI优化 +è§†é¢‘ç”Ÿæˆæ’ä»¶é›†æˆ + +定ä½ï¼šæ›´åå‘峿—¶è¿è¡Œä¸ªäººåŠ©ç†ï¼Œç”¨æˆ·ä½“验更å‹å¥½ã€‚ + +新入局者 + +| 框架 | 特点 | +|------|------| +| OpenAG | å¼€æºäº‘ç¼–ç Agentç«™ | +| DeepAgent | 底层è¿è¡Œ1,支æŒå¯æ’æ‹”æ¨¡åž‹ã€æä¾›å•†ã€æ²™ç®±ã€ä¸­é—´ä»¶ã€è¿½è¸ªç­‰ | + + +è¡Œä¸šæ ¼å±€å½±å“ + +2025å¹´å¯èƒ½è¿Žæ¥Agent框架的 Linux vs Windows 时刻。 + +用户根æ®å¯ç¼–程性需求(Hermesæ–¹å‘)还是应用性需求(Open Cloudæ–¹å‘)åšé€‰æ‹© +å¼€æºAgent在å¯å¤çŽ°æ€§å’Œå¯å®¡è®¡æ€§ä¸Šçš„优势凸显 +开始å¸å¼•坹逿˜Žåº¦å’Œå¯æŽ§æ€§æœ‰è¦æ±‚çš„ä¼ä¸šç”¨æˆ· +é—­æºæ–¹æ¡ˆï¼ˆGitHub Copilotã€Claude Codeç­‰ï¼‰ä»æœ‰å…ˆå‘和集æˆä¼˜åŠ¿ï¼Œä½†å¼€æºè¿½èµ¶é€Ÿåº¦éžå¸¸å¿« + + +其他值得关注的技术趋势 + +安全与åˆè§„转型 + +新的架构正在推动审查é‡ç‚¹ä»Žä»£ç å®‰å…¨è½¬å‘AI行为安全 + +结åˆGit版本管ç†çš„存储方案 +为Agent所有æ“作æä¾›å®¡è®¡è¿½è¸ªå’Œå›žæ»šèƒ½åŠ› + +垂直化与平å°åŒ–并行 + +å¹³å°åŒ–:通用Agent平尿‰©å±•为Agent工作区 +垂直化:é¢å‘生命科学ã€ç½‘络安全等高价值领域的垂直专业Agent兴起,针对特定领域知识深度优化 + +本地部署加速 + +å°†Qwen 3.6模型通过é‡åŒ–技术 +å¯åœ¨æ¶ˆè´¹çº§æ˜¾å¡ç”šè‡³å¤§å†…存普通电脑上è¿è¡Œ + +典型场景: +用户用本地部署的模型分æžé•¿è¾¾æ•°å万字的个人日记,数æ®å®Œå…¨ä¸ç”¨ç¦»å¼€æœ¬åœ°ï¼Œéšç§ä¼˜åŠ¿æ— å¯æ›¿ä»£ + + +总结 + +Agent战场已全é¢å‡çº§ï¼šä»Žå•点模型比拼扩展到整体系统比拼。 + +å†³å®šæ€§ç«žäº‰ä¼˜åŠ¿æ¥æº + +| 能力 | 说明 | +|------|------| +| 容错性 | 系统容许组件失败 | +| 坿¢å¤æ€§ | 出错åŽèƒ½è‡ªåЍæ¢å¤ | +| å¯å®¡è®¡æ€§ | 所有æ“作å¯è¿½æº¯ | +| 坿¼”化性 | ç»éªŒç§¯ç´¯èƒ½åŠ› | + +Harness工程是构建这些能力的核心学科。 + +å¼€æºç”Ÿæ€ä¼šç»§ç»­åˆ†åŒ–,æä¾›ä¸åŒå±‚级的解决方案 +ä¼ä¸šåŠä¸ªäººç”¨æˆ·çš„选择标准需从"模型智能"转å‘"模型å¯é æ€§"等系统能力 + +────────────────────────────── +— Milky 视频总结助手 \ No newline at end of file diff --git a/InBox/milky_BV1SZoXBkErT.md b/InBox/milky_BV1SZoXBkErT.md new file mode 100644 index 0000000..1a10610 --- /dev/null +++ b/InBox/milky_BV1SZoXBkErT.md @@ -0,0 +1,365 @@ +--- +title: "[Milky] 为您整ç†ã€Š2026-04-25 Harness for AI coding 团队级 AI 编程驾驭工程》笔记 | BV1SZoXBkErT" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2043 +--- + +Milky 为您整ç†äº†ã€Š2026-04-25 Harness for AI coding 团队级 AI 编程驾驭工程》 | BV1SZoXBkErT 笔记。 + +æ•æ·å›¢é˜Ÿ AI 编程驾驭工程体系 + +一ã€èƒŒæ™¯ä¸Žæ ¸å¿ƒé—®é¢˜ + +1.1 为什么需è¦å›¢é˜Ÿçº§ AI 编程体系 + +å½“å‰ AI 编程工具(如 SuperPoweã€Claude Codeã€Cursor 等)已ç»éžå¸¸å¼ºå¤§ï¼Œä½†åœ¨å›¢é˜Ÿçº§ã€é¡¹ç›®çº§åœºæ™¯ä¸‹è½åœ°å›°éš¾ã€‚核心原因是: + +需求衔接问题:产å“ç»ç†/BA 给的需求格å¼ä¸ç»Ÿä¸€ï¼Œé¢—粒度ä¸ä¸€è‡´ï¼Œå¯¼è‡´ AI 无法有效ç†è§£ +å¼€å‘实践问题:多人å作时,AI 生æˆçš„代ç é£Žæ ¼ä¸ç»Ÿä¸€ã€éš¾ä»¥å½¢æˆä¸€è‡´çš„æ•´ä½“ +å·¥å…·ç”Ÿæ€æ··ä¹±ï¼šClaude Codeã€Cursorã€windsurfã€SuperPower 等工具差异大,没有统一标准 +æµç¨‹ä¸Žåˆ¶åº¦é—®é¢˜ï¼šå›¢é˜Ÿå·¥ä½œä¹ æƒ¯éš¾ä»¥æ”¹å˜ï¼Œè¿™æ˜¯æœ€å¤§çš„é˜»åŠ›æ¥æº + +1.2 当å‰å›¢é˜Ÿä½¿ç”¨ AI 编程的认知分级 + +æ ¹æ®å¼€å‘者能力分层: + +| 级别 | æè¿° | 典型行为 | +|------|------|----------| +| åˆçº§å¼€å‘者 | 照猫画虎,ä¸çŸ¥é“系统如何工作 | 抄代ç ã€å†™ä¸šåŠ¡é€»è¾‘ï¼Œè¢« AI 替代 | +| 专家型开å‘者 | åšæŠ€æœ¯å…¬å…³ï¼Œå¤æ‚ç»„ä»¶å¼€å‘ | ä»éœ€è¦ï¼Œä½† AI å¯è¾…助 | +| 架构型开å‘者 | 设计æœåŠ¡ã€åšæƒè¡¡å†³ç­– | AI 辅助设计,但è¦äººå·¥æŠŠå…³ | +| 技术ç»ç†/CTO | 处ç†å¤æ‚混乱的问题 | 构建团队 AI 工作体系 | + +关键洞察:"è¿™ä¸ªçŽ©å…·ä¸æ˜¯çŽ© AI,是玩人"——真正的挑战ä¸åœ¨äºŽ AI 能力,而在于如何让团队按照统一的方å¼å·¥ä½œã€‚ + +1.3 AI 辅助软件工程全æµç¨‹å›¾ + +` +éœ€æ±‚åˆ†æž â†’ 技术方案设计 → 代ç ç¼–写 → Code Review → 测试 → 部署 → 生产 Bug ä¿®å¤ + ↓ ↓ ↓ ↓ ↓ ↓ ↓ + 录音转文档 打样工程 API/å•元测试 äº¤å‰æ¨¡åž‹ E2E测试 K8S部署 MCP自动 + è®¿è°ˆçºªè¦ ä»£ç æ¨¡æ¿ TDD 循环 Review Playwright 触å‘åˆå¹¶ å‘通知 + 需求文档 技术规范 + 原型链接 +` + +二ã€éœ€æ±‚阶段:如何让需求 AI å‹å¥½ + +2.1 需求规格模æ¿å¿…须包å«çš„内容 + +BA 或产å“ç»ç†ç»™çš„需求文档必须包å«ä»¥ä¸‹ 4 个关键部分: + +业务背景:为什么åšè¿™ä¸ªéœ€æ±‚ +字段清å•:所有业务字段的类型ã€é»˜è®¤å€¼ã€ä¸šåŠ¡è§„åˆ™ï¼ˆé¿å…åªç»™åŽŸåž‹å›¾è®© AI 去猜) +原型链接:Figma 图等设计稿的链接(AI å¯é€šè¿‡ MCP è¯»å– Figma) +ä¸šåŠ¡è§„åˆ™ï¼šæŒ‰æ¡æ‹†åˆ†ï¼Œä¾‹å¦‚: + - 订å•å·ç”Ÿæˆè§„则 + - å‘货规则 + - 状æ€è½¬æ¢è§„则 + +2.2 需求颗粒度的判断标准 + +ä¸è¦ç”¨ Story æ‹†åˆ†éœ€æ±‚ï¼ˆä¸€ä¸ªäººå¢žäº§æ”¹æŸ¥æ‹†æˆ 4 个 story 对 AI æ¥è¯´ä¿¡æ¯é‡ä¸å¤Ÿï¼‰ã€‚ + +æ­£ç¡®åšæ³•:一个模å—一个文档,判断颗粒度的标准是: +æ˜¯å¦æœ‰ç‹¬ç«‹çš„表结构 +是å¦å¯ä»¥å•独上线 + +2.3 新建需求 vs å˜æ›´éœ€æ±‚ + +新建需求:告诉 AI 有多少表ã€å¤šå°‘页é¢ã€å¤šå°‘功能æ“作 → AI 生æˆå®Œæ•´æ¨¡å— + +å˜æ›´éœ€æ±‚(é‡è¦ï¼‰ï¼š +å¿…é¡»ç”¨æ ‡ç­¾æ ‡æ³¨å˜æ›´ç±»åž‹ï¼š[+字段] [-字段] [修改字段] +ä¸è¦æŠŠæœ€ç»ˆå®Œæ•´çжæ€ç»™ AI,因为 AI 需è¦å¯¹æ¯”çŽ°æœ‰ä»£ç  â†’ æµªè´¹å¤§é‡ Token 且效果差 +示例: + +`markdown +è®¢å•æ¨¡å—å˜æ›´éœ€æ±‚ + +新增内容 [+] +新增字段:order_type(订å•类型,枚举值:NORMAL, VIP, B2B) + +修改内容 [~] +修改字段:shipping_address 最大长度从 200 改为 500 + +删除内容 [-] +删除字段:legacy_flag(已废弃) +` + +2.4 用 Obsidian æ­å»ºçŸ¥è¯†åº“ç»™ AI åšä¸Šä¸‹æ–‡ + +å°†æ‰€æœ‰éœ€æ±‚è§„æ ¼ã€æŠ€æœ¯è§„æ ¼éƒ½æ”¾åˆ°çŸ¥è¯†åº“ä¸­ï¼Œç”¨ Obsidian + Markdown 管ç†ï¼š + +用æµè§ˆå™¨æ’ä»¶ä¸€é”®å°†ç½‘é¡µè½¬æˆ Markdown å¹¶ä¿å­˜å›¾ç‰‡æœ¬åœ° +用 backlink 功能åšä¸Šä¸‹æ–‡å…³è” +AI 通过读å–这个知识库获得长期记忆 → "Single source of truth" + +ä¸‰ã€æŠ€æœ¯è§„æ ¼é˜¶æ®µï¼šæŠ€æœ¯æ–¹æ¡ˆè®¾è®¡ + +3.1 技术规格必须包å«çš„内容 + +技术规格是开å‘的核心输入,必须包å«ä»¥ä¸‹ 5 个部分: + +| 内容 | 工具/æ ¼å¼ | 说明 | +|------|----------|------| +| 领域模型 | PlantUML / Mermaid | 代ç åŒ–表达,便于 AI ç†è§£ | +| æ•°æ®åº“设计 | DBML / Flyway 脚本 | ä¸è¦è®© AI 直接æ“作数æ®åº“,用版本化的 Flyway 脚本 | +| API 定义 | OpenAPI / Markdown | åŽç«¯å†™å®Œ API åŽè¾“出 API 文档给å‰ç«¯ | +| æ—¶åºå›¾ | Mermaid | 夿‚æµç¨‹éœ€è¦æ—¶åºå›¾ | +| 专项设计 | Markdown | æƒé™ã€äº‹åŠ¡ã€ç¼“存等专项内容 | + +é‡è¦æ•™è®­ï¼šä¸è¦ç»™ AI 写数æ®åº“的写æƒé™ï¼Œæ›¾ç»å› ä¸º AI 动ä¸åŠ¨ä¿®æ”¹æ•°æ®åº“导致多人æ“作冲çªã€‚把写æƒé™å…³æŽ‰ï¼Œè®© AI ç”Ÿæˆ Flyway 脚本,本地测试时让 Flyway 跑。 + +3.2 DSL 驱动的技术规格 + +用领域特定语言(DSL)æ¥é©±åŠ¨æŠ€æœ¯è§„æ ¼ï¼š +领域模型用 PlantUML +æ•°æ®åº“用 DBML +API 用 OpenAPI +这些 DSL 都å¯ä»¥é€šè¿‡ä»£ç ç”Ÿæˆ → ä¿è¯å‰åŽç«¯ä¸€è‡´æ€§ + +这实际上就是模型驱动架构(Model-Driven Architecture),当团队从零开始全新的 AI 项目时,这ç§ä¸¥æ ¼çš„æ£€æŸ¥å’Œçº¦æŸæ›´å®¹æ˜“建立。 + +å››ã€æ‰“样工程:AI å‹å¥½çš„ä»£ç æ¡†æž¶ + +4.1 什么是打样工程 + +打样工程(Seed Projectï¼‰æ˜¯ä¸€ä¸ªé¢„å…ˆå®šä¹‰å¥½çš„ä»£ç æ¡†æž¶æ¨¡æ¿ï¼ŒåŒ…å«ï¼š +æ¯å±‚的类åå’ŒèŒè´£å®šä¹‰ +代ç è§„范和最佳实践 +ä¾èµ–é…置和目录结构 + +4.2 打样工程的作用 + +AI 生æˆä»£ç é£Žæ ¼ä¸€è‡´ï¼šæ‰€æœ‰ AI 都基于åŒä¸€ä¸ªæ¡†æž¶ç”Ÿæˆä»£ç  +å‡å°‘é‡å¤ä»£ç ï¼šAI 会å¤ç”¨æ¡†æž¶ä¸­çš„ç»„ä»¶è€Œä¸æ˜¯é‡å¤å†™ +é™ä½Žè®¤çŸ¥è´Ÿæ‹…:AI ä¸éœ€è¦æ¯æ¬¡ç†è§£é¡¹ç›®ç»“æž„ + +4.3 如何创建打样工程 + +从旧项目中蒸é¦å‡ºä¸€ä¸ªå¹²å‡€çš„æ–°é¡¹ç›®éª¨æž¶ +定义æ¯å±‚èŒè´£ï¼šController → Service → Repository → Entity +定义类命å规范和包结构 +放入 Git 仓库供团队共享 + +五ã€å¼€å‘阶段:让 AI å¬è¯å†™å‡ºç»Ÿä¸€é£Žæ ¼çš„ä»£ç  + +5.1 用 RAG(检索增强生æˆï¼‰æä¾›ä¸Šä¸‹æ–‡ + +将技术规格ã€ä»£ç è§„范ã€åކå²å†³ç­–ç­‰ä¿¡æ¯æ”¾åˆ°ä»£ç ä»“库的 /docs 或 /book 目录下,AI 通过检索这些文档获得上下文: + +`markdown +/my-project + /book + /requirements # 需求规格 + /specifications # 技术规格 + /api-docs # API 文档 + /src + /skills + /mcp +` + +5.2 å¤šä»»åŠ¡åŒæ­¥å¼€å‘:Worktree 的使用 + +Git Worktree å¯ä»¥æŠŠåˆ†æ”¯æ˜ å°„æˆç›®å½•,实现多任务并行: + +`bash +创建多个工作目录 +git worktree add ../feature-order feature/order +git worktree add ../feature-user feature/user + +在ä¸åŒç›®å½•ä¸‹åŒæ—¶å·¥ä½œï¼Œåšå®ŒåŽåˆå¹¶ +` + +ä½†è¦æ³¨æ„: +å¤šäººåŒæ—¶æ“作多人工作时,版本管ç†ä¼šæ¯”较痛苦 +建议æå‰æŠŠè§„格设计好,让 AI æ…¢æ…¢è·‘ï¼Œè€Œä¸æ˜¯åŒæ—¶å¼€å¤ªå¤šä»»åŠ¡ + +5.3 ä¸è¦è®© AI 边写代ç è¾¹åšè®¾è®¡ + +用 rapper5 çš„æ€è·¯ï¼šDiscovery/Design å’Œ Coding 分两个阶段。 +å…ˆåšæŽ¢ç´¢æ€§è®¾è®¡ï¼Œè®©ä¸åŒ AI 模型(GPTã€Claudeã€Gemini)å„自给出方案 +选定方案åŽï¼Œå†æ¿€æ´» Coding 角色专èŒå†™ä»£ç  +切æ¢è§’色时é‡ç½®ä¸Šä¸‹æ–‡ï¼Œé¿å… AI 注æ„力分散 + +å…­ã€æµ‹è¯•阶段:AI 写代ç å½¢æˆé—­çŽ¯çš„æ ¸å¿ƒ + +6.1 为什么测试是 AI 编程的命脉 + +"没有 API 测试和å•å…ƒæµ‹è¯•ï¼Œæ— æ³•å½¢æˆ AI 写代ç çš„闭环。" + +AI 生æˆä»£ç åŽå¿…须能自我验è¯ï¼Œå¦åˆ™ï¼š +äººå·¥éªŒè¯æ•ˆçއæžä½Ž +AI 无法å‘现自己的问题 +å›¢é˜Ÿæ— æ³•çœŸæ­£ææ•ˆ + +6.2 测试策略(3 层) + +| 测试类型 | 工具 | é©±åŠ¨æ–¹å¼ | +|----------|------|----------| +| å•元测试 | JUnit / pytest | TDD:先写测试让 AI 失败,å†å†™å®žçް | +| API 测试 | REST Assured / Newman | 自动化回归,å¯ç›´æŽ¥å¡ 90%+ 覆盖率 | +| E2E 测试 | Playwright(推è,替代了 Selenium) | ä¸Šçº¿å‰ 80% çš„ case 回归覆盖 | + +6.3 TDD 循环(SuperPower 的工作方å¼ï¼‰ + +让 AI 先写 API 测试/å•元测试 +AI è¿è¡Œæµ‹è¯• → 失败 +AI å†å†™å®žçŽ°ä»£ç  +AI 自动è¿è¡Œæµ‹è¯•éªŒè¯ â†’ 通过 + +效果:å•元测试å¯è¾¾ 100% 覆盖率,API 测试å¯è¾¾ 90%+ 覆盖率。 + +6.4 AI 写测试解决å‡é˜³æ€§é—®é¢˜ + +有时候 AI 为了让测试通过,会伪造测试逻辑。解决方案: +TDD 先写测试:先让测试失败,å†è®© AI 写实现 +交å‰éªŒè¯ï¼šç”¨ä¸åŒçš„ AI 模型互相 review 代ç å’Œæµ‹è¯• + +6.5 æµ‹è¯•ç”¨ä¾‹çš„ç®¡ç† + +测试用例直接放到代ç ä»“库中: +å•元测试:跟éšä»£ç æ¨¡å— +API 测试:放在 /test/api 目录 +E2E 测试:用 TypeScript + Playwright,放在代ç ä»“库根目录(或与å‰ç«¯é¡¹ç›®åŒä»“库) + +七ã€Review 阶段:AI 辅助 Code Review + +7.1 å¤šç§ Review æ–¹å¼ + +工具扫æï¼šSonarQube ç­‰é™æ€åˆ†æžå·¥å…· + AI è‡ªåŠ¨ä¿®å¤ +AI Review:用å¦ä¸€ä¸ª AI 模型åšäº¤å‰ reviewï¼ˆæ¢æ¨¡åž‹åš review 是常用技巧) +Agent 自动触å‘:在 PR é˜¶æ®µè‡ªåŠ¨è§¦å‘ Review Agent + +7.2 AI Review 的问题与解决方案 + +问题:AI Review æ€»æ˜¯ä¼šææ”¹è¿›å»ºè®®ï¼Œå“ªæ€•没有明显问题(因为你的 prompt 让它æé—®é¢˜ï¼‰ã€‚ + +解决方案: +è®¾ç½®é˜ˆå€¼ï¼šè¾¾åˆ°ä¸€å®šçº§åˆ«æ‰æé—®é¢˜ï¼Œå¦åˆ™ä¸è¾“出 +让 AI åªå…³æ³¨ bug 和逻辑错误,ä¸è¿‡åº¦å…³æ³¨é£Žæ ¼é—®é¢˜ +用团队的架构规约æ¥çº¦æŸ Review 标准 + +7.3 ä¸åŒåœºæ™¯çš„ Review ç­–ç•¥ + +全新项目(AI 100% 生æˆï¼‰ï¼šå¯ä»¥ç”¨æœ€ä¸¥æ ¼çš„规则,AI 写完直接修 +æ··åˆé¡¹ç›®ï¼ˆäºº + AI):å¯èƒ½å­˜åœ¨åކå²é—留问题,Review 结果噪音多,建议从新模å—开始逿­¥è§„范 +跨系统场景:AI å®¹æ˜“çŠ¯é”™ï¼ˆå°¤å…¶æ¶‰åŠ 3-5 个系统的交互),建议收敛到å•ä¸ªä»“åº“å¤„ç† + +ç»éªŒï¼šè·¨ç³»ç»Ÿæ—¶ AI 犯错误概率高达 70-80%,核心原因是缺少完整的系统间关系和业务规则上下文。 + +å…«ã€å·¥å…·é“¾ï¼šAI 编程工具全景 + +8.1 三类 AI 编程工具 + +| 类型 | 代表工具 | 特点 | +|------|----------|------| +| 命令行 CLI | Claude Code, OpenAI Codex | 适åˆå¿«é€Ÿæ“作ã€è„šæœ¬åŒ– | +| IDE é›†æˆ | Cursor, Windsurf, VS Code AI | é€‚åˆæ—¥å¸¸å¼€å‘,界é¢å‹å¥½ | +| 辅助æ’ä»¶ | SuperPower(推è个人), Copilot | 按需使用 | + +8.2 常用 MCP(Model Context Protocol) + +| MCP | 用途 | +|-----|------| +| æ•°æ®åº“ MCP | æ“作数æ®åº“(注æ„:åªè¯»ï¼Œå†™æƒé™å»ºè®®å…³é—­ï¼‰ | +| Figma MCP | 读å–设计稿 | +| Jira MCP | 管ç†å·¥å• | +| Git MCP | ä»£ç æäº¤ã€PR æ“作 | + +8.3 Skills 体系 + +Skills = 一段æç¤ºè¯ + æ¨¡æ¿ + 脚本,用于æè¿°å·¥ä½œæ–¹æ³•。 + +把打样工程的åˆå§‹åŒ–åšæˆ Skill +æŠŠå›¢é˜Ÿè§„èŒƒåšæˆ Skills +Skills 放到代ç ä»“库中共享 + +é‡è¦è§‚点: +"现在 AI ç†è§£åЛ已ç»å¾ˆå¼ºå¤§ï¼Œä¸éœ€è¦æŠŠè§„范è½å®žä¸ºéžå¸¸å›ºå®šçš„æ ¼å¼ï¼Œåªè¦è¡¨è¾¾æ¸…楚信æ¯ã€å¼ºè°ƒé‡ç‚¹å³å¯ã€‚" + +ä¸»æµ Skill 框架: +SuperPowerï¼šå†…ç½®å¤§é‡ Skills,开箱å³ç”¨ï¼Œé€‚åˆä¸ªäºº +Claude Agent(hermes):自动基于对è¯ç”Ÿæˆå’Œä¼˜åŒ– Skills +MCP:工具调用åè®® + +8.4 ä¸ºä»€ä¹ˆä¸æŽ¨è SDD 框架 + +SDD(Scenario-Driven Development)框架本身很好,但è½åœ°éš¾åº¦åœ¨äºŽå›¢é˜Ÿå…±è¯†ï¼š + +需è¦å›¢é˜Ÿæ‰€æœ‰äººæŒ‰ç…§ç›¸åŒæµç¨‹å·¥ä½œ +çŽ°å®žå›¢é˜Ÿä¸­é˜»åŠ›å¾ˆå¤§ï¼ˆä¸æ˜¯ä¸æ„¿æ„用,是习惯改ä¸äº†ï¼‰ +SuperPower 对个人很好用,但团队级很难推广 + +结论:与其强推 SDD 框架,ä¸å¦‚团队自己定义一套 Roos + Skills + MCP 的组åˆã€‚ + +ä¹ã€æž¶æž„åž‹æ€è€ƒï¼šæœªæ¥è¶‹åŠ¿ + +9.1 Agent Code 的趋势 + +未æ¥å¿…然会出现 "Agent Code" 的概念——把整个团队的所有产物(需求ã€è§„æ ¼ã€è§„èŒƒã€æµ‹è¯•)全部代ç åŒ–,放到代ç ä»“库中统一管ç†ï¼š + +`markdown +/.agent + /skills # 工作方法 + /mcp # 工具é…ç½® + /templates # æ¨¡æ¿ + /rules # 规范 + /docs # 文档 +` + +所有 AI 工具(SuperPowerã€Claude Code 等)安装时都从代ç åº“读å–é…置,实现æžè‡´é«˜æ•ˆã€‚ + +9.2 多 Agent å调的挑战 + +当å‰å¤š Agent 框架(如 CrewAIã€AutoGen)还处于早期阶段: +缺少程åºçº§åˆ«çš„精确校验(ä¸èƒ½å®Œå…¨ä¾èµ– AI 判断) +Agent 与代ç ä¹‹é—´çš„交互需è¦ç¨‹åºé©±åŠ¨è€Œéžçº¯ AI 驱动 +å¯èƒ½éœ€è¦è‡ªå·±å†™ workflow 调度器 + +9.3 共识是第一è¦åŠ¡ + +"工具是玩人的,为了获得团队的共识。" + +大公å¸ä¹‹æ‰€ä»¥æ¯”å°å…¬å¸/åˆ›ä¸šå…¬å¸æ›´éš¾æŽ¨è¿› AI 编程å˜é©ï¼Œæ˜¯å› ä¸ºï¼š +ä¹ æƒ¯éš¾ä»¥æ”¹å˜ +团队文化难以调整 +需è¦ä»Žä¸Šåˆ°ä¸‹çš„强力推动 + +åã€å›¢é˜Ÿå®žè·µå»ºè®® + +10.1 æ¸è¿›å¼è½åœ°è·¯çº¿ + +å•人验è¯é˜¶æ®µï¼šé€‰æ‹©ä¸€ä¸ªç®€å•项目,用 SuperPower + TDD éªŒè¯ AI 编程效率 +规范建立阶段:定义技术规格模æ¿ã€ä»£ç è§„èŒƒã€æ‰“样工程 +团队推广阶段:用 Skills æ ‡å‡†åŒ–å·¥ä½œæ–¹æ³•ï¼Œé€æ­¥è®©å›¢é˜ŸæŽ¥å— +自动化阶段:打通从需求到部署的全æµç¨‹ï¼Œå®žçް"代ç å³ä¸€åˆ‡" + +10.2 技术ç»ç†çš„æ ¸å¿ƒèŒè´£ + +定义 AI å‹å¥½çš„éœ€æ±‚è§„æ ¼æ¨¡æ¿ â†’ 推动 BA/äº§å“æŽ¥å— +建立打样工程和代ç è§„范 → 控制代ç è´¨é‡ä¸‹é™ +推动测试文化 → 这是专业和éžä¸“业软件公å¸çš„分界线 +构建团队共识 → 这是最难也是最é‡è¦çš„事 + +10.3 é¿å‘æŒ‡å— + +ä¸è¦è®© AI 直接写数æ®åº“:用 Flyway è„šæœ¬ç‰ˆæœ¬åŒ–ç®¡ç† +ä¸è¦æ‹†åˆ†è¿‡äºŽç»†å°çš„需求:一个模å—一个文档 +å˜æ›´éœ€æ±‚ä¸€å®šè¦æ ‡æ³¨å˜æ›´ç±»åž‹ï¼šä¸è¦ç»™å®Œæ•´çŠ¶æ€ +ä¸è¦è®© AI åŒæ—¶åšè®¾è®¡å’Œä»£ç ï¼šåˆ†é˜¶æ®µï¼Œç”¨ä¸åŒè§’色 +ä¸è¦å®Œå…¨ä¾èµ– AI Review:用规则约æŸã€AI + äººå·¥ç»“åˆ + +å一ã€è§‚ä¼—å馈与补充 + +åŽä¸º CodeArts Agentï¼šå¸¦æœ‰è§„èŒƒé©±åŠ¨å¼€å‘æ¨¡å¼ï¼Œå¯ä»¥å‚考 +Obsidian + Opal:适åˆåš Markdown 知识库管ç†ï¼Œæ‰‹æœºå’Œç”µè„‘åŒæ­¥ï¼Œé€‚åˆåœ¨å¤–也能用手机+终端工作 +看æ¿å¼ AI ååŒï¼šæ‰€æœ‰éœ€æ±‚ã€è®¾è®¡ã€ä»»åŠ¡å…¨éƒ¨çœ‹æ¿åŒ–,共享给团队æˆå‘˜ +è·¨ Agent 通信:契约文件(如 OpenAPI JSON)放到共享目录,å‰åŽç«¯å„è‡ªè¯»å– â†’ é¿å…å‰ç«¯æ”¹å®ŒåŽç«¯ä¸çŸ¥é“的问题 +sonarlint 本地扫æ + AI 自动修å¤ï¼šåœ¨ pre-commit 阶段触å‘陿€æ‰«æï¼ŒAI 自动修å¤ä»£ç é£Žæ ¼é—®é¢˜ï¼Œæ•ˆæžœå¾ˆå¥½ + +────────────────────────────── +Generated by MilkyAi@Bilibili: https://space.bilibili.com/3461574540921489 \ No newline at end of file diff --git a/InBox/milky_BV1i77X6pE1C.md b/InBox/milky_BV1i77X6pE1C.md new file mode 100644 index 0000000..8cc5951 --- /dev/null +++ b/InBox/milky_BV1i77X6pE1C.md @@ -0,0 +1,192 @@ +--- +title: "[Milky] 为您整ç†ã€ŠShopify:内部 Agent, 为什么ä¸å‡†å‘˜å·¥ç§èŠï¼Ÿâ€”—AI native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆï¼Œæ˜¯ç»„织自进化》笔记 | BV1i77X6pE1C" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2054 +--- + +Milky 为您整ç†äº†ã€ŠShopify:内部 Agent, 为什么ä¸å‡†å‘˜å·¥ç§èŠï¼Ÿâ€”—AI native组织è¦çš„䏿˜¯ä¸ªäººææ•ˆï¼Œæ˜¯ç»„织自进化》 | BV1i77X6pE1C 笔记。 + +Shopify 内部 Agent River:为什么ä¸å‡†å‘˜å·¥ç§èŠï¼Ÿ + +核心观点 + +AI-native ç»„ç»‡çš„é—¨æ§›ä¸æ˜¯ä¸ªäººæ›´å¿«ï¼Œè€Œæ˜¯ç»„织能从ç»éªŒä¸­å­¦ä¹ ã€èƒ½è‡ªè¿›åŒ–。 + +å•纯给员工é…备ç§äºº AI Agent,å¯èƒ½è®©æ¯ä¸ªäººå˜å¿«ï¼Œä½†ç»„织本身没有进化。 + + +问题背景:ä¼ä¸šå¯¹ AI 的常è§è¯¯åŒº + +è¯¯åŒºåšæ³• + +ç»™æ¯ä¸ªå‘˜å·¥å¼€ AI è´¦å·ï¼Œé…一个自己的 Agent,让他跑在: + +本地终端 +编辑器ç§äººå¯¹è¯æ¡† +ç§èŠçª—å£é‡Œ + +效果 + +查问题更快 +æ”¹ä»£ç æ›´å¿« +跑测试更快 + +真正的门槛 + +更硬的问题是:组织能ä¸èƒ½ä»Žè¿™äº› AI 工作里学习? + +èƒ½å¦æŠŠä¸€æ¬¡æŽ’æŸ¥ã€ä¸€æ¬¡ä¿®å¤ã€ä¸€æ¬¡å¥½åˆ¤æ–­ï¼Œå˜æˆåŽé¢æ‰€æœ‰äººå’Œæ‰€æœ‰ Agent 都能继承的ç»éªŒï¼Ÿ + + +核心对比:ç§äºº Agent çš„å¤©èŠ±æ¿ + +| 维度 | ç§äºº Agent | 公开 Agent(River) | +|------|-----------|---------------------| +| æœåŠ¡èŒƒå›´ | 键盘å‰é‚£ä¸ªäºº | 整个团队 | +| ä¸Šä¸‹æ–‡æ¥æº | å•人输入 | 多人补充 | +| ç»éªŒæ²‰æ·€ | 个人日志 | 组织语料 | +| å¤çŽ°æ€§ | 低(过程ä¸å¯è§ï¼‰ | é«˜ï¼ˆå¯æœç´¢ã€å¤ç”¨ï¼‰ | +| 学习能力 | Agent 之间互相学ä¸åˆ° | 团队å作促进 Agent 进化 | + +ç§äºº Agent çš„å±€é™æ€§ + +以一次排查å¶å‘失败测试为例: + +你昨天怎么定ä½é—®é¢˜ï¼Ÿ +中间错了哪些方å‘? +æœ€åŽæ˜¯å“ªæ¡çº¿ç´¢æŠŠé—®é¢˜æ”¶ä½ï¼Ÿ + +这些问题å³ä½¿ç•™åœ¨æ—¥å¿—é‡Œï¼Œä¹Ÿåªæ˜¯äº‹åŽææ–™ï¼š + +ä¸ä¼šå¤©ç„¶å˜æˆå¤šäººå作现场 +别的工程师ä¸ä¼šåœ¨è¿‡ç¨‹ä¸­çœ‹åˆ° +ä¸ä¼šæœ‰äººé¡ºæ‰‹è¡¥ä¸€ä¸ªçº¦æŸ +下一次类似情况,ä¸ä¼šè‡ªåŠ¨ä»Žè¿™æ¡è·¯å¾„开始 + + +River 的设计选择 + +åŸºæœ¬å·¥ä½œæ–¹å¼ + +River 是 Shopify 内部 Slack 里的 AI Agent: + +员工ä¸åœ¨ç§èŠçª—壿‰¾ä»–,è¦åˆ°å†…部公开频é“里 @ ä»– +River 会执行:读代ç ã€è·‘测试ã€å¼€ PRã€æŸ¥æ•°æ®ä»“库ã€çœ‹ç”Ÿäº§é“¾è·¯è®°å½• +å¿…è¦æ—¶ï¼ŒRiver 还会å驳他认为ä¸å¥½çš„计划 + +硬性产å“çº¦æŸ + +` +åªæ”¯æŒå…¬å¼€é¢‘é“å·¥ä½œï¼Œä¸æ”¯æŒä¸€å¯¹ä¸€ç§èŠ +` + +æ¯ä¸€æ¬¡å’Œ River 的对è¯ï¼Œéƒ½ä¼šå˜æˆä¸€æ¡ Slack 线程记录,默认对 Shopify 内部员工å¯è§ã€‚ + +注:这里的"公开"指 Shopify 内部 Slack 范围内å¯è§ï¼Œä¸æ˜¯äº’è”网公开。 + + +公开线程的工作机制 + +典型场景 + +` +工程师 A åœ¨é¢‘é“æé—® + ↓ +River 开始工作:读文件ã€è·‘查询ã€è´´å‡ºéƒ¨åˆ†å‘现 + ↓ +工程师 B 看到(通过频é“链接或被人拉进æ¥ï¼‰ + ↓ +B 补一å¥å…³é”®çº¦æŸï¼š + - "这个表ä¸èƒ½è¿™æ ·æŸ¥" + - "这个æœåŠ¡åˆšè¿ç§»è¿‡" + - "这个测试以å‰å¤±è´¥è¿‡ï¼ŒåŽŸå› å¯èƒ½ä¸åœ¨è¿™é‡Œ" + - "这个方案会影å“å¦ä¸€ä¸ªå›¢é˜Ÿ" + ↓ +River 叿”¶æ–°ä¸Šä¸‹æ–‡ï¼Œç»§ç»­å¾€ä¸‹æŸ¥ +` + +公开 vs ç§äººçš„关键差别 + +ç§äººå¯¹è¯ï¼šAI 多数åªç»§æ‰¿ä¸€ä¸ªäººçš„上下文 +公开线程:AI 进入的是一个多人å作现场 + + +组织学习机制:语料挖掘与回写 + +公开线程记录会形æˆä¸€å¥—坿Œ–掘的组织语料,Shopify 会: + +挖掘åå¤å‡ºçŽ°çš„æ¨¡å¼ +把这些模å¼å›žå†™åˆ° River 的: + - 技能(Skills) + - æç¤ºè¯ï¼ˆPrompts) + - 默认动作(Default Actions) + +具体沉淀内容 + +| 沉淀内容 | 说明 | +|---------|------| +| 排查路径 | 哪些排查路径有效 | +| å·¥ç¨‹çº¦æŸ | 哪些工程约æŸåº”该默认带上 | +| æç¤ºè¯/技能 | 哪些æç¤ºè¯å’ŒæŠ€èƒ½åŠ¨ä½œå¯ä»¥æ²‰æ·€ä¸‹æ¥ | + +核心机制 + +` +一个人硬啃出æ¥çš„ä¿®å¤åŠžæ³• → 下一个人的起点 +一个线程里åå¤å‡ºçŽ°çš„çº¦æŸ â†’ River ä»¥åŽæ›´å®¹æ˜“带上的上下文 +` + +一次好的排查,ä¸å†åªæ˜¯æŸä¸ªäººå’ŒæŸä¸ª Agent çš„ç§æœ‰ç»åŽ†ï¼Œè€Œæ˜¯å¼€å§‹æ•™ä¼šåŽé¢çš„线程。 + + +边界与é™åˆ¶ + +ä¸ç­‰äºŽç¦æ­¢æ‰€æœ‰ç§èŠ + +ä¼ä¸šä¸æ˜¯ä¸èƒ½æœ‰ä»»ä½• AI ç§èŠï¼Œè€Œæ˜¯ River 这个 Agent åšæŒä¸åšç§èŠå…¥å£ã€‚ + +需è¦è¾¹ç•ŒæŽ§åˆ¶çš„场景 + +ä»¥ä¸‹æ•æ„Ÿé—®é¢˜ä»ç„¶è¦æœ‰è¾¹ç•Œï¼š + +æƒé™ç›¸å…³ +安全相关 +人事相关 +法务相关 + +River çš„å®šä½ + +River 处ç†çš„æ˜¯é‚£äº›å€¼å¾—被组织记ä½çš„å·¥ä½œï¼Œè€Œä¸æ˜¯æ‰€æœ‰å¯¹è¯ã€‚ + + +核心å¯ç¤º + +å¯¹è€æ¿å’ŒæŠ€æœ¯è´Ÿè´£äººçš„é—®é¢˜æ¸…å• + +部署 AI Agent 时,ä¸ä»…è¦é—®ï¼š + +⌠员工有没有 Agent? +âŒ å¯¹è¯æ—¥å¿—能ä¸èƒ½å›žæ”¶ï¼Ÿ +⌠个人效率有没有æå‡ï¼Ÿ + +æ›´è¦é—®ï¼š + +✅ 这些 Agent 对è¯ä¼šä¸ä¼šæ•™ä¼šåŽé¢çš„线程? +✅ 员工用 AI 解决问题的过程,是一份åŽå°æ—¥å¿—,还是一个团队能å‚与ã€èƒ½æŽ¥åŠ›ã€èƒ½å¤ç”¨çš„工作现场? + +结论 + +| 类型 | 结果 | +|------|------| +| å¦‚æžœåªæ˜¯åŽå°æ—¥å¿— | ä¸€å †åˆ†æ•£çš„ä¸ªäººææ•ˆï¼Œæ¯ä¸ªäººéƒ½å¿«äº†ä¸€ç‚¹ï¼Œä½†ç»„织没有å˜èªæ˜Ž | +| 如果是å¯å作的工作现场 | ç»„ç»‡ä»Žæ¯æ¬¡ AI 工作中学习,实现自进化 | + +é‡‘å¥ + +ç§äºº Agent çš„å¤©èŠ±æ¿æ˜¯é”®ç›˜å‰é‚£ä¸ªäººã€‚ +公开 Agent 的价值是让åŽé¢çš„线程ä¸ä»Žé›¶å¼€å§‹ã€‚ + +────────────────────────────── +Generated by MilkyAi@Bilibili: https://space.bilibili.com/3461574540921489 \ No newline at end of file diff --git a/InBox/milky_BV1mZV76eEPC.md b/InBox/milky_BV1mZV76eEPC.md new file mode 100644 index 0000000..2d6f56a --- /dev/null +++ b/InBox/milky_BV1mZV76eEPC.md @@ -0,0 +1,181 @@ +--- +title: "[Milky] 为您整ç†ã€Š2026-05-30 SDD 规格驱动è½åœ°ï¼Œæ–‡æ¡£ç®¡ç†ç­–略》笔记 | BV1mZV76eEPC" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 2044 +--- + +Milky 为您整ç†äº†ã€Š2026-05-30 SDD 规格驱动è½åœ°ï¼Œæ–‡æ¡£ç®¡ç†ç­–略》 | BV1mZV76eEPC 笔记。 + +SDD 规格驱动è½åœ°ï¼šæ–‡æ¡£ç®¡ç†ç­–ç•¥ + +研讨会背景与目的 + +本次分享是 AI 编程相关è¯é¢˜çš„延续,主è¦èšç„¦ SDD(Spec-Driven Development,规格驱动开å‘) 的文档管ç†ç­–略。 + +研讨会机制 + +目的:让å‚会者能够å‚与达æˆç¤¾åŒºå…±è¯†ï¼Œåˆ†äº«å„å…¬å¸åœ¨ AI 编程实践中的ç»éªŒ +å½¢å¼ï¼šå’¨è¯¢å¸ˆåˆ†äº«è§‚察到的公å¸å®žçŽ°æ–¹æ¡ˆã€æž¶æž„设计ã€ç³»ç»Ÿè®¾è®¡ç­‰å†…容 +价值:对个人和团队帮助都éžå¸¸å¤§ï¼Œé€šè¿‡é›†ä½“讨论形æˆå…±è¯† + +特别感谢å¡å°¼å…‹è€å“¥åœ¨ç ”讨会期间贡献了大é‡åˆ†äº«æ€æƒ³ï¼Œå—益颇多。 + + +AI 编程å‘展历程回顾 + +时间线概览 + +| æ—¶é—´ | 分享内容 | 核心概念 | +|------|----------|----------| +| 2025å¹´6月 | 早期 AI 编程实践 | DPER5 方法论 | +| åŽç»­ | MCP ç­‰å·¥å…·æ•´åˆ | MCPã€Scales | +| 5月9æ—¥ | Plan å’Œ Build æ¨¡å¼ | æ–°å› å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念 | +| 本次 | SDD 文档管ç†ç­–ç•¥ | 规格驱动è½åœ° | + + +DPER5 方法论 + +æ ¸å¿ƒæ€æƒ³ + +DPER5 将软件工程中使用 AI 进行开å‘的过程分为 5 个弱阶段(Weak Stages): + +` +Discover → Plan → Execute → Review → Refine + ↓ ↓ ↓ ↓ ↓ + å‘现 规划 执行 评审 优化 +` + +阶段特性 + +ä¸åŒé˜¶æ®µ AI 会按照ä¸åŒçš„æ¨¡å¼è¿è¡Œ +例如在 Design æ¨¡å¼æˆ– Discover 模å¼ä¸‹ï¼ŒAI ä¸ä¼šä¿®æ”¹ä»£ç  +è¿™ç§åˆ†é˜¶æ®µçº¦æŸæ˜¯é©¯æœ AI çš„ç®€å•æœ‰æ•ˆæ–¹æ³• + +实践应用 + +在早期阶段(2025年),演讲者已ç»åœ¨å…¬å¸å†…部领先应用 +采用 Design → Plan → Execute çš„æµç¨‹é©±åŠ¨å¼€å‘ +该方法使用了较长时间,有效规范了 AI è¾…åŠ©å¼€å‘æµç¨‹ + + +MCP(Model Context Protocolï¼‰å·¥å…·ç”Ÿæ€ + +å·¥å…·æ•´åˆ + +åŽç»­éšç€ MCP 以åŠç›¸å…³å·¥å…·å¥—件的出现,形æˆäº†å®Œæ•´çš„ AI 编程工具生æ€ï¼š + +MCP(Model Context Protocol):模型上下文åè®® +Scales:扩展工具 +SDDï¼šè§„æ ¼é©±åŠ¨å¼€å‘æ–¹æ³•论 + +这些工具被整åˆåˆ°ä¸€ä»½ PPT 手册中,作为团队 AI ç¼–ç¨‹çš„æŒ‡å—æˆ–手册å‚考。 + + +SDD(规格驱动开å‘) + +SDD çš„æ ¸å¿ƒæ¨¡å¼ + +SDD æä¾›äº†å¤šç§å·¥ä½œæ¨¡å¼ï¼Œé€‚用于ä¸åŒçš„å¼€å‘场景: + +| æ¨¡å¼ | 适用场景 | AI è¡Œä¸ºç‰¹å¾ | +|------|----------|-------------| +| Design | 需求分æžã€æž¶æž„设计 | ä¸ä¿®æ”¹ä»£ç ï¼Œä»…æä¾›è®¾è®¡å»ºè®® | +| Discover | 探索å‘çŽ°ã€æ–¹æ¡ˆè°ƒç ” | ä¸ä¿®æ”¹ä»£ç ï¼Œä¸“æ³¨äºŽä¿¡æ¯æ”¶é›† | +| Plan | 规划分解ã€ä»»åŠ¡æ‹†è§£ | 生æˆå®žçŽ°è®¡åˆ’ | +| Build | 代ç å®žçްã€å…·ä½“å¼€å‘ | 执行代ç ç¼–写和修改 | + +æ–°å› å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念 + +ç”± countic 大佬在 5月9日的分享中引入: + +物ç†å­¦çš„æ¦‚念解释: + +在混沌系统中,存在两ç§éœ‡è¡å馈的系统 +è¿™ç§ç³»ç»Ÿæœ€ç»ˆä¼šæ”¶æ•›åˆ°ä¸€ä¸ªç¨³å®šçŠ¶æ€ +这个收敛点被称为 å¸å¼•å­ï¼ˆAttractor) + +在 AI 编程中的应用: + +通过引入新因å­ï¼Œå¯ä»¥å¼•导 AI 的输出趋å‘äºŽé¢„æœŸçš„ç¨³å®šçŠ¶æ€ +帮助控制 AI åœ¨å¤æ‚ä»»åŠ¡ä¸­çš„å‘æ•£æ€§ +å®žçŽ°æ›´å¯æŽ§çš„ AI é©±åŠ¨å¼€å‘æµç¨‹ + + +SDD 文档管ç†ç­–ç•¥ + +本次分享的核心主题,èšç„¦äºŽè§„格驱动开å‘çš„æ–‡æ¡£ç®¡ç†æ–¹æ³• + +文档在 SDD 中的作用 + +规格定义:明确需求和设计规范,作为开å‘的基准 +上下文传递:在ä¸åŒé˜¶æ®µä¹‹é—´ä¼ é€’ä¸Šä¸‹æ–‡ä¿¡æ¯ +ç‰ˆæœ¬æŽ§åˆ¶ï¼šè®°å½•è§„æ ¼çš„å˜æ›´åŽ†å² +团队å作:统一团队对需求的ç†è§£å’Œå®žçŽ°æ–¹å¼ + +æ–‡æ¡£ç®¡ç†æœ€ä½³å®žè·µ + +(基于 SDD 方法论,文档管ç†åº”éµå¾ªä»¥ä¸‹åŽŸåˆ™ï¼‰ + +规格优先:在开å‘å‰å…ˆå®Œæˆè§„格文档的编写 +增é‡è¿­ä»£ï¼šè§„格文档éšé¡¹ç›®è¿›å±•逿­¥å®Œå–„ +åŒå‘è¿½æº¯ï¼šè§„æ ¼ä¸Žå®žçŽ°ä¹‹é—´ä¿æŒå¯è¿½æº¯æ€§ +工具集æˆï¼šå°†æ–‡æ¡£ç®¡ç†ä¸Ž AI ç¼–ç¨‹å·¥å…·é“¾æ•´åˆ + + +å·¥å…·é“¾æ•´åˆæ–¹æ¡ˆ + +推èçš„ AI 编程工具栈 + +` +┌─────────────────────────────────────────────────────┠+│ 规格层 (Spec) │ +│ ┌─────────────┠┌─────────────┠┌─────────────┠│ +│ │ Design │ │ Discover │ │ Plan │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ 工具层 (Tools) │ +│ ┌─────────────┠┌─────────────┠┌─────────────┠│ +│ │ MCP │ │ Scales │ │ SDD │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────────────┤ +│ 执行层 (Execution) │ +│ ┌─────────────┠┌─────────────┠│ +│ │ Build │ │ Review │ │ +│ └─────────────┘ └─────────────┘ │ +└─────────────────────────────────────────────────────┘ +` + +MCP 的核心功能 + +æä¾›æ ‡å‡†åŒ–的上下文åè®® +实现 AI 与外部工具的无ç¼é›†æˆ +支æŒå¤šå·¥å…·ååŒå·¥ä½œ + + +社区贡献者致谢 + +| 贡献者 | 贡献内容 | +|--------|----------| +| å¡å°¼å…‹ | 大é‡åˆ†äº«æ€æƒ³ï¼Œç ”讨会核心å‚与者 | +| countic | 引入新因å­ï¼ˆå¸å¼•å­ï¼‰æ¦‚念,分享 Plan/Build æ¨¡å¼ | +| å°‘ä¸ªåˆ†å· | SDD 方法论整ç†ï¼Œå·¥å…·é“¾æ•´åˆï¼Œæ–‡æ¡£ç®¡ç†ç­–略分享 | + + +åŽç»­è¯é¢˜é¢„告 + +本次分享的议程安排: + +SDD 文档管ç†ç­–略(当å‰å†…容) +AIGC 模æ¿ç›¸å…³è¯é¢˜ï¼ˆç”±å¡å°¼å…‹è€å“¥åˆ†äº«ï¼‰ + + +å‚è€ƒèµ„æº + +本次分享的 PPT 资料(å¯ä½œä¸ºå›¢é˜Ÿ AI 编程手册/指å—) +æœç´¢å…³é”®è¯ï¼šAI编程ã€MCPã€SDDã€DPER5ã€è§„æ ¼é©±åŠ¨å¼€å‘ +相关标签:人工智能ã€è§„格驱动开å‘ã€AI编程 + +────────────────────────────── +Generated by MilkyAi@Bilibili: https://space.bilibili.com/3461574540921489 \ No newline at end of file diff --git a/InBox/milky_BV1p9QnBtEMq.md b/InBox/milky_BV1p9QnBtEMq.md new file mode 100644 index 0000000..7cd974c --- /dev/null +++ b/InBox/milky_BV1p9QnBtEMq.md @@ -0,0 +1,273 @@ +--- +title: "[Milky] 为您整ç†ã€Šè®©AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœï¼šæ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层,实现92.0%平衡准确率》笔记 | BV1p9QnBtEMq" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 1987 +--- + +Milky 为您整ç†äº†ã€Šè®©AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœï¼šæ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层,实现92.0%平衡准确率》| BV1p9QnBtEMq 笔记。 + +ç—…ä¾‹é©±åŠ¨è¯æ®éªŒè¯æ¡†æž¶ï¼šä»Žè¡¨é¢åŒ¹é…到å¯éªŒè¯æŽ¨ç† + +研究背景与问题 + +å½“å‰ AI è¯æ®å¼•用的核心缺陷 + +现有 AI æ¨¡åž‹åœ¨å¼•ç”¨å¤–éƒ¨è¯æ®æ—¶å­˜åœ¨ä¸¥é‡çš„逻辑断层问题: + +| 缺陷类型 | 具体表现 | +|---------|---------| +| 表é¢åŒ¹é…ä¾èµ– | 过度ä¾èµ–文本相似度,用文字é‡åˆåº¦"èµ°æ·å¾„" | +| 逻辑断层 | 未真正ç†è§£è¯æ®ä¸Žä¸»å¼ ä¹‹é—´çš„因果关系 | +| è™šå‡æ”¯æ’‘ | 生æˆçœ‹èµ·æ¥åˆç†ä½†ç¼ºä¹é€»è¾‘支撑的回答 | +| é«˜é£Žé™©éšæ‚£ | åœ¨åŒ»ç–—ã€æ³•律等领域å¯èƒ½å¯¼è‡´è‡´å‘½é”™è¯¯ | + +问题本质 + +模型并未真正"看懂"è¯æ®ï¼Œè€Œæ˜¯åˆ©ç”¨æ–‡æœ¬é‡åˆåº¦ç”Ÿæˆçœ‹ä¼¼åˆç†çš„回答。这ç§è™šå‡çš„逻辑支撑在专业领域éžå¸¸å±é™©ã€‚ + + +解决方案:三ä½ä¸€ä½“éªŒè¯æ¡†æž¶ + +框架架构 + +研究团队æå‡ºç—…ä¾‹é©±åŠ¨éªŒè¯æ¡†æž¶ï¼ˆCase-Driven Evidence Verification),核心是三ä½ä¸€ä½“结构: + +` +┌─────────────────────────────────────────────────────┠+│ 验è¯ä»»åŠ¡ │ +│ (转化为严苛的判断题) │ +├─────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────┠┌──────────────┠┌───────────┠│ +│ │ 具体情境 │ + │ å¤–éƒ¨è¯æ® │ + │ 结构化主张 │ │ +│ │ CASE │ │ EVIDENCE │ │ CLAIM │ │ +│ └─────────┘ └──────────────┘ └───────────┘ │ +│ │ +│ ↓ │ +│ 模型输出è£å®šç»“æžœ VERDICT │ +│ ï¼ˆæ”¯æŒ / 䏿”¯æŒï¼‰ │ +└─────────────────────────────────────────────────────┘ +` + +工作机制 + +è¾“å…¥ä¸‰å…ƒç»„ï¼šåŒæ—¶è¾“入具体情境(Case)ã€å¤–éƒ¨è¯æ®ï¼ˆEvidence)和结构化主张(Claim) +判断题模å¼ï¼šå°†ä»»åŠ¡è½¬åŒ–ä¸ºåˆ¤æ–­é¢˜ï¼Œå¼ºåˆ¶æ¨¡åž‹è¾“å‡ºæ˜Žç¡®è£å®š +逻辑验è¯ï¼šéªŒè¯è¯æ®åœ¨å½“剿ƒ…境下是å¦çœŸå®žæ”¯æ’‘主张 + + +自动化数æ®ç”Ÿæˆæ–¹æ³• + +核心创新 + +é›¶äººå·¥æ ‡æ³¨æˆæœ¬çš„自动化数æ®ç”Ÿæˆæµæ°´çº¿ï¼Œæ•´åˆä¸¤å¤§æ•°æ®æºï¼š + +| æ•°æ®æº | 用途 | +|-------|------| +| MIMIC-CXRï¼ˆçœŸå®žå½±åƒæŠ¥å‘Šï¼‰ | æå–病例状æ€ï¼ˆCase) | +| Radiopaedia(医学知识库) | æŠ½å–æ•°ä¸‡æ¡è¯æ®ï¼ˆEvidence) | + +通过 Refire Core 逻辑规则智能é‡ç»„ï¼Œè‡ªåŠ¨æ˜ å°„æˆæ•°åä¸‡æ¡æ­£è´Ÿæ ·æœ¬ã€‚ + +四类训练样本 + +| 样本类型 | ç‰¹å¾ | 作用 | +|---------|------|------| +| 正样本 | 明确支æŒä¸»å¼  | å­¦ä¹ æ­£ç¡®å…³è”æ¨¡å¼ | +| 错误状æ€é™·é˜± | 高度相关但结论相å | å°å µå…³é”®è¯åŒ¹é…æ·å¾„ | +| 困难负样本 | å› æžœå…³ç³»å¤æ‚ | 强化深层ç†è§£ | +| 简å•负样本 | æ˜Žæ˜¾ä¸æ”¯æŒ | 基线学习 | + +å事实负样本(核心çªç ´ï¼‰ + +语义特å¾ï¼šä¸Žä¸»å¼ æžåº¦æŽ¥è¿‘ï¼ŒåŒ…å«æ‰€æœ‰æ ¸å¿ƒå…³é”®è¯ +逻辑特å¾ï¼šç”±äºŽç—…例特å¾å·®å¼‚,推导方å‘与主张完全相å +å æ¯”:25% 的数æ®é›†ä¸“门用于å°å µå…³é”®è¯åŒ¹é…æ·å¾„ + +目的:逼迫模型放弃表é¢å…³è”,深入ç†è§£æ–‡å­—背åŽçš„逻辑因果。 + + +实验设计与结果 + +关键对比实验 + +病例深度关è”的效果 + +| é…ç½® | AUPRC | 平衡准确率 | +|-----|-------|-----------| +| çº¯è¯æ®éªŒè¯ | 35.1% | — | +| 深度关è”éªŒè¯ | 87.8% | 92.0% | + +结论:å•纯堆砌资料ä¸èƒ½è®© AI å˜èªæ˜Žï¼Œç»“åˆå…·ä½“情境æ‰èƒ½å®žçŽ°æ€§èƒ½è·¨è¶Šã€‚ + +关键è¯é™·é˜±æµ‹è¯• + +场景:病例明确显示无胸腔积液,é¢å¯¹åŒ…å«ç›¸åŒæœ¯è¯­çš„å¹²æ‰°è¯æ® + +| 模型 | 支æŒçއ | +|-----|-------| +| 普通 AI | 99.1% | +| æ·±åº¦éªŒè¯æ¨¡åž‹ | 0.000% | + +结论:框架能有效识破伪装,ä¸å†ç›²ç›®ä¿¡ä»»è¯­ä¹‰ç›¸è¿‘但逻辑无关的信æ¯ã€‚ + +物ç†å¹²é¢„测试(检验推ç†çœŸå®žæ€§ï¼‰ + +ä¸‰ç§æžç«¯æ¡ä»¶ï¼š + +| 测试æ¡ä»¶ | æè¿° | AUPRC | F1 分数 | +|---------|------|-------|---------| +| 正常关è”è¯æ® | 基线测试 | 87.8% | 高 | +| æ¸…ç©ºè¯æ® | 切断所有å‚考资料 | å¤§å¹…ä¸‹é™ | å¤§å¹…ä¸‹é™ | +| 交æ¢è¯æ® | å¼ å† æŽæˆ´çš„专业文本 | 21.7% | 显著缩水 | + +ç»“è®ºï¼šæ€§èƒ½æ€¥å‰§å´©æºƒè¯æ˜Žæ¨¡åž‹é«˜åº¦ä¾èµ–æ­£ç¡®çš„å¤–éƒ¨è¯æ®ï¼Œè€Œéžæ­»è®°ç­”案。 + +è¯æ®æ•°é‡ä¸Žæ€§èƒ½å…³ç³» + +| è¯æ®æ•°é‡ | AUROC | +|---------|-------| +| 1 å¥ | 较低 | +| 2 å¥ | 97.4%(巅峰) | +| 10 å¥ | 基本æŒå¹³ | + +关键å‘现:模型ä¸éœ€è¦ç¿»é˜…数百页文档,åªéœ€æŠ“准最关键的两å¥ä¿¡æ¯å°±èƒ½å®žçŽ°æ»¡è¡€æ€§èƒ½ã€‚è¿‡åº¦å †ç Œèµ„æ–™å而引入背景干扰。 + +全维度性能对比 + +| 方法 | AUROC | AUPRC | BRI Score | +|-----|-------|-------|-----------| +| 纯情境推断 | 59.90% | — | 高 | +| çº¯è¯æ®éªŒè¯ | — | 35.11% | 高 | +| 三ä½ä¸€ä½“æ·±åº¦å…³è” | 97.43% | 87.8% | 0.060 | + + +æ³›åŒ–èƒ½åŠ›éªŒè¯ + +陌生知识测试(Held-out Content) + +使用从未å‚与训练的全新医学百科文章: + +| 指标 | 结果 | +|-----|------| +| AUROC | 97.2% | +| F1 分数 | 77.9% | + +结论:模型学习到的是通用验è¯é€»è¾‘,而éžå¯¹ç‰¹å®šæ•™æå¥å¼çš„æ­»è®°ç¡¬èƒŒã€‚ + +跨数æ®é›†è¿ç§» + +将基于 MIMIC-CXR 训练的模型直接空é™åˆ° CheXpert Plus æ•°æ®é›†ï¼ˆ6万+患者): + +| 指标 | 结果 | +|-----|------| +| AUROC | 93.46% | +| 平衡准确率 | 87.45% | + +结论:å³ä¾¿é¢å¯¹æˆªç„¶ä¸åŒçš„书写风格和病例分布,模型验è¯èƒ½åŠ›ä¾ç„¶åœ¨çº¿ï¼Œå±•现æžå¼ºè½åœ°é€‚应性。 + +底层模型对比 + +| 模型 | 傿•°é‡ | AUPRC | 特点 | +|-----|-------|-------|------| +| DeBERTa-v3-large | 3.95亿 | 87.8% | ç»¼åˆæœ€å¼ºï¼Œé¢å¯¹æœªçŸ¥è¯æ®æœ€ç¨³ | +| FlanT5-large | — | 次之 | ç»å…¸å¤§æ¨¡åž‹ | +| RoBERTa-large | — | — | ç»å…¸ baseline | + +ç»“è®ºï¼šæ›´çŽ°ä»£çš„ç‰¹å¾æå–器能更æ•é”地é”定微å°çš„语义å差。 + + +应用场景 + +临床问答护城河 + +` +检索器 → 生æˆå™¨ → ã€éªŒè¯æ¡†æž¶ã€‘ → 医生 + ↓ + 输出置信度分数 + 拦截 99% 幻觉主张 +` + +作为最åŽä¸€é“交å‰è´¨è¯ +æœ‰æ•ˆæ‹¦æˆªæ— ä¾æ®æ–¹æ¡ˆ +辅助医生åšå‡ºæ›´ç¨³å¥çš„决策 + +自动化医疗报告审核 + +自动æå–结构化结论 +与原始影åƒå‘现åŠåŒ»å­¦æ ‡å‡†é€ä¸€æ ¸å¯¹ +实时标注逻辑冲çªï¼Œæç¤ºäººå·¥å¤æ ¸ +å‡è½»é«˜å¹´èµ„医生审核负担 +æœç»å› ç–²åг引å‘çš„å…³é”®æ€§ç–æ¼ + +跨领域泛化 + +| 领域 | 应用 | +|-----|------| +| 法律åˆè§„ | æ ¸å®žæ³•æ¡æ˜¯å¦çœŸå®žé€‚用于案件事实 | +| ç§‘ç ”éªŒè¯ | 自动检查实验引用是å¦å­˜åœ¨å¼ å† æŽæˆ´ | +| ä¼ä¸šçŸ¥è¯†åº“ | 核对工å•与æ“作手册,拒ç»éšæ„呿Œ¥ | + + +范å¼è·ƒè¿ï¼šä»Ž RAG 到 VAG + +| èŒƒå¼ | ç‰¹å¾ | 核心区别 | +|-----|------|---------| +| RAG(检索增强生æˆï¼‰ | åªè¦æ£€ç´¢æ–‡æœ¬çœ‹èµ·æ¥ç›¸ä¼¼ï¼Œå°±å¼ºè¡Œä½œä¸ºç­”案å‚考 | 区分相关性与支撑性 | +| VAG(验è¯å¢žå¼ºç”Ÿæˆï¼‰ | åªæœ‰å­˜åœ¨æ˜Žç¡®é€»è¾‘因果的文本æ‰è¢«è®¤å®šä¸ºæœ‰æ•ˆè¯æ® | 追求确凿性 | + +本质转å˜ï¼šAI ä»Žæ¾æ•£çš„æ–‡æœ¬æ‹¼æŽ¥æœºå™¨ → 严谨的逻辑推演中枢 + + +当å‰å±€é™ä¸Žæœªæ¥è·¯çº¿ + +技术边界 + +| å±€é™ç±»åž‹ | 具体问题 | +|---------|---------| +| 泛化æŸè€— | é¢å¯¹æˆªç„¶ä¸åŒçš„æ–°è¯æ®æ—¶ï¼ŒAUPRC 指标ä»ä¼šäº§ç”Ÿå®¢è§‚è¡°å‡ | +| å¤šçŠ¶æ€æ‰©å±• | ç›®å‰ä¸»è¦éªŒè¯äºŒå…ƒä¸»å¼ ï¼Œæœªæ¥éœ€å‘夿‚多元连续图谱扩展 | +| 端到端噪声 | 引入全网实时检索åŽï¼Œå¯¹æ¨¡åž‹æŠ—干扰能力æå‡ºæ›´é«˜è¦æ±‚ | + +演进路线 + +` +第一阶段(已完æˆï¼‰ 第二阶段(进行中) 第三阶段(愿景) + ↓ ↓ ↓ +三ä½ä¸€ä½“éªŒè¯æ¡†æž¶ → ç«¯åˆ°ç«¯åŠ¨æ€æ£€ç´¢ → äººç±»ä¸“å®¶æ·±åº¦å¯¹é½ + + + + éžç»“构化长文本 è¯æ®é“¾è‡ªæˆ‘修剪 + 高噪声环境 自主æ€è€ƒ Agents +` + + +核心结论 + +| 指标 | 结果 | æ„义 | +|-----|------|------| +| AUPRC | 87.8%(æå‡ 52.6%) | 跨越性性能æå‡ | +| 平衡准确率 | 92.0% | 高å¯é æ€§ | +| BRI Score | 0.060 | æžä½Žé¢„测误差 | + +核心å¯ç¤ºï¼šçœŸæ­£çš„æ™ºèƒ½ä¸ä»…在于调å–çŸ¥è¯†ï¼Œæ›´åœ¨äºŽæ‡‚å¾—å¦‚ä½•å¯¹è¯æ®è´Ÿè´£ã€‚ + + +术语表 + +| 术语 | 全称 | 解释 | +|-----|------|------| +| AUPRC | Area Under Precision-Recall Curve | 精确率-å¬å›žçŽ‡æ›²çº¿ä¸‹é¢ç§¯ï¼Œè¡¡é‡ä¸å¹³è¡¡æ•°æ®é›†æ€§èƒ½ | +| AUROC | Area Under Receiver Operating Characteristic Curve | ROC 曲线下é¢ç§¯ï¼Œè¡¡é‡åˆ†ç±»å™¨åŒºåˆ†èƒ½åŠ› | +| BRI Score | Brier Score | é¢„æµ‹è¯¯å·®çš„å‡æ–¹è¯¯å·®ï¼Œè¶Šä½Žè¶Šå‡†ç¡® | +| RAG | Retrieval-Augmented Generation | æ£€ç´¢å¢žå¼ºç”Ÿæˆ | +| VAG | Verification-Augmented Generation | 验è¯å¢žå¼ºç”Ÿæˆ | +| DeBERTa | Decoding-enhanced BERT with disentangled attention | 更现代的预训练语言模型架构 | +| MIMIC-CXR | Medical Information Mart for Chest X-ray | 公开胸部 X å…‰å½±åƒæ•°æ®é›† | +| å事实负样本 | Counterfactual Negative Samples | 语义相似但逻辑结论相å的样本,用于测试模型是å¦çœŸæ­£ç†è§£å› æžœå…³ç³» | +| CheXpert Plus | — | æ–¯å¦ç¦å¤§å­¦èƒ¸éƒ¨ X 光数æ®é›† | +| Refire Core | — | 逻辑规则引擎,用于自动构建训练样本 | + +────────────────────────────── +— Milky 视频总结助手 \ No newline at end of file diff --git a/InBox/milky_BV1tJwKzDE8x.md b/InBox/milky_BV1tJwKzDE8x.md new file mode 100644 index 0000000..4b81004 --- /dev/null +++ b/InBox/milky_BV1tJwKzDE8x.md @@ -0,0 +1,320 @@ +--- +title: "[Milky] 为您整ç†ã€Šã€AI翻译】别å†è‡ªå·±é’»ç ”Claude技巧了,Autoresearch帮你æžå®šã€‹ç¬”è®° | BV1tJwKzDE8x" +source: "milky@4ueo.com" +date: 2026-06-09 10:48 +tags: [milky, bilibili, notes] +email_id: 1983 +--- + +Milky 为您整ç†äº†ã€Šã€AI翻译】别å†è‡ªå·±é’»ç ”Claude技巧了,Autoresearch帮你æžå®šã€‹| BV1tJwKzDE8x 笔记。 + +AutoResearch 自动优化 Claude Code Skills å®Œæ•´æŒ‡å— + +目录 + +核心概念 +为什么需è¦è‡ªåŠ¨ç ”ç©¶ +AutoResearch ä»“åº“è§£æž +自动研究的三个è¦ç´  +评估设计原则 +实战演示æµç¨‹ +演示结果 +最佳实践与注æ„事项 + + +核心概念 + +Claude Code Skills 现状 + +Claude Code Skillsï¼ˆäº‘ä»£ç æŠ€èƒ½ï¼‰æ˜¯ç”¨äºŽæ‰©å±• Claude Code 能力的æç¤ºè¯æ–‡ä»¶ï¼Œä½†å­˜åœ¨ç¨³å®šæ€§é—®é¢˜ï¼š + +| 指标 | 比例 | +|------|------| +| è¿è¡ŒæŠ€èƒ½å¾—到预期输出 | ~70% | +| è¿è¡ŒæŠ€èƒ½è¾“出垃圾结果 | ~30% | + +什么是 AutoResearch + +AutoResearch 是由 Andre Karpathy(OpenAI 创始æˆå‘˜ã€å‰ç‰¹æ–¯æ‹‰ AI 负责人)å‘布的一个 GitHub 仓库,核心功能是让一组 AI 智能体能够自主优化æŸä¸ªæµç¨‹ã€‚ + +原仓库地å€ï¼š +` +https://github.com/karpathy/auto-research +` + + +AutoResearch ä»“åº“è§£æž + +该仓库刻æ„设计得éžå¸¸ç²¾ç®€ï¼Œåªæœ‰ä¸‰ä¸ªé‡è¦æ–‡ä»¶ï¼š + +文件结构 + +` +auto-research/ +├── prepare.py # 机器学习专用(训练分è¯å™¨ç­‰ï¼‰ï¼Œä¸ŽæŠ€èƒ½ä¼˜åŒ–æ— å…³ +├── train.py # 核心文件,相当于你的 skill.md +└── program.py # 核心文件,相当于你的智能体 +` + +工作原ç†ç±»æ¯” + +| AutoResearch 组件 | 对应内容 | +|-------------------|----------| +| train.py | ä½ çš„ skill.md(è¦ä¼˜åŒ–的技能æç¤ºè¯ï¼‰ | +| program.py | 你的智能体(负责改进技能) | + +优化æµç¨‹ + +` +给智能体(program.py)一个高级指令 +智能体è¿è¡ŒæŠ€èƒ½ï¼ˆtrain.py),根æ®è¯„估标准评分 +智能体判断"è¿™æ¬¡æ˜¯å¦æ¯”上次好" +自动迭代,æç¤ºè¯è¶Šæ¥è¶Šä¸¥å¯† +æ¯ N 分钟自动è¿è¡Œä¸€æ¬¡ï¼ˆå¦‚æ¯ 5 分钟) +` + + +自动研究的三个è¦ç´  + +è¦è®©è‡ªåŠ¨ç ”ç©¶å·¥ä½œï¼Œä½ éœ€è¦å‡†å¤‡å¥½ï¼š + +客观指标(Objective Metric) + +一个å¯é‡åŒ–测é‡çš„æ•°å­—ï¼Œè€Œä¸æ˜¯æ¨¡ç³Šçš„æ„Ÿè§‰æè¿°ã€‚ + +示例: + +| 应用场景 | 客观指标 | +|----------|----------| +| 网站加载速度 | 毫秒(ms) | +| 冷邮件活动 | 回å¤çŽ‡ï¼ˆ%) | +| Claude Code Skill | 通过率 / 评估分数 | + +测é‡å·¥å…·ï¼ˆMeasurement Tool) + +ç†æƒ³æƒ…况下应该自动化ã€å¯é ï¼Œæ— éœ€äººå·¥ä»‹å…¥ã€‚ + +示例: + +| 应用场景 | 测é‡å·¥å…· | +|----------|----------| +| 网站性能 | Google Lighthouse | +| 冷邮件 | 峿—¶ API åˆ†æž | +| Skills | 测试套件(智能体编写的自动化测试) | + +坿”¹å˜çš„东西(Variable to Change) + +整个优化的对象: + +| 应用场景 | 改å˜çš„内容 | +|----------|------------| +| 网站优化 | ä»£ç æ”¹åЍ | +| 冷邮件优化 | 邮件文案 | +| Skills 优化 | æç¤ºè¯å†…容(skill.md 文件) | + + +评估设计原则 + +为什么需è¦å¤šæ¬¡è¿è¡Œè¯„ä¼° + +AI 输出本质上是数æ®åˆ†å¸ƒï¼Œå­˜åœ¨éšæœºæ€§ï¼š + +` +è¿è¡Œ 20 æ¬¡æŠ€èƒ½ï¼ˆç”Ÿæˆ 20 张图片) + ↓ +æ¯æ¬¡è¾“出都有细微差别 + ↓ +有些图片相似,有些ä¸åŒ + ↓ +å¿…é¡»è¿è¡Œå¤šæ¬¡ï¼Œç”¨ç»Ÿè®¡æ–¹æ³•评估 +` + +评估的三个统计指标 + +| 指标 | å«ä¹‰ | 作用 | +|------|------|------| +| 众数(Mode) | 出现频率最高的值 | 判断"最常è§çš„结果是什么" | +| 䏭使•°ï¼ˆMedian) | 排åºåŽçš„中间值 | 判断"å¤§è‡´å¹³å‡æ°´å¹³" | +| å¹³å‡å€¼ï¼ˆMean) | 所有分数之和除以次数 | 判断"总体表现" | + +二元问题原则(核心è¦ç‚¹ï¼‰ + +评估应该使用二元的是/å¦ã€çœŸ/å‡é—®é¢˜ï¼Œå°½é‡é¿å…多值评分。 + +原因: å¤åˆæ¦‚率导致å˜å¼‚性放大 + +` +äºŒå…ƒè¯„åˆ†ï¼šåªæœ‰ Pass/Fail → å˜å¼‚æ€§å¯æŽ§ +多值评分(如 1-7 分)→ æ¯ä¸ªçŽ¯èŠ‚çš„å˜å¼‚会累积放大 + ↓ +æƒ³è±¡ä¸€ä¸ªæ¼æ–—:开始很窄,å˜å¼‚累积åŽå¯èƒ½å·®å¾ˆå¤š +最终结果å¯èƒ½ä»Ž 39/40 å˜æˆ 2/40 +` + +多值评分的风险示例: +如果给模型太多评估点 +模型å¯èƒ½å­¦ä¼š"å¤è¿°æ¯ä¸ªè¯„估点"æ¥é€šè¿‡æµ‹è¯• +å°±åƒä¸ç†è§£ææ–™ä½†èƒ½è€ƒ 100 分的学生 + +ä¸è¦è¿‡äºŽå…·ä½“/狭窄 + +åé¢ç¤ºä¾‹ï¼ˆè¿‡äºŽä¸¥æ ¼ï¼‰ï¼š +` +"ç¡®ä¿è¾“出在 X 字以内" +"ç¡®ä¿åŒ…å«å…³ç³»ç¬¦å·" +"ç¡®ä¿ä¸åŒ…嫿Ÿäº›å­—符" +` + +è¿™ä¼šå¯¼è‡´æ¨¡åž‹è¿‡åº¦ä¼˜åŒ–è¯„ä¼°æŒ‡æ ‡è€Œä¸æ˜¯çœŸæ­£æå‡è´¨é‡ã€‚ + + +实战演示æµç¨‹ + +演示案例:图表生æˆå™¨æŠ€èƒ½ä¼˜åŒ– + +步骤一:设置 Claude Code 环境 + +在 VSCode 或任æ„编辑器中安装 Claude Code 扩展,设置好开å‘环境。 + +æ­¥éª¤äºŒï¼šèŽ·å– AutoResearch 仓库 + +`bash +将仓库链接æä¾›ç»™æ™ºèƒ½ä½“ +"Read this: https://github.com/karpathy/auto-research" +` + +步骤三:创建评估标准 + +将评估标准定义为4 个二元问题: + +| # | 评估标准 | å…·ä½“è¦æ±‚ | +|---|----------|----------| +| 1 | 文字清晰度 | æ‰€æœ‰æ–‡å­—æ˜¯å¦æ¸…晰且语法正确 | +| 2 | é…色方案 | 是å¦ç¬¦åˆç²‰å½©è‰²ã€æŸ”和色调(é¿å…霓虹色) | +| 3 | 布局æ¡ç† | 是å¦ä»Žå·¦åˆ°å³/从上到下有æ¡ç†ï¼ˆæ— ä¹±ç³Ÿç³Ÿçš„æ°”泡和装饰) | +| 4 | æ— æ•°å­—ç¼–å· | æ˜¯å¦æ²¡æœ‰ "1, 2, 3, 4" è¿™æ ·çš„ç¼–å· | + +步骤四:æä¾›é«˜çº§æŒ‡ä»¤ç»™æ™ºèƒ½ä½“ + +使用自然语言æè¿°ä»»åŠ¡ï¼š + +` +"我想让你用 AutoResearch åº“æ¥æ”¹è¿›å›¾è¡¨ç”Ÿæˆå™¨æŠ€èƒ½ã€‚ + + 该技能的功能是生æˆçº¦ 200 字的脚本。 + + 请用上é¢çš„仓库中的自动研究方法帮我建立一套改进系统。 + + æ¯æ¬¡æµ‹è¯•è¯·ç”Ÿæˆ 10 个图表。 + + 我希望你按回车继续。" +` + +步骤五:明确评分机制 + +` +ç”Ÿæˆ 10 张图片 +æ¯ä¸ªå›¾ç‰‡ç”¨ 4 个标准评估 +最高分 = 40 分(10 × 4) + +æµç¨‹ï¼š +ç”Ÿæˆ 10 张图 +用 4 个标准评估所有 10 å¼  +计算 40 分中的得分 +修改æç¤ºè¯ +å†è¯•一次 +选择表现更好的版本 +` + + +演示结果 + +网站优化案例 + +| 指标 | ä¼˜åŒ–å‰ | ä¼˜åŒ–åŽ | 改进 | +|------|--------|--------|------| +| 加载时间 | 1100ms | 67ms | 81.3% | + +图表生æˆå™¨æŠ€èƒ½æ¡ˆä¾‹ + +| 指标 | 第一次测试 | åŽç»­è¿­ä»£ | +|------|------------|----------| +| 评估分数 | 32/40 | 37/40 | +| 迭代趋势 | 基准 | æŒç»­æå‡ | + +视频效果: æ™ºèƒ½ä½“ä¸æ–­è®©æç¤ºè¯è¶Šæ¥è¶Šç¬¦åˆé¢„设的粉彩色ã€å¯çˆ±å›¾æ ‡ç­‰è§„格。 + + +最佳实践与注æ„事项 + +✅ 推èåšæ³• + +使用二元问题评估 + - 是/å¦ã€çœŸ/å‡ + - é¿å… 1-10 分等多值评分 + +ä¿æŒè¯„ä¼°æ ‡å‡†ç®€æ´ + - æ¯ä¸ªæŠ€èƒ½ 3-5 个核心标准 + - 太多标准会导致"å‡é€šè¿‡" + +让评估自动化 + - 编写测试套件 + - 设置定时循环è¿è¡Œ + +è®°å½•æ‰€æœ‰å˜æ›´ + - 模型å°è¯•çš„æ‰€æœ‰æ”¹åŠ¨æ¸…å• + - å¯ä¼ æ‰¿ç»™æœªæ¥çš„æ›´å¼ºæ¨¡åž‹ï¼ˆGPT-6ã€Claude 4.0 等) + +⌠é¿å…åšæ³• + +ä¸è¦è¿‡äºŽå…·ä½“ + ` + ✗ "ç¡®ä¿è¾“出在 100 字以内" + ✗ "ç¡®ä¿åŒ…å«å…³ç³»ç¬¦å·" + ` + +ä¸è¦å¤šå€¼å¤åˆè¯„分 + ` + ✗ "X æ–¹é¢æ‰“ 1-7 分" + ✓ "X æ–¹é¢æ˜¯å¦è¾¾æ ‡ï¼šæ˜¯/å¦" + ` + +ä¸è¦åªè¿è¡Œä¸€æ¬¡ + - 必须多次è¿è¡Œå–统计结果 + - 用众数ã€ä¸­ä½æ•°åˆ¤æ–­è´¨é‡ + + +å¯åº”用场景扩展 + +AutoResearch ä¸ä»…é™äºŽ Skills 优化,å¯åº”用领域: + +| 领域 | 优化目标 | +|------|----------| +| 网站 | 加载速度ã€SEO | +| è½åœ°é¡µ | 转化率 | +| A/B 测试 | 标题ã€ç¼©ç•¥å›¾ | +| 邮件è¥é”€ | 邮件文案ã€å›žå¤çއ | +| ä»£ç  | æ€§èƒ½ã€æž¶æž„ | +| æç¤ºè¯ | 任何技能或æµç¨‹ | + + +资æºé“¾æŽ¥ + +原视频: https://www.youtube.com/watch?v=qKU-e0x2EmE +AutoResearch 仓库: https://github.com/karpathy/auto-research +完整 Claude Code 课程: è§ UP ä¸»é¢‘é“ + + +总结 + +AutoResearch æä¾›äº†ä¸€ç§è®© AI 自主优化 AI 的方法论。通过: + +定义客观指标 → 知é“è¦ä¼˜åŒ–什么 +建立测é‡å·¥å…· → 知é“如何é‡åŒ–改进 +æä¾›å¯å˜é‡ → æç¤ºè¯ã€ä»£ç æˆ–文案 +多次è¿è¡Œ + 统计评估 → ç¡®ä¿ç»“æžœå¯é  + +å³ä½¿ä½ ä¸æ˜¯æœºå™¨å­¦ä¹ ä¸“家,也å¯ä»¥åˆ©ç”¨è¿™ä¸ªæ¡†æž¶æ˜¾è‘—æå‡ Claude Code Skills çš„å¯é æ€§å’Œå‡†ç¡®æ€§ï¼Œå®žçŽ°æŠ€èƒ½çš„è‡ªæˆ‘è¿›åŒ–ã€‚ + +────────────────────────────── +— Milky 视频总结助手 \ No newline at end of file diff --git a/InBox/北大Agent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果翻å€åŒ—大æžå‡ºAgent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果接近翻å€_BV17y7U6EER5_笔记.md b/InBox/北大Agent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果翻å€åŒ—大æžå‡ºAgent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果接近翻å€_BV17y7U6EER5_笔记.md new file mode 100644 index 0000000..bfc6231 --- /dev/null +++ b/InBox/北大Agent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果翻å€åŒ—大æžå‡ºAgent新范å¼_䏿”¹æ¨¡åž‹æƒé‡_效果接近翻å€_BV17y7U6EER5_笔记.md @@ -0,0 +1,156 @@ +# Life Harnessness:北大Agentä¼˜åŒ–æ–°èŒƒå¼ + +## 核心å‘现 + +传统Agent优化的核心å‡è®¾è¢«æŽ¨ç¿»ï¼š**Agent的效果并éžå®Œå…¨ç”±æ¨¡åž‹èƒ½åŠ›å†³å®š**ã€‚åŒ—äº¬å¤§å­¦è¿™ç¯‡è®ºæ–‡è¯æ˜Žï¼Œåœ¨å¾ˆå¤šæƒ…况下,Agentçš„å¤±è´¥ä¸æ˜¯å› ä¸ºæ¨¡åž‹"笨",而是因为模型与环境之间的**接å£ä¸åŒ¹é…**。 + +--- + +## Agent的本质å†å®šä¹‰ + +传统观点认为:Agent ≈ LLM,能力强则Agent强 + +论文新观点:Agent是一个**完整的交互循环系统**,包å«ä»¥ä¸‹ç»„件: + +``` +环境 → 观测 → è¿è¡Œæ—¶ç³»ç»Ÿ → 工具定义 → 动作模型 → 输出动作 + ↑ ↓ + â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â†â† +``` + +| 组件 | 说明 | +|------|------| +| è¿è¡ŒçŽ¯å¢ƒ | 环境给观测,定义工具和动作 | +| 动作执行器 | 模型输出动作,执行器执行 | +| å馈循环 | 执行结果åé¦ˆå›žæ¥æ›´æ–°ä¸‹ä¸€æ­¥å†³ç­– | + +**关键洞察**:模型输出相åŒï¼Œç»“æžœå¯èƒ½å®Œå…¨ä¸åŒã€‚整个行为是**模型和è¿è¡Œæ—¶çŽ¯å¢ƒå…±åŒå†³å®š**的。 + +--- + +## 问题根æºï¼šæŽ¥å£å±‚ä¸åŒ¹é… + +传统Agent常è§çš„失败场景: + +- 模型ä¸çŸ¥é“APIçš„è°ƒç”¨æ ¼å¼ +- ä¸çŸ¥é“ä»€ä¹ˆåŠ¨ä½œæ˜¯åˆæ³•çš„ +- ä¸çŸ¥é“åé¦ˆä¿¡å·æ˜¯ä»€ä¹ˆæ„æ€ +- ä¸çŸ¥é“ä»€ä¹ˆæ—¶å€™è¯¥åœæ­¢ + +**传统解决方案**:通过SFT(监ç£å¾®è°ƒï¼‰æŠŠè¿™äº›çŸ¥è¯†çŒè¿›æ¨¡åž‹æƒé‡ + +**新方案æ€è·¯**:为什么把环境特定的知识硬编ç åˆ°æ¨¡åž‹é‡Œï¼Ÿè¿™äº›ä¸œè¥¿åº”该在**接å£å±‚**处ç†ã€‚ + +--- + +## Life Harnessness 框架 + +### 核心æ€è·¯ + +> **䏿”¹æ¨¡åž‹æƒé‡ï¼Œåªæ”¹è¿è¡Œæ—¶æŽ¥å£** + +从训练轨迹中学习,把åå¤å‡ºçŽ°çš„äº¤äº’å¤±è´¥è½¬æ¢æˆå¯å¤ç”¨çš„干预。 + +### 四个维度的å¯å¤ç”¨å¹²é¢„ + +| 维度 | 功能 | 说明 | +|------|------|------| +| **环境契约** (Environment Contract) | 告诉模型环境规则 | 明确这个环境中什么能åšã€ä»€ä¹ˆä¸èƒ½åš | +| **ç¨‹åºæŠ€èƒ½** (Program Skill) | 任务分解标准化 | æŠŠå¤æ‚ä»»åŠ¡æ‹†è§£æˆæ ‡å‡†æµç¨‹ | +| **动作实现** (Action Implementation) | æ ¼å¼è½¬æ¢ | 把模型的高层æ„å›¾è½¬æ¢æˆçŽ¯å¢ƒèƒ½ç†è§£çš„ç²¾ç¡®æ ¼å¼ | +| **轨迹调控** (Trajectory Regulation) | æµç¨‹æŽ§åˆ¶ | 决定什么时候该回溯ã€ä»€ä¹ˆæ—¶å€™è¯¥åœæ­¢ã€ä»€ä¹ˆæ—¶å€™è¯¥é‡è¯• | + +### æ ¸å¿ƒç‰¹å¾ + +- **训练åŽå›ºå®š**:Harness一旦训练好就固定下æ¥ï¼Œè¯„ä¼°æ—¶ä¸å†æ”¹å˜ +- **éžåЍæ€è°ƒæ•´**ï¼šä¸æ˜¯æŽ¨ç†æ—¶è¿˜åœ¨åЍæ€è°ƒæ•´çš„东西 +- **标准化接å£é€‚é…层**:类似于给Agenté…了一个"ç»éªŒä¸°å¯Œçš„项目ç»ç†" + +--- + +## 实验结果 + +### 评估规模 + +- **7个确定性环境** +- **18个模型骨干**(从最å°åˆ°æœ€å¤§å…¨è¦†ç›–) +- **126个模型-环境组åˆ** + +### æ•ˆæžœæ•°æ® + +| 指标 | 数值 | +|------|------| +| 有æå‡çš„ç»„åˆæ•° | 116 / 126 | +| å¹³å‡ç›¸å¯¹æå‡ | **88.5%** | + +> 88.5%是接近翻å€çš„æå‡ï¼Œä¸æ˜¯å°æ•°ç‚¹åŽä¸€ä½çš„微弱改进。 + +### è¿ç§»èƒ½åŠ›éªŒè¯ + +- 使用 **Qwen-34B** 的训练轨迹进化出æ¥çš„Harness +- 能直接è¿ç§»åˆ°å…¶ä»– **17个模型** 上 +- 从最å°åˆ°æœ€å¤§çš„æ¨¡åž‹å…¨éƒ¨é€‚用 + +**关键å‘现**:这说明HarnessæŠ“åˆ°çš„ä¸æ˜¯æŸä¸ªæ¨¡åž‹çš„特性行为,而是**环境本身的结构**。 + +--- + +## 范å¼è½¬å˜ + +| 维度 | 旧范å¼ï¼ˆæ¨¡åž‹ä¸­å¿ƒï¼‰ | 新范å¼ï¼ˆæŽ¥å£ä¸­å¿ƒï¼‰ | +|------|-------------------|-------------------| +| ä¼˜åŒ–æ–¹å‘ | 调模型:SFTã€è’¸é¦ã€æ›´å¤§å‚æ•° | 调接å£ï¼šä¼˜åŒ–è¿è¡Œæ—¶é€‚é…层 | +| 适用场景 | Agentä¸è¡Œå°±è°ƒæ¨¡åž‹ | Agentä¸è¡Œï¼Œå…ˆçœ‹æŽ¥å£æ˜¯å¦æœ‰é—®é¢˜ | +| å…³ç³»å®šä½ | äº’è¡¥ï¼Œéžæ›¿ä»£ | äº’è¡¥ï¼Œéžæ›¿ä»£ | + +--- + +## 局陿€§ + +1. **最适åˆç¡®å®šæ€§ã€è§„则型的环境**:需è¦å¤§é‡åˆ›é€ æ€§ã€å¼€æ”¾æ€§çš„任务å¯èƒ½æ•ˆæžœä¸æ˜Žæ˜¾ +2. **ä¾èµ–训练轨迹**ï¼šéœ€è¦æœ‰è¶³å¤Ÿå¤šçš„失败案例æ‰èƒ½æ€»ç»“干预规则 +3. **干预维度固定**ï¼šç›®å‰æ˜¯4ä¸ªç»´åº¦ï¼Œèƒ½å¦æ‰©å±•åˆ°æ›´å¤šç±»åž‹çŽ¯å¢ƒè¿˜éœ€éªŒè¯ + +--- + +## 未æ¥å‘å±•æ–¹å‘ + +### 1. 自动å‘现与进化 +ä¸ç”¨äººå·¥å®šä¹‰4个维度,让系统自己å‘现需è¦ä»€ä¹ˆæ ·çš„æŽ¥å£é€‚é… + +### 2. 跨环境è¿ç§» +在一个环境上学到的接å£é€‚é…,能å¦ç”¨åˆ°å¦ä¸€ä¸ªç±»ä¼¼çŽ¯å¢ƒ + +### 3. ååŒè¿›åŒ–(最具潜力) +Harness和模型的ååŒè¿›åŒ–,接å£å±‚与模型共åŒè¿›åŒ– + +--- + +## 对普通人的æ„义 + +### 短期 +- ä¼ä¸šçº§Agent体验大幅æå‡ +- "ä½ å¾—ç”¨ç²¾ç¡®è¯æœ¯è·ŸAI说è¯"的情况越æ¥è¶Šå°‘ +- 接å£å±‚帮你把æ„å›¾è½¬æ¢æˆç³»ç»Ÿèƒ½ç†è§£çš„æ ¼å¼ + +### 中期 +- Agentå¼€å‘门槛大幅é™ä½Ž +- ä¸éœ€è¦æµ·é‡æ•°æ®åŽ»SFT大模型 +- åªè¦æŠŠæŽ¥å£é€‚é…åšå¥½ï¼Œä¸­ç­‰æ¨¡åž‹å°±èƒ½æœ‰å¾ˆå¥½çš„æ•ˆæžœ + +### 长期 +- å¯èƒ½æ”¹å˜æ•´ä¸ªAI产业的分工: + - **大模型厂商**:负责通用推ç†èƒ½åŠ› + - **垂直领域厂商**:负责接å£é€‚é…层 +- 比现在æ¯ä¸ªå…¬å¸éƒ½è®­ç»ƒè‡ªå·±çš„æ¨¡åž‹æ›´é«˜æ•ˆ +- Harnesså¯è§£é‡Šã€å¯å®¡è®¡ï¼Œè§£å†³ç›‘管问题 + +--- + +## 核心å¯ç¤º + +> ä¸è¦ä¸€é‡åˆ°é—®é¢˜å°±æƒ³ç€å †ç®—力ã€å †å‚数。有时候真正的çªç ´æ¥è‡ªäºŽå¯¹é—®é¢˜æœ¬èº«çš„釿–°å®šä¹‰ã€‚ +> +> 䏿˜¯æ¨¡åž‹ä¸è¡Œï¼Œå¯èƒ½æ˜¯æˆ‘们的接å£ä¸è¡Œã€‚ +> +> æ¢ä¸ªè§’度看问题,整个世界都ä¸ä¸€æ ·äº†ã€‚ \ No newline at end of file diff --git a/InBox/让AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœ_æ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层_实现92.0_平衡准确率_BV1p9QnBtEMq_笔记.md b/InBox/让AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœ_æ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层_实现92.0_平衡准确率_BV1p9QnBtEMq_笔记.md new file mode 100644 index 0000000..b52e3b1 --- /dev/null +++ b/InBox/让AIçœŸæ­£è¯»æ‡‚è¯æ®é—´çš„å› æžœ_æ·±åº¦éªŒè¯æ¡†æž¶è§£å†³é€»è¾‘断层_实现92.0_平衡准确率_BV1p9QnBtEMq_笔记.md @@ -0,0 +1,269 @@ +# ç—…ä¾‹é©±åŠ¨è¯æ®éªŒè¯æ¡†æž¶ï¼šä»Žè¡¨é¢åŒ¹é…到å¯éªŒè¯æŽ¨ç† + +## 研究背景与问题 + +### å½“å‰ AI è¯æ®å¼•用的核心缺陷 + +现有 AI æ¨¡åž‹åœ¨å¼•ç”¨å¤–éƒ¨è¯æ®æ—¶å­˜åœ¨ä¸¥é‡çš„逻辑断层问题: + +| 缺陷类型 | 具体表现 | +|---------|---------| +| **表é¢åŒ¹é…ä¾èµ–** | 过度ä¾èµ–文本相似度,用文字é‡åˆåº¦"èµ°æ·å¾„" | +| **逻辑断层** | 未真正ç†è§£è¯æ®ä¸Žä¸»å¼ ä¹‹é—´çš„因果关系 | +| **è™šå‡æ”¯æ’‘** | 生æˆçœ‹èµ·æ¥åˆç†ä½†ç¼ºä¹é€»è¾‘支撑的回答 | +| **é«˜é£Žé™©éšæ‚£** | åœ¨åŒ»ç–—ã€æ³•律等领域å¯èƒ½å¯¼è‡´è‡´å‘½é”™è¯¯ | + +### 问题本质 + +模型并未真正"看懂"è¯æ®ï¼Œè€Œæ˜¯åˆ©ç”¨æ–‡æœ¬é‡åˆåº¦ç”Ÿæˆçœ‹ä¼¼åˆç†çš„回答。这ç§è™šå‡çš„逻辑支撑在专业领域éžå¸¸å±é™©ã€‚ + +--- + +## 解决方案:三ä½ä¸€ä½“éªŒè¯æ¡†æž¶ + +### 框架架构 + +研究团队æå‡º**ç—…ä¾‹é©±åŠ¨éªŒè¯æ¡†æž¶ï¼ˆCase-Driven Evidence Verification)**,核心是三ä½ä¸€ä½“结构: + +``` +┌─────────────────────────────────────────────────────┠+│ 验è¯ä»»åŠ¡ │ +│ (转化为严苛的判断题) │ +├─────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────┠┌──────────────┠┌───────────┠│ +│ │ 具体情境 │ + │ å¤–éƒ¨è¯æ® │ + │ 结构化主张 │ │ +│ │ CASE │ │ EVIDENCE │ │ CLAIM │ │ +│ └─────────┘ └──────────────┘ └───────────┘ │ +│ │ +│ ↓ │ +│ 模型输出è£å®šç»“æžœ VERDICT │ +│ ï¼ˆæ”¯æŒ / 䏿”¯æŒï¼‰ │ +└─────────────────────────────────────────────────────┘ +``` + +### 工作机制 + +1. **输入三元组**ï¼šåŒæ—¶è¾“入具体情境(Case)ã€å¤–éƒ¨è¯æ®ï¼ˆEvidence)和结构化主张(Claim) +2. **判断题模å¼**:将任务转化为判断题,强制模型输出明确è£å®š +3. **逻辑验è¯**:验è¯è¯æ®åœ¨å½“剿ƒ…境下是å¦çœŸå®žæ”¯æ’‘主张 + +--- + +## 自动化数æ®ç”Ÿæˆæ–¹æ³• + +### 核心创新 + +**é›¶äººå·¥æ ‡æ³¨æˆæœ¬**的自动化数æ®ç”Ÿæˆæµæ°´çº¿ï¼Œæ•´åˆä¸¤å¤§æ•°æ®æºï¼š + +| æ•°æ®æº | 用途 | +|-------|------| +| **MIMIC-CXR**ï¼ˆçœŸå®žå½±åƒæŠ¥å‘Šï¼‰ | æå–病例状æ€ï¼ˆCase) | +| **Radiopaedia**(医学知识库) | æŠ½å–æ•°ä¸‡æ¡è¯æ®ï¼ˆEvidence) | + +通过 **Refire Core** 逻辑规则智能é‡ç»„ï¼Œè‡ªåŠ¨æ˜ å°„æˆæ•°åä¸‡æ¡æ­£è´Ÿæ ·æœ¬ã€‚ + +### 四类训练样本 + +| 样本类型 | ç‰¹å¾ | 作用 | +|---------|------|------| +| **正样本** | 明确支æŒä¸»å¼  | å­¦ä¹ æ­£ç¡®å…³è”æ¨¡å¼ | +| **错误状æ€é™·é˜±** | 高度相关但结论相å | å°å µå…³é”®è¯åŒ¹é…æ·å¾„ | +| **困难负样本** | å› æžœå…³ç³»å¤æ‚ | 强化深层ç†è§£ | +| **简å•负样本** | æ˜Žæ˜¾ä¸æ”¯æŒ | 基线学习 | + +### å事实负样本(核心çªç ´ï¼‰ + +- **语义特å¾**:与主张æžåº¦æŽ¥è¿‘ï¼ŒåŒ…å«æ‰€æœ‰æ ¸å¿ƒå…³é”®è¯ +- **逻辑特å¾**:由于病例特å¾å·®å¼‚,推导方å‘与主张完全相å +- **å æ¯”**:25% 的数æ®é›†ä¸“门用于å°å µå…³é”®è¯åŒ¹é…æ·å¾„ + +**目的**:逼迫模型放弃表é¢å…³è”,深入ç†è§£æ–‡å­—背åŽçš„逻辑因果。 + +--- + +## 实验设计与结果 + +### 关键对比实验 + +#### 1. 病例深度关è”的效果 + +| é…ç½® | AUPRC | 平衡准确率 | +|-----|-------|-----------| +| çº¯è¯æ®éªŒè¯ | 35.1% | — | +| **深度关è”验è¯** | **87.8%** | **92.0%** | + +**结论**:å•纯堆砌资料ä¸èƒ½è®© AI å˜èªæ˜Žï¼Œç»“åˆå…·ä½“情境æ‰èƒ½å®žçŽ°æ€§èƒ½è·¨è¶Šã€‚ + +#### 2. 关键è¯é™·é˜±æµ‹è¯• + +**场景**:病例明确显示无胸腔积液,é¢å¯¹åŒ…å«ç›¸åŒæœ¯è¯­çš„å¹²æ‰°è¯æ® + +| 模型 | 支æŒçއ | +|-----|-------| +| 普通 AI | 99.1% | +| **æ·±åº¦éªŒè¯æ¨¡åž‹** | **0.000%** | + +**结论**:框架能有效识破伪装,ä¸å†ç›²ç›®ä¿¡ä»»è¯­ä¹‰ç›¸è¿‘但逻辑无关的信æ¯ã€‚ + +#### 3. 物ç†å¹²é¢„测试(检验推ç†çœŸå®žæ€§ï¼‰ + +ä¸‰ç§æžç«¯æ¡ä»¶ï¼š + +| 测试æ¡ä»¶ | æè¿° | AUPRC | F1 分数 | +|---------|------|-------|---------| +| 正常关è”è¯æ® | 基线测试 | 87.8% | 高 | +| æ¸…ç©ºè¯æ® | 切断所有å‚考资料 | å¤§å¹…ä¸‹é™ | å¤§å¹…ä¸‹é™ | +| **交æ¢è¯æ®** | å¼ å† æŽæˆ´çš„专业文本 | **21.7%** | 显著缩水 | + +**结论**ï¼šæ€§èƒ½æ€¥å‰§å´©æºƒè¯æ˜Žæ¨¡åž‹**高度ä¾èµ–æ­£ç¡®çš„å¤–éƒ¨è¯æ®**ï¼Œè€Œéžæ­»è®°ç­”案。 + +#### 4. è¯æ®æ•°é‡ä¸Žæ€§èƒ½å…³ç³» + +| è¯æ®æ•°é‡ | AUROC | +|---------|-------| +| 1 å¥ | 较低 | +| **2 å¥** | **97.4%(巅峰)** | +| 10 å¥ | 基本æŒå¹³ | + +**关键å‘现**:模型ä¸éœ€è¦ç¿»é˜…数百页文档,åªéœ€æŠ“准最关键的两å¥ä¿¡æ¯å°±èƒ½å®žçŽ°æ»¡è¡€æ€§èƒ½ã€‚è¿‡åº¦å †ç Œèµ„æ–™å而引入背景干扰。 + +### 全维度性能对比 + +| 方法 | AUROC | AUPRC | BRI Score | +|-----|-------|-------|-----------| +| 纯情境推断 | 59.90% | — | 高 | +| çº¯è¯æ®éªŒè¯ | — | 35.11% | 高 | +| **三ä½ä¸€ä½“深度关è”** | **97.43%** | **87.8%** | **0.060** | + +--- + +## æ³›åŒ–èƒ½åŠ›éªŒè¯ + +### 陌生知识测试(Held-out Content) + +使用**从未å‚与训练**的全新医学百科文章: + +| 指标 | 结果 | +|-----|------| +| AUROC | 97.2% | +| F1 分数 | 77.9% | + +**结论**:模型学习到的是**通用验è¯é€»è¾‘**,而éžå¯¹ç‰¹å®šæ•™æå¥å¼çš„æ­»è®°ç¡¬èƒŒã€‚ + +### 跨数æ®é›†è¿ç§» + +将基于 MIMIC-CXR 训练的模型**直接空é™**到 CheXpert Plus æ•°æ®é›†ï¼ˆ6万+患者): + +| 指标 | 结果 | +|-----|------| +| AUROC | 93.46% | +| 平衡准确率 | 87.45% | + +**结论**:å³ä¾¿é¢å¯¹æˆªç„¶ä¸åŒçš„书写风格和病例分布,模型验è¯èƒ½åŠ›ä¾ç„¶åœ¨çº¿ï¼Œå±•现æžå¼ºè½åœ°é€‚应性。 + +### 底层模型对比 + +| 模型 | 傿•°é‡ | AUPRC | 特点 | +|-----|-------|-------|------| +| **DeBERTa-v3-large** | **3.95亿** | **87.8%** | ç»¼åˆæœ€å¼ºï¼Œé¢å¯¹æœªçŸ¥è¯æ®æœ€ç¨³ | +| FlanT5-large | — | 次之 | ç»å…¸å¤§æ¨¡åž‹ | +| RoBERTa-large | — | — | ç»å…¸ baseline | + +**结论**ï¼šæ›´çŽ°ä»£çš„ç‰¹å¾æå–器能更æ•é”地é”定微å°çš„语义å差。 + +--- + +## 应用场景 + +### 1. 临床问答护城河 + +``` +检索器 → 生æˆå™¨ → ã€éªŒè¯æ¡†æž¶ã€‘ → 医生 + ↓ + 输出置信度分数 + 拦截 99% 幻觉主张 +``` + +- 作为最åŽä¸€é“交å‰è´¨è¯ +- æœ‰æ•ˆæ‹¦æˆªæ— ä¾æ®æ–¹æ¡ˆ +- 辅助医生åšå‡ºæ›´ç¨³å¥çš„决策 + +### 2. 自动化医疗报告审核 + +- 自动æå–结构化结论 +- 与原始影åƒå‘现åŠåŒ»å­¦æ ‡å‡†é€ä¸€æ ¸å¯¹ +- 实时标注逻辑冲çªï¼Œæç¤ºäººå·¥å¤æ ¸ +- å‡è½»é«˜å¹´èµ„医生审核负担 +- æœç»å› ç–²åг引å‘çš„å…³é”®æ€§ç–æ¼ + +### 3. 跨领域泛化 + +| 领域 | 应用 | +|-----|------| +| 法律åˆè§„ | æ ¸å®žæ³•æ¡æ˜¯å¦çœŸå®žé€‚用于案件事实 | +| ç§‘ç ”éªŒè¯ | 自动检查实验引用是å¦å­˜åœ¨å¼ å† æŽæˆ´ | +| ä¼ä¸šçŸ¥è¯†åº“ | 核对工å•与æ“作手册,拒ç»éšæ„呿Œ¥ | + +--- + +## 范å¼è·ƒè¿ï¼šä»Ž RAG 到 VAG + +| èŒƒå¼ | ç‰¹å¾ | 核心区别 | +|-----|------|---------| +| **RAG**(检索增强生æˆï¼‰ | åªè¦æ£€ç´¢æ–‡æœ¬çœ‹èµ·æ¥ç›¸ä¼¼ï¼Œå°±å¼ºè¡Œä½œä¸ºç­”案å‚考 | 区分**相关性**与**支撑性** | +| **VAG**(验è¯å¢žå¼ºç”Ÿæˆï¼‰ | åªæœ‰å­˜åœ¨æ˜Žç¡®é€»è¾‘因果的文本æ‰è¢«è®¤å®šä¸ºæœ‰æ•ˆè¯æ® | 追求**确凿性** | + +**本质转å˜**:AI ä»Žæ¾æ•£çš„æ–‡æœ¬æ‹¼æŽ¥æœºå™¨ → 严谨的逻辑推演中枢 + +--- + +## 当å‰å±€é™ä¸Žæœªæ¥è·¯çº¿ + +### 技术边界 + +| å±€é™ç±»åž‹ | 具体问题 | +|---------|---------| +| **泛化æŸè€—** | é¢å¯¹æˆªç„¶ä¸åŒçš„æ–°è¯æ®æ—¶ï¼ŒAUPRC 指标ä»ä¼šäº§ç”Ÿå®¢è§‚è¡°å‡ | +| **å¤šçŠ¶æ€æ‰©å±•** | ç›®å‰ä¸»è¦éªŒè¯äºŒå…ƒä¸»å¼ ï¼Œæœªæ¥éœ€å‘夿‚多元连续图谱扩展 | +| **端到端噪声** | 引入全网实时检索åŽï¼Œå¯¹æ¨¡åž‹æŠ—干扰能力æå‡ºæ›´é«˜è¦æ±‚ | + +### 演进路线 + +``` +第一阶段(已完æˆï¼‰ 第二阶段(进行中) 第三阶段(愿景) + ↓ ↓ ↓ +三ä½ä¸€ä½“éªŒè¯æ¡†æž¶ → ç«¯åˆ°ç«¯åŠ¨æ€æ£€ç´¢ → äººç±»ä¸“å®¶æ·±åº¦å¯¹é½ + + + + éžç»“构化长文本 è¯æ®é“¾è‡ªæˆ‘修剪 + 高噪声环境 自主æ€è€ƒ Agents +``` + +--- + +## 核心结论 + +| 指标 | 结果 | æ„义 | +|-----|------|------| +| AUPRC | 87.8%(æå‡ 52.6%) | 跨越性性能æå‡ | +| 平衡准确率 | 92.0% | 高å¯é æ€§ | +| BRI Score | 0.060 | æžä½Žé¢„测误差 | + +**核心å¯ç¤º**:真正的智能ä¸ä»…在于调å–çŸ¥è¯†ï¼Œæ›´åœ¨äºŽæ‡‚å¾—å¦‚ä½•å¯¹è¯æ®è´Ÿè´£ã€‚ + +--- + +## 术语表 + +| 术语 | 全称 | 解释 | +|-----|------|------| +| **AUPRC** | Area Under Precision-Recall Curve | 精确率-å¬å›žçŽ‡æ›²çº¿ä¸‹é¢ç§¯ï¼Œè¡¡é‡ä¸å¹³è¡¡æ•°æ®é›†æ€§èƒ½ | +| **AUROC** | Area Under Receiver Operating Characteristic Curve | ROC 曲线下é¢ç§¯ï¼Œè¡¡é‡åˆ†ç±»å™¨åŒºåˆ†èƒ½åŠ› | +| **BRI Score** | Brier Score | é¢„æµ‹è¯¯å·®çš„å‡æ–¹è¯¯å·®ï¼Œè¶Šä½Žè¶Šå‡†ç¡® | +| **RAG** | Retrieval-Augmented Generation | æ£€ç´¢å¢žå¼ºç”Ÿæˆ | +| **VAG** | Verification-Augmented Generation | 验è¯å¢žå¼ºç”Ÿæˆ | +| **DeBERTa** | Decoding-enhanced BERT with disentangled attention | 更现代的预训练语言模型架构 | +| **MIMIC-CXR** | Medical Information Mart for Chest X-ray | 公开胸部 X å…‰å½±åƒæ•°æ®é›† | +| **å事实负样本** | Counterfactual Negative Samples | 语义相似但逻辑结论相å的样本,用于测试模型是å¦çœŸæ­£ç†è§£å› æžœå…³ç³» | +| **CheXpert Plus** | — | æ–¯å¦ç¦å¤§å­¦èƒ¸éƒ¨ X 光数æ®é›† | +| **Refire Core** | — | 逻辑规则引擎,用于自动构建训练样本 | \ No newline at end of file diff --git a/InBox/é¢å‘架构编程范å¼_è¶…è¶ŠOOPå’ŒMVC_BV1ArVU62Eac_笔记.md b/InBox/é¢å‘架构编程范å¼_è¶…è¶ŠOOPå’ŒMVC_BV1ArVU62Eac_笔记.md new file mode 100644 index 0000000..315f2bc --- /dev/null +++ b/InBox/é¢å‘架构编程范å¼_è¶…è¶ŠOOPå’ŒMVC_BV1ArVU62Eac_笔记.md @@ -0,0 +1,423 @@ +# é¢å‘架构编程范å¼ï¼šè¶…è¶Š OOP å’Œ MVC + +## 一ã€ç¼–程范å¼çš„æœ¬è´¨ + +### 1.1 ä»€ä¹ˆæ˜¯ç¼–ç¨‹èŒƒå¼ + +编程范å¼ï¼ˆProgramming Paradigm)是指程åºçš„**表达方å¼**,它ä¸å†³å®šç¨‹åºèƒ½å®žçŽ°ä»€ä¹ˆåŠŸèƒ½ï¼Œåªå†³å®šèƒ½å¦æ–¹ä¾¿ã€æ˜“懂地表达功能。 + +``` +过程å¼è¡¨è¾¾ï¼š +f1(); f2(); f3(); + +é¢å‘对象表达: +obj.f1(); obj.f2(); obj.f3(); +``` + +两段代ç åŠŸèƒ½å®Œå…¨ç›¸åŒï¼Œéƒ½æ˜¯å…ˆæ‰§è¡Œ F1ï¼Œå†æ‰§è¡Œ F2ã€F3。表达方å¼ä¸åŒï¼Œä½†å®žçŽ°çš„åŠŸèƒ½æ˜¯ä¸€æ ·çš„ã€‚ + +**关键结论**: +- é¢å‘对象能写的程åºï¼Œè¿‡ç¨‹å¼ä¹Ÿèƒ½å†™ +- å过æ¥ä¹Ÿä¸€æ · +- 无论用哪ç§èŒƒå¼ï¼Œä½ çš„程åºéƒ½èƒ½å®žçŽ°ä¹°ä¸œè¥¿è¿™ä¸ªåŠŸèƒ½ + +### 1.2 编程范å¼çš„真正目的 + +> 编程范å¼çš„æ ¹æœ¬ç›®çš„æ˜¯ä¸ºäº†**大规模代ç **å’Œ**大规模团队分工åˆä½œ**。 + +当代ç é‡è†¨èƒ€åˆ°ï¼š +- æˆåƒä¸Šä¸‡è¡Œ +- 几å万行 +- 上百万行 + +当团队有上百å·ç¨‹åºå‘˜æ—¶ï¼Œéœ€è¦å°†æ•´ä¸ªé¡¹ç›®æ‹†åˆ†æˆå¤šä¸ªæ¨¡å—,æ¯ä¸ªç»„负责一个模å—。程åºå‘˜éœ€è¦è°ƒç”¨å…¶ä»–人开å‘的模å—,这就引出了**模å—å°è£…隔离**的概念。 + +### 1.3 模å—å°è£…隔离的概念 + +把模å—çš„è¿è¡ŒåŽŸç†å°è£…在模å—å†…ï¼Œåªæš´éœ²æŽ¥å£ã€‚模å—的调用者åªéœ€è¦ä¼šæ“作接å£ï¼Œä¸éœ€è¦ç†è§£æ¨¡å—内部的è¿è¡ŒåŽŸç†ï¼Œå°±èƒ½ä½¿ç”¨è¿™ä¸ªæ¨¡å—。 + +**如果åšä¸å¥½å°è£…隔离**: +- è°ƒç”¨å…¶ä»–æ¨¡å—æ—¶ï¼Œéœ€è¦å……分ç†è§£é‚£ä¸ªæ¨¡å—çš„å†…éƒ¨åŽŸç† +- 整个项目å¯èƒ½æœ‰æˆç™¾ä¸Šåƒä¸ªæ¨¡å— +- éœ€è¦æ‡‚上百个模å—的内部原ç†ï¼Œæ‰èƒ½å†™è‡ªå·±çš„ç¨‹åº +- 这在实际项目中是ä¸çŽ°å®žçš„ + +## 二ã€é¢å‘对象与模å—å°è£… + +### 2.1 é¢å‘对象的å°è£…优势 + +é¢å‘对象æä¾› `class` 语法,程åºå‘˜å¯ä»¥å¾ˆæ–¹ä¾¿åœ°æŠŠç¨‹åºæ‹†åˆ†æˆå¤šä¸ªéƒ¨åˆ†ï¼š + +```python +class A: + def interface1(self): ... + def interface2(self): ... + +class B: + def interface1(self): ... + def interface3(self): ... + +class C: + def interface2(self): ... + def interface3(self): ... +``` + +æ¯ä¸ªç±»æ˜¯ä¸€ä¸ªæ¨¡å—,æ¯ä¸ªæ¨¡å—下有若干接å£ï¼ˆå¯å¤–部调用的函数)。实际项目中,æ¯ä¸ªç±»å¯èƒ½æœ‰å‡ ç™¾ä¸Šåƒè¡Œä»£ç ï¼Œå¥½å‡ å个函数接å£ï¼Œåˆ†åˆ«ç”±ä¸åŒç¨‹åºå‘˜å¼€å‘。 + +### 2.2 ä¸åªæ˜¯é¢å‘å¯¹è±¡åœ¨åšæ¨¡å—å°è£… + +```python +# è¿‡ç¨‹å¼æ¨¡å—å°è£… +# module_a.py +def f1(): ... +def f2(): ... + +# module_b.py +def f3(): ... + +# main.py +import module_a +import module_b +module_a.f1() +module_b.f3() +``` + +效果和 class ä¸€æ ·ã€‚ä½†è¿™ç§æ–¹æ¡ˆ**太笨é‡**了,比用类è¦å¤æ‚。 + +### 2.3 å·¥ç¨‹æˆæœ¬åŽŸåˆ™ï¼š"太麻烦,没人用" + +工程问题和数学问题ä¸åŒï¼š +- 数学算法ä¸éœ€è¦è€ƒè™‘æˆæœ¬ +- 工程问题最看é‡çš„å°±æ˜¯æˆæœ¬ + +> **å¦‚æžœä¸€ä¸ªä¸œè¥¿çš„ä½¿ç”¨æˆæœ¬å¤§äºŽæ”¶ç›Šï¼Œé‚£æ ¹æœ¬å°±ä¸ä¼šæœ‰äººåŽ»ç”¨å®ƒã€‚å³ä½¿è¿™æ˜¯ä¸ªå¥½ä¸œè¥¿ã€‚** + +这会导致: +- åªæœ‰é‚£äº›æœ€é‡è¦çš„功能æ‰èƒ½é‡‡ç”¨è¯¥æ–¹æ¡ˆ +- 一些边边角角的å°åŠŸèƒ½åˆ™å®Œå…¨æ²¡æ³•ç”¨ +- 用它åè€Œä¼šè®©ç¨‹åºæ›´å¤æ‚ + +**结论**:é¢å‘对象比过程å¼é«˜çº§ï¼Œå› ä¸ºé¢å‘对象æä¾›äº†ä¸€ç§æ–¹ä¾¿çš„用于å°è£…接å£çš„语法。 + +### 2.4 class 的本质澄清 + +class 的本质是**借å£**(Interface)。 + +一个 class 定义得好ä¸å¥½ï¼Œå–决于: +- 有没有åšå¥½åŠŸèƒ½çš„å°è£… +- æœ‰æ²¡æœ‰æš´éœ²å‡ºæ­£ç¡®çš„æŽ¥å£ + +至于汽车有几个轮å­ã€åƒä¸åƒé¸­å­ï¼Œæ ¹æœ¬æ— å…³ç´§è¦ã€‚ + +**正确的类比**:手机开机按钮就是一个接å£ã€‚按下开机键åŽï¼Œæ‰‹æœºè¿›è¡Œä¸€ç³»åˆ—夿‚çš„åˆå§‹åŒ–过程,而用户ä¸éœ€è¦æ‡‚这个过程,åªè¦ä¼šæŒ‰å¼€æœºé”®å°±å¯ä»¥äº†ã€‚ + +## 三ã€é¢å‘对象的设计缺陷 + +### 3.1 ç»§æ‰¿çš„é—®é¢˜ï¼šä»£ç æ— æ³•å¤ç”¨ + +使用继承进行代ç å¤ç”¨çš„问题: + +``` + A + / \ + B C +``` + +å‡è®¾ F1ã€F2ã€F3 的代ç å†™åœ¨ A 类中。用户åªéœ€è¦ F1 å’Œ F3,无法å¤ç”¨è¿™æ®µä»£ç â€”—因为继承会把 F2 也带进æ¥ã€‚ + +### 3.2 组åˆä¼˜äºŽç»§æ‰¿ + +**ç»„åˆæ€æƒ³**: +``` + Main + / | \ + A B C +``` + +å­æ¨¡å—æ‹†åˆ†æˆ A ç±»ã€B ç±»ã€C 类。写 Main 类的程åºå‘˜éœ€è¦ F1ã€F2ã€F3 中的哪个就组哪个,ä¸éœ€è¦çš„å°±ä¸ç»„。既简å•åˆçµæ´»ï¼Œ**完胜继承链æ¡**。 + +**ç»„åˆæ˜¯ä¸€ç§æ€æƒ³ï¼Œå¹¶ä¸å±€é™äºŽæŸç§ç‰¹å®šè¯­æ³•。** + +### 3.3 多é‡ç»§æ‰¿çš„致命问题:é‡åå†²çª + +这是一个记账器例å­ï¼Œå­æ¨¡å— A å’Œå­æ¨¡å— C 有一个é‡å的函数 F1,这会造æˆå†²çªã€‚ + +**有人会说:把其中一个函数é‡å‘½å为其他åå­—ä¸å°±å¾—了?** + +现实项目里没这么简å•: +- A 模å—å’Œ C 模å—å¯èƒ½åˆ†åˆ«æ˜¯ä¸¤å®¶å…¬å¸å¼€å‘的开æºåº“ +- æ¯ä¸ªåº“å¯èƒ½æœ‰å‡ ä¸‡è¡Œä»£ç  +- F1 函数的调用链å¯èƒ½éžå¸¸å¤æ‚ +- å¦‚æžœè¦æ”¹åï¼Œå°±è¦æ”¹åŠ¨æ•´æ¡è°ƒç”¨é“¾ +- 项目还å¯èƒ½å­˜åœ¨å…¶ä»–库ä¾èµ–这两个库的命å +- è¦æ”¹çš„è¯å°±è¦è¿žåŒå…¶ä»–库一起改 + +**真正è¦å‘½çš„æ˜¯**:原库å¯èƒ½å·²ç»åœ¨ä¸šç•Œè¿è¡Œè¿‡å¤šå¹´ï¼Œå®‰å…¨æ€§å’Œç¨³å®šæ€§æœ‰ä¿è¯ã€‚改了æºä»£ç å°±è¦æ‰¿æ‹…出 bug 的风险。 + +### 3.4 è¿™ç§æ”¹åŠ¨è¦æ±‚是ä¸åˆç†çš„ + +对比其他领域的例å­ï¼š +- 显å¡ä¸Šæœ‰ä¸€ä¸ªç”µå®¹ +- 主æ¿ä¸Šçš„电容å¯èƒ½å’Œæ˜¾å¡ä¸Šçš„电容**é‡å或型å·ç›¸åŒ** +- **ä¸ä¼šäº§ç”Ÿå‘½å冲çª** + +**工业产å“的拆分逻辑都是组åˆ**ã€‚å­æ¨¡å—中存在é‡å零件,根本ä¸å½±å“ä»»ä½•ä¸œè¥¿ã€‚è¿™æ‰æ˜¯æ­£ç¡®çš„å°è£…逻辑。 + +> 全天底下å„行å„业,就é¢å‘对象æžç‰¹æ®Šã€‚ + +## å››ã€MVC æ–¹æ¡ˆçš„å±€é™ + +### 4.1 MVC å°±æ˜¯ç»„åˆ + +MVC æŠŠåŠŸèƒ½æ‹†åˆ†æˆæœ€ç»†çš„ Model(数æ®ï¼‰å’Œ View(函数),å†é€šè¿‡ Controller 组åˆèµ·æ¥ï¼š + +```python +class MainController: + def __init__(self): + self.modelA = ModelA() + self.modelB = ModelB() + self.viewC = ViewC() +``` + +用哪个 model 或 view 函数就组哪个,ä¸ç”¨çš„å°±ä¸ç»„。 + +虽然 A å’Œ B 存在é‡å函数,但是并ä¸ä¼šäº§ç”Ÿå†²çªã€‚ + +### 4.2 MVC 的问题:抽象泄露 + +在 Main 模å—中åˆå§‹åŒ– A å’Œ B,并交æ¢ä¸¤è€…的指针时,存在一个问题: + +> **A å’Œ B çš„åˆå§‹åŒ–逻辑泄露到 Main 这一层了。** + +在实际项目中: +- A å’Œ B å¯èƒ½æ˜¯åˆ«çš„程åºå‘˜å†™çš„底层库 +- Main 模å—由业务层程åºå‘˜å†™ +- 底层库的逻辑本ä¸åº”该泄露到业务层 + +**正确的å°è£…**:æ¯ä¸€å±‚程åºå‘˜å°†æœ¬å±‚的逻辑å°è£…在本层。ä¸åº”è¯¥è¦æ±‚使用者ç†è§£æœ¬å±‚逻辑,åªè¦ä½¿ç”¨è€…会用å³å¯ã€‚ + +### 4.3 åˆå§‹åŒ–é€»è¾‘çš„å¤æ‚性 + +实际项目中åˆå§‹åŒ–å¯èƒ½å­˜åœ¨éžå¸¸å¤æ‚的交互关系: + +``` +1. A å…ˆåˆå§‹åŒ–几步 +2. 把中间结果传给 B åˆå§‹åŒ– +3. å†æŠŠä¸­é—´ç»“æžœä¼ å›žç»™ A,继续åˆå§‹åŒ– +``` + +å¦å¤–ï¼Œå®žé™…é¡¹ç›®ä¸­å­æ¨¡å—å¯èƒ½ä¸æ­¢ä¸¤ä¸ªï¼Œå¾ˆå¯èƒ½å­˜åœ¨å¤šä¸ªå­æ¨¡å—åˆå§‹åŒ–è¿‡ç¨‹ç›¸äº’äº¤ç»‡çš„æƒ…å†µã€‚è¿™è¦æ±‚ Main 程åºå‘˜å¿…é¡»éžå¸¸ç†è§£ A å’Œ B ç­‰å­æ¨¡å—的内部实现,æ‰èƒ½å†™å‡º Main 层。 + +### 4.4 抽象泄露导致的问题 + +**问题 1ï¼šæ¨¡å—æ— æ³•替æ¢** + +库存程åºå‘˜æ— æ³•å†™å‡ºä¸€ä¸ªæ¨¡å— C åŽ»æ›¿æ¢æ¨¡å— B,因为 Main 层耦åˆäº†æ¨¡å— B çš„åˆå§‹åŒ–é€»è¾‘ã€‚æ¨¡å— C åªè¦åˆå§‹åŒ–é€»è¾‘ç¨æœ‰ä¸åŒï¼Œå°±æ— æ³•æ›¿æ¢ B。 + +**问题 2:中间层方案è¦ä¹ˆçµæ´»æ€§å·®ï¼Œè¦ä¹ˆä»£ç æžä¸ºå¤æ‚** + +ä¸€ç§æ–¹æ¡ˆæ˜¯åŠ ä¸€ä¸ªä¸­é—´å±‚ï¼ˆMiddle Layer),中间层由 A 或 B 这一层的程åºå‘˜ç¼–写。Main 层程åºå‘˜æ— éœ€ç†è§£ä¸­é—´å±‚的内部实现。 + +ä½†å­˜åœ¨ä¸¤ç§æƒ…况: +1. ä¸­é—´å±‚ä»£ç æœ€ä¸ºç®€å•ï¼Œä½†çµæ´»æ€§å·®ï¼šMain 程åºå‘˜æ— æ³•选择组åˆå“ªå‡ ä¸ªå­æ¨¡å—或者组åˆå…¶ä»–åŒæŽ¥å£çš„å­æ¨¡å—。比如 Main 实现ä¸äº†ç»„åˆ Aã€Cã€D 三个模å—,因为中间层åªå®žçŽ°äº† Aã€B ç»„åˆ +2. 让中间层适é…,由 Main 层程åºå‘˜è‡ªç”±é€‰æ‹©ç»„åˆå“ªäº›å­æ¨¡å—:中间层的代ç å˜å¾—æžä¸ºå¤æ‚ + +**è®°ä½"太麻烦,没人用"原则**。 + +### 4.5 ä¾èµ–注入和微æœåŠ¡ + +ä¾èµ–注入或微æœåŠ¡ç¡®å®žè§£å†³äº†æŠ½è±¡æ³„éœ²é—®é¢˜ã€‚è¿™ä¸¤ä¸ªæ–¹æ¡ˆéƒ½èƒ½è¿›è¡Œæ¨¡å—æ›¿æ¢ã€‚ + +> è¡¡é‡å°è£…得好ä¸å¥½ï¼Œå¯ä»¥çœ‹æ­¤æ¨¡å—能ä¸èƒ½æ›¿æ¢æˆåŒç±»æ¨¡å—。 + +**唯一的问题是**:这俩方案太é‡åž‹äº†ã€‚ä½¿ç”¨æˆæœ¬å¤ªé«˜ã€‚ + +## äº”ã€æ—¶é—´æ‚–论问题 + +### 5.1 æ—¶é—´æ‚–è®ºçš„æ ¹æº + +å›žåˆ°ç¬¬ä¸€ç§æ–¹æ¡ˆï¼Œåˆ†æžæ ¹æœ¬åŽŸå› ï¼š + +``` +A æ¨¡å— â†â†’ B æ¨¡å— + ↓ + Main æ¨¡å— +``` + +**这里存在一个时间悖论**: +- A 模å—å’Œ B æ¨¡å—æ˜¯å…ˆå†™å‡ºæ¥çš„ +- Main æ¨¡å—æ˜¯åœ¨ä¹‹åŽçš„æŸä¸ªæ—¶é—´ç‚¹å†™å‡ºæ¥çš„ + +如果想é¿å…抽象泄露到 Main 层,程åºå‘˜éœ€è¦åœ¨ Main 类出现å‰è¡¨è¾¾äº¤æ¢ A å’Œ B 的指针这件事。然而,这åšä¸åˆ°ï¼Œå› ä¸º Main åªæœ‰åœ¨ A å’Œ B å­˜åœ¨åŽæ‰å‡ºçŽ°ã€‚ + +### 5.2 语法é™åˆ¶å¯¼è‡´çš„困境 + +但这是因为**语法é™åˆ¶**。å‡è®¾ç¼–译器支æŒä½¿ç”¨æŠ½è±¡å称作为指针å,其实是ä¸å­˜åœ¨æ—¶é—´æ‚–论的。 + +## å…­ã€æ–°è¯­æ³•设计方案 + +### 6.1 核心语法设计 + +语法基本沿袭继承,但在调用函数或æˆå‘˜å˜é‡æ—¶ï¼Œä½¿ç”¨è¯¥æˆå‘˜çš„**整个å称链**: + +| ç¬¦å· | å«ä¹‰ | +|------|------| +| `..`(两个点) | å‘上级寻找 | +| `...`(三个点) | å‘平级寻找 | +| `.`(一个点) | å‘下级寻找 | + +也å¯ä»¥ä½¿ç”¨ä¸Šæ–œæ ã€æ¨ªæ å’Œä¸‹æ–œæ è¡¨ç¤ºã€‚符å·ä¸é‡è¦ï¼Œé‡è¦çš„æ˜¯åŽŸç†ã€‚ + +### 6.2 use 关键字 + +当å称列太长时,å¯ä»¥ä½¿ç”¨ `use` 关键字进行缩写: + +```python +use module_a.b.c as abc +``` + +实际上,这个 `use` 关键字本质上和传统语言里包管ç†é‡Œçš„ include 或 import 是相åŒçš„东西。 + +### 6.3 super 关键字 + +代ç ä¸­æœ‰ä¸ª `super` 关键字。ABCD 模å—å¯èƒ½æ˜¯å…ˆå†™å‡ºæ¥çš„,Main æ¨¡å—æ˜¯æœªæ¥çš„æŸä¸ªæ—¶é—´ç‚¹å†™å‡ºæ¥çš„。 + +所以写 ABCD 的时候,程åºå‘˜æ˜¯ä¸çŸ¥é“未æ¥é‚£ä¸ªä¸Šçº§æ¨¡å—å«ä»€ä¹ˆå字。这时å¯ä»¥ç”¨ `super` 关键字表示**ä»»æ„å称的上级模å—**: + +```python +class A: + def method(self): + super..call_something() # å‘上级寻找 +``` + +在这ç§å†™æ³•下: +- 底层模å—的逻辑å°è£…在底层 +- æ¯ä¸€å±‚程åºå‘˜æ— éœ€ç†è§£åº•层模å—,åªè¦ä¼šç»„åˆå°±è¡Œäº† +- å¯ä»¥ä»»æ„替æ¢åŒç±»æ¨¡å— + +### 6.4 from å’Œ to 关键字 + +```python +from ModuleC import xxx as xxx_renamed +to ModuleX use some_function +``` + +**from å’Œ to 关键字比看上去更é‡è¦**,类似于主æ¿è®¾è®¡å¸ˆåœ¨ PCB æ¿ä¸Šè¿žåŒå¯¼çº¿ã€‚这个动作是本编程范å¼ä¸‹çš„基石。 + +### 6.5 模å—é‡å‘½å + +æœ‰æ—¶å­æ¨¡å—å¯èƒ½éœ€è¦åŒç±»ã€‚那么å¯ä»¥åƒä¸‹é¢è¿™æ ·é‡å‘½å: + +```python +class MainB: + from ModuleA as mod_a + from ModuleB as mod_b + # 两个模å—都有相åŒçš„æŽ¥å£ï¼Œä½†åç§°ä¸åŒæ—¶è¿›è¡Œé‡å‘½å +``` + +### 6.6 新语法的优势 + +**在抽象泄露的情况下,是无法åšåˆ°è‡ªç”±æ›¿æ¢å­æ¨¡å—çš„**,因为上级模å—耦åˆäº†ä¸‹å±‚实现。æ¯ä¸ªä¸‹å±‚实现的逻辑ä¸åŒï¼Œæ›¿æ¢æ—¶è¦è¿žå¸¦æ›¿æ¢ï¼Œæ³„露到内层的逻辑代ç ã€‚ + +使用新语法åŽï¼š +- æ¯å±‚程åºå‘˜å¯ä»¥ä»»æ„ç»„åˆ B 或 C +- 两者åç§°ä¸åŒæ—¶ï¼Œä½¿ç”¨ `from` 关键字é‡å‘½åå³å¯ +- 模å—å¯ä»¥è‡ªç”±æ›¿æ¢ + +## ä¸ƒã€æ ¸å¿ƒåŽŸç†ï¼šå·¥ä¸šæµæ°´çº¿æ€æƒ³ + +### 7.1 èŒèƒ½éš”离的比喻 + +æœ¬è¯­æ³•çš„æ ¸å¿ƒæ€æƒ³æ˜¯ä»¿ç…§**å·¥ä¸šæµæ°´ç”Ÿäº§çº¿**生产工业å“: + +- ä¸åŒå·¥æ®µçš„工人是èŒèƒ½éš”离的 +- ä¸åŒå·¥æ®µçš„工人无需ç†è§£å‰ä¸€ä¸ªå·¥æ®µ +- åªéœ€è¦ä¼šç»„装上一个工段传输过æ¥çš„é›¶ä»¶å³å¯ +- åŒæ—¶ï¼Œæœ¬å·¥æ®µçš„工人也应该将å°è£…好的零件æä¾›ç»™åŽä¸€ä¸ªå·¥æ®µçš„工人,让其无需ç†è§£æœ¬å·¥æ®µé€»è¾‘ + +### 7.2 空间ä½ç½®å…³ç³» + +拿主æ¿å’Œæ˜¾å¡çš„例孿¥åšè¯´æ˜Žï¼š +- 主æ¿ä¸Šçš„一个电容和显å¡ä¸Šçš„一个电容é‡å或型å·ç›¸åŒæ—¶ï¼Œä¸ä¼šäº§ç”Ÿåç§°å†²çª +- 原因在于,主æ¿å’Œæ˜¾å¡æ˜¯é€šè¿‡**三维空间ä½ç½®**寻找å­é›¶ä»¶ + +**本语法中的全路径巡境表达的是对象æˆå‘˜çš„空间ä½ç½®å…³ç³»**,相当于主æ¿è®¾è®¡å¸ˆåœ¨ PCB æ¿ä¸ŠæŒ‰ç©ºé—´ä½ç½®è¿žåŒå¯¼çº¿ã€‚ + +### 7.3 编译期ä¾èµ–注入 + +本语法相当于在é¢å‘对象的继承语法的基础上,在**编译期实现ä¾èµ–注入**。 + +> **本语法是对é¢å‘对象的语法的å‘展或改进,而éžå¦å®šã€‚** + +## å…«ã€API å…³é”®å­—ä¸Žè°ƒç”¨é“¾è€¦åˆ + +### 8.1 基本语法存在的问题 + +但刚刚的基本语法存在一个问题:**调用链耦åˆäº†å…¶ä»–模å—çš„å称链**。 + +看回例å­ï¼š +- æ¨¡å— A å†è°ƒç”¨æ¨¡å— B 时,调用链耦åˆäº† B 到 D 这个å称链 +- åœ¨å®žé™…é¡¹ç›®ä¸­ï¼Œæ¨¡å— B å¯èƒ½æ˜¯å…¶ä»–å…¬å¸å¼€å‘的开æºåº“ +- 它写的å称链å¯èƒ½æ˜¯ B → E → D +- æ¨¡å— A 的程åºå‘˜æ˜¯ä¸å¯èƒ½è¦æ±‚ B 程åºå‘˜æŒ‰ A çš„è¦æ±‚改åçš„ + +**所以这ç§åŸºæœ¬è¯­æ³•仅适用于模å—内部**,程åºå‘˜å¯ä»¥å®Œå…¨æŽ§åˆ¶ä»£ç çš„æƒ…况下。 + +### 8.2 API 关键字解决方案 + +当模å—间进行交互时,需è¦å¦å¤–一ç§å°è£…机制:`API` 关键字。 + +```python +class ModuleA: + @API # æ ‡è®°ä¸ºå…¬å¼€æŽ¥å£ + def public_interface(self): ... + + def _private_method(self): ... # 内部方法 +``` + +本语法中ä¸å­˜åœ¨å…¶ä»–é¢å‘对象语言中的 public å’Œ private 关键字,而是使用 `API` 关键字控制å¯è§æ€§ã€‚ + +### 8.3 API 关键字的作用 + +å½“æ¨¡å— M 的未标记为 API 时: +- 该 M çš„æˆå‘˜å˜é‡å’Œæˆå‘˜å‡½æ•°å…¨æ˜¯ public 公有 +- å¯è¢«å¤–部任æ„访问 + +使用 API 关键字å¯ä»¥ï¼š +- 精确控制哪些接å£å¯¹å¤–暴露 +- 将调用链耦åˆå°è£…在模å—内部 +- å…许外部替æ¢åŒæŽ¥å£çš„æ¨¡å—而ä¸å½±å“内部实现 + +## ä¹ã€æ€»ç»“ + +### 9.1 ç¼–ç¨‹èŒƒå¼æ¼”进路径 + +| 阶段 | 特点 | 问题 | +|------|------|------| +| è¿‡ç¨‹å¼ | 简å•直接 | 代ç è†¨èƒ€åŽéš¾ä»¥ç»´æŠ¤ | +| é¢å‘对象 | class 语法便于å°è£… | ç»§æ‰¿å¯¼è‡´ä»£ç æ— æ³•å¤ç”¨ã€é‡åå†²çª | +| MVC | ç»„åˆæ€æƒ³ | 抽象泄露ã€åˆå§‹åŒ–é€»è¾‘è€¦åˆ | +| ä¾èµ–注入/å¾®æœåŠ¡ | 解决抽象泄露 | 太é‡åž‹ã€æˆæœ¬é«˜ | + +### 9.2 新范å¼çš„æ ¸å¿ƒè¦ç‚¹ + +1. **全路径巡境**:通过å称链完整表达模å—间的空间ä½ç½®å…³ç³» +2. **编译期ä¾èµ–注入**:在编译阶段完æˆä¾èµ–关系的绑定 +3. **èŒèƒ½éš”离**ï¼šä»¿ç…§å·¥ä¸šæµæ°´çº¿ï¼Œæ¯å±‚程åºå‘˜æ— éœ€ç†è§£åº•层 +4. **模å—坿›¿æ¢**:衡é‡å°è£…好ä¸å¥½çš„æ ‡å‡†æ˜¯èƒ½å¦è‡ªç”±æ›¿æ¢åŒç±»æ¨¡å— +5. **API 关键字**:控制模å—é—´äº¤äº’çš„æŽ¥å£æš´éœ² + +### 9.3 对é¢å‘对象的æ€åº¦ + +本语法是对é¢å‘对象的语法的å‘展或改进,而éžå¦å®šã€‚它解决了: +- 继承的代ç å¤ç”¨é—®é¢˜ +- 多é‡ç»§æ‰¿çš„é‡å冲çªé—®é¢˜ +- MVC 的抽象泄露问题 +- 时间悖论导致的åˆå§‹åŒ–耦åˆé—®é¢˜ + +--- + +**相关讨论补充**(æ¥è‡ªå¼¹å¹•): +- 边界æ¡ä»¶å¤„ç†å’Œè¾“入检查在任何范å¼ä¸‹éƒ½éœ€è¦è€ƒè™‘ +- ç”¨å‡½æ•°åš API å’Œç”¨ç±»åš API 区别挺大——类å¯ä»¥ç»´æŠ¤çжæ€ï¼Œå‡½æ•°å¼æ›´çº¯ç²¹ +- 有些æˆå‘˜å˜é‡è¦ç»´æŠ¤çš„è¯ï¼Œé¢å‘对象还是最åˆé€‚çš„ \ No newline at end of file