feat(prompts,agents,voice): the voice agent gets the beaver voice, its own environment and overlay
This commit is contained in:
@@ -22,7 +22,6 @@ from beaver_agent.policy import (
|
|||||||
)
|
)
|
||||||
from beaver_agent.vault import TZ, VAULT
|
from beaver_agent.vault import TZ, VAULT
|
||||||
from beaver_agent.voice import AGENT as VOICE
|
from beaver_agent.voice import AGENT as VOICE
|
||||||
from beaver_agent.voice import PROMPT as VOICE_PROMPT
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from beaver_gateway.agents.base import BaseAgent
|
from beaver_gateway.agents.base import BaseAgent
|
||||||
@@ -114,8 +113,7 @@ def voice(name: str, model: str) -> ClaudeAgent:
|
|||||||
name=name,
|
name=name,
|
||||||
model=model,
|
model=model,
|
||||||
cwd=Path("/tmp"), # noqa: S108
|
cwd=Path("/tmp"), # noqa: S108
|
||||||
system_prompt=VOICE_PROMPT,
|
prompts=prompts.VOICE_AGENT,
|
||||||
kinds=("branch",),
|
|
||||||
options=ClaudeOptions(tools=(), disallowed_tools=TRIAGE_DISALLOWED),
|
options=ClaudeOptions(tools=(), disallowed_tools=TRIAGE_DISALLOWED),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -58,3 +58,8 @@ CURATOR = Prompts(job=(*BASE, environment("джоб"), overlay("curator", "ку
|
|||||||
|
|
||||||
QUICK = assemble((*VOICE, PROFILE, overlay("quick", "быстрый")))
|
QUICK = assemble((*VOICE, PROFILE, overlay("quick", "быстрый")))
|
||||||
"""Raycast-агенты: голос и профиль одной строкой, без vault."""
|
"""Raycast-агенты: голос и профиль одной строкой, без vault."""
|
||||||
|
|
||||||
|
VOICE_AGENT = Prompts(
|
||||||
|
branch=(*VOICE, environment("голосовой"), overlay("voice", "голосовой"))
|
||||||
|
)
|
||||||
|
"""Колонки: голос целиком, но без профиля, поправок и карты - vault ему не виден."""
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
"""Голосовые точки по квартире: своя ветка, свой дешёвый агент, свои ключи."""
|
"""Голосовые точки по квартире: своя ветка, свой дешёвый агент, свои ключи."""
|
||||||
|
|
||||||
from beaver_agent.voice.frontend import VoiceFrontend
|
from beaver_agent.voice.frontend import VoiceFrontend
|
||||||
from beaver_agent.voice.texts import KEY, PROMPT, TITLE
|
from beaver_agent.voice.texts import KEY, TITLE
|
||||||
from beaver_agent.voice.thread import AGENT, FRONTEND, current, open_thread, rotate
|
from beaver_agent.voice.thread import AGENT, FRONTEND, current, open_thread, rotate
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"AGENT",
|
"AGENT",
|
||||||
"FRONTEND",
|
"FRONTEND",
|
||||||
"KEY",
|
"KEY",
|
||||||
"PROMPT",
|
|
||||||
"TITLE",
|
"TITLE",
|
||||||
"VoiceFrontend",
|
"VoiceFrontend",
|
||||||
"current",
|
"current",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Что голосовой агент читает как промпт и что видно в его телеграм-ветке."""
|
"""Что видно в телеграм-ветке голосовых точек; промпт - гранулы vault."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
@@ -8,27 +8,6 @@ TITLE = "🎤 Голосовой"
|
|||||||
KEY = "квартира"
|
KEY = "квартира"
|
||||||
"""Ключ единственного треда: одна ветка на всю квартиру."""
|
"""Ключ единственного треда: одна ветка на всю квартиру."""
|
||||||
|
|
||||||
PROMPT = """\
|
|
||||||
Ты - голос из колонки в квартире. Отвечаешь вслух: одна-две фразы, без
|
|
||||||
markdown, без списков, без ссылок, без эмодзи. Не знаешь - так и говори,
|
|
||||||
коротко.
|
|
||||||
|
|
||||||
Перед словами в квадратных скобках - комната и устройство, откуда говорят.
|
|
||||||
С тобой говорят гости и домашние, кто именно - неизвестно.
|
|
||||||
|
|
||||||
Про хозяина дома ты не знаешь ничего и ничего о нём не рассказываешь: ни
|
|
||||||
имени, ни дел, ни планов, ни календаря, ни переписок, ни файлов, ни его
|
|
||||||
знакомых - и даже того, что такие записи где-то есть. Спрашивают о нём -
|
|
||||||
скажи, что этого не знаешь, и предложи спросить у него самого. Придумывать
|
|
||||||
вместо ответа нельзя.
|
|
||||||
|
|
||||||
Инструментов у тебя нет: ни файлов, ни поиска, ни календаря, ни умного дома.
|
|
||||||
Всё, что ты умеешь, - разговаривать.
|
|
||||||
|
|
||||||
Иногда в этой же ветке пишет сам хозяин, из телеграма. Ему отвечаешь так же
|
|
||||||
коротко, и правила про него не отменяются.
|
|
||||||
"""
|
|
||||||
|
|
||||||
ASKED = "🎤 {room} · {device}\n{text}"
|
ASKED = "🎤 {room} · {device}\n{text}"
|
||||||
"""Вопрос, как он показывается в телеграм-ветке."""
|
"""Вопрос, как он показывается в телеграм-ветке."""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user