Details needed to power ElevenLabs Conversational AI for the Call Center Village party telephone line at DEF CON 33.
AI was used in the creation of this software.
We're using the Twilio integration within ElevenLabs to tie an agent to a phone number. A custom ElevenLab's agent will answer the call and assist the caller based on the System Prompt and/or Agent knowledge base.
This document is meant to explain all the configuration used to reproduce the agent. You can also use it as a baseline for creating your own.
- DEF CON 33 Parties, Meetups, and Events Website
- B-Sides Las Vegas - Schedule Website
- Hacker Tracker App and Website
Run the build command to generate all files:
php bin/console app:build-agentThis will:
- Generate
agent/Keywords.txtfrom all markdown files in thekb/folder - Generate
agent/pronunciation-dictionary.xmlfrom all markdown files in thekb/folder - Compile all agent config files and kb files into
dist/SystemPrompt.txt - Copy all necessary files to the
dist/folder
You can also run commands individually:
# Generate keywords from kb folder
php bin/console app:generate-keywords
# Generate pronunciation dictionary from kb folder
php bin/console app:generate-pronunciation-dictionary
# Compile system prompt only
php bin/console app:compile-agentAll generated files will be in the dist/ folder:
SystemPrompt.txt- Complete system prompt for ElevenLabsKeywords.txt- Extracted keywords from knowledge baseOpener.txt- Agent opener messagepronunciation-dictionary.xml- Pronunciation guide for ElevenLabs
partyline-defcon33/
├── README.md
├── composer.json
├── composer.lock
├── .gitignore
├── bin/
│ └── console
├── config/
│ ├── bundles.php
│ └── services.php
├── src/
│ ├── Command/
│ │ ├── BuildAgentCommand.php
│ │ ├── CompileAgentCommand.php
│ │ ├── GenerateKeywordsCommand.php
│ │ └── GeneratePronunciationDictionaryCommand.php
│ └── Kernel.php
├── agent/
│ ├── System.md
│ ├── Opener.md
│ ├── Keywords.txt
│ ├── Settings.md
│ ├── pronunciation-dictionary.xml
│ ├── Personality.md
│ ├── Environment.md
│ ├── Tone.md
│ ├── Goal.md
│ ├── Guardrails.md
│ └── Tools.md
└── kb/
├── Events.md
├── Meetups.md
└── Parties.md
└── dist/
├── SystemPrompt.txt
├── Keywords.txt
├── Opener.txt
└── pronunciation-dictionary.xml
Source Files:
README.md- Detailed project information (this file)agent/Settings.md- The specific settings used for the Agent within ElevenLabsagent/Opener.md- The first message the agent will sayagent/System.md- The base system prompt detailing how the Agent should actagent/Keywords.txt- A set of keywords to help identify things people might sayagent/pronunciation-dictionary.xml- Pronunciation aliases for technical terms and acronyms (W3C PLS format)
Agent Configuration Files:
agent/Personality.md- Defines agent identity, traits, role, and backgroundagent/Environment.md- Specifies communication context, channel, and situational factorsagent/Tone.md- Controls linguistic style, speech patterns, and conversational elementsagent/Goal.md- Establishes objectives that guide conversations toward meaningful outcomesagent/Guardrails.md- Sets boundaries ensuring interactions remain appropriate and ethicalagent/Tools.md- Defines external capabilities the agent can access beyond conversation
Knowledge Base Files:
kb/Events.md- A list of all the events the Agent should be aware ofkb/Meetups.md- A list of all the meetups the Agent should be aware ofkb/Parties.md- A list of all the parties the Agent should be aware of
Generated Files:
dist/SystemPrompt.txt- Complete compiled system prompt for ElevenLabs (generated by command)dist/Keywords.txt- Extracted keywords from knowledge base (generated by command)dist/Opener.txt- Agent opener message (copied from agent folder)dist/pronunciation-dictionary.xml- Pronunciation guide for ElevenLabs (generated by command)
Project Files:
composer.json- Used to install PHP librariescomposer.lock- Used by composer when installing PHP librariessrc/Command/BuildAgentCommand.php- Master command to build complete agent packagesrc/Command/CompileAgentCommand.php- Used to compile system promptsrc/Command/GenerateKeywordsCommand.php- Used to generate keywords from kb foldersrc/Command/GeneratePronunciationDictionaryCommand.php- Used to generate pronunciation dictionary from kb foldersrc/Kernel.php- App kernelconfig/bundles.php- App bundlesconfig/services.php- App configurationbin/console- App console host.gitignore- Used for version control