学完 Agent 开发基础后,我准备把它真正用在文字创作里
å¦å® Agent å¼ååºç¡åï¼æå夿å®çæ£ç¨å¨æååä½é
å¼åæ±é¸ 2026-08-17 27 é 读9åéè¿å»ä¸æ®µæ¶é´ï¼æç³»ç»å¦äºä¸è½® Agent å¼åçåºç¡ç¥è¯ã
æç°å¨è½å¤ç解并解é䏿¡ Agent çåºæ¬é¾è·¯ï¼æ¨¡åå¦ä½çææå¾ï¼Runtime å¦ä½æ ¡éªåæ§è¡å·¥å ·ï¼messages å¦ä½åå¡«ï¼ç¶æåä¸ä¸æå¦ä½ä¿åï¼ä»¥å RAGãMCPãEvalãGuardrails å Trace åå«è§£å³ä»ä¹é®é¢ã
æä¹åè¿ä¸äº Demoï¼ç¨å®ä»¬éªè¯è¿çå® APIãTool CallingãAgent LoopãRAGãç¶ææ¢å¤ã人工确认åè¯æµé¾è·¯ã
æä»¥ï¼æç»èªå·±çå®ä½æ¯ï¼
æå·²ç»å®æäºä¸è½® Agent å¼ååºç¡å¦ä¹ ï¼ä½å·¥ç¨å®è·µä¸»è¦è¿åçå¨ Demoï¼æ£å¨ä»âç¥é宿ä¹å·¥ä½âèµ°åâæå®çæ£è½å°âã
ææ³éæ©ç第ä¸ä¸ªçå®åºæ¯ï¼æ¯æååä½ã
Demo è½è¯ææçæäºé¾è·¯ï¼ä½è¿ä¸è½è¯ææä¼è½å°
Demo ç好å¤ï¼æ¯å¯ä»¥æå¤æé¾è·¯æå¼ï¼æ¯æ¬¡åªè§å¯ä¸ä¸ªé®é¢ã
æå¯ä»¥åç¬éªè¯ï¼
- 模åè¿å Tool Call åï¼ç©¶ç«æ¯è°æ§è¡å·¥å ·ï¼
- å·¥å ·ç»æææ ·éæ°è¿å ¥ messagesï¼
- 循ç¯å°è¾¾ä¸éæ¶ï¼Runtime åºè¯¥å¨åªéç»æ¢ï¼
- 没æç¨æ·ç¡®è®¤æ¶ï¼åå ¥å·¥å ·ææ ·è¢«ç¡®å®æ§æ¦ä½ï¼
- Eval å¦ä½ç¨ expected å¯¹ç § Trace ä¸çæ£åçç actualã
ä½çå®çæååä½ä¸ä¼åªåºç°ä¸ä¸ªè¿ä¹å¹²åçé®é¢ã
ä¸ä¸ªåä½ Agent éè¦åæ¶å¤çè§è²ã设å®ãæ¶é´çº¿å大纲ï¼éè¦ç¥éå åç« å 容ä¸åªäºå¿ é¡»ä¿çï¼è¿è¦é¢å¯¹æ´éº»ç¦çé®é¢ï¼è¿æ¬¡ä¿®æ¹ç©¶ç«è®©æåå好äºï¼è¿æ¯åªè®©å é¨è¯åå好çäºï¼
å½è¯å®¡åä¿®æ¹å¼å§åå¤å¾ªç¯ï¼ç³»ç»è¿å¿ é¡»ç¥éä»ä¹æ¶ååºè¯¥åæ¢ï¼ææ ·ä¿çè¾å¥½çæ¬ï¼ä»¥åå¦ä½æ¿è®¤å½åç»ææ²¡ææ¶æã
è¿äºé®é¢ä¸å¯è½é ååä¸ä¸ªéç¨ Loop Demo å¾å°çæ¡ã
æ¨å¤©çå¦ä¹ ï¼æ¯ä¸æ¬¡è½å°åå¤ä¹
æ¨å¤©ææ²¡æä»å¤´å¦ä¹ Agent Loopï¼ä¹æ²¡æå®æä¸ä¸ªæ° Agentã
æåçæ¯è½å°åå¤ä¹ ï¼éæ°æ£æ¥å·²ç»å¦è¿çæ¦å¿µææ²¡æåå¾å«æ··ï¼ç¶åæå®ä»¬æ¾å°âå¦ä½åä¸ä¸ªæååä½ Agentâè¿ä¸ªå ·ä½é®é¢ä¸éæ°å¤æã
为äºä¸æå¤ä¹ åæä»å¤´åå¬ä¸éçè®ºï¼æåäºä¸è½®å¿«é®å¿«çãç°å¨å头çï¼å ¶ä¸æäºçæ¡è¯´æåºç¡å·²ç»å»ºç«ï¼æäºçæ¡åæ´é²äºæä»ç¶ä¼æç¸é»æ¦å¿µæ··å¨ä¸èµ·ã
å¦æä½ ä¹è§å¾èªå·±å·²ç»çè§£ Agentï¼ä¸å¦¨å 嫿¥çå¾ä¸çï¼è¯çåçè¿å 个é®é¢ã
模ååèµ· Tool Call åï¼å°åºæ¯è°æ§è¡å·¥å ·ï¼
æççæ¡æ¯ï¼Runtimeã
LLM å¹¶ä¸ä¼ççå»è¯»æä»¶ãè°ç¨æ¥å£æä¿®æ¹æ°æ®ãå®åªæ ¹æ®å·¥å ·å®ä¹è¿åä¸ä¸ªç»æåçè°ç¨æå¾ï¼çæ£è´è´£åæ°æ ¡éªãæé夿ãå·¥å ·æ§è¡åç»æåå¡«çï¼æ¯æ¨¡åå¤é¨ç Runtimeã
è¿ä¸ªé®é¢æçå¾å¾å¿«ãå®ä¹è®©æç¡®è®¤ï¼è¿å»å¦è¿ç Tool Calling 并没æåªå©ä¸å 个åè¯ï¼æå¯¹æåºæ¬çè责边çä»ç¶æ¯æ¸ æ¥çã
Chatbot å Agent çåºå«ï¼æ¯ä¸æ¯ä¸ä¸ªåªè½åçãä¸ä¸ªå¯ä»¥è°ç¨å·¥å ·ï¼
æç第ä¸ååºæ¥è¿è¿ä¸ªè¯´æ³ï¼Chatbot 主è¦è´è´£æååçï¼Agent åè½è°ç¨å·¥å ·å¹¶äº§ççå®å¨ä½ã
ä½è¿ä¸ªçæ¡æâè½åå·®å¼â说æäºâæ¬è´¨å·®å¼âãChatbot åæ ·å¯ä»¥æ¥å ¥å·¥å ·ï¼Agent ä¹ä¸ä¸å®æ¯æ¬¡é½è¦äº§çå¯ä½ç¨ãæ´å ³é®çåºå«æ¯ï¼è°å¨ä¸»å¯¼æµç¨ã
å¨å ¸å Chatbot ä¸ï¼äººæåºä¸ä¸ªé®é¢ï¼æ¨¡å宿䏿¬¡ååºï¼ä¸ä¸æ¥ä»ç±äººå³å®ï¼å¨ Agent ä¸ï¼æ¨¡åä¼å¨ç®æ 约æä¸æç»å¤æä¸ä¸æ¥æ¯åçãè°ç¨å·¥å ·ã读åç»æãä¿®æ£è®¡åï¼è¿æ¯åæ¢ã
æåæ¥æçæ¡æ¹æäºä¸å¥è¯ï¼
Chatbot é常ç±äººæ¨å¨æ¯ä¸æ¥ï¼Agent åæä¸é¨åè¿ç»å³çæäº¤ç»æ¨¡åã
è¿æ¬¡æ¹å£çèµ·æ¥å¾å°ï¼å´ç´æ¥å½±åç³»ç»è®¾è®¡ãå ä¸ºä¸æ¦æä¸ä¸æ¥å³çäº¤ç»æ¨¡åï¼ç»æ¢æ¡ä»¶ãæéè¾¹çã失败æ¢å¤åè¿ç¨å¯è§æµæ§å°±ä¸åæ¯éå åè½ï¼èæ¯ç³»ç»çä¸é¨åã
å¦æä¿®æ¹ä¸è½®åï¼é®é¢åèæ´å¤ï¼Loop è¿è¦ç»§ç»åï¼
æççæ¡æ¯ï¼ä¸è½å 为æµç¨éåçâç»§ç»ä¿®æ¹âå°±ç²ç®å¾ªç¯ã
è¾¾å°æå¤§è½®æ°ãä»»å¡å·²ç»æåãç»§ç»è¿è¡æ²¡æææ¾æ¶çï¼æè ç»æå¼å§æ¶åï¼é½å¯ä»¥æä¸ºåæ¢æ¡ä»¶ãå°¤å ¶å¨æååä½éï¼è¯å®¡åç°çé®é¢å¹¶ä¸ä¸å®ä¼ç¨³å®å°ä»å¤åå°ï¼ä¸æ¬¡ä¿®æ¹å¯è½è§£å³ä¸¤ä¸ªé®é¢ï¼åå¼å ¥ä¸ä¸ªæ°é®é¢ã
æä»¥ Loop ä¸è½åªä¼â忥ä¸è½®âãå®è¿éè¦ä¿åè¾å¥½çæ¬ãæ¯è¾ååãéå¶èµæºï¼å¹¶å¨æ æ³æ¶ææ¶æå³å®äº¤è¿ç»äººã
è¿ä¸ªé®é¢ä¹è®©æçå°ï¼éç¨ Agent Loop åªæ¯éª¨æ¶ãçæ£å°é¾çæ¯æâæ²¡æç»§ç»æ¶çâç¿»è¯æç¹å®åºæ¯ä¸å¯ä»¥è§å¯ãå¯ä»¥æ§è¡ç夿ã
Prompt caching ç¼åçæ¯å ¨é¨è天记å½åï¼
è¿é颿æåçåäºãææå®çè§£ææ¨¡åååæ¿åºç¨ä¿åè¶æ¥è¶é¿çåå²ä¸ä¸æï¼å æ¤è¿æ å¿ç¼å伿 éå¢é¿ã
æ´åç¡®å°è¯´ï¼prompt caching æ¯æå¡å对éå¤ prompt åç¼è¿è¡å¤ç¨ãåºç¨ä»ç¶è¦å¨è¯·æ±ä¸ç»ç»ä¸ä¸æï¼ä¹ä»ç¶éè¦å¤çè£åªãæè¦åç¶æä¿åï¼ç¼åä¼åçæ¯éå¤è®¡ç®çå»¶è¿ä¸ææ¬ï¼å¹¶ä¸ä¼æ¿æè§£å³é¿æè®°å¿é®é¢ã
è¿ç±»è¯¯è§£å¾å±é©ï¼å 为两个æ¦å¿µé½åâ以åçä¿¡æ¯è¿è½ä¸è½ç¨âæå ³ï¼å´åå«å±äºæ¨çä¼ååä¸ä¸æå·¥ç¨ãååè®°ä½äºï¼ä¸ä»£è¡¨è¾¹ççç忏 äºã
æµå¼ Tool Calling çåï¼åªæ¯çé¢ä¸ææç»ç»åï¼
æå¼å§æ³å°çæ¯çå¾ ä½éªï¼ä»¥åâå å±ç¤ºè¿æ¯å å®¡æ ¸âçå®å ¨åèãæ¹åä¸ç®å®å ¨æ å ³ï¼ä½æ²¡æå»ä¸çæ£çå·¥ç¨é®é¢ã
æµå¼ååºéï¼ææ¬åå·¥å ·è°ç¨åå¯è½äº¤éåºç°ï¼å·¥å ·åä¸åæ°ä¹å¯è½è¢«æå¨å¤ä¸ª chunk ä¸ãRuntime 妿çå°åæªåæ°å°±å¼å§æ§è¡ï¼å¾å°çå¯è½æ¯æ æ³è§£æç JSONï¼çè³æ¯ä¸æ¬¡é误è°ç¨ã
æä»¥ parser å¿
é¡»å
è¯å« block ç±»åï¼æç»ç´¯ç§¯å·¥å
·åæ°ï¼ç¡®è®¤å®æ´ç tool_use ç»æååæ ¡éªåæ§è¡ãæµå¼è¾åºä¸æ¯ç®å尿宿´çæ¡åæè®¸å¤å°çï¼å®ä¼æ¹å Runtime è¯»åæ¨¡åç»æçæ¹å¼ã
å åç« å 容ï¼è½ä¸è½å ¨é¨å¡è¿ä¸ä¸æï¼
æçç´è§æ¯ä¸è¦å ¨å¡ï¼èè¦éè¿æè¦ãç¶æåæéæ£ç´¢ï¼åªç»è£ å½åä»»å¡çæ£éè¦çä¿¡æ¯ãè¿ä¸ªæ¹åæ¯å¯¹çï¼ä½çç±ä¸åªæ¯âå¯è½è¶ è¿ä¸ä¸æçªå£âã
å³ä½¿ç©çä¸å¡å¾ä¸ï¼å¤§éä½ç¸å ³å 容ä¹å¯è½æ·¹æ²¡å ³é®ä¿¡å·ï¼å¢å ææ¬ï¼å¹¶è®©æ¨¡åçæ³¨æå被ç¨éã对é¿ç¯å使¥è¯´ï¼æ¯âææ²¡ææ¾è¿å»âæ´éè¦çæ¯ï¼åªäºè®¾å®å¿ 须常驻ï¼åªäºä¿¡æ¯æå½åç« èè£ é ï¼åªäºåæåªæåºç°å²çªæ¶æéè¦ååã
è¿å 个æ¥åæ²¡ææ¨ç¿»æåæ¥å¦è¿ç Agent åºç¡ãç¸åï¼å®ä»¬å¸®æåºåäºä¸¤ä»¶äºï¼æè½å¤è¿°ä¸ä¸ªæ¦å¿µï¼åæè½å¨çå®è®¾è®¡ä¸ç¨å¯¹è¿ä¸ªæ¦å¿µï¼å¹¶ä¸æ¯ä¸åäºã
å 忏 æå¨éæ©åªä¸å±
å¿«é®å¿«çä¹å¤ï¼å¦ä¸ä¸ªè¢«çº æ£çé®é¢ï¼æ¯ææä¸åå±çº§çå·¥å ·æ¾å¨äºä¸èµ·æ¯è¾ã
æåæ¥åæ¶å¨ç PiãHermesãLangChainãLangGraph å Pydantic AIï¼ç¶åé®èªå·±ï¼å°åºåºè¯¥éåªä¸ä¸ªï¼
ä½å®ä»¬ä¸æ¯åä¸å±çå¤é项ã
Pi å Hermes æ´æ¥è¿å¯ç´æ¥ä½¿ç¨ç Agent æ Harness å®ç°ï¼LangChain æ¯ Agent æ¡æ¶ï¼LangGraph æ´åä½å±ç¼æ Runtimeï¼Pydantic AI åæèªå·±å®ä½ä¸º Python AI SDKãâfork ä¸ä¸ªå®æ´å®ç°âåâç¨æ¡æ¶æ SDK æå»ºèªå·±ç Agentâï¼æ¬æ¥å°±ä¸æ¯åä¸ä¸ªé®é¢ã
è¿äºå 容ä¸ä¼è®©æâ忝ä¸ä¸æ¬¡âãå®ä»¬ç价弿¯ï¼å¨çæ£å¼å·¥åæè®¤ç¥è¾¹ç鿰坹é½ï¼é¿å ä¸å¼å§å°±å¨é误çå±çº§ä¸åéåã
æåå¤å å䏿¡çå®çæå°é¾è·¯
å¤ä¹ 以åï¼æä¸åæç®æ 设æâååä¸ä¸ª 100 è¡ Agent Loopâã
Loop å·²ç»å¦è¿ï¼ä¹å·²ç»éè¿ Demo éªè¯è¿ãè¿æ¬¡çæ£è¦éªè¯çï¼æ¯æè½ä¸è½æå®æ¾è¿æååä½åºæ¯ï¼ç»æä¸æ¡æå®é è¾å ¥åè¾åºçæå°é¾è·¯ï¼
å
·ä½åä½ç®æ
â ç»è£
å¿
è¦çåä½èµäº§åä¸ä¸æ
â æ¨¡åçæå
容æè¯·æ±å·¥å
·
â Runtime æ ¡éªå¹¶æ§è¡
â ä¿åè¾åºãçæ¬å Trace
â ç±çå®ä½¿ç¨ç»æå¤ææ¯å¦æç¨
è¿æ¡é¾è·¯çåºå± Loopãå·¥å ·åå¡«ãé误æ¢å¤åç»æ¢æ¡ä»¶ï¼å¯ä»¥ç´æ¥å¤ç¨åé¢å¦è¿çç¥è¯åå·²éªè¯ç§¯æ¨ã
çæ£éè¦æ°å¢çï¼æ¯æååä½èªå·±çé¢åé®é¢ï¼åä½èµäº§å¦ä½ç»ç»ï¼é¿ä¸ä¸æå¦ä½å缩ï¼ä¿®æ¹ååå¦ä½æ¯è¾ï¼ä»ä¹ç»æç®æ¯å好ï¼ä»ä¹æ åµå¿ 须忢ã
æä¹ä¸æç®å¨ç¬¬ä¸çéåæ¶å ä¸å AgentãMCPãRAGãé¿æè®°å¿ãå¤æç¶æå¾åå¤è½®è¯å®¡ã
è¿äºè½åå°æ¥é½å¯è½æç¨ï¼ä½åºè¯¥çç¬¬ä¸æ¡çå®é¾è·¯æ´é²åºéæ±ååå å ¥ãæ¡æ¶ä¹åºè¯¥æ ¹æ®çå®å¤æåº¦éæ©ï¼è䏿¯ä¸ºäºè¯æèªå·±ä¼ç¨æä¸ªå·¥å ·ã
ä»å¦åºç¡å°åè½å°
æ¨å¤©æè¿æ²¡æå䏿ååä½ Agent çä¸å¡ä»£ç ã
è¿æ¬¡å¦ä¹ ç产åºï¼ä¸æ¯ä¸ä¸ªå¯è¿è¡ç项ç®ï¼èæ¯ä¸æ¡æ´åç¡®çèµ·è·çº¿ï¼æç¥éåªäºåºç¡ä¸éè¦éå¦ï¼åªäºæ¦å¿µéè¦éæ°æ ¡åï¼ä¹ç¥é第ä¸çä¸åºè¯¥è£ è¿å¤ªå¤è½åã
ä¸ä¸æ¥ï¼æè¦éä¸ä¸ªå ·ä½çæååä½ä»»å¡ï¼è®©å®çæ£äº§çå 容ï¼ä¿çè¿ç¨åçæ¬ï¼ç¶åç±æèªå·±å¤æå®ææ²¡æå®æç®æ ã
å¦æç»æä¸å¥½ï¼å°±åå° Traceãä¸ä¸æåè¯æµæ åéæ¾åå ï¼è䏿¯ç»§ç»å¦æ°åè¯ï¼æææåæ¢ä¸ä¸ªæ¡æ¶å°±è½èªå¨è§£å³é®é¢ã
æå·²ç»æäº Agent å¼åçåºç¡å°å¾ã
ç°å¨ï¼è¯¥å¼å§éªè¯è¿å¼ å°å¾è½ä¸è½å¸¦æèµ°è¿çå®åºæ¯äºã
Aitishiku.com