Skip to content

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:
    pass

HTTP 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":
        break

x402 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())

Released under the MIT License.