
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录智能体1、理解Agents2、Agent的基本用法1模型的传入方式2.1 传入模型字符串2.2 传入模型对象3、Agent的基本用法2如何调用Agent4、Agent的基本用法3绑定工具4.1 基本用法举例1绑定一个工具举例2调用langchain内置的工具举例3绑定多个工具4.2 工具调用流程分析4.3 重试机制4.4 常见问题智能体1、理解Agents2、Agent的基本用法1模型的传入方式更多参数参考https://reference.langchain.com/python/langchain/agents/factory/create_agent2.1 传入模型字符串2.2 传入模型对象3、Agent的基本用法2如何调用Agent举例1fromlangchain.agentsimportcreate_agentfromlangchain.chat_modelsimportinit_chat_modelfromdotenvimportload_dotenvimportos load_dotenv(overrideTrue)fromrichimportprintasrprint# 以init_chat_model为例modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyos.getenv(CLOSEAI_API_KEY),base_urlos.getenv(CLOSEAI_BASE_URL))agentcreate_agent(modelmodel)# 调用# response agent.invoke({# messages:[# {role:user,content:你好}# ]# })responseagent.invoke({messages:[你好]})rprint(response){messages:[HumanMessage(content你好,additional_kwargs{},response_metadata{},ideb353a30-9042-4007-a0a4-b9607e0dd711),AIMessage(content你好有什么我可以帮你的吗,additional_kwargs{refusal:None},response_metadata{token_usage:{completion_tokens:13,prompt_tokens:7,total_tokens:20,completion_tokens_details:{accepted_prediction_tokens:0,audio_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0},prompt_tokens_details:{audio_tokens:0,cached_tokens:0},latency_checkpoint:{engine_tbt_ms:4,engine_ttft_ms:36,engine_ttlt_ms:82,pre_inference_ms:86,service_tbt_ms:4,service_ttft_ms:274,service_ttlt_ms:316,total_duration_ms:239,user_visible_ttft_ms:188}},model_provider:openai,model_name:gpt-5.4-mini-2026-03-17,system_fingerprint:None,id:chatcmpl-E01MoXhhF4EOspY5xZGRx1AUknyOy,service_tier:default,finish_reason:stop,logprobs:None},idlc_run--019f4b40-b73b-75d2-9a09-eeea10233483-0,tool_calls[],invalid_tool_calls[],usage_metadata{input_tokens:7,output_tokens:13,total_tokens:20,input_token_details:{audio:0,cache_read:0},output_token_details:{audio:0,reasoning:0}})]}fromlangchain.agentsimportcreate_agentfromlangchain.chat_modelsimportinit_chat_modelfromdotenvimportload_dotenvimportos load_dotenv(overrideTrue)fromrichimportprintasrprint# 以init_chat_model为例modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyos.getenv(CLOSEAI_API_KEY),base_urlos.getenv(CLOSEAI_BASE_URL))agentcreate_agent(modelmodel)# 调用responseagent.invoke({messages:[{role:system,content:你是一个精通数学的老师擅长以通俗易懂的方式讲解数学问题},{role:user,content:100 20 * 3 }]})rprint(response){messages:[SystemMessage(content你是一个精通数学的老师擅长以通俗易懂的方式讲解数学问题,additional_kwargs{},response_metadata{},id7f0d8a15-a18e-4ee9-83f6-f60e012f7006),HumanMessage(content100 20 * 3 ,additional_kwargs{},response_metadata{},id2339bb7a-f228-4333-bc7c-53367389e790),AIMessage(content先算乘法\n\n-\\(20\\times360\\)\n\n再算加法\n\n-\\(10060160\\)\n\n所以答案是**160**。,additional_kwargs{refusal:None},response_metadata{token_usage:{completion_tokens:44,prompt_tokens:43,total_tokens:87,completion_tokens_details:{accepted_prediction_tokens:0,audio_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0},prompt_tokens_details:{audio_tokens:0,cached_tokens:0},latency_checkpoint:{engine_tbt_ms:4,engine_ttft_ms:33,engine_ttlt_ms:231,pre_inference_ms:76,service_tbt_ms:5,service_ttft_ms:292,service_ttlt_ms:482,total_duration_ms:420,user_visible_ttft_ms:215}},model_provider:openai,model_name:gpt-5.4-mini-2026-03-17,system_fingerprint:None,id:chatcmpl-Dmg7y7OFSvrnW0HMOc31Luk0j7QaT,service_tier:default,finish_reason:stop,logprobs:None},idlc_run--019e8db7-2d24-73d3-a7dd-3c336762b6f4-0,tool_calls[],invalid_tool_calls[],usage_metadata{input_tokens:43,output_tokens:44,total_tokens:87,input_token_details:{audio:0,cache_read:0},output_token_details:{audio:0,reasoning:0}})]}4、Agent的基本用法3绑定工具这里的工具可以是LangChain内置的也可以是自定义的。LangChain生态中已经内置集成了非常多的实用工具开发者可以快速调用这些工具完成更加复杂工作流的开发。LangChain内置工具列表https://docs.langchain.com/oss/python/integrations/tools其中典型的工具如下4.1 基本用法Agents支持绑定一或多个工具。举例1绑定一个工具调用查询天气工具进行天气查询fromlangchain_core.toolsimporttoolfromlangchain.agentsimportcreate_agentfromlangchain.chat_modelsimportinit_chat_modelfromdotenvimportload_dotenvimportos load_dotenv(overrideTrue)fromrichimportprintasrprint# 以init_chat_model为例modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyos.getenv(CLOSEAI_API_KEY),base_urlos.getenv(CLOSEAI_BASE_URL))# 定义一个工具tool(parse_docstringTrue)defget_weather(city:str): 查询天气的工具 Args: city : 具体的城市 returnf{city}天气晴朗温度是15℃agentcreate_agent(modelmodel,tools[get_weather])responseagent.invoke({messages:[{role:system,content:你是一个查询天气的助手根据用户的提问查询天气。如果问题跟天气无关你可以说我不清楚这个问题的答案},{role:user,content:北京的天气如何}]})rprint(response){messages:[SystemMessage(content你是一个查询天气的助手根据用户的提问查询天气。如果问题跟天气无关你可以说我不清楚这个问题 的答案,additional_kwargs{},response_metadata{},idf676e465-aca9-469d-82f4-b668f36acd78),HumanMessage(content北京的天气如何,additional_kwargs{},response_metadata{},id719e990a-81d8-429f-a39f-1a6827a1ba33),AIMessage(content,additional_kwargs{refusal:None},response_metadata{token_usage:{completion_tokens:18,prompt_tokens:170,total_tokens:188,completion_tokens_details:{accepted_prediction_tokens:0,audio_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0},prompt_tokens_details:{audio_tokens:0,cached_tokens:0},latency_checkpoint:{engine_tbt_ms:11,engine_ttft_ms:135,engine_ttlt_ms:340,pre_inference_ms:94,service_tbt_ms:12,service_ttft_ms:818,service_ttlt_ms:1017,total_duration_ms:932,user_visible_ttft_ms:724}},model_provider:openai,model_name:gpt-5.4-mini-2026-03-17,system_fingerprint:None,id:chatcmpl-DmgQANJLGFzARwjtPmTPQPs1lC4Fm,service_tier:default,finish_reason:tool_calls,logprobs:None},idlc_run--019e8dc8-63c2-7a22-b87d-b192ffe95044-0,tool_calls[{name:get_weather,args:{city:北京},id:call_DPkqzBdPpUHfSfEvr3NvJhka,type:tool_call}],invalid_tool_calls[],usage_metadata{input_tokens:170,output_tokens:18,total_tokens:188,input_token_details:{audio:0,cache_read:0},output_token_details:{audio:0,reasoning:0}}),ToolMessage(content北京天气晴朗温度是15℃,nameget_weather,id452810b7-c3e4-4ef0-a535-6a753c6f454c,tool_call_idcall_DPkqzBdPpUHfSfEvr3NvJhka),AIMessage(content北京天气晴朗温度是 15℃】【。,additional_kwargs{refusal:None},response_metadata{token_usage:{completion_tokens:16,prompt_tokens:208,total_tokens:224,completion_tokens_details:{accepted_prediction_tokens:0,audio_tokens:0,reasoning_tokens:0,rejected_prediction_tokens:0},prompt_tokens_details:{audio_tokens:0,cached_tokens:0},latency_checkpoint:{engine_tbt_ms:5,engine_ttft_ms:49,engine_ttlt_ms:129,pre_inference_ms:98,service_tbt_ms:5,service_ttft_ms:728,service_ttlt_ms:805,total_duration_ms:717,user_visible_ttft_ms:630}},model_provider:openai,model_name:gpt-5.4-mini-2026-03-17,system_fingerprint:None,id:chatcmpl-DmgQCMCEEudUJXawvV78S7FpknJnV,service_tier:default,finish_reason:stop,logprobs:None},idlc_run--019e8dc8-6eb1-7ae2-a8f3-68c7b65ee8cd-0,tool_calls[],invalid_tool_calls[],usage_metadata{input_tokens:208,output_tokens:16,total_tokens:224,input_token_details:{audio:0,cache_read:0},output_token_details:{audio:0,reasoning:0}})]}举例2调用langchain内置的工具绑定内置的TavilySearch搜索工具可以借助Tavily进行网络搜索和信息爬取。这里我们需要先在tavily官网注册并获得API-KEY每月有免费额度https://www.tavily.com/fromlangchain_tavilyimportTavilySearchfromlangchain_core.toolsimporttoolfromlangchain.agentsimportcreate_agentfromlangchain.chat_modelsimportinit_chat_modelfromdotenvimportload_dotenvimportos load_dotenv(overrideTrue)fromrichimportprintasrprint# 以init_chat_model为例modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyos.getenv(CLOSEAI_API_KEY),base_urlos.getenv(CLOSEAI_BASE_URL))# 使用内置的工具web_searchTavilySearch(max_results2,tavily_api_keyos.getenv(TAVILY_API_KEY),)agentcreate_agent(modelmodel,tools[web_search])responseagent.invoke({messages:[{role:user,content:请帮我查询2024年诺贝尔物理学奖得主是谁}]})rprint(response)举例3绑定多个工具fromlangchain.agentsimportcreate_agentfromlangchain.toolsimporttoolfromdotenvimportload_dotenvfromrichimportprintasrprint load_dotenv(overrideTrue)tool(parse_docstringTrue)defget_weather(city:str): 天气查询工具 Args: city: 城市名称 returnf{city}今天天气挺好tool(parse_docstringTrue)defget_news(): 新闻查询工具 return近期受全球储蓄芯片短缺等多重因素影响多地回收商称废旧手机回收市场迎来“火热潮”回收价格普遍上涨旧手机成“香饽饽”。agentcreate_agent(model,tools[get_weather,get_news])responseagent.invoke({messages:[你好杭州今天的天气如何今天有哪些新闻]})rprint(response)4.2 工具调用流程分析4.3 重试机制Agent可以在工具调用结果不满足要求时自主重试。fromlangchain.agentsimportcreate_agentfromlangchain.toolsimporttoolfromlangchain.messagesimportSystemMessage,HumanMessagefromdotenvimportload_dotenvfromrichimportprintasrprint load_dotenv(overrideTrue)flag0tooldefget_weather(city:str): 天气查询工具 Args: city: 城市名称 globalflag flag1ifflag3:# raise Exception(暂时无法访问)returnTEMP_UNAVAILABLE: 天气服务暂时不可用请稍后重试returnf{city}今天天气挺好messages[SystemMessage( 你是一个天气助手。 当工具返回以 TEMP_UNAVAILABLE: 开头的结果时 说明是临时故障不要立即放弃 你应再次调用同一个工具最多重试 3 次。 如果 3 次后仍失败再向用户说明服务暂时不可用。 ),HumanMessage(你好杭州今天的天气如何)]agentcreate_agent(model,tools[get_weather])responseagent.invoke({messages:messages})rprint(response)# for msg in response[messages]:# msg.pretty_print()模型三次调用get_weather 最终获得了满意的结果4.4 常见问题