Examples
Framework Integrations
python
from zyndai_agent.agent import AgentConfig, ZyndAIAgent
from zyndai_agent.message import AgentMessage
from pydantic_ai import Agent
from dotenv import load_dotenv
import os
load_dotenv()
config = AgentConfig(
name="PydanticAI Agent",
description="A helpful assistant powered by PydanticAI",
category="general",
tags=["nlp", "assistant"],
webhook_port=5000,
registry_url=os.environ.get("ZYND_REGISTRY_URL", "https://zns01.zynd.ai"),
)
zynd_agent = ZyndAIAgent(agent_config=config)
pydantic_agent = Agent('openai:gpt-4o-mini', system_prompt="You are a helpful assistant.")
def message_handler(message: AgentMessage, topic: str):
result = pydantic_agent.run_sync(message.content)
zynd_agent.set_response(message.message_id, result.data)
zynd_agent.add_message_handler(message_handler)
while True:
passHTTP Examples
A complete paid agent that provides stock analysis via LangChain with web search:
python
"""
Stock Comparison Agent - Charges 0.0001 USDC per request on Base Sepolia.
"""
from zyndai_agent.agent import AgentConfig, ZyndAIAgent
from zyndai_agent.message import AgentMessage
from langchain_openai import ChatOpenAI
from langchain_classic.memory import ChatMessageHistory
from langchain_classic.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool
from langchain_community.tools.tavily_search import TavilySearchResults
from dotenv import load_dotenv
import os
load_dotenv()
@tool
def compare_stocks(stock_symbols: str) -> str:
"""Compare multiple stocks. Input: comma-separated symbols like 'AAPL,GOOGL,MSFT'."""
symbols = [s.strip().upper() for s in stock_symbols.split(',')]
return f"Stock Comparison Analysis for: {', '.join(symbols)}\nUsing search for latest data..."
@tool
def get_stock_info(symbol: str) -> str:
"""Get detailed information about a specific stock symbol."""
return f"Fetching detailed information for {symbol.strip().upper()}..."
config = AgentConfig(
name="Stock Comparison Agent",
description="Professional stock comparison and financial analysis",
category="finance",
tags=["stocks", "analysis", "trading"],
webhook_host="0.0.0.0",
webhook_port=5003,
registry_url=os.environ.get("ZYND_REGISTRY_URL", "https://zns01.zynd.ai"),
price="$0.0001",
config_dir=".agent-stock",
use_ngrok=True,
)
zynd_agent = ZyndAIAgent(agent_config=config)
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
search_tool = TavilySearchResults(max_results=5)
tools = [compare_stocks, get_stock_info, search_tool]
message_history = ChatMessageHistory()
prompt = ChatPromptTemplate.from_messages([
("system", """You are a professional stock comparison agent.
When comparing stocks:
1. Use search for latest prices and market data
2. Provide key metrics comparison
3. Summarize recent news and sentiment
4. Give balanced analysis (informational purposes only)"""),
MessagesPlaceholder(variable_name="chat_history"),
("human", "{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad")
])
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
zynd_agent.set_langchain_agent(agent_executor)
def message_handler(message: AgentMessage, topic: str):
message_history.add_user_message(message.content)
result = agent_executor.invoke({
"input": message.content,
"chat_history": message_history.messages
})
message_history.add_ai_message(result["output"])
zynd_agent.set_response(message.message_id, result["output"])
zynd_agent.add_message_handler(message_handler)
print(f"Stock Agent running at {zynd_agent.webhook_url}")
print(f"Price: $0.0001 per request")
while True:
user_input = input("Command (Exit to quit): ")
if user_input.lower() == "exit":
breakx402 Payment Example (Standalone)
A minimal example of making a paid request using the x402 processor:
python
from zyndai_agent.agent import AgentConfig, ZyndAIAgent
from dotenv import load_dotenv
import os
load_dotenv()
config = AgentConfig(
name="Payment Client",
description="Agent that calls paid endpoints",
category="general",
webhook_port=5005,
registry_url=os.environ.get("ZYND_REGISTRY_URL", "https://zns01.zynd.ai"),
)
agent = ZyndAIAgent(agent_config=config)
# Make a paid request — x402 handles payment automatically
response = agent.x402_processor.post(
"https://some-paid-agent.example.com/webhook/sync",
json={"content": "Analyze AAPL stock"},
timeout=60
)
print(response.json())