A mobile agent that drains a phone in three hours is not shipping. Battery is the first user complaint and the last metric most teams measure. Here are the eight techniques that take a naive agent down to under 5% per hour.
Where the energy goes
For a typical mobile agent session, energy splits roughly:
| Component | Share |
|---|---|
| Cellular radio (cold) | 30–40% |
| Display | 20–30% |
| On-device inference | 15–25% |
| Wi-Fi | 5–10% |
| Background tasks | 5–10% |
| Sensors (mic, camera) | 5–10% |
Optimisation is mostly about radio and inference. The other layers matter at the edges.
The eight techniques
1. Pick the smallest model that works
A 3B-parameter model uses ~3x less energy than an 8B for the same task. Route by task complexity. See on-device inference.
2. Batch radio activity
Cellular radio is most expensive on cold start. Batching network calls (one wake, multiple requests) saves 30–50% on radio energy.
3. Prefer Wi-Fi when available
Wi-Fi is 3–5x cheaper than cellular for the same throughput. Defer non-urgent agent work until Wi-Fi available.
4. Use OS-aware scheduling
WorkManager (Android), BGProcessingTask (iOS) let the OS pick the best moment. Sometimes 10x cheaper than ad-hoc timers.
5. Gate the sensors
Microphone always-on costs 2–5% per hour even idle. Use OS-provided always-on processors (Android's TensorFlow Lite Micro, iOS's neural engine) for wake detection.
6. Compress prompts and results
Smaller prompts mean smaller responses mean less radio time. See memory compression.
7. Cache aggressively
Every cached response is a network call avoided. See caching strategies.
8. Drop the display when reasonable
Voice-first agents do not need the screen on. Auto-dim or sleep during long generations.
Measuring
Three sources for real numbers:
- iOS Energy Log in Xcode (per-foreground impact).
- Android Battery Historian (system-level breakdown).
- In-app instrumentation — tag each agent operation with its start/end and an energy estimate.
Build your dashboard around per-session energy and per-operation cost. Optimise the highest contributors.
Per-network energy table
Rough ratios for the same payload:
| Network | Energy (relative) |
|---|---|
| Cached on device | 1x |
| Wi-Fi (warm radio) | 3x |
| Wi-Fi (cold radio) | 8x |
| Cellular 5G (warm) | 12x |
| Cellular 5G (cold) | 30x |
| Cellular LTE (cold) | 40x |
Cold radio is the killer. Batching is the lever.
Background-mode discipline
Three rules for background agent work:
- Never run on cellular without an explicit user trigger.
- Defer to OS-provided idle windows — both iOS and Android have these.
- Cap per-day energy budget — pause if exceeded.
Apps that ignore these get throttled by the OS. Throttling is invisible to you and frustrating to users.
On-device inference profiling
The neural engine is dramatically more efficient than CPU inference for the same model. iOS Core ML routing happens automatically; Android NNAPI is opt-in. Verify your model actually lands on the accelerator with a profile.
A poorly-routed model uses 5–10x more energy than a correctly-routed one.
What does not work
- Polling for state — kills batteries silently.
- Wake locks held "just in case" — debug them aggressively.
- Sync-everything-now patterns — schedule, defer, batch.
- Verbose logging in production — disk writes also cost energy.
A working budget
For a chat-style agent in the foreground:
- Active conversation: under 8% per hour.
- Background standby: under 0.5% per hour.
- Voice-active session: under 15% per hour.
These are achievable with the eight techniques above. A naive agent typically lands at 25–40% in the same conditions.
Common mistakes
- No baseline measurement — you cannot improve what you do not measure.
- Optimising in the simulator — real devices behave differently.
- Treating battery as a "later" concern — early architecture decisions are hard to undo.
- Ignoring per-device variance — older devices are 2–3x more affected.
Where this is heading
Three trends by 2027: standardised energy budgets in mobile OS APIs, energy-aware scheduling primitives in agent SDKs, and per-feature energy reporting in app stores (similar to App Privacy reports). Build the discipline now.