LLM Agents
Tetrapus integrates Claude and other LLMs as first-class operators via the tool-calling framework. Agents receive the same permission model as human operators, with every tool call captured by the TAI engine for pattern mining.
Claude Integration
- Model: Claude via Anthropic API with tool-use mode
- Context: Live telemetry summaries injected as system context
- Streaming: Responses streamed to the operator console in real time
Tool Framework
Rust
pub trait AgentTool: Send + Sync {
fn name(&self) -> &str;
fn description(&self) -> &str;
fn schema(&self) -> serde_json::Value;
async fn execute(
&self,
params: serde_json::Value,
ctx: &AgentContext,
) -> Result<serde_json::Value>;
} Built-in Tools
pane_api_introspect— List visible panes, query pane statecontrol_bus_send— Issue commands through the control busquery_telemetry— Run ClickHouse queries with scope enforcementtai_list_patterns— Browse TAI-mined patternstai_approve_pattern— Approve a suggested automation
Permission Scoping
- Principal: Each agent runs as
Principal::LLMAgent - Role assignment: Configured per agent in YAML (typically Operator or Viewer)
- Entity scope: Agents can be restricted to specific regions or groups
- Policy engine: Same veto/allow rules apply as for human operators
TAI Capture
Every agent tool call is emitted as an ActionEvent with
ActionType::Command. The TAI engine mines agent behavior
alongside human actions, enabling cross-principal pattern discovery.
Example Autonomous Agents
- HVAC Agent: Monitors zone temps, adjusts setpoints to minimize energy while maintaining comfort bands
- Aviation Agent: Tracks ADS-B feeds, flags altitude deviations, issues advisory alerts to tower operators
Questions?
Reach out for help with integration, deployment, or custom domain codecs.