LangChain的可扩展式Agent工具:custom-agent-with-tool-retrieval(附:对接wordpress示例方法)

文 / @WordPress主题

LangChain提供了一个非常有价值的功能custom-agent-with-tool-retrieval,它赋予了Agent强大的可扩展性。借助这个工具,我们可以打造出集成外部知识源的智能Agent,而不仅仅局限于单一的语言模型。

本文将详细介绍这个可扩展Agent工具的原理、设计和运用。重点通过WordPress集成示例,指导读者如何利用WordPress REST API构建一个自动获取文章数据的自定义Agent。您将学会定义工具方法,在generate函数内调用工具结果,来丰富Agent的知识源。

自定义集成式Agent为LangChain的可扩展性打开了一扇大门。利用这个工具,你可以打造出面向特定领域,并内置丰富知识的专家Agent。让我们一起来探索这一新功能,使用外部知识提升AI的智能!

LangChain的可扩展式Agent工具(custom-agent-with-tool-retrieval)

langchain中的custom-agent-with-tool-retrieval功能允许我们构建可以利用外部工具或API的自定义Agent。

主要思路是:

  1. 定义一个自定义的Agent类,继承自langchain的Agent类
  2. 在这个类中定义retrieve_tools方法,指定可以调用的外部工具/API
  3. 在generate方法中,可以调用self.tool_retrieval来访问这些工具
  4. tool_retrieval会将提示传给工具,获取结果并集成到最终输出中

例如,可以定义一个可以调用Wikipedia API的Agent:

python

Copy code

from langchain import Agent
import wikipediaapi
class WikipediaAgent(Agent):

def retrieve_tools(self) -> List[Tool]:
wiki = wikipediaapi.Wikipedia('en')
return [Tool(name="wiki", func=wiki.page)]

def generate(self, prompt, tool_retrieval):
results = tool_retrieval(prompt, tools=["wiki"])
summary = results["wiki"]["summary"]
return summary

agent = WikipediaAgent()

这样这个Agent就可以在回复中调用Wikipedia来获取概述信息了。

我们可以通过继承Agent类并实现自定义工具获取的方式,来扩展Agent的外部能力,从而产生更多样化和知识性的回复内容。这为构建集成外部知识的智能Agent提供了很大的灵活性。

对接wordpress示例方法

langchain中的custom-agent-with-tool-retrieval功能可以对接WordPress来构建自定义的Agent。

主要思路是通过WordPress REST API来实现:

  1. 在Agent中定义retrieve_tools方法,返回一个封装了WordPress REST API的工具
  2. WordPress REST API允许通过HTTP请求获取文章、页面、媒体等内容
  3. 在generate方法中,可以调用这个工具来从WordPress获取相关数据
  4. 然后处理和集成这些数据,形成完整的回复

例如,可以这样获取并显示一篇文章的标题和摘要:

python

Copy code

import wordpress_api

class WPAgent(Agent):

def retrieve_tools(self) -> List[Tool]:
wp = wordpress_api.WordPress(...)
return [Tool(name="wp", func=wp.get_post)]

def generate(self, prompt, tool_retrieval):
post = tool_retrieval(f"get the post with ID 1", tools=["wp"])
title = post["title"]["rendered"]
excerpt = post["excerpt"]["rendered"]
return f"标题:{title}\n摘要:{excerpt}"

这样Agent就可以利用WordPress的数据来自动生成回复了。

通过定制retrieve_tools和generate方法,可以实现从WordPress获取各种信息,如文章列表、页面内容、元信息等,来丰富Agent的知识源,从而产生更个性化和知识性的回复

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。