Agentic Chat
When no domain agent matches a message, KULVEX falls back to agentic chat — a multi-round tool_use loop powered by the LLM.
How It Works
- User sends a message that doesn’t match any agent pattern
- KULVEX injects 12 curated tools into the system prompt (~984 tokens)
- The LLM generates a response, optionally calling tools
- If tools are called, results are fed back to the LLM
- Repeat up to 5 rounds until the LLM produces a final text response
User: "What's my energy production this week compared to last week?"
│
├── Round 1: LLM calls get_solar_history(days=14)
├── Round 2: LLM analyzes data, generates comparison
└── Final: Natural language response with numbersTool Set
The ALWAYS-available tool set includes:
| Tool | Description |
|---|---|
get_weather | Current weather + forecast |
get_solar | Solar energy production |
get_home_status | Smart home device states |
control_device | Turn on/off home devices |
get_presence | Who’s home |
get_security | Security system status |
search_web | Web search |
send_message | Send via messaging channel |
get_system_info | Server stats |
run_backup | Trigger backup |
analyze_url | Fetch and analyze a URL |
get_calendar | Calendar events |
Security: ToolGuard
Every tool call goes through ToolGuard before execution:
- Validates parameters against expected schemas
- Blocks dangerous operations (rm -rf, DROP TABLE, etc.)
- Rate limits tool calls per session
- Logs all tool executions for audit
Cloud vs Local
- Local (Mnemo): Uses the same agentic loop but with Ollama-compatible tool_use format
- Cloud (Claude): Uses Anthropic’s native tool_use API, which is more reliable for complex multi-step tasks
Limits
- Max 5 rounds per message to prevent infinite loops
- 12 tools in the ALWAYS set to fit within context window
- If the LLM fails to produce a valid tool call, the round is skipped