feat(grpc): dev mode, agent prefix, system prompt, error UX

- gRPC dev_mode config: disables JWT auth, uses fixed dev identity
- Agent prefix (agents.agent_prefix): dev agents use "dev-sol-orchestrator"
  to avoid colliding with production on shared Mistral accounts
- Coding sessions use instructions (system prompt + coding addendum)
  with mistral-medium-latest for personality adherence
- Conversations API: don't send both model + agent_id (422 fix)
- GrpcState carries system_prompt + orchestrator_agent_id
- Session.end() keeps session active for reuse (not "ended")
- User messages posted as m.notice, assistant as m.text (role detection)
- History loaded from Matrix room on session resume
- Docker Compose local dev stack: OpenSearch 3 + Tuwunel + SearXNG
- Dev config: localhost URLs, dev_mode, opensearch-init.sh for ML setup
This commit is contained in:
2026-03-23 17:07:50 +00:00
parent 71392cef9c
commit b8b76687a5
18 changed files with 1035 additions and 65 deletions

54
dev/sol-dev.toml Normal file
View File

@@ -0,0 +1,54 @@
[matrix]
homeserver_url = "http://localhost:8008"
user_id = "@sol:sunbeam.local"
state_store_path = "data/matrix-state"
db_path = "data/sol.db"
[opensearch]
url = "http://localhost:9200"
index = "sol_archive"
memory_index = "sol_user_memory"
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 = 250
[behavior]
response_delay_min_ms = 0
response_delay_max_ms = 0
spontaneous_delay_min_ms = 0
spontaneous_delay_max_ms = 0
spontaneous_threshold = 0.85
room_context_window = 200
dm_context_window = 200
instant_responses = true
memory_extraction_enabled = false
script_fetch_allowlist = ["api.open-meteo.com", "wttr.in"]
[agents]
orchestrator_model = "mistral-medium-latest"
compaction_threshold = 118000
use_conversations_api = true
coding_model = "mistral-medium-latest"
agent_prefix = "dev"
research_model = "ministral-3b-latest"
research_max_iterations = 10
research_max_agents = 25
research_max_depth = 4
[grpc]
listen_addr = "0.0.0.0:50051"
dev_mode = true
[vault]
url = "http://localhost:8200"
role = "sol-agent"
mount = "secret"
[services.searxng]
url = "http://localhost:8888"