GitHub Action commited on
Commit
80b88c1
·
1 Parent(s): e14a242

Sync from GitHub with Git LFS

Browse files
agents/tools/db_structure.sql CHANGED
@@ -65,6 +65,8 @@ CREATE TABLE IF NOT EXISTS tasks (
65
  status TEXT DEFAULT 'open', -- open / in_progress / done / frozen
66
  pinned INTEGER DEFAULT 0, -- 0 = обычная, 1 = закреплённая
67
  timestamp TEXT DEFAULT CURRENT_TIMESTAMP, -- Когда задача создана
 
 
68
  llm_id TEXT, -- Кто предложил задачу
69
  FOREIGN KEY(goal_id) REFERENCES goals(id)
70
  );
@@ -124,7 +126,8 @@ CREATE TABLE IF NOT EXISTS notes (
124
  hashtags TEXT DEFAULT '[]', -- JSON-массив пользовательских хештегов
125
  user_did TEXT DEFAULT 'ALL', -- Идентификатор пользователя (или 'ALL')
126
  agent_did TEXT, -- Идентификатор агента (он же идентификатор чата)
127
- source TEXT DEFAULT 'user', -- Источник: user | cli | llm | system
 
128
  links TEXT DEFAULT '', -- Ссылки на другие объекты (например, JSON со связями)
129
  read INTEGER DEFAULT 0, -- Агент прочитал: 0 = нет, 1 = да
130
  hidden INTEGER DEFAULT 0, -- Скрыто от UI (например, технические записи)
@@ -181,6 +184,7 @@ CREATE TABLE IF NOT EXISTS llm_recent_responses (
181
  role TEXT CHECK(role IN ('user', 'assistant')) NOT NULL,
182
  content TEXT NOT NULL, -- Содержимое сообщения
183
  llm_id TEXT, -- Идентификатор LLM
 
184
  reflection TEXT, -- Краткая сводка/мета-комментарий
185
  novelty_score REAL, -- Количественная оценка новизны
186
  new_ideas JSON, -- JSON-список новых идей
 
65
  status TEXT DEFAULT 'open', -- open / in_progress / done / frozen
66
  pinned INTEGER DEFAULT 0, -- 0 = обычная, 1 = закреплённая
67
  timestamp TEXT DEFAULT CURRENT_TIMESTAMP, -- Когда задача создана
68
+ repl_mode TEXT DEFAULT 'none', -- none | read_only | full
69
+ repl_status TEXT DEFAULT 'stopped', -- running | stopped | error
70
  llm_id TEXT, -- Кто предложил задачу
71
  FOREIGN KEY(goal_id) REFERENCES goals(id)
72
  );
 
126
  hashtags TEXT DEFAULT '[]', -- JSON-массив пользовательских хештегов
127
  user_did TEXT DEFAULT 'ALL', -- Идентификатор пользователя (или 'ALL')
128
  agent_did TEXT, -- Идентификатор агента (он же идентификатор чата)
129
+ source TEXT DEFAULT 'user', -- Источник: user | cli | llm | llm:task | system
130
+ task_id INTEGER, -- NULL = не относится к задаче, иначе привязка к tasks.id
131
  links TEXT DEFAULT '', -- Ссылки на другие объекты (например, JSON со связями)
132
  read INTEGER DEFAULT 0, -- Агент прочитал: 0 = нет, 1 = да
133
  hidden INTEGER DEFAULT 0, -- Скрыто от UI (например, технические записи)
 
184
  role TEXT CHECK(role IN ('user', 'assistant')) NOT NULL,
185
  content TEXT NOT NULL, -- Содержимое сообщения
186
  llm_id TEXT, -- Идентификатор LLM
187
+ task_id INTEGER REFERENCES tasks(id), -- К какой задаче относится
188
  reflection TEXT, -- Краткая сводка/мета-комментарий
189
  novelty_score REAL, -- Количественная оценка новизны
190
  new_ideas JSON, -- JSON-список новых идей
docs/HMP-agent-REPL-cycle.md CHANGED
@@ -97,7 +97,9 @@ REPL-цикл является основой HMP-агента [Cognitive Core](
97
  * для управления списком известных HMP-агентов `agent_peers`
98
  * для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
99
  * для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies` и методов мышления `thinking_methods` (а также таблицей рейтингов `ratings`), а также списком внешних сервисов `external_services` и `external_accounts`
100
- * для постановки задачи (выполняется асинхронно) другой LLM
 
 
101
  * для *взаимодействия с Mesh*
102
  * для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
103
  * инициализация *очистки* `process_log`, `llm_recent_responses` и `notes` от устаревших записей
@@ -582,6 +584,34 @@ REPL-цикл является основой HMP-агента [Cognitive Core](
582
 
583
  ---
584
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
585
  ## 🌐 Внешние инструменты и интеграции
586
 
587
  HMP-агент может быть расширен за счёт взаимодействия с внешними программами, протоколами и сервисами. Этот раздел описывает направления возможных интеграций, которые позволяют агенту наблюдать, реагировать, управлять и развивать взаимодействие с внешним миром.
 
97
  * для управления списком известных HMP-агентов `agent_peers`
98
  * для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
99
  * для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies` и методов мышления `thinking_methods` (а также таблицей рейтингов `ratings`), а также списком внешних сервисов `external_services` и `external_accounts`
100
+ * для постановки задачи другой LLM:
101
+ * режим "вопрос-ответ" — разовый асинхронный запрос
102
+ * режим "read-only REPL" — запуск вспомогательного REPL-цикла для задачи
103
  * для *взаимодействия с Mesh*
104
  * для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
105
  * инициализация *очистки* `process_log`, `llm_recent_responses` и `notes` от устаревших записей
 
584
 
585
  ---
586
 
587
+ ## 🔄 Вспомогательные REPL-циклы
588
+
589
+ Помимо основного REPL-цикла агент может запускать вспомогательные циклы для отдельных задач.
590
+ Это позволяет изолировать рассуждения по задаче, но при этом сохранять связь с основным агентом.
591
+
592
+ Особенности:
593
+
594
+ * **Изоляция контекста**
595
+ * вспомогательный цикл видит в `llm_recent_responses` только свои собственные сообщения;
596
+ * задача, для которой он запущен, формируется на основе записи в `tasks` и подаётся как промпт при старте.
597
+
598
+ * **Доступ к данным**
599
+ * полный доступ к таблицам агента только для чтения;
600
+ * запись собственных рассуждений — только через `notes` (в свободной форме, помеченные `source = 'llm:task'` и `task_id`).
601
+
602
+ * **Взаимодействие с основным циклом**
603
+ * основное ядро получает сообщения вспомогательного цикла через `notes` и может реагировать (например, проверять корректность, сохранять выводы в `diary_entries`, вносить изменения в `concepts` и т.п.);
604
+ * вспомогательный цикл не выполняет команд напрямую — только генерирует текстовые предложения.
605
+
606
+ * **Жизненный цикл**
607
+ * запускается по команде основного REPL-цикла;
608
+ * может быть остановлен вручную или автоматически после завершения задачи;
609
+ * все его действия логируются в `process_log` с привязкой к `task_id`.
610
+
611
+ Таким образом, вспомогательные REPL-циклы действуют как «виртуальные подагенты» в режиме read-only, не меняя состояние БД напрямую, а передавая свои гипотезы и результаты через основной REPL-цикл.
612
+
613
+ ---
614
+
615
  ## 🌐 Внешние инструменты и интеграции
616
 
617
  HMP-агент может быть расширен за счёт взаимодействия с внешними программами, протоколами и сервисами. Этот раздел описывает направления возможных интеграций, которые позволяют агенту наблюдать, реагировать, управлять и развивать взаимодействие с внешним миром.