Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ServiceScout

Author: Theo Weise

Important Note: Currently, all calls are redirected to your signed-in phone number for proof of concept. When you pick up the phone, speak as the business owner.

Demo: https://www.youtube.com/watch?v=WQnK7wCGM_Y

Overview

ServiceScout places calls to businesses on your behalf. You can ask it to get you quotes, make appointments, and more.

By default, ServiceScout will search Google Places API for candidate businesses and call them to gather more information: Screenshot 2025-11-10 at 7 55 44 PM

If you check the box "Only show results from database", ServiceScout will not place any outbound calls. It will check its internal knowledge base (from previous calls) via RAG to give you a response: Screenshot from 2025-11-12 22-31-36

If you are using ServiceScout from https://chatbookings.net, there may be up to a 30s delay the first time you log in or initiate a call. This is because the Cloud Run services are spinning up.

Architecture

  • backend
    • scout_agent
      • agent.py -> agent runnable with adk web
      • a2a.py -> a2a server
      • main.py -> http server for custom setup
    • phone_agent
      • main.py -> http server for custom setup
  • frontend -> NextJS frontend to interact with ServiceScout

ADK Support

  • Run adk web from the backend directory for a playground

Run Locally

  1. Rename .env.example to .env in both backend/phone_agent and backend/scout_agent
  2. Fill in both .env files.
  3. In Firebase, go to auth and get a firebase.ts file to put in frontend/src/app.
  4. Switch the commented lines at the top of frontend/src/app/page.tsx if needed.
  5. Create and activate a python virtualenv. You only need one.
  6. Run ./setup.sh and follow the instructions.
  7. Run these commands in separate terminals:
cd backend/scout_agent && python3 main.py
cd backend/phone_agent && python3 main.py
cd backend/scout_agent && python3 a2a.py
cd frontend && npm run dev

The following services will run: 3000: NextJS Frontend 8000: scout_agent HTTP API 8001: phone_agent HTTP API 8002: A2A server

Custom UI

ServiceScout is best enjoyed through the custom NextJS dashboard. You can try it at http://localhost:3000 if you followed the above steps, or at https://chatbookings.net.

Notes

InMemorySessionService is used because VertexAISessionService caused extreme latency in the live audio chat. InMemorySessionService comes with the tradeoff that sessions are not persisted when the Cloud Run container exits. It is straightforward to replace the session service in the agent's main.py.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages