add agent code

This commit is contained in:
2026-06-02 08:44:01 +00:00
parent c1b2c864d5
commit d6395f0d06
+54
View File
@@ -0,0 +1,54 @@
"""
Agent with memory and confirmation of tool usage.
"""
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain.tools import BaseTool
import os
# Example tool: get_price (placeholder)
class GetPriceTool(BaseTool):
name = "get_price"
description = "Get price for a city. Input: {city}"
def _run(self, city: str) -> str:
# Dummy implementation
return f"The price in {city} is $100"
# Setup LLM and memory
llm = ChatOpenAI(temperature=0)
memory = ConversationBufferMemory()
# Create agent with interrupt_before tools
agent = create_openai_tools_agent(
llm,
[GetPriceTool()],
verbose=True,
checkpointer=memory,
interrupt_before=["tools"]
)
executor = AgentExecutor(agent=agent, tools=[GetPriceTool()], verbose=True)
# Main loop
while True:
user_input = input("You: ")
if user_input.lower() in {"exit", "quit"}:
break
# Run executor and capture interrupt
try:
result = executor.run(user_input)
print(result)
except Exception as e:
if "__interrupt__" in str(e):
# Extract tool call info from exception message (simplified)
print("Agent wants to use a tool.")
confirm = input("Allow? (Y/n): ")
if confirm.lower() in {"", "y", "yes"}:
executor.run(user_input, run_name=None) # retry
else:
print("Action cancelled by user.")
else:
raise