-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
161 lines (142 loc) · 6.68 KB
/
Copy pathconfig.example.yaml
File metadata and controls
161 lines (142 loc) · 6.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Example configuration for Ringdown, an open-source voice automation platform.
#
# Copy this file to `config.yaml` and customise the placeholder values to match
# your deployment. The runtime loader also honours the RINGDOWN_CONFIG_PATH
# environment variable so CI can point at alternate configs without copying.
#
# Every field includes inline comments describing the purpose and expected
# values so contributors do not need to inspect the code before editing.
# ---------------------------------------------------------------------------
# Global defaults inherited by every agent unless overridden
# ---------------------------------------------------------------------------
defaults:
timezone: America/Los_Angeles # IANA timezone used for scheduling output.
model: claude-opus-4-6 # Primary LLM model identifier.
temperature: 1.0 # Creativity / randomness of LLM calls.
max_tokens: 20000 # Maximum output tokens for the primary model.
language: en-US # Locale code for speech synthesis.
bot_name: ringdown # Canonical product name used in prompts/logs.
default_email: "team@example.com" # Fallback recipient for SendEmail tool.
email_greenlist_enforced: true # Whether outgoing email must match allow list.
admin_emails: # Regex or literal addresses that always pass.
- "^[^@]+@example\\.com$" # Allow your organisation's domain.
- "team@example.com" # Allow a specific distribution list.
project_name: "ringdown" # Human-friendly project label shown in logs.
calendar_user_name: "Ringdown Operator" # Name announced when creating calendar events.
# Secondary LLM configuration used when primary model fails.
backup_model: gemini/gemini-2.5-flash
backup_temperature: 1.0
backup_max_tokens: 20000
max_history: 40 # Default conversation history depth per agent.
voice: en-US-Chirp3-HD-Aoede # Default Text-to-Speech voice (Google Cloud).
tts_provider: Google # TTS backend provider identifier.
max_disconnect_seconds: 600 # Idle timeout before disconnecting callers.
welcome_greeting: "Hello! This is Ringdown." # Greeting on inbound calls.
# Optional SSML prosody overrides applied to every TTS response.
tts_prosody:
rate: "100%" # Speaking rate; keep at 100% for neutrality.
# ToolRunner orchestrates audible “thinking” loops during long operations.
tool_runner:
interval_sec: 2 # Polling interval between tool status updates.
status_messages: # Human-friendly messages announced to callers.
TavilySearch: "Searching."
TavilyExtract: "Extracting."
SendEmail: "Emailing."
default: "Processing."
thinking_sounds: # Filler phrases played when tools take time.
default:
- "Checking the next step."
- "Reviewing the information."
- "Almost ready for you."
# Shared instructions appended before any per-tool prompts.
tool_header: |-
# Tool Usage
- Use TavilySearch for open web research when the caller needs fresh information.
- Use TavilyExtract to get a summary of a specific URL provided by the caller suitable for further research or reading aloud.
- Use SendEmail only when the caller explicitly requests an email to be sent.
- Use GoogleDoc tools exclusively with documentation that is shared with you.
tools: # Default tool set for every agent.
- TavilySearch
- TavilyExtract
- change_llm
- hang_up
- reset
max_tool_iterations: 6 # Safeguard for runaway tool loops.
transcription_provider: Google # Speech-to-text provider used by Twilio relay.
speech_model: telephony # Recognition model; telephony works for PSTN.
# Debugging aids – keep empty in production.
debug: "" # Example: "dtmf speaker-events" to trace digits.
# Terms passed to STT provider to bias recognition for organisation-specific words.
hints: "Ringdown" # Comma-separated keywords.
# Global toggle allowing agents to emit SSML in responses.
allow_ssml: true
# ---------------------------------------------------------------------------
# Agent catalog. Each agent inherits defaults unless overridden explicitly.
# Define as many named agents as you need; phone numbers must be unique.
# ---------------------------------------------------------------------------
agents:
unknown-caller:
bot_name: ringdown
prompt: |-
You are Ringdown, a phone concierge. Speak in short sentences suitable for telephone playback.
{ToolPrompts}
welcome_greeting: "Hello! How can I help you today?"
max_history: 40
tools:
- TavilySearch
ringdown-demo:
bot_name: Ringdown
phone_numbers:
- "+15555550100" # Replace with your Twilio testing number.
continue_conversation: true # Persist conversations across reconnects.
continuation_greeting: "Picking up where we left off."
tools:
- TavilySearch
- TavilyExtract
- SendEmail
- CreateGoogleDoc
- ReadGoogleDoc
- SearchGoogleDrive
- AppendGoogleDoc
- TodoRead
- TodoAdd
- change_llm
- reset
email_greenlist_enforced: true
email_greenlist:
- "^[^@]+@example\\.com$"
- "team@example.com"
docs_folder_greenlist:
- "Ringdown-default" # Replace with your shared Drive folder name.
prompt: |-
# Identity
- You are Ringdown, a configurable voice assistant for operations teams.
- Always execute the caller's instructions precisely and efficiently.
# Behaviour
- Respond using concise, single-paragraph answers with no markdown.
- Confirm actions using the caller's terminology where possible.
- Ask clarifying questions only when information is ambiguous.
# Context
- Your timezone is {timezone} and the current UTC time is {time_utc}.
- Use documentation in the approved folders when researching policies.
{ToolPrompts}
welcome_greeting: "Thanks for calling Ringdown."
max_disconnect_seconds: 900
max_history: 200
sandbox-agent:
bot_name: Sandbox
phone_numbers:
- "+15555550101"
continue_conversation: false
docs_folder_greenlist:
- "Sandbox"
prompt: |-
You are Sandbox, a minimal demonstration agent for integration tests.
Keep responses short and neutral.
{ToolPrompts}
welcome_greeting: "Sandbox agent ready."
tools:
- TavilySearch
# Optional shared Drive folders available to agents when not overridden.
docs_folder_greenlist_defaults:
- "Ringdown-default"