Skip to main content

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:

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'