A multi-platform AI agent framework with device-layer tools for Android phones and Rust backend services. Provides accessibility, sensors, vision, clipboard, UI automation, and model management tools.
Lociant provides 26 well-named Android automation tools with consistent verb-noun naming (device_status, clipboard_read, ui_click_node, sensor_read). All tools have descriptions (avg ~100 chars, within baseline 34-392 range). Input schemas are present and typed for most tools. However, output schemas are completely undocumented, no tool specifies what fields it returns, forcing LLMs to guess downstream data structures. Parameter descriptions are present but often terse (e.g., sensor_read's 'samples' lacks min/max bounds). Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Vision tools (vision_start) have incomplete parameter descriptions (modelId, backend lack detail). No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications. Composition is strong, tools chain well (ui_screen_state → ui_click_node) and accept natural identifiers (packageName for app_open). Security: no secrets in params, but no audit trail or permission gates documented.
Open an installed Android app by package name, or open a safe deep link / URL.
Capture the latest camera frame from the Android phone. Use this when the user asks what the phone sees or needs a current photo from the device.
Read current Android clipboard text when Android allows clipboard access.
Write plain text into the Android clipboard.
Return Android device state, battery, network, screen, and permission readiness.
List installed and built-in models visible to Lociant.
Return Lociant API runtime status.
No output schemas documented for any tool. LLMs cannot infer what fields are returned, forcing guesswork on downstream data extraction and chaining.
No error handling guidance. Tools lack recovery hints, error categorization (retryable vs fatal), or actionable error messages. Agents cannot self-correct on failure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications (READ_ONLY vs WRITE). Agents cannot reason about side effects.
vision_start parameters (modelId, backend, inferenceIntervalMs, confidenceThreshold) lack descriptions. LLMs cannot determine valid values or constraints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Sample a phone sensor once and return an aggregated summary (mean, variance, min, max per axis). Types: accelerometer, gyroscope, magnetic, gravity, linear_acceleration, rotation, light, proximity, pressure, temperature, humidity, step_counter, and more.
Start continuous monitoring of one or more phone sensors. Read the latest summaries with sensor_status and stop with sensor_stop.
List the Android phone's available sensors and return latest aggregated summaries for any active continuous monitoring.
Stop continuous sensor monitoring.
Press the Android Back button.
Click a nodeId returned by ui_screen_state. Uses Accessibility click first, then falls back to a tap at the node center.
Press the Android Home button.
Open the Android notification shade.
Paste the current Android clipboard into the focused input field. First write the text with clipboard_write, then focus the target input, then call this tool.
Open Android quick settings.
Open the Android recent apps overview.
Read the current Android UI as a compact actionable state. Prefer this before UI actions; it returns stable nodeId values for ui_click_node and can include a screenshot fallback.
Replace the text of an editable nodeId returned by ui_screen_state, bypassing the clipboard.
Swipe or drag from one screen coordinate to another.
Tap or long press the current Android screen at coordinates. Use only when ui_click_node is not possible.
Wait until Android UI becomes idle or until visible text appears. Use after actions before reading the next screen state.
Start continuous camera analysis and YOLO object detection.
Return camera and object detection runtime status.
Stop continuous camera analysis.
Numeric parameters lack bounds. sensor_read 'samples' and 'intervalMs', ui_tap coordinates, ui_swipe durationMs have no min/max constraints, inviting invalid values.