设计模式)
AI Agentä¸äººç±»åä½ï¼äººæºåç¯ï¼Human-in-the-Loopï¼è®¾è®¡æ¨¡å¼å½AI Agentä»å®éªå®¤èµ°åç产ç¯å¢ï¼ä¸ä¸ªæ ¸å¿é®é¢æµ®åºæ°´é¢ï¼å¦ä½è®©å®å¨èªä¸»æ§è¡ä¸äººç±»çç£ä¹é´æ¾å°æä½³å¹³è¡¡ç¹ï¼äººæºåç¯ï¼Human-in-the-Loop, HITLï¼è®¾è®¡æ¨¡å¼æ£æ¯è§£å³è¿ä¸é®é¢çå ³é®æ¡æ¶ãæ¬æå°ä»å·¥ç¨å®è·µè§åº¦ï¼æ·±å ¥æ¢è®¨ä½æ¶éè¦äººç±»ä»å ¥ãå¦ä½è®¾è®¡ä¸æç¹ãæå»ºä¿¡ä»»æºå¶ï¼ä»¥åå®ç°æ¸è¿å¼èªå¨åç宿´è·¯å¾ãä¸ã为ä»ä¹éè¦äººæºåç¯AI Agentçè½åè¾¹çæ£å¨å¿«éæ©å±ï¼ä½å®å ¨èªä¸»çAgentå¨ç产ç¯å¢ä¸ä»é¢ä¸´è¯¸å¤ææï¼å³çé£é©ï¼é«ä»·å¼å³çï¼å¦å»çè¯æãéè交æï¼éè¦äººç±»ä¸å®¶æå ³æ°æ®ç²åºï¼Agentå¯è½éå°è®ç»åå¸å¤çç½è§åºæ¯è´£ä»»å½å±ï¼å½Agentç¯éæ¶ï¼éè¦æç¡®çè´£ä»»é¾æ¡ä¿¡ä»»å»ºç«ï¼ç¨æ·å¯¹é»çç³»ç»çä¸ä¿¡ä»»æ¯é纳çæå¤§éç¢äººæºåç¯å¹¶é让Agentå笨ï¼èæ¯éè¿ç»æåç人类ä»å ¥æºå¶ï¼è®©Agentå¨ä¸ç¡®å®æ¶ä¸»å¨æ±å©ï¼å¨å ³é®èç¹ä¸»å¨ç¡®è®¤ï¼æç»å®ç°æ¯çº¯èªä¸»æçº¯äººå·¥é½æ´ä¼çæ´ä½è¡¨ç°ãç 究表æï¼åç设计ç人æºåç¯ç³»ç»å¯ä»¥å°é误çéä½40%-60%ï¼åæ¶ä¿ææ¥è¿å ¨èªå¨ç³»ç»çæçãäºã使¶éè¦äººç±»ä»å ¥ï¼å³çæ æ¨¡å䏿¯æ¯ä¸ªå³çé½éè¦äººç±»åä¸ãè¿åº¦ç人æºäº¤äºä¼é使çï¼èè¿å°çä»å ¥åä¼ç§¯ç´¯é£é©ãæä»¬ä½¿ç¨ç½®ä¿¡åº¦-å½±åç©éµæ¥å¤ææ¯å¦éè¦äººç±»ä»å ¥ï¼from dataclasses import dataclass from enum import Enum class InterventionLevel(Enum): AUTO auto # å®å ¨èªä¸» NOTIFY notify # æ§è¡åéç¥ CONFIRM confirm # æ§è¡å确认 ESCALATE escalate # å级人类å¤ç dataclass class DecisionContext: confidence: float # Agent置信度 0-1 impact_score: float # ä¸å¡å½±åå 0-1 reversibility: bool # æ¯å¦å¯æ¤é compliance_required: bool # æ¯å¦æ¶ååè§ def determine_intervention_level(ctx: DecisionContext) - InterventionLevel: åºäºå³çä¸ä¸æå¤æä»å ¥çº§å« # é«å½±å ä½ç½®ä¿¡åº¦ å¿ é¡»å级 if ctx.impact_score 0.8 and ctx.confidence 0.7: return InterventionLevel.ESCALATE # åè§è¦æ± å¿ é¡»ç¡®è®¤ if ctx.compliance_required: return InterventionLevel.CONFIRM # é«å½±å ä¸ç½®ä¿¡åº¦ æ§è¡å确认 if ctx.impact_score 0.6 and ctx.confidence 0.85: return InterventionLevel.CONFIRM # ä½ç½®ä¿¡åº¦ ä¸å¯é 确认 if ctx.confidence 0.6 and not ctx.reversibility: return InterventionLevel.CONFIRM # ä¸ç½®ä¿¡åº¦ æ§è¡åéç¥ if ctx.confidence 0.85: return InterventionLevel.NOTIFY # é«ç½®ä¿¡åº¦ ä½å½±å å®å ¨èªä¸» return InterventionLevel.AUTO # 示ä¾ï¼ä¸ååºæ¯ä¸çå³ç scenarios [ DecisionContext(0.95, 0.1, True, False), # ä½å½±åé®ä»¶åç±» â AUTO DecisionContext(0.5, 0.9, False, True), # é«å½±ååè§æä½ â ESCALATE DecisionContext(0.7, 0.5, False, False), # ä¸ç置信度客æ·å群 â CONFIRM ] for s in scenarios: level determine_intervention_level(s) print(f置信度{s.confidence}, å½±å{s.impact_score} â {level.value})è¿ä¸ªæ¨¡åçæ ¸å¿ææ³æ¯ï¼è®©Agentå¦ä¼ç¥éèªå·±ä¸ç¥éãéè¿éå置信度åä¸å¡å½±åï¼ç³»ç»å¯ä»¥å¨æè°æ´äººç±»ä»å ¥ç深度ãä¸ã䏿ç¹è®¾è®¡ï¼Agentçæå䏿±å©è½å䏿ç¹ï¼Breakpointï¼æ¯äººæºåç¯çç©çéç¹ãä¸ä¸ªè®¾è®¡è¯å¥½ç䏿ç¹ç³»ç»éè¦æ»¡è¶³ä¸ä¸ªæ¡ä»¶ï¼å¯é ç½®ã坿¢å¤ãæä¸ä¸æã3.1 䏿ç¹ç±»å| ç±»å | è§¦åæ¡ä»¶ | éç¨åºæ¯ | |------|----------|----------| | ç½®ä¿¡åº¦ä¸æ | 模åè¾åºç½®ä¿¡åº¦ä½äºéå¼ | åç±»ãæ¨èã颿µä»»å¡ | | å¼å¸¸ä¸æ | æ£æµå°æ°æ®æè¡ä¸ºå¼å¸¸ | æ°æ®æ¼ç§»ãå¼å¸¸è®¿é® | | è§å䏿 | å½ä¸é¢å®ä¹çä¸å¡è§å | éé¢è¶ éãæææä½ | | æ¶é´ä¸æ | æ§è¡æ¶é´è¶ è¿é¢æ | 夿任å¡å¯è½é·å ¥å¾ªç¯ | | 请æ±ä¸æ | Agent主å¨è¯·æ±äººç±»è¾å ¥ | ä¿¡æ¯ç¼ºå¤±ãå¤ç®æ å²çª |3.2 坿¢å¤ä¸æçå®ç°