Integrate Valyu’s deep search capabilities directly into your Anthropic Claude applications using our provider system. This enables your AI agents to access real-time information from academic papers, news, financial data, and authoritative sources.
The new Anthropic provider makes integration incredibly simple:
Copy
from anthropic import Anthropicfrom valyu import AnthropicProviderfrom dotenv import load_dotenvload_dotenv()# Initialize clientsanthropic_client = Anthropic()provider = AnthropicProvider()# Get Valyu toolstools = provider.get_tools()# Create a research requestmessages = [ { "role": "user", "content": "What are the latest developments in quantum computing? Write a summary of your findings." }]# Step 1: Call Anthropic with toolsresponse = anthropic_client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1000, tools=tools, messages=messages,)# Step 2: Execute tool callstool_results = provider.handle_tool_calls(response=response)# Step 3: Get final response with search resultsif tool_results: updated_messages = provider.build_conversation(messages, response, tool_results) final_response = anthropic_client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=2000, messages=updated_messages, ) # Extract and print the response for content in final_response.content: if hasattr(content, "text"): print(content.text)else: for content in response.content: if hasattr(content, "text"): print(content.text)
Create a simple research agent that can access current information:
Copy
from anthropic import Anthropicfrom valyu import AnthropicProviderdef create_research_agent(): client = Anthropic() provider = AnthropicProvider() tools = provider.get_tools() def research(query: str) -> str: system_prompt = """You are a research assistant with access to real-time information. Always cite your sources.""" messages = [ { "role": "user", "content": query } ] # Get response with tools response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1000, tools=tools, messages=messages, system=system_prompt ) # Execute any tool calls tool_results = provider.handle_tool_calls(response=response) if tool_results: # Get final response with search data updated_messages = provider.build_conversation(messages, response, tool_results) final_response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=2000, messages=updated_messages, system=system_prompt ) # Extract text from response result = "" for content in final_response.content: if hasattr(content, "text"): result += content.text return result # Extract text from initial response result = "" for content in response.content: if hasattr(content, "text"): result += content.text return result return research# Usageagent = create_research_agent()result = agent("Find the price of Bitcoin and Nvidia over the last 2 years, then find news about them both respectively, and write a detailed report on the price, news, and potential asset correlation.")print(result)
def create_financial_agent(): client = Anthropic() provider = AnthropicProvider() tools = provider.get_tools() def analyze_market(assets: list) -> str: query = f"Get the latest news and price data for {', '.join(assets)}, then provide a detailed market analysis report" messages = [ { "role": "user", "content": query } ] system_prompt = "You are a financial analyst. Provide data-driven insights with specific numbers and sources." response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1000, tools=tools, messages=messages, system=system_prompt ) tool_results = provider.handle_tool_calls(response=response) if tool_results: updated_messages = provider.build_conversation(messages, response, tool_results) final_response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=2500, messages=updated_messages, system=system_prompt ) result = "" for content in final_response.content: if hasattr(content, "text"): result += content.text return result result = "" for content in response.content: if hasattr(content, "text"): result += content.text return result return analyze_market# Usagefinancial_agent = create_financial_agent()analysis = financial_agent(["Bitcoin", "Ethereum", "Tesla"])print(analysis)
system_prompt = """You are a research assistant with access to real-time information.Guidelines:- Always cite sources from search results- Provide specific data points and numbers- If information is recent, mention the date"""response = anthropic_client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=2000, tools=tools, messages=messages, system=system_prompt)
try: response = anthropic_client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1500, tools=tools, messages=messages, ) tool_results = provider.handle_tool_calls(response=response) if tool_results: updated_messages = provider.build_conversation(messages, response, tool_results) final_response = anthropic_client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=2000, messages=updated_messages, ) result = "" for content in final_response.content: if hasattr(content, "text"): result += content.text return result result = "" for content in response.content: if hasattr(content, "text"): result += content.text return resultexcept Exception as e: return "I apologize, but I encountered an error while processing your request."