XML代理
某些语言模型(如Anthropic的Claude)在推理/编写XML方面特别擅长。本文介绍如何使用一个在提示时使用XML的代理。
from langchain.agents import XMLAgent, tool, AgentExecutor
from langchain.chat_models import ChatAnthropic
from langchain.chains import LLMChain
model = ChatAnthropic(model="claude-2")
@tool
def search(query: str) -> str:
"""搜索有关当前事件的信息。"""
return "32度"
tool_list = [search]
chain = LLMChain(
llm=model,
prompt=XMLAgent.get_default_prompt(),
output_parser=XMLAgent.get_default_output_parser()
)
agent = XMLAgent(tools=tool_list, llm_chain=chain)
agent_executor = AgentExecutor(agent=agent, tools=tool_list, verbose=True)
agent_executor.run("纽约的天气如何?")
API参考:
- XMLAgent 来自
langchain.agents
- tool 来自
langchain.agents
- AgentExecutor 来自
langchain.agents
- ChatAnthropic 来自
langchain.chat_models
- LLMChain 来自
langchain.chains
model = ChatAnthropic(model="claude-2")
@tool
def search(query: str) -> str:
"""搜索有关当前事件的信息。"""
return "32度"
tool_list = [search]
chain = LLMChain(
llm=model,
prompt=XMLAgent.get_default_prompt(),
output_parser=XMLAgent.get_default_output_parser()
)
agent = XMLAgent(tools=tool_list, llm_chain=chain)
agent_executor = AgentExecutor(agent=agent, tools=tool_list, verbose=True)
agent_executor.run("纽约的天气如何?")
> 进入新的AgentExecutor链...
> <tool>search</tool>
> <tool_input>纽约的天气32度
> <final_answer>纽约的天气是32度
> 完成链。
>
> '纽约的天气是32度'