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