Added tool registry as well as hardening of message sending, checking ACKs and retransmit

This commit is contained in:
2026-05-06 20:01:28 +02:00
parent 922de8cc67
commit 946e853241
11 changed files with 768 additions and 66 deletions
+19 -1
View File
@@ -4,6 +4,11 @@
# LORABOT_LLM__BASE_URL=http://llama:8080/v1
# LORABOT_MESHCORE__SERIAL_PORT=/dev/ttyACM0
[logging]
# DEBUG | INFO | WARNING | ERROR | CRITICAL (case-insensitive).
# DEBUG adds per-iteration LLM request logs and Tavily request details.
level = "INFO"
[meshcore]
serial_port = "/dev/ttyUSB0"
baud_rate = 115200
@@ -11,7 +16,7 @@ baud_rate = 115200
[llm]
base_url = "http://localhost:8080/v1"
api_key = "not-needed"
model = "llama-3.1-8b-instruct"
model = "gemma-4-E4B"
system_prompt = "You are a concise assistant on a low-bandwidth mesh radio. Replies must be brief — under 180 bytes."
temperature = 0.7
request_timeout_seconds = 60
@@ -23,6 +28,10 @@ sqlite_path = "data/lorabot.db"
# MeshCore MAX_PACKET_PAYLOAD is 184 bytes. Lower this if your text-frame
# headers further constrain the usable payload on your device.
max_bytes = 184
# Seconds to wait for an ACK before treating a chunk as failed.
ack_timeout_seconds = 30
# How many times to retry a chunk after failure (0 = no retries).
send_retries = 1
[web]
# Built-in read-only web UI: stored conversations + live status.
@@ -39,3 +48,12 @@ interval_seconds = 3600
at_startup = true
# Flood = multi-hop advert across the mesh. False = zero-hop (neighbors only).
flood = false
# LLM tool calling. The weather tool (Open-Meteo, no key) is always on. Tools
# in this section are optional and only registered when configured. Requires a
# tool-capable model on the LLM server (Llama 3.1, Qwen, Hermes, …); models
# without tool support will simply ignore them.
[tools.tavily]
# Web search + page extraction via https://tavily.com (free tier available).
# Leave empty to disable both web_search and fetch_url tools.
api_key = ""