File size: 3,918 Bytes
2cef9d0
 
 
2c3dd0c
 
 
 
2cef9d0
 
 
2c3dd0c
 
2cef9d0
2c3dd0c
 
 
 
2cef9d0
 
2c3dd0c
 
 
 
 
 
 
 
 
2cef9d0
2c3dd0c
 
 
 
2cef9d0
2c3dd0c
 
 
 
2cef9d0
2c3dd0c
2cef9d0
 
 
 
 
2c3dd0c
 
2cef9d0
2c3dd0c
 
 
 
 
2cef9d0
2c3dd0c
2cef9d0
 
2c3dd0c
 
2cef9d0
2c3dd0c
 
 
 
2cef9d0
2c3dd0c
2cef9d0
 
2c3dd0c
 
2cef9d0
2c3dd0c
 
 
 
2cef9d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2c3dd0c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
-- Основные таблицы когнитивного ядра

-- Дневниковые записи (размышления, наблюдения, воспоминания)
CREATE TABLE IF NOT EXISTS diary_entries (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    text TEXT NOT NULL,
    tags TEXT,
    priority INTEGER DEFAULT 0,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Концепты (понятия, сущности, идеи)
CREATE TABLE IF NOT EXISTS concepts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL UNIQUE,
    description TEXT,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Семантические связи между концептами
CREATE TABLE IF NOT EXISTS links (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    from_concept_id INTEGER,
    to_concept_id INTEGER,
    relation_type TEXT,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT,
    FOREIGN KEY(from_concept_id) REFERENCES concepts(id),
    FOREIGN KEY(to_concept_id) REFERENCES concepts(id)
);

-- Заметки, подсказки, сообщения пользователя и LLM
CREATE TABLE IF NOT EXISTS notes (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    text TEXT NOT NULL,
    tags TEXT,
    source TEXT DEFAULT 'user', -- user | llm | system
    links TEXT DEFAULT '',
    read INTEGER DEFAULT 0,     -- 0 = непрочитано LLM, 1 = прочитано
    hidden INTEGER DEFAULT 0,   -- 0 = отображать пользователю, 1 = скрыть
    priority INTEGER DEFAULT 0,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Лог процессов: задачи, ошибки, события
CREATE TABLE IF NOT EXISTS process_log (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    value TEXT,
    tags TEXT,
    status TEXT DEFAULT 'ok',  -- ok | warning | error | timeout | offline | close
    priority INTEGER DEFAULT 0,
    timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Память LLM (контекст размышлений)
CREATE TABLE IF NOT EXISTS llm_memory (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT,
    content TEXT NOT NULL,
    tags TEXT, -- goal,observation,meta,...
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Краткосрочная память LLM (история общения)
CREATE TABLE IF NOT EXISTS llm_recent_responses (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    role TEXT CHECK(role IN ('user', 'assistant')) NOT NULL,
    content TEXT NOT NULL,
    llm_id TEXT
);

-- Дополнительные таблицы и скрипты агента

-- Список пользовательских таблиц, созданных агентами
CREATE TABLE IF NOT EXISTS agent_tables (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    table_name TEXT NOT NULL UNIQUE,
    description TEXT,
    schema TEXT NOT NULL, -- SQL-схема таблицы
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT
);

-- Список утилит/скриптов, добавленных агентами
CREATE TABLE IF NOT EXISTS agent_scripts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    version TEXT NOT NULL,
    code TEXT NOT NULL,
    language TEXT DEFAULT 'python',
    description TEXT,
    tags TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    llm_id TEXT,
    UNIQUE(name, version)
);

-- Список LLM-агентов (возможно удалённые)
CREATE TABLE IF NOT EXISTS llm_registry (
    id TEXT PRIMARY KEY, -- UUID или псевдоним
    name TEXT,
    description TEXT,
    registered_at DATETIME DEFAULT CURRENT_TIMESTAMP
);