langChain预定义工具

含义----LangChain中提供了很多预定义的Tool,方便我们使用

用于联网的

.1.基本用法

它的使用步骤是这样的:

  • 注册账号,创建API_KEY

  • 配置环境变量: TAVILY_API_KEY

  • 安装依赖:`uv add langchain-tavily`

    使用tavily作为web搜索工具

    from langchain_tavily import TavilySearch

    search_tool = TavilySearch(
    max_results=5,
    topic="general", # general, news, finance
    # include_answer=False,
    # include_raw_content=False,
    # include_images=False,
    # include_image_descriptions=False,
    # search_depth="basic",
    # time_range="day",
    # include_domains=None,
    # exclude_domains=None
    )
    search_tool.invoke("蒸蚌是什么梗?")

    {'query': '蒸蚌是什么梗?',
    'response_time': 0.61,
    'follow_up_questions': None,
    'answer': None,
    'images': [],
    'results': [{'url': 'https://zh.hinative.com/questions/15904858',
    'title': '"我蒸蚌"是什么意思? - HiNative',
    'content': '我蒸蚌蒸蚌是「真棒」的意思因為"蒸蚌" 跟"真棒" 的音一模一樣,所以有一些人在寫「真棒」的時候,會故意用蒸蚌兩字,然後只是因為這樣子看起來很有趣 的',
    'score': 0.9998104,
    'raw_content': None},
    {'url': 'https://search.bilibili.com/all?keyword=蒸蚌',
    'title': '蒸蚌',
    'content': '【梗百科】萝卜纸巾猫是啥梗?真棒! 02:18. 【梗百科】萝卜纸巾猫是啥梗?真棒 ... 大型纪录片《蒙题蒸蚌猫》东西是分不清的,答案是全靠蒙的,真棒是必须要夸的',
    'score': 0.9996699,
    'raw_content': None},
    {'url': 'https://www.sina.cn/news/detail/5260814380434515.html',
    'title': '蒸蚌梗源自胡萝卜纸巾猫_新浪新闻',
    'content': '蒸蚌这个梗原来是来自这个胡萝卜纸巾猫哇这个小帽子神来之笔,一戴窝窝囊囊老实巴交的感觉就来了[泪奔] \u200b. 发布于北京.',
    'score': 0.99966204,
    'raw_content': None},
    {'url': 'https://www.facebook.com/61557545415108/posts/蒸蚌memes-fun-迷因-搞笑/122172017300251513/',
    'title': '蒸蚌! #memes #fun #迷因#搞笑',
    'content': 'Abracadabra是一個著名的咒文,作為「魔語 」在進行魔術表演時使用。歷史上曾經認為, 這個咒文刻在護身符時能有治癒的能力。來自 維基百科 這個送去',
    'score': 0.9995122,
    'raw_content': None},
    {'url': 'https://www.instagram.com/p/Ci4D7UWpK-_/',
    'title': '蒸蚌蒸蝦#諧音梗圖#梗圖#真瞎#真棒#情侶#作死#生活#日常#白目 ...',
    'content': '蒸蚌蒸蝦#諧音梗圖#梗圖#真瞎#真棒#情侶#作死#生活#日常#白目#恐龍 ... 你是一ㄓㄓㄨ #諧音梗 #諧音梗圖 · #動物 #蜘蛛 · #情侶 #作死 · #生活 #日常',
    'score': 0.99948066,
    'raw_content': None}],
    'request_id': '5b353b38-79dd-4c07-b896-e4143962b917'}

2.优化

目前的搜索智能体存在两个问题:

  • 官方默认的tavily工具过于复杂

  • 结果中不包含网页数据源,可信度低

解决思路:

  • 自定义tavily工具

  • 结构化输出

自定义tavily工具

LangChain官方提供的tavily工具包含了完整的参数列表,会导致额外的流量和Token消耗。因此,对于简单的业务,我们建议大家利用tavily自定义工具。

复制代码
# 先使用官方的客户端做初始化
tavily = TavilySearch(
    max_results=5,
    topic="general"
)

# 然后自己封装为tool
@tool
def web_search(query: str):
    """Search the web for information"""
    return tavily.invoke(query)

定义结构化输出实体

复制代码
from pydantic import BaseModel, Field

# Agent回答内容引用的网页信息
class Reference(BaseModel):
    title: str = Field(description="The title of the web page cited in the answer")
    url: str = Field(description="The url of the web page cited in the answer")

# Agent的回答内容
class AnswerInfo (BaseModel):
    answer: str = Field(description="The final answer for user")
    reference: list[Reference] = Field(description="The web pages cited in the answer")
# 创建智能体,使用预定义工具tavily
agent = create_agent(
    model="deepseek-chat",
    tools=[web_search],
    system_prompt="你是一个智能助手,你使用工具来解决用户问题。",
    response_format=AnswerInfo
)
# 调用agent
response = agent.invoke(
    {"messages": [HumanMessage(content="蒸蚌是什么梗?")]},
)

# 获取结构化输出
print(response['structured_response'])
===============================================-=======================================
answer='"蒸蚌"是一个网络流行梗,主要有两层含义:\n\n1. **谐音梗**:"蒸蚌"是"真棒"的谐音,因为发音完全相同,所以网友故意用"蒸蚌"这两个字来代替"真棒",显得有趣好玩。\n\n2. **源自"萝卜纸巾猫"梗**:这个梗主要来源于抖音博主"超级无敌大开门"的视频。博主训练他的三花猫"开门"辨认物品,当猫咪在胡萝卜和纸巾之间选择时,无论选对选错,主人都会用魔性的声音说"真棒"(谐音"蒸蚌")来鼓励猫咪。\n\n**梗的流行原因**:\n- 猫咪"开门"在辨认胡萝卜和纸巾时,总是"察言观色"地蒙题\n- 主人那句魔性的"蒸蚌"夸赞声极具感染力\n- 猫咪的可爱表现和主人的互动形成了反差萌\n- 谐音梗本身具有记忆点和传播力\n\n**发展**:\n这个梗从猫咪视频逐渐演变成全网模仿的热潮,出现了各种"蒸蚌"挑战和模仿,甚至出现了"猫传人"现象,成为2025年的一个爆款网络梗。现在"蒸蚌"已经成为一种幽默、自我调侃式的鼓励文化符号。' reference=[Reference(title='蒸蚌梗源自胡萝卜纸巾猫_新浪新闻', url='https://www.sina.cn/news/detail/5260814380434515.html'), Reference(title='蒸蚌小猫梗怎么火的 - 抖音', url='https://www.douyin.com/shipin/7589558380507842611'), Reference(title='"我蒸蚌"是什么意思? - HiNative', url='https://zh.hinative.com/questions/15904858'), Reference(title='萝卜纸巾分不清的"蒸蚌小猫",拿下首个全球代言! - 新浪财经', url='https://cj.sina.cn/articles/view/5952915705/162d248f906702n1fe?froms=ggmp&vt=4')]
相关推荐
Restart-AHTCM4 小时前
LangChain学习之提示词模板 Prompts(2/8)
学习·langchain
Artech4 小时前
[对比学习LangChain和MAF-02]基本编程模式的差异(下篇)
ai·langchain·agent·maf
尘埃落定wf5 小时前
五大主流 Agent 架构模式详解
ai·langchain
敲上瘾5 小时前
LangChain 消息机制与提示词模板指南
大数据·python·langchain
哥本哈士奇19 小时前
LangChain Deepagent 版本0.6.1中间件一个bug
中间件·langchain·bug
秦jh_21 小时前
【LangChain】流式传输
langchain
前端小超人rui21 小时前
AI Agent对比 / Coze Dify LangChain LangGraph的区别
langchain·a i agent
Restart-AHTCM1 天前
LangChain学习之环境搭建与基础概念(1/8)
学习·langchain
米小虾1 天前
从 ReAct 到 Multi-Agent:AI Agent 架构设计的演进与实践
langchain·jetbrains