integrations/vapi/v0.1.0

smicallef/spiderfootintegrations/vapi/v0.1.0Sep 21, 2026by het0814

Upgrading?

AI Summary

This is the initial release of the `memanto-vapi` integration, allowing Spiderfoot to serve as a memory provider for Vapi voice agents. It supports shared and per-caller memory scopes, provides mid-call tools for recall and remember, and includes background learning capabilities.

Key Highlights

  • Enables Vapi voice agents to access Spiderfoot's knowledge base and call history.
  • Supports two memory scopes: shared (default) and per-caller (private).
  • Implements mid-call tools for recall and remember.
  • Background learning after each call using Vapi's summary.
  • Includes CLI tool and FastAPI integration.

New Features

  • Memory at call start (replies to assistant-request with context).
  • Mid-call tools (memanto_recall and memanto_remember).
  • Learning after each call (background processing).
  • Two memory scopes (shared and caller).
  • CLI and server support with bearer authentication.

Full Release Notes

# Release Notes for memanto-vapi v0.1.0

First release of `memanto-vapi`: a single webhook that gives a Vapi voice agent memory between calls. The agent gets your organization's knowledge and the lessons it learned on earlier calls, with optional per-caller memory.

## New Featuresper-caller memory.

## New Features
- **Memory at call start** (`memanto_vapi/memory.py`)
  - Replies to `assistant-request` with `{{memanto_context}}`, filled from recent and relevant memories.
  - Lookup is capped at 3s (Vapi allows 7.5s); if it times out or fails, the call starts without memory.
- **Mid-call tools** (`memanto_vapi/tools.py`)
  - `memanto_recall` and `memanto_remember` function tools. `memanto-vapi tools --server-url …` prints the JSON to create them with Vapi's `POST /tool`.
- **Learning after each call**
  - On `end-of-call-report`, lessons are pulled from the conversation (mistakes, corrections, better answers, business facts) using Vapi's summary and success evaluation. This runs in the background after the webhook replies.
  - A Vapi retry of the same report is skipped (`retained-<call id>` tag).
- **Two scopes** (`MEMANTO_VAPI_SCOPE`)
  - `shared` (default): one memory for the whole assistant, with no caller details stored.
  - `caller`: adds memory private to each caller, tagged with a salted HMAC of their phone number or `customer.externalId`. Raw numbers are never stored, and the server decides whose memory a call can read or write.
- **Server and CLI** (`memanto_vapi/webhook.py`)
  - `memanto-vapi serve`, or `create_router` to mount the webhook in your own FastAPI app.
  - Requests are authenticated with a bearer secret (legacy `X-Vapi-Secret` also accepted).
  - `build_assistant_overrides()` covers outbound, web and chat calls.

## Tests
- 36 tests covering both scopes, caller isolation, auth, timeouts, retries and malformed payloads. Payloads follow Vapi's OpenAPI schema.

## Install
pip install memanto-vapi  requires `memanto>=0.2.21`.

Related Repositories