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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/MEMPAL_GUIDE.md +1074 -0
  4. data/README.en.md +173 -173
  5. data/README.md +467 -173
  6. data/config/brain.yml +69 -1
  7. data/conversation_demo.rb +438 -438
  8. data/db/migrate/002_turn_events_payload.sql +9 -0
  9. data/db/migrate/003_tiers_and_lifecycle.sql +28 -0
  10. data/db/migrate/004_kg_edges.sql +30 -0
  11. data/db/migrate/005_domains_and_memory_scopes.sql +163 -0
  12. data/docs/coding_todo.md +139 -0
  13. data/docs/context_package.md +220 -0
  14. data/docs/evidence_pack.md +190 -0
  15. data/docs/gap_vs_mempal.md +161 -0
  16. data/docs/mcp.md +93 -0
  17. data/docs/memory_types.md +278 -0
  18. data/docs/multi_scope_memory_refactor_plan.md +483 -0
  19. data/docs/multi_scope_migration.md +65 -0
  20. data/docs/policies.md +308 -0
  21. data/docs/retrieval_plan.md +231 -0
  22. data/docs/smartbrain_design.md +299 -0
  23. data/docs/user_guide.md +546 -0
  24. data/example.rb +91 -91
  25. data/examples/01_memory_basic.rb +57 -0
  26. data/examples/02_governance.rb +63 -0
  27. data/examples/03_postgres_persistence.rb +63 -0
  28. data/examples/04_ollama_llm.rb +69 -0
  29. data/examples/05_smart_rag_integration.rb +79 -0
  30. data/examples/06_multi_scope_memory.rb +50 -0
  31. data/examples/README.md +49 -0
  32. data/exe/smart_brain +168 -0
  33. data/lib/smart_brain/adapters/smart_rag/direct_client.rb +16 -5
  34. data/lib/smart_brain/adapters/smart_rag/http_client.rb +16 -5
  35. data/lib/smart_brain/adapters/smart_rag/null_client.rb +7 -2
  36. data/lib/smart_brain/adapters/smart_rag/scope_filter.rb +60 -0
  37. data/lib/smart_brain/configuration.rb +57 -0
  38. data/lib/smart_brain/consolidator/working_summary.rb +80 -12
  39. data/lib/smart_brain/context_composer/composer.rb +40 -3
  40. data/lib/smart_brain/contracts/retrieval_plan.rb +10 -0
  41. data/lib/smart_brain/contracts/scope_context.rb +46 -0
  42. data/lib/smart_brain/contracts/scope_ref.rb +25 -0
  43. data/lib/smart_brain/db.rb +109 -0
  44. data/lib/smart_brain/event_store/in_memory.rb +6 -2
  45. data/lib/smart_brain/event_store/postgres.rb +199 -0
  46. data/lib/smart_brain/fusion/merger.rb +31 -2
  47. data/lib/smart_brain/governance/briefing.rb +146 -0
  48. data/lib/smart_brain/governance/fact_check.rb +110 -0
  49. data/lib/smart_brain/governance/knowledge_graph.rb +60 -0
  50. data/lib/smart_brain/governance/lifecycle.rb +225 -0
  51. data/lib/smart_brain/governance/tiers.rb +60 -0
  52. data/lib/smart_brain/memory_extractor/extractor.rb +25 -7
  53. data/lib/smart_brain/memory_store/in_memory.rb +202 -17
  54. data/lib/smart_brain/memory_store/postgres.rb +500 -0
  55. data/lib/smart_brain/model_provider/base.rb +87 -0
  56. data/lib/smart_brain/model_provider/factory.rb +49 -0
  57. data/lib/smart_brain/model_provider/ollama.rb +60 -0
  58. data/lib/smart_brain/model_provider/openai.rb +60 -0
  59. data/lib/smart_brain/model_provider/stub.rb +26 -0
  60. data/lib/smart_brain/model_provider.rb +7 -0
  61. data/lib/smart_brain/observability/tracker.rb +39 -1
  62. data/lib/smart_brain/retrievers/exact_retriever.rb +6 -0
  63. data/lib/smart_brain/retrievers/memory_retriever.rb +59 -5
  64. data/lib/smart_brain/runtime.rb +288 -16
  65. data/lib/smart_brain/scopes/conflict_resolver.rb +67 -0
  66. data/lib/smart_brain/scopes/registry.rb +133 -0
  67. data/lib/smart_brain/scopes/resolver.rb +32 -0
  68. data/lib/smart_brain/server/http_app.rb +143 -0
  69. data/lib/smart_brain/server/mcp_server.rb +385 -0
  70. data/lib/smart_brain/server/service.rb +129 -0
  71. data/lib/smart_brain/support/levenshtein.rb +35 -0
  72. data/lib/smart_brain/version.rb +5 -5
  73. data/lib/smart_brain.rb +80 -35
  74. 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: '40/60'
95
+ memory_resource_ratio: "40/60"
96
+
29
97
  observability:
30
98
  trace: true
31
99
  store_plans: true