feat: initial Sol virtual librarian implementation
Matrix bot with E2EE (matrix-sdk 0.9) that passively archives all messages to OpenSearch and responds to queries via Mistral AI with function calling tools. Core systems: - Archive: bulk OpenSearch indexer with batch/flush, edit/redaction handling, embedding pipeline passthrough - Brain: rule-based engagement evaluator (mentions, DMs, name invocations), LLM-powered spontaneous engagement, per-room conversation context windows, response delay simulation - Tools: search_archive, get_room_context, list_rooms, get_room_members registered as Mistral function calling tools with iterative tool loop - Personality: templated system prompt with Sol's librarian persona 47 unit tests covering config, evaluator, conversation windowing, personality templates, schema serialization, and search query building.
This commit is contained in:
28
config/sol.toml
Normal file
28
config/sol.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
[matrix]
|
||||
homeserver_url = "http://tuwunel.matrix.svc.cluster.local:6167"
|
||||
user_id = "@sol:sunbeam.pt"
|
||||
state_store_path = "/data/matrix-state"
|
||||
|
||||
[opensearch]
|
||||
url = "http://opensearch.data.svc.cluster.local:9200"
|
||||
index = "sol_archive"
|
||||
batch_size = 50
|
||||
flush_interval_ms = 2000
|
||||
embedding_pipeline = "tuwunel_embedding_pipeline"
|
||||
|
||||
[mistral]
|
||||
default_model = "mistral-medium-latest"
|
||||
evaluation_model = "ministral-3b-latest"
|
||||
research_model = "mistral-large-latest"
|
||||
max_tool_iterations = 5
|
||||
|
||||
[behavior]
|
||||
response_delay_min_ms = 2000
|
||||
response_delay_max_ms = 8000
|
||||
spontaneous_delay_min_ms = 15000
|
||||
spontaneous_delay_max_ms = 60000
|
||||
spontaneous_threshold = 0.7
|
||||
room_context_window = 30
|
||||
dm_context_window = 100
|
||||
backfill_on_join = true
|
||||
backfill_limit = 10000
|
||||
Reference in New Issue
Block a user