Choose a specific pipeline within the automation/script not a satellite

is there a way to choose a pipeline with the automation/script itself?

for some things, with same satellite, i need an action like “start a conversation” or “ask a question” to check for stuff online - like the news, and in other i want it to turn on some lights.

can i define a different pipeline other then within the satellite, or will it always use the “default” or “1st” one define for that assistant entity?

currently I’m using Gemini as my AI agent and the one that can “assist” in my home, cant check stuff online

The waken word will trigger the assist entry configured. Most assist devices have one slot. VPEs have two.

But you can absolutely configure a script to fire a conversation agent and have your primary call the second one and get an answer that it passes back.

All llm related actions have an option to select a conversation agent (not the Assist pipeline).

1 Like

hey guys.
thanks for the quick reply

All you say is true, but not really helpful to what I’m trying to achieve.
I’ll try to better explain, making some assumption as i go along, and correct me if you find me wrong

My scenario is more like this

  1. I’ve created 2 different assistants with google Gemini. one with privileges to control the home entities, and another with internet access, as these to different tasks are not working together (cant use one assistant with internet access to also control the house).

  2. I use two different wake expressions, one for each. that way when i initiate a call, i can choose if i need something done within the house (e.g “hey Jarvis - turn on the kitchen light”), or something internet related (e.g “ok Nabu -summarize todays news headlines”)

problem is, when its not me who initiate the conversation - like in an automation that uses the “ask question”, or “start conversation”, the “assist” being used is the “preferred” one.

but, for some of the assist automations i want to use the “assist” that can excess the internet, and for others i need the “assist” that control the home.
but all goes through the “preferred” assist, that can only be one or the other.

hopes this better explain my query. any ideas on how to overcome this?

cheers

If you use custom sentences/intents you can specify the AI you want to use for the response.

            - action: conversation.process
              data:
                agent_id: conversation.google_ai_conversation
                text: "{{ question }}"
              response_variable: api_response
            - variables:
                answer: "{{ api_response.response.speech.plain.speech }}"

No need for different wake words - you just define an appropriate sentence:

language: "en"
intents:
  CustomGoogle:
    data:
      - sentences:
          - "look up {question}" 
          - "find [out] [about] {question}"
          - "[ask] google {question}"
          - "research {question}"
          - "(tell me | explain) [about] {question}"
lists:
  question:
    wildcard: true

hey jack,
thank you for your help
could you provide more clarification on how to make it work?

for better clarification (for my poor understanding…) could you provide something i can copy\paste into “actions” section nder “Developer tools” to see how it works (hopefully that will help me to comprehend this better)

just mark the fields i need to replace with my own entities

thank you for trying to help with this

cheers

Why not use one and let it use the other agent tk access the internet.

Agent a knows agent b accesses the internet and uses it. I’m trying to figure out why different wake words having two waken words provides no additional security so? Why the second wake and not one agent that fronts the other?

i guess i didn’t know that’s possible :slight_smile:

how do i make the agents use one another?

That’s what the monastery is for Friday. This article is basically what you’re talking about…

Not sure this will work completely in developer tools, because it comes in two parts - the slot value { question } is passed from the custom sentence (given above) to the intent script.

The full intent script is:

CustomGoogle:
  action:
    - choose:
        - conditions: "{{ is_state('binary_sensor.online', 'off') }}"
          sequence:
            - action: script.tts_response
              data:
                tts_sentence: "Sorry. There's no internet at the moment."
        - conditions: "{{ is_state('binary_sensor.online', 'on') }}"
          sequence:
            - action: script.tts_response
              data:
                tts_sentence: "I'll check with Google."
            - action: conversation.process
              data:
                agent_id: conversation.google_ai_conversation
                text: "{{ question }}"
              response_variable: api_response
            - variables:
                answer: "{{ api_response.response.speech.plain.speech }}"
            - action: script.tts_response
              data:
                tts_sentence: "{{ answer }}"

The first block (“Sorry…” ) allows the script to stop gracefully if there’s no internet and the second block (“I’ll check with Google”) is there because there’s often a long pause before Google responds.

The third block (action.conversation.process) sends the question received from the custom sentence to Google, receives the response and extracts the text part from the api.

script.tts_response plays responses on loudspeakers in whichever room I’m in, rather than on the voice assistant device.

In Developer Tools Action (yaml mode):

action: conversation.process
data:
  text: What happened in 1066
  language: en
  agent_id: conversation.google_ai_conversation

Produces:

response:
  speech:
    plain:
      speech: >-
        The year 1066 was a pivotal year in English history, marked by a
        succession crisis and the Norman Conquest.


        Key events include:

        *   **January 5th**: Edward the Confessor, King of England, died without
        an heir, leaving the succession unclear.

        *   **January 6th**: Harold Godwinson, Earl of Wessex, was crowned King
        Harold the Second of England.

        *   William, Duke of Normandy, who claimed Edward had promised him the
        throne, began preparations for an invasion of England.

        *   Halley's Comet appeared in February and March, which was seen as a
        bad omen by the Anglo-Saxons.

…and a good deal more.

Docs on custom sentences and intents are a bit scattered, but there’s a writeup with examples here:

Custom sentences and intent scripts

that is clearer!

Its not what it had in mind, but it is a nice work-around, and i apriciate you taking the time to better explain it.
i can see now why this method is not something to test via “developer tools”…

hopefully some better implementation of this will be embedded in the near future
cheers

:slight_smile: