|
# Import necessary modules from LangChain |
|
from langchain.agents import initialize_agent, AgentType |
|
from langchain.llms import OpenAI |
|
from langchain.tools import BaseTool |
|
|
|
# Define a custom tool that echoes back the input text. |
|
class EchoTool(BaseTool): |
|
"""A simple tool that echoes the provided text.""" |
|
|
|
name = "echo_tool" |
|
description = "A tool that echoes back any text provided to it." |
|
|
|
def _run(self, text: str): |
|
return f"Echo: {text}" |
|
|
|
async def _arun(self, text: str): |
|
# Async version; here we call the synchronous implementation. |
|
return self._run(text) |
|
|
|
# Initialize the language model with a moderate temperature for controlled creativity. |
|
llm = OpenAI(temperature=0.2) |
|
|
|
# Define the list of tools that our agent can use. |
|
tools = [EchoTool()] |
|
|
|
# Initialize the agent using a specific agent type. |
|
agent = initialize_agent( |
|
tools=tools, |
|
llm=llm, |
|
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, # Uses zero-shot reasoning. |
|
verbose=True |
|
) |
|
|
|
# Define a query for the agent to process. |
|
query = "Please echo the message: 'Hello, LangChain!'" |
|
|
|
# Run the agent with the query and capture the response. |
|
response = agent.run(query) |
|
|
|
# Print the response. |
|
print("Agent Response:", response) |