XML Agent
Some language models (like Anthropic's Claude) are particularly good at reasoning/writing XML. This goes over how to use an agent that uses XML when prompting.
from langchain.agents import XMLAgent, tool, AgentExecutor
from langchain.chat_models import ChatAnthropic
from langchain.chains import LLMChain
API Reference:
- XMLAgent from
langchain.agents
- tool from
langchain.agents
- AgentExecutor from
langchain.agents
- ChatAnthropic from
langchain.chat_models
- LLMChain from
langchain.chains
model = ChatAnthropic(model="claude-2")
@tool
def search(query: str) -> str:
"""Search things about current events."""
return "32 degrees"
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("whats the weather in New york?")
> Entering new AgentExecutor chain...
<tool>search</tool>
<tool_input>weather in New York32 degrees
<final_answer>The weather in New York is 32 degrees
> Finished chain.
'The weather in New York is 32 degrees'