From d942fef1fbb3fb93d5af9bb1e2405515077a6ded Mon Sep 17 00:00:00 2001 From: alabulei1 Date: Thu, 11 Dec 2025 22:06:04 +0800 Subject: [PATCH 1/4] Create 2025-12-11-echokit-day-16-dynamic-personality.md --- ...2-11-echokit-day-16-dynamic-personality.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md diff --git a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md new file mode 100644 index 0000000..db04b4d --- /dev/null +++ b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md @@ -0,0 +1,56 @@ +--- +slug: echokit-30-days-day-16-welcome-voice +title: "Day 16: Dynamic Personality for EchoKit| The First 30 Days with EchoKit" +tags: [echokit30days] +--- + + +In previous instalments we explored switching LLM providers and giving EchoKit different personalities through system prompts. Today let's learn a powerful new feature —**dynamic system prompt loading**. + +## Why dynamic system prompts? + +A system prompt sets EchoKit’s tone, role and behaviour. Thanks to the growing ecosystem of open‑source prompts, you can choose from thousands of prebuilt personalities—sites like LLMs.txt offer extensive collections. Previously, changing EchoKit’s character required editing a local file and restarting the server. Now the server can fetch a system prompt from a remote URL, insert it into the context and cache it. This lets you: + +* **Update behaviour remotely.** Change the text at the URL and EchoKit adopts a new persona on the next restart. +* **Experiment without redeploying.** Quickly swap prompts or test new conversation flows without editing code. +* **Iterate on demos.** Focus on creativity rather than configuration while your EchoKit responds in new ways. + +## How to use a remote prompt + +Open your `config.toml` and find the `[[llm.sys_prompts]]` section. Instead of embedding the full text, wrap a plain‑text URL in double braces: + +```toml +[[llm.sys_prompts]] +role = "system" +content = """ +{{ https://raw.githubusercontent.com/alabulei1/echokit-dynamic-prompt/refs/heads/main/prompt.txt }} +""" +``` + +On startup, EchoKit will: + +1. Fetch the content from that URL. +2. Insert it as the system prompt. +3. Cache it for later use. + +Want to give it a try? GitHub raw files are convenient hosts because it's free and they can return plain text. + +## When does EchoKit reload the prompt? + +Dynamic prompts are fetched only during a **full restart**: + +* When you power the device off and back on. +* When you press the **RST** hardware button. + +Interrupting a conversation with the K0 button or a temporary Wi‑Fi reconnection will not reload the prompt. This ensures ongoing sessions remain consistent while still giving you the freedom to change behaviour by updating the remote file. + +## Summary + +Dynamic system prompt loading opens up a new level of flexibility for EchoKit. You no longer need to modify local files or restart server to change your agent’s behaviour; instead, you can pull any prompt hosted on the web and swap personas at will. + +--- +Want to get your EchoKit Device and make it unique? +* [EchoKit Box](https://echokit.dev/echokit_box.html) +* [EchoKit DIY](https://echokit.dev/echokit_diy.html) + +Join the [EchoKit Discord](https://discord.gg/Fwe3zsT5g3) to share your creative welcome voices and see how others are personalizing their Voice AI agents! From 21efc8ec5b3f456d6b5d3d63ee8f5526785534a5 Mon Sep 17 00:00:00 2001 From: alabulei1 Date: Fri, 12 Dec 2025 01:34:13 +0800 Subject: [PATCH 2/4] Update doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md index db04b4d..94aba12 100644 --- a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md +++ b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md @@ -46,7 +46,7 @@ Interrupting a conversation with the K0 button or a temporary Wi‑Fi reconnecti ## Summary -Dynamic system prompt loading opens up a new level of flexibility for EchoKit. You no longer need to modify local files or restart server to change your agent’s behaviour; instead, you can pull any prompt hosted on the web and swap personas at will. +Dynamic system prompt loading opens up a new level of flexibility for EchoKit. You no longer need to modify local files or restart the server to change your agent’s behaviour; instead, you can pull any prompt hosted on the web and swap personas at will. --- Want to get your EchoKit Device and make it unique? From 735bc1a6d2f2be9950cec8f178f905a5fe1d271a Mon Sep 17 00:00:00 2001 From: alabulei1 Date: Fri, 12 Dec 2025 01:34:37 +0800 Subject: [PATCH 3/4] Update doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md index 94aba12..7f45fa2 100644 --- a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md +++ b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md @@ -1,6 +1,6 @@ --- slug: echokit-30-days-day-16-welcome-voice -title: "Day 16: Dynamic Personality for EchoKit| The First 30 Days with EchoKit" +title: "Day 16: Dynamic Personality for EchoKit | The First 30 Days with EchoKit" tags: [echokit30days] --- From 3f6ca75569034c55d2f13a056d2c59f073d142c0 Mon Sep 17 00:00:00 2001 From: alabulei1 Date: Fri, 12 Dec 2025 01:36:19 +0800 Subject: [PATCH 4/4] Update doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md index 7f45fa2..b9dc44b 100644 --- a/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md +++ b/doc/dev/2025-12-11-echokit-day-16-dynamic-personality.md @@ -1,5 +1,5 @@ --- -slug: echokit-30-days-day-16-welcome-voice +slug: echokit-30-days-day-16-dynamic-personality title: "Day 16: Dynamic Personality for EchoKit | The First 30 Days with EchoKit" tags: [echokit30days] ---