Skip to main content
Simple research assistant that charges for usage.

Code

"""Research Assistant Agent behind paywall

A Bindu agent that finds and summarizes information.
Uses DuckDuckGo for web search capabilities.

Features:
- Web search integration
- Information summarization
- Research assistance

Usage:
    python agno_paywall_example.py

Environment:
    Requires OPENROUTER_API_KEY in .env file
"""

import os
from bindu.penguin.bindufy import bindufy
from agno.agent import Agent
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.models.openrouter import OpenRouter
from dotenv import load_dotenv

load_dotenv()

agent = Agent(
    instructions="You are a research assistant that finds and summarizes information.",
    model=OpenRouter(
        id="openai/gpt-4o-mini",
        api_key=os.getenv("OPENROUTER_API_KEY")
    ),
    tools=[DuckDuckGoTools()],
)

config = {
    "author": "your.email@example.com",
    "name": "research_agent",
    "description": "A research assistant agent",
    "deployment": {
        "url": "http://localhost:3773",
        "expose": True,
        "cors_origins": ["http://localhost:5173"]
    },
    "execution_cost": {
        "amount": "$0.0001",
        "token": "USDC",
        "network": "base-sepolia",
        "pay_to_address": "0x2654bb8B272f117c514aAc3d4032B1795366BA5d",
        "protected_methods": [
            "message/send"
        ]
    }
}

def handler(messages: list[dict[str, str]]):
    result = agent.run(input=messages)
    return result

if __name__ == "__main__":
    os.environ["AUTH_ENABLED"] = "false"
    bindufy(config, handler)

How It Works

Instructions
  • Defines agent as research assistant
  • Finds and summarizes information from web
  • Provides comprehensive research results
  • Maintains informative and helpful tone
Tools
  • DuckDuckGoTools(): Search web for current information
  • Web search integration for real-time data
  • Information gathering and summarization
Model
  • gpt-4o-mini: Cost-effective model for research tasks
  • Via OpenRouter API integration
  • Configurable through environment variables
Payment
  • execution_cost: $0.0001 USDC per request
  • base-sepolia network for transactions
  • Protected message/send method requires payment

Dependencies

uv init
uv add bindu agno python-dotenv

Environment Setup

Create .env file:
OPENROUTER_API_KEY=your_openrouter_api_key_here

Run

uv run premium-research-assistant.py
Examples:
  • “Research the latest developments in quantum computing”
  • “Find information about renewable energy trends in 2024”
  • “What are the current market trends in artificial intelligence?”

Example API Calls

{
  "jsonrpc": "2.0",
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "kind": "message",
      "messageId": "9f11c870-5616-49ad-b187-d93cbb100001",
      "contextId": "9f11c870-5616-49ad-b187-d93cbb100002",
      "taskId": "9f11c870-5616-49ad-b187-d93cbb100003",
      "parts": [
        {
          "kind": "text",
          "text": "Research the latest developments in quantum computing"
        }
      ]
    },
    "configuration": {
      "acceptedOutputModes": ["application/json"]
    }
  },
  "id": "9f11c870-5616-49ad-b187-d93cbb100003"
}
{
  "jsonrpc": "2.0",
  "method": "tasks/get",
  "params": {
    "taskId": "9f11c870-5616-49ad-b187-d93cbb100003"
  },
  "id": "9f11c870-5616-49ad-b187-d93cbb100004"
}

Frontend Setup

# Clone the Bindu repository
git clone https://github.com/GetBindu/Bindu

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start frontend development server
npm run dev
Open http://localhost:5173 and try to chat with the premium research assistant