GitHub Action
commited on
Commit
·
7f66363
1
Parent(s):
fb4c2c7
Sync from GitHub with Git LFS
Browse files- agents/tools/db_structure.sql +153 -3
- docs/HMP-agent-REPL-cycle.md +3 -7
agents/tools/db_structure.sql
CHANGED
@@ -216,9 +216,35 @@ CREATE TABLE IF NOT EXISTS stagnation_strategies (
|
|
216 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
217 |
name TEXT NOT NULL, -- Название метода (например, "Mesh-вопрос")
|
218 |
description TEXT NOT NULL, -- Подробное описание метода
|
219 |
-
source TEXT, -- Источник (
|
220 |
-
|
221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
);
|
223 |
|
224 |
-- Реестр LLM-агентов (в т.ч. удалённых)
|
@@ -281,3 +307,127 @@ CREATE TABLE IF NOT EXISTS password_reset_tokens (
|
|
281 |
used BOOLEAN DEFAULT 0, -- Использован ли токен
|
282 |
FOREIGN KEY(user_id) REFERENCES users(user_id)
|
283 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
217 |
name TEXT NOT NULL, -- Название метода (например, "Mesh-вопрос")
|
218 |
description TEXT NOT NULL, -- Подробное описание метода
|
219 |
+
source TEXT, -- Источник (internal, mesh, user-defined)
|
220 |
+
tags TEXT, -- Список тегов через запятую (или JSON)
|
221 |
+
reputation REAL DEFAULT 0, -- Средняя оценка
|
222 |
+
active BOOLEAN DEFAULT true,
|
223 |
+
inactive_reason TEXT
|
224 |
+
);
|
225 |
+
|
226 |
+
-- Методы мышления
|
227 |
+
CREATE TABLE IF NOT EXISTS thinking_methods (
|
228 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
229 |
+
name TEXT NOT NULL, -- Название метода (например, "Итеративное уточнение")
|
230 |
+
description TEXT NOT NULL, -- Подробное описание метода
|
231 |
+
type TEXT, -- Класс: генерация идей, решение проблем, аргументация и т.д.
|
232 |
+
source TEXT, -- internal, mesh, user-defined
|
233 |
+
tags TEXT, -- Список тегов
|
234 |
+
reputation REAL DEFAULT 0, -- Средняя оценка
|
235 |
+
active BOOLEAN DEFAULT true,
|
236 |
+
inactive_reason TEXT
|
237 |
+
);
|
238 |
+
|
239 |
+
-- Универсальные оценки (для методов мышления, стратегий стагнации и др.)
|
240 |
+
CREATE TABLE IF NOT EXISTS ratings (
|
241 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
242 |
+
agent_id TEXT NOT NULL, -- Идентификатор агента (mesh-id или локальный)
|
243 |
+
target_type TEXT NOT NULL, -- "thinking_method" или "stagnation_strategy"
|
244 |
+
target_id INTEGER NOT NULL, -- ID метода/стратегии
|
245 |
+
rating INTEGER NOT NULL, -- Оценка (например, -1..+1 или 1..5)
|
246 |
+
comment TEXT,
|
247 |
+
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
|
248 |
);
|
249 |
|
250 |
-- Реестр LLM-агентов (в т.ч. удалённых)
|
|
|
307 |
used BOOLEAN DEFAULT 0, -- Использован ли токен
|
308 |
FOREIGN KEY(user_id) REFERENCES users(user_id)
|
309 |
);
|
310 |
+
|
311 |
+
-- ============================================
|
312 |
+
-- Репутационные триггеры
|
313 |
+
-- ============================================
|
314 |
+
|
315 |
+
-- Удаляем старые версии триггеров, если они есть
|
316 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_insert;
|
317 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_update;
|
318 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_delete;
|
319 |
+
|
320 |
+
-- Триггер после добавления оценки
|
321 |
+
CREATE TRIGGER trg_update_reputation_insert
|
322 |
+
AFTER INSERT ON ratings
|
323 |
+
BEGIN
|
324 |
+
-- Если это метод мышления
|
325 |
+
UPDATE thinking_methods
|
326 |
+
SET reputation = (
|
327 |
+
SELECT COALESCE(AVG(rating),0)
|
328 |
+
FROM ratings
|
329 |
+
WHERE target_type = 'thinking_method'
|
330 |
+
AND target_id = NEW.target_id
|
331 |
+
)
|
332 |
+
WHERE id = NEW.target_id
|
333 |
+
AND NEW.target_type = 'thinking_method';
|
334 |
+
|
335 |
+
-- Если это стратегия стагнации
|
336 |
+
UPDATE stagnation_strategies
|
337 |
+
SET reputation = (
|
338 |
+
SELECT COALESCE(AVG(rating),0)
|
339 |
+
FROM ratings
|
340 |
+
WHERE target_type = 'stagnation_strategy'
|
341 |
+
AND target_id = NEW.target_id
|
342 |
+
)
|
343 |
+
WHERE id = NEW.target_id
|
344 |
+
AND NEW.target_type = 'stagnation_strategy';
|
345 |
+
END;
|
346 |
+
|
347 |
+
-- Триггер после изменения оценки
|
348 |
+
CREATE TRIGGER trg_update_reputation_update
|
349 |
+
AFTER UPDATE ON ratings
|
350 |
+
BEGIN
|
351 |
+
-- Для методов мышления
|
352 |
+
UPDATE thinking_methods
|
353 |
+
SET reputation = (
|
354 |
+
SELECT COALESCE(AVG(rating),0)
|
355 |
+
FROM ratings
|
356 |
+
WHERE target_type = 'thinking_method'
|
357 |
+
AND target_id = NEW.target_id
|
358 |
+
)
|
359 |
+
WHERE id = NEW.target_id
|
360 |
+
AND NEW.target_type = 'thinking_method';
|
361 |
+
|
362 |
+
-- Для стратегий стагнации
|
363 |
+
UPDATE stagnation_strategies
|
364 |
+
SET reputation = (
|
365 |
+
SELECT COALESCE(AVG(rating),0)
|
366 |
+
FROM ratings
|
367 |
+
WHERE target_type = 'stagnation_strategy'
|
368 |
+
AND target_id = NEW.target_id
|
369 |
+
)
|
370 |
+
WHERE id = NEW.target_id
|
371 |
+
AND NEW.target_type = 'stagnation_strategy';
|
372 |
+
END;
|
373 |
+
|
374 |
+
-- Триггер после удаления оценки
|
375 |
+
CREATE TRIGGER trg_update_reputation_delete
|
376 |
+
AFTER DELETE ON ratings
|
377 |
+
BEGIN
|
378 |
+
-- Для методов мышления
|
379 |
+
UPDATE thinking_methods
|
380 |
+
SET reputation = (
|
381 |
+
SELECT COALESCE(AVG(rating),0)
|
382 |
+
FROM ratings
|
383 |
+
WHERE target_type = 'thinking_method'
|
384 |
+
AND target_id = OLD.target_id
|
385 |
+
)
|
386 |
+
WHERE id = OLD.target_id
|
387 |
+
AND OLD.target_type = 'thinking_method';
|
388 |
+
|
389 |
+
-- Для стратегий стагнации
|
390 |
+
UPDATE stagnation_strategies
|
391 |
+
SET reputation = (
|
392 |
+
SELECT COALESCE(AVG(rating),0)
|
393 |
+
FROM ratings
|
394 |
+
WHERE target_type = 'stagnation_strategy'
|
395 |
+
AND target_id = OLD.target_id
|
396 |
+
)
|
397 |
+
WHERE id = OLD.target_id
|
398 |
+
AND OLD.target_type = 'stagnation_strategy';
|
399 |
+
END;
|
400 |
+
|
401 |
+
-- ============================================
|
402 |
+
-- Унифицированное VIEW для рейтингов
|
403 |
+
-- ============================================
|
404 |
+
|
405 |
+
DROP VIEW IF EXISTS rated_entities;
|
406 |
+
CREATE VIEW rated_entities AS
|
407 |
+
SELECT
|
408 |
+
'thinking_method' AS entity_type,
|
409 |
+
tm.id AS entity_id,
|
410 |
+
tm.name,
|
411 |
+
tm.description,
|
412 |
+
tm.tags,
|
413 |
+
tm.reputation,
|
414 |
+
COUNT(r.id) AS ratings_count
|
415 |
+
FROM thinking_methods tm
|
416 |
+
LEFT JOIN ratings r
|
417 |
+
ON r.target_type = 'thinking_method' AND r.target_id = tm.id
|
418 |
+
GROUP BY tm.id
|
419 |
+
|
420 |
+
UNION ALL
|
421 |
+
|
422 |
+
SELECT
|
423 |
+
'stagnation_strategy' AS entity_type,
|
424 |
+
ss.id AS entity_id,
|
425 |
+
ss.name,
|
426 |
+
ss.description,
|
427 |
+
ss.tags,
|
428 |
+
ss.reputation,
|
429 |
+
COUNT(r.id) AS ratings_count
|
430 |
+
FROM stagnation_strategies ss
|
431 |
+
LEFT JOIN ratings r
|
432 |
+
ON r.target_type = 'stagnation_strategy' AND r.target_id = ss.id
|
433 |
+
GROUP BY ss.id;
|
docs/HMP-agent-REPL-cycle.md
CHANGED
@@ -53,8 +53,6 @@
|
|
53 |
|
54 |
---
|
55 |
|
56 |
-
|
57 |
-
|
58 |
* Скрипт парсит ответ LLM на предмет команд, размеченных как `# Команды:` (или в явном JSON-блоке).
|
59 |
* Каждая команда может включать:
|
60 |
|
@@ -87,7 +85,7 @@
|
|
87 |
* для управления своей *идентичностью* `identity` и *настройками* `config`
|
88 |
* для управления списком известных HMP-агентов `agent_peers`
|
89 |
* для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
|
90 |
-
* для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies
|
91 |
* для постановки задачи (выполняется асинхронно) другой LLM
|
92 |
* для *взаимодействия с Mesh*
|
93 |
* для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
|
@@ -97,8 +95,6 @@
|
|
97 |
|
98 |
---
|
99 |
|
100 |
-
|
101 |
-
|
102 |
* Каждый новый вывод LLM проходит через мини-запрос к LLM (без полного контекста) по шаблону:
|
103 |
|
104 |
```
|
@@ -131,8 +127,6 @@ JSON-список отбракованных идей.
|
|
131 |
|
132 |
---
|
133 |
|
134 |
-
|
135 |
-
|
136 |
* После выполнения команд и фиксации результатов:
|
137 |
|
138 |
* Создаётся новая запись в `agent_log`
|
@@ -255,6 +249,8 @@ JSON-список отбракованных идей.
|
|
255 |
Паттерны размышлений могут оформляться как микросценарии:
|
256 |
_"Начни с аналогии"_, _"Проверь обратное утверждение"_, _"Сформулируй вопрос для оппонента"_
|
257 |
|
|
|
|
|
258 |
---
|
259 |
|
260 |
### 🧭 Клубы по интересам
|
|
|
53 |
|
54 |
---
|
55 |
|
|
|
|
|
56 |
* Скрипт парсит ответ LLM на предмет команд, размеченных как `# Команды:` (или в явном JSON-блоке).
|
57 |
* Каждая команда может включать:
|
58 |
|
|
|
85 |
* для управления своей *идентичностью* `identity` и *настройками* `config`
|
86 |
* для управления списком известных HMP-агентов `agent_peers`
|
87 |
* для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
|
88 |
+
* для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies` и методов мышления `thinking_methods` (а также таблицей рейтингов `ratings`), а также списком внешних сервисов `external_services` и `external_accounts`
|
89 |
* для постановки задачи (выполняется асинхронно) другой LLM
|
90 |
* для *взаимодействия с Mesh*
|
91 |
* для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
|
|
|
95 |
|
96 |
---
|
97 |
|
|
|
|
|
98 |
* Каждый новый вывод LLM проходит через мини-запрос к LLM (без полного контекста) по шаблону:
|
99 |
|
100 |
```
|
|
|
127 |
|
128 |
---
|
129 |
|
|
|
|
|
130 |
* После выполнения команд и фиксации результатов:
|
131 |
|
132 |
* Создаётся новая запись в `agent_log`
|
|
|
249 |
Паттерны размышлений могут оформляться как микросценарии:
|
250 |
_"Начни с аналогии"_, _"Проверь обратное утверждение"_, _"Сформулируй вопрос для оппонента"_
|
251 |
|
252 |
+
> По аналогии с обменом стратегиями выхода из стагнаций, агенты могут обмениваться и методами мышлений - инструкциями "что делать, если не удается найти решение".
|
253 |
+
|
254 |
---
|
255 |
|
256 |
### 🧭 Клубы по интересам
|