Skip to content

Release Notes - v0.15.0

Release Date: 2026-07-13

Highlights

  • HeyGen Avatar Integration - Configure HeyGen avatars for panel agents with lip-sync support
  • JSON IR for Panel Scheduling - Structured schedule format for defining panel discussions
  • JSON IR for Panel Output - Capture panel transcripts and statistics in machine-readable format
  • Slide Sharing - Dynamic slide display during panel discussions with keyword triggers
  • Recording Manager - LiveKit Egress-based recording with S3 upload support

What's New

HeyGen Avatar Integration

Panel agents now support HeyGen avatars for realistic AI panelists with lip-synchronized speech.

Configuration:

# Global HeyGen settings
export HEYGEN_API_KEY="your-api-key"
export HEYGEN_SANDBOX=true  # Use sandbox for testing
export HEYGEN_VIDEO_QUALITY=high

# Per-participant avatar IDs
export MODERATOR_AVATAR_ID="avatar-id-1"
export PANELIST_1_AVATAR_ID="avatar-id-2"
export PANELIST_2_AVATAR_ID="avatar-id-3"

Features:

  • Audio routing to avatar at 24kHz for lip-sync
  • Automatic fallback to LiveKit when avatar not configured
  • Per-panelist avatar configuration via environment variables

JSON IR for Panel Scheduling

Define panel discussion structure using JSON-based schedules.

Schedule Format:

{
  "title": "AI Panel Discussion",
  "moderator": {
    "name": "Alex",
    "personality": "Professional moderator",
    "avatarId": "heygen-avatar-id"
  },
  "panelists": [
    {
      "name": "Sarah",
      "personality": "Technical expert",
      "expertise": ["AI", "ML"],
      "avatarId": "heygen-avatar-id"
    }
  ],
  "segments": [
    {
      "type": "discussion_round",
      "topic": "Future of AI",
      "duration": "5m",
      "responseOrder": "relevance"
    }
  ],
  "settings": {
    "recording": {
      "enabled": true,
      "format": "mp4",
      "layout": "speaker"
    }
  }
}

Segment Types:

Type Description
moderator_intro Opening remarks by moderator
panelist_backgrounds Brief introductions of panelists
discussion_round Focused discussion on a topic
open_discussion Free-form conversation
closing Closing remarks and summary

JSON IR for Panel Output

Capture panel discussion results in structured format for post-processing.

Output Format:

{
  "metadata": {
    "sessionId": "panel-123",
    "title": "AI Panel Discussion",
    "startTime": "2026-07-13T10:00:00Z",
    "endTime": "2026-07-13T10:30:00Z",
    "statistics": {
      "totalEntries": 45,
      "totalWords": 3500
    }
  },
  "participants": {
    "moderator": { "name": "Alex", "entries": 12, "words": 450 },
    "panelists": [
      { "name": "Sarah", "entries": 15, "words": 1200 }
    ]
  },
  "segments": [
    {
      "type": "discussion_round",
      "topic": "Future of AI",
      "entries": [
        {
          "speaker": "Sarah",
          "text": "...",
          "timestamp": "2026-07-13T10:05:00Z",
          "wordCount": 85
        }
      ]
    }
  ]
}

Slide Sharing

Display slides during panel discussions with automatic keyword triggers.

Features:

  • Load slides from local files or URLs
  • Keyword-based automatic slide display
  • Per-segment slide configuration
  • Manual ShowSlide/HideSlide control

Slide Configuration:

{
  "slides": [
    {
      "id": "intro",
      "title": "Introduction",
      "imagePath": "/slides/intro.png",
      "keywords": ["welcome", "introduction"]
    }
  ]
}

Recording Manager

Record panel sessions using LiveKit Egress with local or S3 output.

Environment Variables:

export PANEL_RECORD=true
export PANEL_RECORD_FORMAT=mp4        # mp4 or ogg
export PANEL_RECORD_LAYOUT=speaker    # speaker or grid
export PANEL_RECORD_PATH=/recordings  # Local path
export PANEL_RECORD_S3_BUCKET=my-bucket
export PANEL_RECORD_S3_REGION=us-east-1

Features:

  • Speaker or grid layout options
  • Duration tracking and status queries
  • Automatic start/stop with panel lifecycle

Added

  • HeyGen avatar configuration for panel moderator and panelists
  • Avatar audio routing at 24kHz for lip-sync synchronization
  • GetAgent() method on Panelist and Moderator for avatar detection
  • Schedule type for JSON-based panel definition
  • LoadSchedule() for reading schedules from JSON files
  • Segment types: moderator_intro, panelist_backgrounds, discussion_round, open_discussion, closing
  • Response ordering: relevance, rotation, random, fixed
  • Output type for structured panel transcripts
  • OutputMetadata, OutputSegment, OutputEntry types
  • Participant statistics (entry count, total words)
  • SlideManager for dynamic slide sharing
  • LoadSlides(), ShowSlide(), HideSlide(), FindSlideByKeyword() methods
  • RecordingManager for LiveKit Egress-based recording
  • Recording settings in schedule (format, layout, S3 config)
  • Example schedules: AI agents panel, ASDM state-of-the-art panel

Documentation

  • ASDM state-of-the-art panel schedule (Level 5-7 autonomous delivery)
  • AI agents panel schedule with HeyGen avatars

Dependencies

  • Updated Go module dependencies

Installation

go install github.com/plexusone/omniagent/cmd/livekit-agent-panel@v0.15.0

Quick Start

# Set up HeyGen avatars
export HEYGEN_API_KEY="your-key"
export MODERATOR_AVATAR_ID="avatar-1"
export PANELIST_1_AVATAR_ID="avatar-2"

# Run panel with schedule
livekit-agent-panel --schedule ./panel-schedule.json

# Enable recording
export PANEL_RECORD=true
export PANEL_RECORD_S3_BUCKET=my-recordings
livekit-agent-panel --schedule ./panel-schedule.json