当前位置: 首页 > news >正文

AI Agent开发实战:从零构建一个能自主规划任务的智能体

AI Agent开发实战:从零构建一个能自主规划任务的智能体

引言

2025年被许多人称为"AI Agentå
ƒå¹´"ã€‚ä¸åŒäºŽä¼ ç»Ÿçš„èŠå¤©æœºå™¨äººï¼ŒAI Agent是一个能够自主感知环境、制定计划、使用工å
·å¹¶æ‰§è¡Œå¤æ‚任务的智能系统。从AutoGPT的爆火到Claudeçš„Computer Use,Agent正在重新定义我们与AIçš„äº¤äº’æ–¹å¼ã€‚æœ¬æ–‡å°†ä»Žé›¶å¼€å§‹ï¼Œå¸¦ä½ æž„å»ºä¸€ä¸ªå
·å¤‡è§„划、工å
·è°ƒç”¨å’Œè®°å¿†åŠŸèƒ½çš„AI Agentï¼Œå®Œæ•´è¦†ç›–æž¶æž„è®¾è®¡ã€æ ¸å¿ƒå®žçŽ°å’Œç”Ÿäº§åŒ–éƒ¨ç½²ã€‚

一、什么是AI Agent?

1.1 Agentçš„æ ¸å¿ƒå®šä¹‰

AI Agentä¸æ˜¯ä¸€ä¸ªå•ç‹¬çš„æ¨¡åž‹ï¼Œè€Œæ˜¯ä¸€ä¸ªç³»ç»Ÿæž¶æž„ã€‚å®ƒç”±å››ä¸ªæ ¸å¿ƒç»„ä»¶æž„æˆã€‚å¤§è„‘ç»„ä»¶é€šå¸¸æ˜¯LLM,负责推理和决策,决定了Agent的智能上限。规划组件将复杂任务分解为可执行的子步骤,常用技术åŒ
括ReAct、Plan-and-Solveå’ŒTree of Thought。工å
·ç»„件是Agent与外部世界交互的接口,可以是APIè°ƒç”¨ã€ä»£ç æ‰§è¡Œã€æµè§ˆå™¨æ“ä½œã€æ–‡ä»¶è¯»å†™ç­‰ã€‚è®°å¿†ç»„ä»¶åˆ†ä¸ºçŸ­æœŸè®°å¿†å¦‚å¯¹è¯ä¸Šä¸‹æ–‡çª—å£ã€é•¿æœŸè®°å¿†å¦‚å‘é‡æ•°æ®åº“å­˜å‚¨çš„çŸ¥è¯†ã€å·¥ä½œè®°å¿†å¦‚å½“å‰ä»»åŠ¡çš„çŠ¶æ€è·Ÿè¸ªã€‚

1.2 Agent vs ä¼ ç»ŸChatBot

维度ChatBotAI Agent
交互模式单轮问答多轮自主执行
å·¥å
·ä½¿ç”¨æ—可调用API/ä»£ç /浏览器
任务复杂度简单问答复杂多步骤任务
记忆能力上下文窗口短期+长期+工作记忆
自主性被动响应主动规划执行

二、Agent架构设计

2.1 ReAct模式

ReAct(Reasoning + Acting)是目前最主流的AgentæŽ¨ç†æ¨¡å¼ã€‚æ ¸å¿ƒå¾ªçŽ¯åˆ†ä¸ºå››æ­¥ã€‚ç¬¬ä¸€æ­¥Thought:分析当前状态,思考下一步行动。第二步Action:执行å
·ä½“操作如调用工å
·ã€‚第三步Observationï¼šè§‚å¯Ÿæ“ä½œç»“æžœã€‚ç¬¬å››æ­¥å¾ªçŽ¯ï¼Œæ ¹æ®è§‚å¯Ÿç»“æžœæ›´æ–°çŠ¶æ€å¹¶ç»§ç»­æ€è€ƒä¸‹ä¸€æ­¥ã€‚è¿™ä¸ªå¾ªçŽ¯æŒç»­è¿›è¡Œç›´åˆ°ä»»åŠ¡å®Œæˆæˆ–è¾¾åˆ°ç»ˆæ­¢æ¡ä»¶ã€‚

用户: "帮我查一下北京今天天气,如果下雨就提醒我带伞" Agent Thought: éœ€è¦å ˆèŽ·å–åŒ—äº¬å¤©æ°”ä¿¡æ¯ Agent Action: call_weather_api("北京") Observation: {"city": "北京", "weather": "小雨", "temp": 18} Agent Thought: 天气是小雨,需要提醒用户带伞 Agent Action: respond("北京今天小雨,气温18℃,记得带伞哦!")

2.2 系统架构图

整体架构分为三层。应用层定义Agent角色、任务、约束,是面向用户的接口。编排层是ReAct循环引擎,管理规划、执行、观察的完整流程,是Agent的大脑。基础设施层åŒ
括LLM服务(模型推理)、工å
·æ³¨å†Œä¸­å¿ƒï¼ˆå·¥å
·å‘现和调用)、记忆系统(短期和长期记忆管理)。

ä¸‰ã€æ ¸å¿ƒå®žçŽ°

3.1 ReAct引擎实现

importjsonfromtypingimportAnyfromdataclassesimportdataclass@dataclassclassAgentStep:thought:straction:straction_input:dictobservation:strclassReActAgent:def__init__(self,llm,tools,max_steps=10):self.llm=llm self.tools={t.name:tfortintools}self.max_steps=max_steps self.history:list[AgentStep]=[]defrun(self,task:str)->str:prompt=self._build_prompt(task)forstep_numinrange(self.max_steps):response=self.llm.generate(prompt)thought,action,action_input=self._parse(response)result=self._execute_action(action,action_input)step=AgentStep(thought=thought,action=action,action_input=action_input,observation=str(result))self.history.append(step)ifaction=="FINISH":returnaction_input.get("answer",str(result))prompt+=self._format_step(step)return"达到最大步数限制"def_build_prompt(self,task:str)->str:tools_desc="\n".join(f"-{t.name}:{t.description}"fortinself.tools.values())returnf"""ä½ æ˜¯ä¸€ä¸ªAI Agent。 ## å¯ç”¨å·¥å ·{tools_desc}## 任务{task}## å“åº”æ ¼å¼ Thought: [ä½ çš„æ€è€ƒ] Action: [å·¥å ·åæˆ–FINISH] Action Input: [JSONæ ¼å¼å‚æ•°] """

3.2 å·¥å

·ç³»ç»Ÿè®¾è®¡

classTool:def__init__(self,name:str,description:str,func):self.name=name self.description=description self.func=funcdefexecute(self,**kwargs)->Any:returnself.func(**kwargs)# 定义工å·defsearch_web(query:str)->str:"""搜索网络信息"""returnf"搜索结果:å ³äºŽ'{query}'çš„ç›¸å ³ä¿¡æ¯..."defexecute_code(code:str)->str:"""执行Pythonä»£ç """try:result=eval(code)returnf"执行结果:{result}"exceptExceptionase:returnf"执行错误:{e}"defread_file(path:str)->str:"""è¯»å–æ–‡ä»¶å† å®¹"""withopen(path,'r')asf:returnf.read()tools=[Tool("search","搜索网络信息,参数: query",search_web),Tool("run_code","执行Pythonä»£ç ï¼Œå‚æ•°: code",execute_code),Tool("read_file","读取文件,参数: path",read_file),]

3.3 记忆系统实现

fromcollectionsimportdequeimportchromadbclassMemorySystem:def__init__(self,short_term_size=20):self.short_term=deque(maxlen=short_term_size)self.working={}# 当前任务状态self.long_term=chromadb.Client()defadd_short_term(self,message:dict):self.short_term.append(message)defget_context(self)->list:returnlist(self.short_term)defstore_long_term(self,key:str,value:str):collection=self.long_term.get_or_create("knowledge")collection.add(documents=[value],ids=[key])defquery_long_term(self,query:str,k=5):collection=self.long_term.get_collection("knowledge")returncollection.query(query_texts=[query],n_results=k)

四、Prompt工程在Agent中的特殊应用

4.1 结构化输出约束

Agent中Promptæœ€é‡è¦çš„æ˜¯çº¦æŸè¾“å‡ºæ ¼å¼ï¼Œä¾¿äºŽè§£æžã€‚

ä½ å¿ é¡»ä¸¥æ ¼æŒ‰ç §ä»¥ä¸‹JSONæ ¼å¼å›žå¤ï¼Œä¸è¦åŒ å«ä»»ä½•å ¶ä»–å† å®¹ï¼š { "thought": "ä½ çš„æŽ¨ç†è¿‡ç¨‹", "action": "å·¥å ·åç§°æˆ–FINISH", "action_input": {"key": "value"} }

4.2 错误恢复Prompt

在Agentçš„Promptä¸­åŠ å
¥é”™è¯¯å¤„理逻辑至å
³é‡è¦ã€‚

å¦‚æžœå·¥å ·è¿”å›žé”™è¯¯ï¼Œè¯·ï¼š 1. åˆ†æžé”™è¯¯åŽŸå› 2. 尝试修正参数后重试(最多3次) 3. 如果3次仍失败,换用替代方案 4. å¦‚æ— æ›¿ä»£æ–¹æ¡ˆï¼Œå‘ç”¨æˆ·è¯´æ˜Žæƒ å†µ

五、生产化部署考量

5.1 安å

¨æ²™ç®±

Agentæ‰§è¡Œä»£ç å’ŒShell命令å¿
须有安å
¨æ²™ç®±ã€‚推荐使用Docker容器隔离、限制网络访问、设置执行è¶
时、禁止危险系统调用。

5.2 成本控制

Agent可能产生大量LLM调用。优化策略åŒ
括:对简单任务使用mini模型(如GPT-4o-mini),ä»
复杂推理使用强模型;设置最大步数和总Token预算;缓存相同或相似的子任务结果;对工å
·è°ƒç”¨ç»“果进行摘要压缩后再放å
¥ä¸Šä¸‹æ–‡ã€‚

5.3 可观测性

importloggingclassObservableAgent(ReActAgent):defrun(self,task:str)->str:logging.info(f"Agent开始执行:{task}")forstepinself.history:logging.info(f"Step: thought={step.thought}, "f"action={step.action}")returnsuper().run(task)

å

­ã€å®žæˆ˜æ¡ˆä¾‹ï¼šè‡ªåŠ¨ç ”ç©¶åŠ©æ‰‹

综合以上å†
å®¹å®žçŽ°ä¸€ä¸ªèƒ½æœç´¢ã€åˆ†æžã€æ€»ç»“çš„è‡ªåŠ¨ç ”ç©¶åŠ©æ‰‹ã€‚æµç¨‹ä¸ºï¼šæŽ¥æ”¶ç ”ç©¶ä¸»é¢˜ï¼Œæœç´¢ç›¸å
³èµ„料,提取å
³é”®ä¿¡æ¯ï¼Œç»¼åˆåˆ†æžç”ŸæˆæŠ¥å‘Šï¼Œä¿å­˜åˆ°æœ¬åœ°ã€‚

这个Agent展示了完整的感知-规划-执行-反馈闭环。

七、未来展望

Agent发展方向主要åŒ
括三个方面。多Agent协作,多个专用Agent通过消息总线协作完成è¶
复杂任务,类似AutoGençš„è®¾è®¡æ€è·¯ã€‚è‡ªä¸»å­¦ä¹ ï¼ŒAgentä»Žæ‰§è¡ŒåŽ†å²ä¸­å­¦ä¹ ï¼Œä¼˜åŒ–Prompt和策略,减少重复错误。多模态Agent,整合视觉、语音等多模态输å
¥ï¼Œå®žçŽ°æ›´ä¸°å¯Œçš„çŽ¯å¢ƒæ„ŸçŸ¥èƒ½åŠ›ã€‚

总结

构建生产级AI Agent需要å
³æ³¨å››ä¸ªå
³é”®ç‚¹ã€‚第一,稳健的ReAct循环,这是Agentèƒ½è‡ªä¸»æ‰§è¡Œå¤šæ­¥ä»»åŠ¡çš„æ ¸å¿ƒå¼•æ“Žã€‚ç¬¬äºŒï¼Œçµæ´»çš„å·¥å
·ç³»ç»Ÿï¼Œå·¥å
·æ˜¯Agent能力的延伸,设计好工å
·æŽ¥å£æ˜¯æˆåŠŸçš„ä¸€åŠã€‚ç¬¬ä¸‰ï¼Œæœ‰æ•ˆçš„è®°å¿†ç®¡ç†ï¼ŒçŸ­æœŸã€é•¿æœŸã€å·¥ä½œè®°å¿†ä¸‰è€
缺一不可。第四,完善的错误处理,生产环境中错误不可避å
ï¼Œä¼˜é›
降级是å
³é”®ã€‚

Agentä»Žä¸€ä¸ªæ¦‚å¿µåˆ°å¯ç”¨çš„äº§å“ï¼Œä¸­é—´æœ‰å¤§é‡çš„å·¥ç¨‹ç»†èŠ‚éœ€è¦æ‰“ç£¨ã€‚å¸Œæœ›æœ¬æ–‡èƒ½ä¸ºä½ æ­å»ºè‡ªå·±çš„Agent系统提供æ¸
晰的技术路线图。


本文约2800字,完整覆盖了AI Agent从概念到实现的å
¨æµç¨‹ã€‚

http://www.jsqmd.com/news/1093220/

相关文章:

  • Python学习笔记·第24天:Pandas数据清洗——缺失值、重复值与透视表实战
  • 使用visual studio和ai制作ppt
  • AI 学习助手:基于 HarmonyOS ArkTS 的智能学习伴侣开发实践
  • 第一批被龙虾气到的人出现了
  • Vue3 项目从开发到上线:环境变量、打包优化与 Nginx 部署全流程
  • 相处的艺术:尊重与边界
  • 企业知识图谱的拐点: 当本体工程遇上 LLM 与 MCP
  • Spring Boot 自定义 Starter 机制
  • GPT-5.6 Sol预览解读:max推理、ultra多Agent与分层安全栈
  • 剑指offer-79、最⻓不含重复字符的
  • Codex Linux 教程:从安装配置到卸载清理全流程指南
  • 基于Anthropic-Cybersecurity-Skills构建网络安全AI智能体实战指南
  • FontForge字体设计完全指南:从入门到精通掌握专业字体编辑
  • GPT-5.6系列模型发布遇阻:OpenAI面临多国监管审批,Claude Fable 5重返引发全球讨论
  • Vibe Coding 实战复盘:一个人 + AI,从零打造会聊天的个人主页
  • 关于多线程归并排序的性能瓶颈与优化方案的技术7
  • HFSS求解设置实战解析:从驱动求解到本征模求解的核心配置
  • 数据中心电力模块的发展趋势对数据中心建设有哪些影响?
  • 目前自动评价系统问题---------会卡在一些异常的地方
  • XCP协议:从总线标定到汽车ECU数据交互的核心
  • GoChatIAI -Go语言AI应用服务平台(1)
  • 2026论文双降终极榜单:10款降AI率网站,查重降重+降AIGC一次通关
  • IntelliJ IDEA 之工程模块管理
  • Java的java.lang.foreign访问
  • Agent-Reach:命令行多模型AI对话与自动化集成工具实践指南
  • 2026新疆游首选指南:如何轻松甄别靠谱旅行社
  • 搭建Hermes+Obsidian,我搞定了这辈子最值的本地知识库,从安装到测试全流程讲解!你缺的不是好内容,是一个能帮你记住的AI
  • 全球高端健身房都在用什么跑步机?解析Precor必确的核心技术与产品优势
  • ARM Cortex-M内核单片机HardFault异常详解
  • 电路板质量出问题,怎么查源头?全流程追溯体系给出答案