Refine model-driven intent routing

This commit is contained in:
2026-05-10 23:49:45 +08:00
parent 662e6a6e0f
commit 2ba18e0b35
3 changed files with 9 additions and 32 deletions
+5 -5
View File
@@ -366,12 +366,12 @@ class AsyncRouter:
classification_prompt = f"""Классифицируй запрос пользователя: "{task_summary}"
Правила:
- execution: пользователь ХОЧЕТ выполнить действие (проверить, запустить, создать, удалить, найти, прочитать, записать)
- conversation: пользователь просто отвечает, задаёт вопрос или хочет информацию
- clarification_needed: непонятно что делать
Классы:
- execution: чтобы ответить, агенту нужно обратиться к локальной среде, файлам, shell, tools, памяти, сети или выполнить проверку/операцию. Это включает вопросы о текущем состоянии ПК, установленных пакетах, файлах, процессах, времени работы, обновлениях, логах.
- conversation: можно ответить сразу из диалога и общих знаний, без проверки локальной среды и без tools.
- clarification_needed: нельзя понять, что именно пользователь хочет.
Ответь ОДНИМ словом: execution / conversation / clarification_needed"""
Верни ровно один токен без рассуждений: execution или conversation или clarification_needed"""
try:
result = await classifier_model.generate(classification_prompt)
+1 -27
View File
@@ -23,21 +23,8 @@ MEMORY_STORE_PATTERNS = (
)
MEMORY_SEARCH_PATTERNS = (
r"найди\s+(.+)",
r"вспомни\s+(.+)",
r"search\s+(.+)",
r"find\s+(.+)",
)
SYSTEM_COMMAND_PATTERNS = (
(
re.compile(r"(сколько\s+времени\s+запущен|как\s+долго\s+работает|uptime|аптайм)", re.IGNORECASE),
"uptime -p",
),
(
re.compile(r"(проверь|посмотри|покажи).*(обновлен|обновл|updates|upgradable)", re.IGNORECASE),
"apt list --upgradable",
),
r"search memory\s+(.+)",
)
@@ -80,19 +67,6 @@ class IntentParser:
reason="User explicitly requested to search memory.",
)
for pattern, command in SYSTEM_COMMAND_PATTERNS:
if pattern.search(normalized):
return ExecutionDirective(
type="tool",
payload={
"tool": "shell_exec",
"args": {"command": command},
},
requires_permission=True,
confidence=0.9,
reason="User explicitly requested local system information.",
)
for prefix in SHELL_PREFIXES:
if lowered.startswith(prefix):
command = normalized[len(prefix) :].strip()