Clarify memory_query_graph: kind is an EDGE type, not an atom type

This commit is contained in:
n1kt4r committed 2026-10-15 16:03:27 +05:00
1 parent 3b5cd2e771
commit 16c843966e
2 files changed
+16 -8

No files matched your search

+4 -1
View File
@@ -37,7 +37,7 @@ Read this file before answering any question about knowledge, memory, or researc
| "Is X true?" · "Check this fact" | `memory_verify` |
| "Analyze this code / build a code graph" | `memory_code_graph` |
| "Find a function/class named X" | `memory_search_code` |
| "Show relations / graph edges" | `memory_query_graph` |
| "Show relations / graph edges" | `memory_query_graph` — `kind` is an **edge** type (`imports`/`depends_on`/`calls`/`inherits`/`related`), not an atom type |
| "Remember to research X later" | `memory_add_gap` |
| "Run logical inference" | `memory_infer` |
@@ -84,6 +84,9 @@ Every atom needs a **claim** (one short sentence) and, where possible, provenanc
Searching the web for your own base wastes calls and returns nothing useful.
- **Reading a directory.** `read` expects a *file*. Use `bash` (`ls`) or the fs-search tool
for directories. `read /some/dir` fails with "not a regular file".
- **`memory_query_graph` with an atom type.** Its `kind` is an **edge** type
(`imports`, `depends_on`, `calls`, `inherits`, `related`) — never `text`/`fact` (those are atom
types). Omit `kind` entirely to get all edges.
- **Storing raw text.** Do not `memory_store` whole articles. Distill first
(`memory_ingest`) or write one atomic claim.
- **Skipping verification.** An unverified atom stays `candidate`. Cross-confirm it.
+12 -7
View File
@@ -244,7 +244,7 @@ def _tool_verify(args):
TOOLS = [
{
"name": "memory_search",
"description": "Семантический поиск по базе знаний Pegas Memory (Qdrant, EmbeddingGemma 2). "
"description": "Семантический поиск ВНУТРИ твоей базы знаний Pegas Memory (не в интернете!). "
"Возвращает типизированные атомы (text/definition/logical_rule/code/table/fact) "
"с оценкой сходства. Фильтры: type, status (candidate/verified/stale/contested).",
"inputSchema": {
@@ -306,7 +306,8 @@ TOOLS = [
},
{
"name": "memory_list_gaps",
"description": "Список открытых пробелов в базе знаний (по приоритету).",
"description": "Список открытых пробелов (вопросов, на которые пока нет ответа) в базе, "
"отсортированный по приоритету. Вызывай, чтобы узнать, что ещё нужно исследовать.",
"inputSchema": {"type": "object", "properties": {}, "required": []},
},
{
@@ -323,7 +324,8 @@ TOOLS = [
},
{
"name": "memory_stats",
"description": "Статистика базы знаний: число атомов, документов, открытых пробелов.",
"description": "Сколько всего в твоей базе знаний: атомов, документов, открытых пробелов. "
"Вызывай, когда пользователь спрашивает, ЧТО хранится в базе или её состояние.",
"inputSchema": {"type": "object", "properties": {}, "required": []},
},
{
@@ -384,12 +386,14 @@ TOOLS = [
},
{
"name": "memory_query_graph",
"description": "Запросить граф: список рёбер (по kind или все), счётчики узлов.",
"description": "Запросить граф связей: рёбра между знаниями/кодом и счётчики узлов. "
"ВАЖНО: kind — это тип РЕБРА (связи), НЕ тип атома (text/fact/...) и НЕ поисковый запрос. "
"Если не уверен в типе ребра — оставь kind пустым, вернутся все рёбра.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {"type": "string", "description": "Фильтр по kind ребра (опционально)."},
"top_k": {"type": "integer", "default": 50, "description": "Число рёбер."},
"kind": {"type": "string", "description": "Тип РЕБРА (не тип атома!): imports | depends_on | calls | inherits | related. Оставь пустым — вернутся все рёбра."},
"top_k": {"type": "integer", "default": 50, "description": "Сколько рёбер вернуть (1-200)."},
},
"required": [],
},
@@ -412,7 +416,8 @@ TOOLS = [
{
"name": "memory_get_context",
"description": "Собрать релевантный контекст для агента по запросу (поиск + форматирование).",
"description": "Собрать релевантный контекст из твоей базы для ответа (поиск по атомам + форматирование). "
"Используй перед ответом на вопрос, чтобы опереться на уже известные факты.",
"inputSchema": {
"type": "object",
"properties": {