Agent Tools
SETI AI's agents don't just talk about your power system — they act on it. Behind the conversation sits a toolkit of 57 tools the agents can call to read live data, run workflows, search your documents, manage the battery graph, send notifications, control energy schedules, speak over Discord voice, and coordinate with one another.
When you ask Bob or Bill to do something, they pick the right tool, run it on your behalf, and translate the raw result into a clear, plain-language answer. You never see JSON — you see the conclusion.
Related pages: Command Center · AI Agents · Notifications
How tools work (and why they're safe)
- Acting on your behalf. Every tool call is bound to the signed-in user. Any tool that touches user-owned data (canvases, workflows, schedules) is automatically forced to your identity — an agent can't be tricked into reading or changing another customer's data. Tenant isolation is enforced server-side, not just hidden in the UI.
- Grounded, not guessed. Tools return real data from real systems (your VRM account, your Postgres history, your knowledge base, your battery graph). If a backend isn't connected, the tool says so rather than fabricating a value.
- You stay in command. Tools that change something — issuing an action, creating a schedule — run through the agents' safety checks, and high-stakes actions are gated by Bob's approval.
The 57 tools are organized into seven categories.
1. Canvas / Workflow — drive the visual editor
These let the agents read and operate your node-based workflows and dashboard widgets, so you can build and run automations by asking.
| Tool | What it does |
|---|---|
list_canvases |
List your saved workflows |
get_canvas |
Read a specific workflow |
run_workflow |
Deploy and execute a workflow (server-side, 24/7) |
stop_workflow |
Halt a running workflow |
list_workflow_runs |
Recent execution history |
list_node_types |
The full catalog of node types |
list_widgets |
The full catalog of analytics widgets |
add_node_to_canvas |
Place a new node onto a canvas |
get_widget_data |
Pull the live data behind a widget |
Example. "Bob, run the overnight charge-balancing workflow." Bob reads it, verifies it's safe, deploys it, and reports the run status. "Bill, add an INA260 current sensor to my pack-monitor canvas." Bill checks the sensor against pack limits and drops the node in.
2. Knowledge Base — answers from your own documents
The Retrieval-Augmented Generation (RAG) toolkit. This is how the agents ground their answers in your uploaded manuals, datasheets, and specs (see Command Center).
| Tool | What it does |
|---|---|
kb_search |
Semantic search the knowledge base; returns the best passages with filename, snippet, and relevance score |
kb_stats |
How many documents are indexed, the filenames, and the embedding model |
kb_list_docs |
List of document filenames |
Example. Ask about a product number and the agent searches the KB first, then answers with a citation: "Per SETI_24V_PowerPack_Manual.pdf, max charging voltage is 29.4 V." These tools are deliberately cheap to call, so the agents use them liberally rather than guessing.
3. Battery / Neo4j — the battery knowledge graph
Your fleet's topology, cell health, events, and recurring failure patterns live in a graph database. These tools let the agents record and reason over that history.
| Tool | What it does |
|---|---|
neo4j_store_event |
Record a battery event (e.g. a thermal alert) |
neo4j_store_outcome |
Log how an event was resolved (action + resolution time) |
neo4j_find_patterns |
Surface recurring patterns by event type and metric range |
neo4j_get_pack_history |
Full event history for a pack |
neo4j_build_pattern |
Define a reusable pattern → recommended-action mapping |
Example. Over time the graph learns that a specific cell position on a pack repeatedly drifts warm. The agents detect the pattern, link it to the action that fixed it last time, and recommend it proactively — turning one-off incidents into institutional knowledge.
4. Notifications — reach the operator anywhere
These let the agents push messages out through your configured channels. Full detail in Notifications.
| Tool | What it does |
|---|---|
send_email |
Email the configured recipients |
send_discord |
Post to your Discord channel (webhook or bot) |
send_slack |
Post to your Slack channel |
send_alert |
Fan out to all enabled channels at once (with anti-spam cooldown) |
get_notification_status |
Which channels are enabled and configured |
get_notification_history |
What was sent, when, and whether it succeeded |
Example. "Bill, email me a degradation report for Pack 3." Bill generates the report and sends it. On a critical event, the agents call send_alert so the message reaches you on every channel you've set up.
5. Energy — live power data, cost, and scheduling
Direct integration with your energy hardware (Victron VRM and more) so the agents can read live power and manage how your system charges.
| Tool | What it does |
|---|---|
get_victron_live |
Live battery voltage, SoC, current, power, solar, and load |
get_energy_history |
Historical hourly VRM data (up to 90 days) |
get_energy_cost |
Cost analysis: solar savings, grid cost, daily breakdown, yearly projection |
get_schedules |
List charge/discharge schedules |
create_schedule |
Create a schedule (charge window, SoC target) |
delete_schedule |
Remove a schedule |
set_soc_floor |
Set the minimum (and maximum) state-of-charge guardrails |
set_energy_rate |
Set your electricity rate, including peak/off-peak |
Example. "Bob, charge to 100% between midnight and 6 AM and never let the pack drop below 30%." Bob creates the schedule and sets the SoC floor. "Bill, how much did solar save me this month?" Bill pulls the cost analysis and gives you the number and the yearly projection.
6. Voice — speak over Discord
For hands-free and shared-room operation, the agents can speak alerts aloud in a Discord voice channel.
| Tool | What it does |
|---|---|
discord_tts |
Send a text-to-speech message Discord reads aloud (built-in TTS, no extra engine) |
discord_voice_say |
Queue a message for the speech-to-speech voice engine to speak |
discord_voice_queue |
View pending voice messages in the speech queue |
Example. A critical thermal alert can be spoken into the team's voice channel — useful in a lab or shop floor where nobody is staring at a screen, and valuable for accessibility.
7. Inter-Agent — the team coordinates itself
These tools let Bob and Bill message each other without a human in the loop (see AI Agents for the full collaboration model).
| Tool | What it does |
|---|---|
notify_bob |
Send Bob a message with a priority (info / warning / critical) |
notify_bill |
Send Bill a message with a priority |
check_inbox |
Read unread inter-agent notifications |
Example. Bill detects an anomaly and immediately notify_bobs with priority critical; Bob, before approving an action, notify_bills for the supporting research. Each checks its inbox at the start of a conversation, so nothing falls through the cracks.
Why this matters for you
A chatbot can describe your system. SETI AI's agents can operate it — safely, on your behalf, scoped to your account:
- Do it by asking. Run a workflow, build a monitoring pipeline, set a charge schedule, pull a cost report — in plain language.
- One team, many systems. The same agents reach across your energy hardware, your documents, your battery graph, and your notification channels.
- Safe by construction. Every action is bound to you, checked against hard safety limits, and the riskiest ones are gated by approval.
- Honest when they can't. If a backend isn't connected, a tool reports it instead of guessing — essential for an industrial power platform.