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 state
  • control_bus_send — Issue commands through the control bus
  • query_telemetry — Run ClickHouse queries with scope enforcement
  • tai_list_patterns — Browse TAI-mined patterns
  • tai_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.