Other LLM agents can ask Jev yes/no and pick-one questions, when the options allow it - #24
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A new option, off by default, lets Jev offer two tools through the Assist API to any LLM conversation agent:
jev__noul(question, facts?)returnsprobability_yes.jev__choice(question, options, facts?)returnschoice,probabilitiesandconfidence.Each tool calls the
jev.noulorjev.choiceaction. Thus the daily budget check, the errors and the usage sensors are the same as for the actions. Jev judges only the entities exposed to that assistant, capped atMAX_CONVERSATION_ENTITIES(150), which is the voice agent's cap.The option is off by default because every Assist LLM agent gets the tool schemas in every prompt, and its provider bills those tokens on each turn.
If more than one entry has the option on, the tools require an
accountparameter. Each entry has its own key and its own budget, so the tool does not choose one for the agent.The facts go to the action as a mapping, not as a string. The action renders a string
stateas a template, and a template could read entities that are not exposed to Assist.test_facts_are_sent_as_they_are_and_never_renderedfails when the facts go as a string, with'The user says: unlocked'as the result.The new option has its text in strings.json and in all 13 translations.
Gate (
ruff,mypy --strict,pytest,mkdocs --strict,hassfest): exit 0. 416 passed, 12 skipped, coverage 96.96%.llm.pyandconfig_flow.pyare at 100%.Stacked on #23.