Skip to main content

Agent Overview

The Aiden Go Agent is located in src/agent/ and is built on github.com/tmc/langchaingo. It serves as both a long-running daemon and the device-side tool control plane.

Binaries

Entry PointDescription
cmd/daemonLong-running daemon providing the Web UI and optional device voice loop

After cross-compilation, the daemon binary is:

build/bin/agent

In the firmware, it is installed by default to:

/oem/usr/bin/agent

Current Capabilities

  • Registered model providers: openai, anthropic, openrouter, kimi, kimi-cn, volcengine, ollama
  • Built-in tool calling: HID, screenshots, audio volume, shell
  • HTTP Tool API for Web UI, external agents, or manual invocation
  • Auto-discovery and runtime activation of skills from SKILL.md
  • Single-agent execution loop with streamlined tool calling and response handling
  • Conversation memory persistence, session memory compaction; see Session Memory Compaction
  • Device / Task Episode memory design; see Memory Plane Design
  • Web UI: chat history, browser recording, attachments, Tool Lab, Skill Export
  • iOS Live Activity / Dynamic Island task status; see Live Activity / Dynamic Island
  • Device-side voice pipeline: VAD / STT / TTS

Run Modes

The HTTP server and Web UI start in every input mode. input_mode controls whether the daemon also runs the device-side voice loop:

ModeBehavior
textHTTP server and Web UI only
sttHTTP server and Web UI plus device recording → VAD → STT → LLM → TTS loop

In stt mode, Web UI requests and device voice interactions share the same Agent runtime and run in the same daemon process.

Startup

Local development:

cd src/agent
go run ./cmd/daemon -dir ./config -addr :8080

Device service:

/oem/usr/bin/aiden-env-run /oem/usr/bin/agent -dir /userdata/agent -addr :8080

Built-in Tools

The conversational Agent receives every registered, currently available tool needed for memory, device operation, skill management, shell and web research, phone data, and prepared script execution (run_script).

current_time and calculator are not registered built-in tools; the Agent uses shell for controller-local precise time, timezone, and deterministic calculations. The script-file authoring tools (list_scripts, read_script, and write_script) are omitted from the default LLM tools request and can be restored with load_all_tools = true. This switch does not change HTTP exposure: skill_manage and skill_mark_used remain unavailable through the HTTP Tool API.

For tool details and HTTP invocation methods, see Tools HTTP API.