pipecat-friday-agent
Build a low-latency, Iron Man-inspired tactical voice assistant (F.R.I.D.A.Y.) using Pipecat, Gemini, and OpenAI.
- License 许可
- MIT
- 最近更新
- 2026-10-08
- Stars
- ★ 11
- Forks
- 3
01 前言 Front Matter
- name
- pipecat-friday-agent
- risk
- safe
- tags
- [ "pipecat", "voice", "gemini", "openai", "python" ]
- tools
- [ "pipecat" ]
- source
- community
- category
- voice-agents
- date_added
- 2026-03-10
- description
- Build a low-latency, Iron Man-inspired tactical voice assistant (F.R.I.D.A.Y.) using Pipecat, Gemini, and OpenAI.
03 SKILL.md 正文
Pipecat Friday Agent
Overview
This skill provides a blueprint for building F.R.I.D.A.Y. (Replacement Integrated Digital Assistant Youth), a local voice assistant inspired by the tactical AI from the Iron Man films. It uses the Pipecat framework to orchestrate a low-latency pipeline:
- STT: OpenAI Whisper (
whisper-1) orgpt-4o-transcribe - LLM: Google Gemini 2.5 Flash (via a compatibility shim)
- TTS: OpenAI TTS (
novavoice) - Transport: Local Audio (Hardware Mic/Speakers)
When to Use This Skill
- Use when you want to build a real-time, conversational voice agent.
- Use when working with the Pipecat framework for pipeline-based AI.
- Use when you need to integrate multiple providers (Google and OpenAI) into a single voice loop.
- Use when building Iron Man-themed or tactical-themed voice applications.
How It Works
Step 1: Install Dependencies
You will need the Pipecat framework and its service providers installed:
pip install pipecat-ai[openai,google,silero] python-dotenv
Step 2: Configure Environment
Create a .env file with your API keys:
OPENAI_API_KEY=your_openai_key
GOOGLE_API_KEY=your_google_key
Step 3: Run the Agent
Execute the provided Python script to start the interface:
python scripts/friday_agent.py
Core Concepts
Pipeline Architecture
The agent follows a linear pipeline: Mic -> VAD -> STT -> LLM -> TTS -> Speaker. This allows for granular control over each stage, unlike end-to-end speech-to-speech models.
Google Compatibility Shim
Since Google's Gemini API has a different message format than OpenAI's standard (which Pipecat aggregators expect), the script includes a GoogleSafeContext and GoogleSafeMessage class to bridge the gap.
Best Practices
- ✅ Use Silero VAD: It is robust for local hardware and prevents background noise from triggering the LLM.
- ✅ Concise Prompts: Tactical agents should give short, data-dense responses to minimize latency.
- ✅ Sample Rate Match: OpenAI TTS outputs at 24kHz; ensure your
audio_out_sample_ratematches to avoid high-pitched or slowed audio. - ❌ No Polite Fillers: Avoid "Hello, how can I help you today?" Instead, use "Systems nominal. Ready for commands."
Troubleshooting
- Problem: Audio is choppy or delayed.
- Solution: Check your
OUTPUT_DEVICEindex. Run a script liketest_audio_output.pyto find the correct hardware index for your OS.
- Solution: Check your
- Problem: "Validation error" for message format.
- Solution: Ensure the
GoogleSafeContextshim is correctly translating OpenAI-style dicts to Gemini-style schema.
- Solution: Ensure the
Related Skills
@voice-agents- General principles of voice AI.@agent-tool-builder- Add tools (Search, Lights, etc.) to your Friday agent.@llm-architect- Optimizing the LLM layer.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
04 同仓库更多 Skills
ci-cd-and-automation
Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.
chrome-devtools
Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).
chrome-cdp
Drive a real Chrome via the Chrome DevTools Protocol (CDP). Ensures a debuggable Chrome is running (launching it if needed) so the agent can navigate, read page content, inspect the DOM, run JavaScript, and take screenshots — without the user typing any launch command. Includes a first-class "review a live running app" flow: point Chrome at the app under development and inspect/screenshot the REAL page (what a static-artifact tool cannot do). Backed by Glimpse and the chrome-devtools MCP server. Use when asked to "use chrome", "open chrome", "drive my browser", "read the page in chrome", "review the running app", "screenshot the app", or "/chrome-cdp".
check-identity-pack
Run an AFP 100-point or AUSTRAC safe-harbour identity check over a set of documents, and report exactly what's missing. Use when the user asks to check identity documents, verify someone's ID for onboarding, or assess whether a document pack satisfies Australian identity requirements.
changelog
Auto-generates a changelog from git commits, sprint data, and design documents. Produces both internal and player-facing versions.
cellxgene-census
Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.