Skip to main content
Research assistant with DuckDuckGo search integration.

Code

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-5-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"]
    },
}

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)
    #bindufy(config, handler, launch=True)
    # This will create a tunnel to your agent and expose it on port 3773

How It Works

Research Capability
  • Agent searches web via DuckDuckGo
  • Finds relevant information
  • Summarizes findings clearly
Instructions
  • Simple, focused directive
  • “Find and summarize information”
  • Guides agent behavior
Auth Disabled
  • AUTH_ENABLED = "false" for local dev
  • Frontend connects without OAuth
  • Production should enable auth

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 agno_simple_example.py
Examples:
  • “Research the latest developments in quantum computing”
  • “Find information about climate change and its effects”
  • “What are the recent breakthroughs in medical research?”

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 research assistant