Skip to main content

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参考:

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度'