smart_brain 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/MEMPAL_GUIDE.md +1074 -0
- data/README.en.md +173 -173
- data/README.md +467 -173
- data/config/brain.yml +69 -1
- data/conversation_demo.rb +438 -438
- data/db/migrate/002_turn_events_payload.sql +9 -0
- data/db/migrate/003_tiers_and_lifecycle.sql +28 -0
- data/db/migrate/004_kg_edges.sql +30 -0
- data/db/migrate/005_domains_and_memory_scopes.sql +163 -0
- data/docs/coding_todo.md +139 -0
- data/docs/context_package.md +220 -0
- data/docs/evidence_pack.md +190 -0
- data/docs/gap_vs_mempal.md +161 -0
- data/docs/mcp.md +93 -0
- data/docs/memory_types.md +278 -0
- data/docs/multi_scope_memory_refactor_plan.md +483 -0
- data/docs/multi_scope_migration.md +65 -0
- data/docs/policies.md +308 -0
- data/docs/retrieval_plan.md +231 -0
- data/docs/smartbrain_design.md +299 -0
- data/docs/user_guide.md +546 -0
- data/example.rb +91 -91
- data/examples/01_memory_basic.rb +57 -0
- data/examples/02_governance.rb +63 -0
- data/examples/03_postgres_persistence.rb +63 -0
- data/examples/04_ollama_llm.rb +69 -0
- data/examples/05_smart_rag_integration.rb +79 -0
- data/examples/06_multi_scope_memory.rb +50 -0
- data/examples/README.md +49 -0
- data/exe/smart_brain +168 -0
- data/lib/smart_brain/adapters/smart_rag/direct_client.rb +16 -5
- data/lib/smart_brain/adapters/smart_rag/http_client.rb +16 -5
- data/lib/smart_brain/adapters/smart_rag/null_client.rb +7 -2
- data/lib/smart_brain/adapters/smart_rag/scope_filter.rb +60 -0
- data/lib/smart_brain/configuration.rb +57 -0
- data/lib/smart_brain/consolidator/working_summary.rb +80 -12
- data/lib/smart_brain/context_composer/composer.rb +40 -3
- data/lib/smart_brain/contracts/retrieval_plan.rb +10 -0
- data/lib/smart_brain/contracts/scope_context.rb +46 -0
- data/lib/smart_brain/contracts/scope_ref.rb +25 -0
- data/lib/smart_brain/db.rb +109 -0
- data/lib/smart_brain/event_store/in_memory.rb +6 -2
- data/lib/smart_brain/event_store/postgres.rb +199 -0
- data/lib/smart_brain/fusion/merger.rb +31 -2
- data/lib/smart_brain/governance/briefing.rb +146 -0
- data/lib/smart_brain/governance/fact_check.rb +110 -0
- data/lib/smart_brain/governance/knowledge_graph.rb +60 -0
- data/lib/smart_brain/governance/lifecycle.rb +225 -0
- data/lib/smart_brain/governance/tiers.rb +60 -0
- data/lib/smart_brain/memory_extractor/extractor.rb +25 -7
- data/lib/smart_brain/memory_store/in_memory.rb +202 -17
- data/lib/smart_brain/memory_store/postgres.rb +500 -0
- data/lib/smart_brain/model_provider/base.rb +87 -0
- data/lib/smart_brain/model_provider/factory.rb +49 -0
- data/lib/smart_brain/model_provider/ollama.rb +60 -0
- data/lib/smart_brain/model_provider/openai.rb +60 -0
- data/lib/smart_brain/model_provider/stub.rb +26 -0
- data/lib/smart_brain/model_provider.rb +7 -0
- data/lib/smart_brain/observability/tracker.rb +39 -1
- data/lib/smart_brain/retrievers/exact_retriever.rb +6 -0
- data/lib/smart_brain/retrievers/memory_retriever.rb +59 -5
- data/lib/smart_brain/runtime.rb +288 -16
- data/lib/smart_brain/scopes/conflict_resolver.rb +67 -0
- data/lib/smart_brain/scopes/registry.rb +133 -0
- data/lib/smart_brain/scopes/resolver.rb +32 -0
- data/lib/smart_brain/server/http_app.rb +143 -0
- data/lib/smart_brain/server/mcp_server.rb +385 -0
- data/lib/smart_brain/server/service.rb +129 -0
- data/lib/smart_brain/support/levenshtein.rb +35 -0
- data/lib/smart_brain/version.rb +5 -5
- data/lib/smart_brain.rb +80 -35
- metadata +88 -36
data/config/brain.yml
CHANGED
|
@@ -1,4 +1,69 @@
|
|
|
1
|
+
# SmartBrain 运行时配置(映射 docs/policies.md §6 默认策略)
|
|
2
|
+
#
|
|
3
|
+
# 存储:默认 memory(零依赖,开发/测试/纯库用法);
|
|
4
|
+
# 切到 postgres 即启用 EventStore/MemoryStore 持久化与 memory_chunks FTS。
|
|
5
|
+
# backend 也可用环境变量 SMARTBRAIN_BACKEND 覆盖。
|
|
6
|
+
# 数据库连接可用 SMARTBRAIN_DB_{HOST,PORT,NAME,USER,PASSWORD} 覆盖。
|
|
7
|
+
|
|
8
|
+
storage:
|
|
9
|
+
backend: memory
|
|
10
|
+
database:
|
|
11
|
+
adapter: postgres
|
|
12
|
+
host: 127.0.0.1
|
|
13
|
+
port: 5432
|
|
14
|
+
database: smart_brain_development
|
|
15
|
+
user: smart_brain
|
|
16
|
+
password: smart_brain
|
|
17
|
+
# 用于 search_memory 的 FTS 文本搜索配置(内置 'simple',零扩展依赖)。
|
|
18
|
+
# 中文通过分词后的 chunk 文本在 simple 下命中;如装了 pg_jieba 可改为 'jieba'。
|
|
19
|
+
fts_config: simple
|
|
20
|
+
|
|
21
|
+
# 本地模型调用(兑现 smartbrain_design.md §9)。
|
|
22
|
+
# 默认 stub:确定性、零网络(summary 走模板、rerank 走词法)。
|
|
23
|
+
# 切 ollama / openai 后,working_summary 走真摘要、merger 走 LLM rerank。
|
|
24
|
+
model_provider:
|
|
25
|
+
provider: stub # stub | ollama | openai (env: SMARTBRAIN_LLM_PROVIDER)
|
|
26
|
+
model: qwen3
|
|
27
|
+
base_url: http://localhost:11434
|
|
28
|
+
api_key: "" # openai-compatible 提供商需要
|
|
29
|
+
rerank_model: qwen3 # rerank 走 complete(LLM-as-judge),用同一模型
|
|
30
|
+
temperature: 0.2
|
|
31
|
+
timeout_seconds: 120 # 思维链模型较慢,摘要调用给足超时
|
|
32
|
+
summary_max_tokens: 900
|
|
33
|
+
think: false # 关闭思维链(支持的 ollama 版本会更快更干净)
|
|
34
|
+
rerank_enabled: false # compose 时是否做 LLM rerank(每轮都跑,默认关;改 true 启用)
|
|
35
|
+
|
|
36
|
+
# 思维分层(mempal mind model):dao_tian 天道 / dao_ren 人道 / shu 术 / qi 器 / evidence 证据
|
|
37
|
+
tiers:
|
|
38
|
+
dao_tian_limit: 1 # 自动装配时 dao_tian(不可变原则)默认最多注入条数
|
|
39
|
+
|
|
40
|
+
# 知识生命周期(Stage-1):evidence → distill(candidate) → gate → promote → demote/retire
|
|
41
|
+
lifecycle:
|
|
42
|
+
min_supporting_refs: 2 # distill/promote 门槛:至少 N 条 evidence 支撑(reviewer=human 可豁免)
|
|
43
|
+
|
|
44
|
+
# 知识图谱(KG):三元组 + 时态有效性,与 memory_items/lifecycle 正交
|
|
45
|
+
kg:
|
|
46
|
+
default_confidence: 0.6
|
|
47
|
+
expand_retrieval: true # relational 检索匹配 entity 时是否顺带拉其 KG 边
|
|
48
|
+
|
|
49
|
+
# 事实核查(离线、零 LLM)
|
|
50
|
+
fact_check:
|
|
51
|
+
similar_name_distance: 2 # Levenshtein ≤ 此值视为同名冲突
|
|
52
|
+
negation_cues: ["not", "stopped", "no longer", "replaced", "never", "不", "不再", "停用", "弃用", "替换"]
|
|
53
|
+
|
|
54
|
+
# Brief / wake-up(确定性、citation-first、不写 DB)
|
|
55
|
+
briefing:
|
|
56
|
+
key_facts_max: 8
|
|
57
|
+
uncertainty_threshold: 0.6
|
|
58
|
+
recent_turns: 6
|
|
59
|
+
|
|
1
60
|
policies:
|
|
61
|
+
scopes:
|
|
62
|
+
allowed_types: [global, project, expert, task, session]
|
|
63
|
+
conflict_priority: [task, project, expert, global, session]
|
|
64
|
+
max_items_per_scope: 10
|
|
65
|
+
require_explicit_elevated_write: true
|
|
66
|
+
|
|
2
67
|
retention:
|
|
3
68
|
summarize_after_turns: 12
|
|
4
69
|
entity_gate:
|
|
@@ -8,6 +73,7 @@ policies:
|
|
|
8
73
|
user_asserted: 0.8
|
|
9
74
|
tool_derived: 0.9
|
|
10
75
|
inferred: 0.6
|
|
76
|
+
|
|
11
77
|
retrieval:
|
|
12
78
|
enable_resource_retrieval: auto
|
|
13
79
|
top_k: 30
|
|
@@ -15,6 +81,7 @@ policies:
|
|
|
15
81
|
query_expansion:
|
|
16
82
|
enabled: true
|
|
17
83
|
max_queries: 8
|
|
84
|
+
|
|
18
85
|
composition:
|
|
19
86
|
token_limit: 8192
|
|
20
87
|
system_blocks_max_tokens: 800
|
|
@@ -25,7 +92,8 @@ policies:
|
|
|
25
92
|
diversity:
|
|
26
93
|
by_document: 3
|
|
27
94
|
by_source_uri: 2
|
|
28
|
-
memory_resource_ratio:
|
|
95
|
+
memory_resource_ratio: "40/60"
|
|
96
|
+
|
|
29
97
|
observability:
|
|
30
98
|
trace: true
|
|
31
99
|
store_plans: true
|