<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mininglamp</title>
    <description>The latest articles on Forem by Mininglamp (@mininglamp).</description>
    <link>https://forem.com/mininglamp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3846168%2F6a138840-d665-4ba6-aedf-1b5c492035c4.png</url>
      <title>Forem: Mininglamp</title>
      <link>https://forem.com/mininglamp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mininglamp"/>
    <language>en</language>
    <item>
      <title>Apple Silicon's AI Ceiling Is Higher Than You Think</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Tue, 26 May 2026 10:33:58 +0000</pubDate>
      <link>https://forem.com/mininglamp/apple-silicons-ai-ceiling-is-higher-than-you-think-1edi</link>
      <guid>https://forem.com/mininglamp/apple-silicons-ai-ceiling-is-higher-than-you-think-1edi</guid>
      <description>&lt;p&gt;The consensus narrative around Apple Silicon and local AI inference goes something like this: impressive hardware, hobbyist-grade software, fundamentally memory-bandwidth-bound, ceiling already visible. This narrative is wrong—or at minimum, premature. The architectural headroom in Apple's Unified Memory Architecture (UMA) remains substantially underexploited by current inference frameworks, and recent work from Mininglamp Technology's open-source &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;Cider SDK&lt;/a&gt; demonstrates that the compute ceiling sits considerably higher than the community assumes.&lt;/p&gt;

&lt;p&gt;This article dissects &lt;em&gt;why&lt;/em&gt; the ceiling is higher, &lt;em&gt;how&lt;/em&gt; activation quantization unlocks it, and &lt;em&gt;what&lt;/em&gt; the benchmark data actually shows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apple Silicon UMA: Why the Architecture Suits Inference Better Than You Think
&lt;/h2&gt;

&lt;p&gt;Apple Silicon's UMA is not simply "shared RAM." It is a cache-coherent fabric where CPU, GPU, and Neural Engine access an identical physical address space with zero-copy semantics. On an M5 Pro with 64GB unified memory, the system delivers 307 GB/s of memory bandwidth—shared across all compute units without the PCIe bottleneck that plagues discrete GPU setups.&lt;/p&gt;

&lt;p&gt;For LLM inference specifically, this creates three structural advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zero-copy weight access.&lt;/strong&gt; Weights loaded once are visible to GPU compute kernels without DMA transfers. No host-to-device copies, no pinned memory gymnastics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bandwidth amortization across compute units.&lt;/strong&gt; The Neural Engine, GPU, and CPU can pipeline different phases of inference (embedding lookup → attention → FFN) without serializing on memory bus contention in the way multi-device setups must.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Large context without OOM cliffs.&lt;/strong&gt; 64-128GB unified pools mean 70B-class models fit entirely in memory with room for KV-cache growth—something that requires multi-GPU on NVIDIA platforms.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The bottleneck, then, is not the hardware. It is how efficiently software &lt;em&gt;uses&lt;/em&gt; the available compute throughput. Current frameworks leave massive headroom on the table by treating Apple Silicon GPUs as bandwidth-limited devices when they are, in fact, compute-capable devices running compute-starved kernels.&lt;/p&gt;

&lt;h2&gt;
  
  
  MLX's Current State: Weight Quantization and the Prefill Bottleneck
&lt;/h2&gt;

&lt;p&gt;Apple's &lt;a href="https://github.com/ml-explore/mlx" rel="noopener noreferrer"&gt;MLX&lt;/a&gt; framework has become the de facto inference engine for Apple Silicon. It handles weight-only quantization elegantly: W4A16 (4-bit weights, 16-bit activations) and W8A16 (8-bit weights, 16-bit activations) are first-class citizens with optimized Metal kernels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How weight-only quantization works in MLX:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In W4A16, each weight tensor is quantized offline to 4-bit integers with per-group scale and zero-point parameters (typically group size 32 or 128). At inference time, the kernel dequantizes weights on-the-fly back to FP16 before computing the matrix multiplication against FP16 activations. This halves (W8) or quarters (W4) the memory footprint of weights, directly reducing memory bandwidth pressure during the decode phase where each token generation requires a full model pass.&lt;/p&gt;

&lt;p&gt;The decode phase—generating one token at a time—is purely memory-bandwidth-bound (small batch, large weight reads). Weight quantization addresses this perfectly. MLX's W4A16 decode speeds are genuinely impressive on Apple Silicon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But prefill is a different beast entirely.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During prefill (processing the entire input prompt), the computation profile shifts dramatically. With thousands of input tokens processed simultaneously, the matrix multiplications become large GEMMs (General Matrix-Matrix Multiplications) where compute throughput—not just bandwidth—becomes the limiting factor. The activation matrices are wide (sequence_length × hidden_dim), and multiplying FP16 activations against dequantized-to-FP16 weights means every GEMM operates at FP16 arithmetic intensity.&lt;/p&gt;

&lt;p&gt;This is where MLX hits its ceiling. On an M5 Pro processing 4516 tokens of context, MLX W8A16 takes &lt;strong&gt;2.839 seconds&lt;/strong&gt; for prefill. The GPU's INT8 tensor operation units sit completely idle during this phase—unused compute capacity that exists in hardware but is unreachable by the current software stack.&lt;/p&gt;

&lt;p&gt;The prefill bottleneck matters because it directly impacts time-to-first-token (TTFT), which dominates perceived latency in agentic workflows, RAG pipelines, and any application that processes substantial context before generating output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Activation Quantization: The Hard Problem MLX Doesn't Solve
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Weight Quantization vs. Activation Quantization: The Fundamental Difference
&lt;/h3&gt;

&lt;p&gt;Weight quantization is an offline problem. Model weights are static tensors—their distribution is known at calibration time, fixed forever after. You can spend hours finding optimal scale factors, per-channel ranges, and outlier handling strategies. The quantized representation is computed once, stored, and deployed.&lt;/p&gt;

&lt;p&gt;Activation quantization is an online problem. Activations are computed dynamically at every layer, for every input, at every inference step. Their distributions shift based on input content, sequence position, attention patterns, and layer depth. You cannot pre-compute optimal quantization parameters because you don't know what the activations will look like until they arrive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Activation Quantization Is Harder
&lt;/h3&gt;

&lt;p&gt;Three properties make activations notoriously difficult to quantize:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic range instability.&lt;/strong&gt; Unlike weights, which occupy a stable distribution learned during training, activation tensors exhibit input-dependent magnitude shifts. A token attending to a rare pattern might produce activation values 10-100x larger than typical tokens in the same sequence. These outliers, if clipped, destroy model accuracy; if accommodated in the quantization range, they waste precision for the majority of values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Channel-wise heterogeneity.&lt;/strong&gt; Different channels (feature dimensions) in activation tensors often have dramatically different ranges. Channel 42 might span [-0.1, 0.1] while channel 1337 spans [-50, 50]. A single per-tensor scale factor cannot serve both without catastrophic precision loss in the narrow-range channels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accumulation sensitivity.&lt;/strong&gt; In matrix multiplications, quantization errors accumulate across the reduction dimension. For a GEMM with reduction dimension K=4096, each output element sums 4096 products. Even small per-element quantization noise (each ±0.01) can accumulate into significant output error, especially when the products are correlated rather than random.&lt;/p&gt;

&lt;h3&gt;
  
  
  Static vs. Dynamic Quantization Approaches
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Static quantization&lt;/strong&gt; pre-calibrates activation ranges using representative data. Scale factors are fixed at deployment. Advantage: zero runtime overhead for range computation. Disadvantage: any input that deviates from calibration distribution gets clipped or underutilized precision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic quantization&lt;/strong&gt; computes activation statistics (min/max or percentile) at runtime for each tensor. Advantage: adapts perfectly to every input. Disadvantage: the statistics computation itself adds latency—for large activation tensors, computing min/max across millions of elements is non-trivial.&lt;/p&gt;

&lt;p&gt;The practical engineering challenge is finding the sweet spot: enough dynamic adaptation to preserve accuracy, with low enough overhead to actually deliver speedups.&lt;/p&gt;

&lt;h3&gt;
  
  
  Granularity: Per-Tensor vs. Per-Channel vs. Per-Group
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Per-tensor quantization&lt;/strong&gt; uses a single scale/zero-point for the entire activation tensor. Simplest to implement, cheapest computationally, worst for accuracy when channels have heterogeneous ranges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per-channel quantization&lt;/strong&gt; assigns independent scale factors to each channel (feature dimension). Handles heterogeneous ranges well, but requires the GEMM kernel to support mixed scaling—the accumulation must account for different scales per output channel. This is where hardware-specific kernel design becomes critical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per-group quantization&lt;/strong&gt; (e.g., group size 64 or 128) subdivides channels into groups, each with independent scale factors. It sits between per-tensor and per-channel: better accuracy than per-tensor, more flexibility than strict per-channel, but requires kernel support for grouped dequantization during accumulation.&lt;/p&gt;

&lt;p&gt;The choice between these granularities is not purely about accuracy—it's a hardware co-design question. Which granularity can the target hardware's GEMM units exploit without introducing pipeline stalls or register pressure?&lt;/p&gt;

&lt;h2&gt;
  
  
  Cider SDK: INT8 Activation Quantization for Apple Silicon
&lt;/h2&gt;

&lt;p&gt;Mininglamp Technology's &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;Cider&lt;/a&gt; SDK answers this hardware co-design question specifically for Apple Silicon's M5+ GPU architecture. Rather than treating activation quantization as a framework-agnostic algorithm, Cider is engineered as an &lt;strong&gt;MLX enhancement layer&lt;/strong&gt; that exploits hardware capabilities MLX currently leaves untouched.&lt;/p&gt;

&lt;h3&gt;
  
  
  INT8 TensorOps Kernel Design
&lt;/h3&gt;

&lt;p&gt;The core contribution is a set of Metal compute kernels that perform INT8×INT8 matrix multiplications using Apple Silicon's dedicated integer tensor operation units. These units, available on M5-generation chips and newer, can execute 8-bit integer multiply-accumulate operations at significantly higher throughput than the FP16 ALUs used by standard MLX kernels.&lt;/p&gt;

&lt;p&gt;Cider's kernel pipeline works as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic quantization pass.&lt;/strong&gt; For each activation tensor entering a linear layer, compute per-channel (or per-group) scale factors using a fast min/max reduction kernel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Activation quantization.&lt;/strong&gt; Map FP16 activations to INT8 using the computed scale factors. This is a memory-bandwidth-light operation (one pass, streaming).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;INT8 GEMM execution.&lt;/strong&gt; The quantized activation tensor is multiplied against pre-quantized INT8 weights using Metal's integer tensor operations. The accumulation happens in INT32 to prevent overflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dequantization and rescaling.&lt;/strong&gt; The INT32 accumulator output is rescaled using the product of activation and weight scale factors, producing FP16 output for the next layer.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key engineering insight is that steps 1-2 (quantization overhead) are bandwidth-bound micro-operations, while step 3 (the actual GEMM) runs at nearly 2x the arithmetic throughput of FP16. The net effect is a substantial prefill speedup where GEMMs dominate total compute time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditional Compilation for M5+ Hardware
&lt;/h3&gt;

&lt;p&gt;Cider uses conditional compilation to detect Apple Silicon generation at build time. On M5+ hardware where INT8 TensorOps are available, the optimized kernel path activates. On older hardware (M1-M4), Cider falls back gracefully to standard MLX execution—no crashes, no silent accuracy loss, just baseline MLX performance.&lt;/p&gt;

&lt;p&gt;This design decision reflects engineering pragmatism: INT8 tensor operations are a hardware feature, not a software emulation target. Attempting to simulate them on older generations would produce slowdowns, not speedups.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three Granularity Options: Performance vs. Accuracy Tradeoffs
&lt;/h3&gt;

&lt;p&gt;Cider exposes three activation quantization granularities, each with distinct performance characteristics measured against MLX W4A16 baseline on prefill:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Granularity&lt;/th&gt;
&lt;th&gt;Prefill Speedup vs. MLX W4A16&lt;/th&gt;
&lt;th&gt;Accuracy Impact&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Per-channel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.8x&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lowest degradation&lt;/td&gt;
&lt;td&gt;Production deployment, accuracy-critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Per-group gs=128&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.5x&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;td&gt;Balanced default for most workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Per-group gs=64&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.3x&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Maximum accuracy preservation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The inverse relationship between granularity fineness and speedup is instructive. Per-channel quantization uses fewer scale factors and allows the INT8 GEMM to operate on larger contiguous blocks without rescaling interrupts. Per-group gs=64 requires more frequent scale factor lookups and partial accumulations, introducing pipeline bubbles.&lt;/p&gt;

&lt;p&gt;Developers choose the granularity based on their accuracy/latency tradeoff requirements. For agentic applications where TTFT dominates UX, per-channel's 1.8x is transformative. For tasks where output quality cannot degrade (medical, legal), gs=64 still delivers meaningful improvement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integration with MLX Execution Graph
&lt;/h3&gt;

&lt;p&gt;Critically, Cider is not a fork of MLX—it is a &lt;strong&gt;plugin layer&lt;/strong&gt;. It works with all existing MLX models without requiring model re-export or custom weight formats. The integration point is at the linear layer level: Cider intercepts MLX's GEMM dispatch during prefill, routes eligible operations through the INT8 kernel path, and returns results to the standard MLX execution graph.&lt;/p&gt;

&lt;p&gt;This means any model available in MLX format—Llama, Qwen, Mistral, Phi, Gemma—gets Cider acceleration without modification. No special quantization recipes, no model-specific tuning, no breaking changes to existing MLX workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmarks: What the Numbers Actually Show
&lt;/h2&gt;

&lt;p&gt;Full benchmark on Apple M5 Pro, 64GB RAM, 307 GB/s bandwidth. Context length: 4516 tokens.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Configuration&lt;/th&gt;
&lt;th&gt;Prefill Time&lt;/th&gt;
&lt;th&gt;Decode Speed&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MLX W8A16&lt;/td&gt;
&lt;td&gt;2.839s&lt;/td&gt;
&lt;td&gt;80.1 tok/s&lt;/td&gt;
&lt;td&gt;Baseline—FP16 activations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cider W8A8&lt;/td&gt;
&lt;td&gt;2.519s&lt;/td&gt;
&lt;td&gt;79.5 tok/s&lt;/td&gt;
&lt;td&gt;INT8 activations enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Delta&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-12.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-0.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prefill gains, decode neutral&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Interpreting the Results
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why prefill improves:&lt;/strong&gt; The 4516-token prefill involves large GEMMs where compute throughput matters. INT8 TensorOps deliver higher effective TFLOPS for these operations. The 12.7% improvement represents the net gain after subtracting quantization overhead (dynamic scale computation + INT8 conversion).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why decode barely changes:&lt;/strong&gt; Single-token decode is a batch-1 operation. The GEMM degenerates into a matrix-vector multiply that is purely memory-bandwidth-bound regardless of numeric precision. INT8 activations don't help because the bottleneck is weight loading, not arithmetic. The -0.7% difference is within measurement noise—Cider introduces no decode regression.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 1.4-2.2x prefill speedup range&lt;/strong&gt; (cited from Cider's README, measured across different models and configurations against MLX W4A16) reflects the broader performance envelope. The W8A8 vs. W8A16 comparison above is the most conservative case—same weight precision, isolating pure activation quantization benefit. Against W4A16 baselines (where weight dequantization adds further overhead), Cider's advantage widens substantially.&lt;/p&gt;

&lt;h3&gt;
  
  
  What This Implies for Real Applications
&lt;/h3&gt;

&lt;p&gt;A 12.7% prefill reduction on 4516 tokens translates to ~320ms saved per inference call. In an agentic loop that processes context 10-20 times per task (tool calls, reflection steps, context window re-reads), that compounds to 3-6 seconds of wall-clock improvement per agent task. For RAG applications processing retrieved documents, the speedup applies to every retrieval-augmented generation call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-P: Where Cider Meets a Full On-Device AI Stack
&lt;/h2&gt;

&lt;p&gt;Cider does not exist in isolation. It is a component of &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt;, Mininglamp Technology's open-source on-device AI agent framework designed specifically for Apple Silicon Macs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd481nc7b2pdw0qbd4udl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd481nc7b2pdw0qbd4udl.png" alt="Mano-P Architecture" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mano-P's architecture treats the Mac as a complete AI workstation: model inference (via MLX + Cider), tool orchestration, memory management, and multi-agent coordination—all running locally. No API calls to external services, no data leaving the device, no per-token billing.&lt;/p&gt;

&lt;p&gt;The Cider integration within Mano-P means that agentic workflows—where the model processes large contexts repeatedly (screen captures, document analysis, multi-step reasoning)—benefit from activation quantization at every inference call. The 1.4-2.2x prefill improvement compounds across agent loops, materially reducing end-to-end task completion time.&lt;/p&gt;

&lt;p&gt;This is the broader thesis Mininglamp Technology is demonstrating: Apple Silicon is not a hobbyist platform with a visible ceiling. It is a production-grade AI inference substrate whose compute capabilities are systematically underutilized by current software. Cider proves the ceiling is higher. Mano-P builds the full stack that exploits it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: The Ceiling Is a Software Problem
&lt;/h2&gt;

&lt;p&gt;Apple Silicon's AI inference ceiling is not set by hardware bandwidth or compute capacity. It is set by how intelligently software exploits the available hardware features. INT8 TensorOps on M5+ chips represent concrete, shipping silicon that the dominant inference framework (MLX) does not yet utilize.&lt;/p&gt;

&lt;p&gt;Mininglamp Technology's Cider SDK—Apache 2.0 licensed, compatible with all MLX models, zero-modification deployment—demonstrates that meaningful performance remains extractable through hardware-aware kernel engineering. The 1.4-2.2x prefill improvements are not theoretical projections; they are measured results on production hardware.&lt;/p&gt;

&lt;p&gt;The ceiling is higher than you think. The tools to reach it are &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;open source&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Cider SDK is open-sourced under Apache 2.0 by Mininglamp Technology. It requires Apple Silicon M5 or newer for INT8 TensorOps acceleration.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>apple</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>GUI Agents vs RPA: Different Architectures for Different Problems</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Tue, 26 May 2026 10:28:48 +0000</pubDate>
      <link>https://forem.com/mininglamp/gui-agents-vs-rpa-different-architectures-for-different-problems-3lk</link>
      <guid>https://forem.com/mininglamp/gui-agents-vs-rpa-different-architectures-for-different-problems-3lk</guid>
      <description>&lt;p&gt;Desktop automation has reached an inflection point. For two decades, Robotic Process Automation (RPA) dominated enterprise workflow automation through deterministic scripting. Today, a fundamentally different architecture—vision-language-action (VLA) GUI agents—challenges the assumption that automation requires brittle, hand-coded selectors. These are not competing products on the same spectrum; they represent distinct architectural paradigms optimized for different problem classes.&lt;/p&gt;

&lt;p&gt;This article dissects both architectures at the systems level, examines where each fails, and analyzes how &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt;, an open-source GUI agent project by Mininglamp Technology, implements the VLA paradigm with on-device inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Structural Fragility of RPA
&lt;/h2&gt;

&lt;p&gt;RPA tools—UiPath, Automation Anywhere, Blue Prism—operate on a selector-action model. Each automation step identifies a UI element via DOM path, CSS selector, accessibility attribute, or pixel coordinate, then executes a predefined action. This architecture carries four compounding failure modes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DOM Coupling and Selector Fragility.&lt;/strong&gt; A single UI update—renamed button ID, restructured div hierarchy, relocated modal—breaks the entire downstream chain. Enterprise RPA deployments report 30-40% of maintenance effort goes to selector repair after application updates. This is not a bug; it is the architectural consequence of coupling automation logic to implementation-specific element identifiers rather than semantic intent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintenance Scaling.&lt;/strong&gt; The relationship between automation count and maintenance burden is superlinear. Each new bot adds not just its own maintenance surface but interaction complexity with shared UI elements. Organizations with 200+ bots frequently employ dedicated "bot repair" teams larger than the original development team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Application Boundaries.&lt;/strong&gt; RPA operates within single-application contexts. Workflows spanning multiple applications require explicit handoff logic—clipboard operations, file watchers, inter-process communication hacks. A task trivial for a human ("copy this table from the PDF into the spreadsheet, then email it") becomes a fragile multi-stage pipeline with failure modes at every boundary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic Blindness.&lt;/strong&gt; RPA has no understanding of &lt;em&gt;what&lt;/em&gt; it is doing. It cannot distinguish a "Submit" button from a "Cancel" button except by selector match. When an application presents an unexpected dialog ("Are you sure you want to delete all records?"), a selector-based bot either crashes or, worse, proceeds with the wrong action. There is no reasoning layer to evaluate whether the current screen state matches the expected workflow context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Generations of Desktop Automation Architecture
&lt;/h2&gt;

&lt;p&gt;The evolution from scripted automation to intelligent agents follows a clear architectural progression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│  Generation 1: Selector-Action (RPA)                        │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐              │
│  │ Selector │───▶│  Action  │───▶│ Selector │───▶ ...      │
│  │ (brittle)│    │(hardcoded)│   │ (brittle)│              │
│  └──────────┘    └──────────┘    └──────────┘              │
│  Failure mode: any UI change breaks the chain               │
├─────────────────────────────────────────────────────────────┤
│  Generation 2: Vision + LLM (Set-of-Marks, early agents)   │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐              │
│  │Screenshot│───▶│ LLM Plan │───▶│Click x,y │───▶ ...     │
│  │ + Labels │    │(per-step) │   │(no verify)│              │
│  └──────────┘    └──────────┘    └──────────┘              │
│  Failure mode: no grounding, no error recovery              │
├─────────────────────────────────────────────────────────────┤
│  Generation 3: VLA Unified Model (Mano-P)                   │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐              │
│  │  Visual  │───▶│ Reason + │───▶│  Action  │───▶ Verify  │
│  │ Encoding │    │  Ground  │    │ Predict  │     ──┐     │
│  └──────────┘    └──────────┘    └──────────┘       │     │
│       ▲                                              │     │
│       └──────────────────────────────────────────────┘     │
│  Key: closed-loop perception-reasoning-action-verification  │
└─────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generation 1 treats automation as scripting. Generation 2 adds perception but remains open-loop—screenshot in, coordinate out, no verification that the action succeeded. Generation 3, implemented in Mano-P, closes the loop: the same model that perceives the screen also reasons about intent, predicts actions, and verifies outcomes before proceeding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-P's VLA Architecture: A Deep Dive
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd481nc7b2pdw0qbd4udl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd481nc7b2pdw0qbd4udl.png" alt="Mano-P Architecture" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt;, open-sourced by Mininglamp Technology under Apache 2.0, implements a unified Vision-Language-Action architecture where visual perception, language reasoning, and action prediction occur within a single model forward pass rather than as separate pipeline stages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vision-Language-Action Unified Model
&lt;/h3&gt;

&lt;p&gt;The VLA architecture unifies three traditionally separate capabilities into a single transformer backbone:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visual Encoding.&lt;/strong&gt; Raw screen frames are encoded through a vision transformer that produces spatial feature maps preserving both fine-grained element details (button text, icon shape) and global layout structure (window arrangement, relative positioning). Unlike Set-of-Marks approaches that overlay numbered labels onto screenshots, Mano-P's visual encoder learns to ground elements directly from pixel space—eliminating the information loss and visual clutter of annotation-based methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Language Reasoning.&lt;/strong&gt; The language component serves dual functions: (1) interpreting the user's natural language task description and maintaining multi-turn dialogue context, and (2) generating explicit reasoning traces ("thinking") before committing to actions. This is not prompt engineering on top of a general LLM—the language reasoning is jointly trained with visual grounding and action prediction, creating shared representations where linguistic concepts ("the submit button in the bottom-right corner") directly map to spatial features in the visual encoding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Prediction.&lt;/strong&gt; The action head produces structured outputs—click coordinates, text input, keyboard shortcuts, scroll operations—grounded in the visual scene. Critically, actions are predicted &lt;em&gt;from the model's internal visual representation&lt;/em&gt;, not from external element identifiers. This means the same "click the blue submit button" task executes correctly regardless of whether the button's DOM ID changed, its CSS class was renamed, or it moved 50 pixels to the right in a redesign.&lt;/p&gt;

&lt;p&gt;The unified architecture means these three capabilities share gradient flow during training. Visual features that help action prediction get reinforced; language representations that improve visual grounding get strengthened. This is fundamentally different from pipeline architectures where each component is optimized independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three-Stage Training Pipeline
&lt;/h3&gt;

&lt;p&gt;Mano-P's training follows a carefully designed progression that mirrors how humans learn complex tasks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1: Supervised Fine-Tuning (Behavior Cloning).&lt;/strong&gt; The model learns from expert demonstrations—recorded sequences of (screen state, reasoning, action) tuples collected from human operators completing real tasks. This establishes baseline competency: the model learns what correct action sequences look like for common workflows. However, behavior cloning alone produces a model that imitates the mean of demonstrations without understanding &lt;em&gt;why&lt;/em&gt; certain actions are better than others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2: Offline Reinforcement Learning (Advantage Learning).&lt;/strong&gt; Using pre-collected trajectories (both successful and failed), the model learns to distinguish good actions from bad ones &lt;em&gt;without additional environment interaction&lt;/em&gt;. The advantage function estimates how much better a particular action is compared to the average policy at that state. This stage is critical for sample efficiency—it extracts maximum learning signal from existing data before expensive online exploration. The model learns failure recovery patterns: what to do when a click misses, when a dialog appears unexpectedly, when a page loads slowly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 3: Online Reinforcement Learning (Environment Interaction).&lt;/strong&gt; The model interacts with live environments (real operating systems, real applications) and receives reward signals based on task completion. This stage handles the distribution shift between demonstration data and real-world conditions—applications update, screen resolutions vary, timing differs. Online RL fine-tunes the policy to handle edge cases that never appeared in demonstrations, producing robust behavior under novel conditions.&lt;/p&gt;

&lt;p&gt;This three-stage pipeline—SFT → Offline RL → Online RL—progressively builds from imitation to understanding to adaptation. Each stage addresses a specific limitation of the previous one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Think-Act-Verify Loop
&lt;/h3&gt;

&lt;p&gt;Unlike open-loop systems that predict an action and immediately move to the next step, Mano-P implements a closed-loop mechanism:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────┐     ┌─────────┐     ┌─────────┐     ┌──────────┐
│  THINK  │────▶│   ACT   │────▶│ VERIFY  │────▶│  THINK   │
│         │     │         │     │         │     │  (next)  │
│ Reason  │     │ Execute │     │ Confirm │     │          │
│ about   │     │ grounded│     │ expected│     │ Continue │
│ current │     │ action  │     │ outcome │     │ or retry │
│ state   │     │         │     │ achieved│     │          │
└─────────┘     └─────────┘     └─────────┘     └──────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Think:&lt;/strong&gt; The model generates explicit reasoning about the current screen state, the overall task progress, and what action should come next. This reasoning trace is not just for interpretability—it actively improves action quality by forcing the model to articulate its understanding before committing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act:&lt;/strong&gt; Based on the reasoning, the model predicts and executes a grounded action (click, type, scroll, keyboard shortcut). Actions are specified in the visual coordinate space of the current frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify:&lt;/strong&gt; After action execution, the model captures the resulting screen state and evaluates whether the expected outcome occurred. Did the button click actually navigate to the expected page? Did the text input appear in the correct field? If verification fails, the loop returns to THINK with updated context about the failure mode, enabling error recovery without human intervention.&lt;/p&gt;

&lt;p&gt;This closed-loop architecture is what separates GUI agents from sophisticated screen scrapers. The verification step means Mano-P can handle the non-determinism of real desktop environments—network latency, animation delays, unexpected popups—without pre-programmed exception handlers.&lt;/p&gt;

&lt;h3&gt;
  
  
  GSPruning: Efficient Inference Without Accuracy Loss
&lt;/h3&gt;

&lt;p&gt;Running a VLA model on consumer hardware requires aggressive inference optimization. Mininglamp Technology developed GSPruning (Geometric-Semantic Pruning) specifically for GUI agent workloads, addressing the unique challenge of pruning visual tokens while preserving spatial grounding accuracy.&lt;/p&gt;

&lt;p&gt;Standard token pruning methods (attention-based, random dropping) catastrophically degrade GUI agent performance because they disrupt spatial relationships—the model can no longer accurately predict &lt;em&gt;where&lt;/em&gt; to click if tokens representing spatial structure are removed arbitrarily.&lt;/p&gt;

&lt;p&gt;GSPruning solves this through two complementary mechanisms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anchor-Based Spatial Structure Preservation.&lt;/strong&gt; The algorithm identifies "anchor tokens"—visual tokens that serve as spatial reference points for the broader scene (window corners, toolbar boundaries, prominent UI landmarks). These anchors are never pruned, maintaining the geometric scaffold that enables accurate coordinate prediction. Remaining tokens are pruned based on redundancy with nearby anchors, ensuring spatial density stays uniform rather than creating gaps that distort coordinate mapping.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic Outlier Detection.&lt;/strong&gt; Tokens whose semantic content is highly atypical relative to their spatial neighborhood are preserved regardless of pruning pressure. A notification badge on an otherwise uniform toolbar, a highlighted menu item among gray siblings, an error message in a standard form—these semantically salient tokens carry disproportionate task-relevant information. Standard importance-based pruning often removes them (they have low attention mass because they are atypical), but GSPruning explicitly protects them.&lt;/p&gt;

&lt;p&gt;The combined effect: &lt;strong&gt;2-3x throughput improvement&lt;/strong&gt; with minimal accuracy degradation. On a MacBook Pro M5 Pro, this translates to approximately 80 tokens/second decode speed—fast enough for real-time interactive use without cloud dependency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mano-Action: Bidirectional Self-Reinforcement
&lt;/h3&gt;

&lt;p&gt;Mano-P's architecture includes a bidirectional data flywheel between the agent model and the action prediction component. Successfully completed tasks generate new high-quality training data for the action predictor; improved action prediction enables the agent to complete harder tasks, which generates even richer training data. This self-reinforcement mechanism means the model improves with deployment—each successful real-world task execution contributes to future capability, without requiring manual data collection or annotation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmark Performance
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FMininglamp-AI%2FMano-P%2Fraw%2Fmain%2Fpics%2FBenchmark_Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FMininglamp-AI%2FMano-P%2Fraw%2Fmain%2Fpics%2FBenchmark_Overview.png" alt="Benchmark Overview" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The architectural advantages manifest in benchmark results:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Mano-P (72B)&lt;/th&gt;
&lt;th&gt;Comparison&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OSWorld&lt;/td&gt;
&lt;td&gt;58.2%&lt;/td&gt;
&lt;td&gt;72B internal benchmark model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebRetriever NavEval (Protocol I)&lt;/td&gt;
&lt;td&gt;41.7&lt;/td&gt;
&lt;td&gt;vs Gemini 2.5 Pro: 40.9, Claude 4.5 Sonnet: 31.3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The open-source release is a 4B parameter model—deliberately sized for on-device deployment rather than maximum benchmark scores. The WebRetriever Protocol I result of 41.7 on NavEval demonstrates that Mano-P outperforms Gemini 2.5 Pro (40.9) and significantly exceeds Claude 4.5 Sonnet (31.3) on real-world web navigation tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cider SDK: On-Device Quantization Engine
&lt;/h2&gt;

&lt;p&gt;Running a VLA model locally requires more than model architecture innovation—it demands inference engine optimization at the hardware level. Mininglamp Technology's open-source &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;Cider SDK&lt;/a&gt; provides production-grade quantization specifically tuned for Apple Silicon's Unified Memory Architecture (UMA).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;W8A8 and W4A8 Activation Quantization.&lt;/strong&gt; Cider implements weight-and-activation quantization (not weight-only) that exploits Apple Silicon's hardware integer units. W8A8 (8-bit weights, 8-bit activations) achieves approximately 12.7% prefill speedup with negligible accuracy loss. W4A8 (4-bit weights, 8-bit activations) pushes further for memory-constrained deployments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.4-2.2x End-to-End Speedup.&lt;/strong&gt; Across different model configurations and hardware targets, Cider delivers 1.4-2.2x throughput improvement over naive FP16 inference. Combined with GSPruning's 2-3x token throughput gain, the full stack achieves real-time GUI agent performance on consumer laptops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UMA-Aware Memory Management.&lt;/strong&gt; Unlike discrete GPU systems where data must cross PCIe boundaries, Apple Silicon's unified memory allows CPU and GPU to share the same physical memory. Cider's memory allocator exploits this—model weights, KV cache, and visual features coexist in a single address space without copy overhead, reducing both latency and peak memory footprint.&lt;/p&gt;

&lt;p&gt;The critical privacy implication: &lt;strong&gt;data never leaves the machine&lt;/strong&gt;. Screen frames, task descriptions, reasoning traces, action sequences—everything stays in local memory. There is no telemetry, no cloud dependency for inference, no API calls that transmit screen content to external servers. For enterprises handling sensitive documents, financial data, or personal information, this is not a feature—it is a requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use Which Architecture
&lt;/h2&gt;

&lt;p&gt;The choice between RPA and GUI agents is not about "old vs new"—it is about matching the automation architecture to the problem characteristics:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;RPA (Selector-Action)&lt;/th&gt;
&lt;th&gt;GUI Agent (VLA)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Stable, high-volume, single-app workflows&lt;/td&gt;
&lt;td&gt;Cross-app, UI-volatile, reasoning-required tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure mode&lt;/td&gt;
&lt;td&gt;Silent breakage on UI change&lt;/td&gt;
&lt;td&gt;Graceful degradation with error recovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;Linear-to-superlinear with bot count&lt;/td&gt;
&lt;td&gt;Model update covers all tasks simultaneously&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-app&lt;/td&gt;
&lt;td&gt;Requires explicit integration&lt;/td&gt;
&lt;td&gt;Native—same model operates any application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;Millisecond actions (no reasoning)&lt;/td&gt;
&lt;td&gt;Seconds per step (perception + reasoning)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Determinism&lt;/td&gt;
&lt;td&gt;100% deterministic (when working)&lt;/td&gt;
&lt;td&gt;Probabilistic (verify loop adds reliability)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup cost&lt;/td&gt;
&lt;td&gt;Per-workflow scripting&lt;/td&gt;
&lt;td&gt;One model deployment, natural language tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;RPA remains optimal for stable, high-volume, latency-sensitive workflows within a single application that rarely updates—payroll processing in legacy systems, mainframe data entry, report generation from stable internal tools. These are problems where the rigidity of selector-based automation is a feature (guaranteed determinism) rather than a bug.&lt;/p&gt;

&lt;p&gt;GUI agents excel where RPA structurally cannot: workflows spanning multiple applications, tasks requiring visual understanding of unstructured content, environments that update frequently, and scenarios where the automation must handle unexpected states gracefully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architectural Convergence
&lt;/h2&gt;

&lt;p&gt;The future likely involves hybrid deployments: RPA handles the stable, high-throughput inner loops while GUI agents manage the cross-application orchestration, exception handling, and dynamic adaptation layers. The architectures are complementary at the systems level, even as they compete at the individual task level.&lt;/p&gt;

&lt;p&gt;Mano-P's open-source availability (Apache 2.0) and on-device architecture lower the barrier to evaluating where VLA-based automation fits within existing enterprise automation stacks. The 4B parameter open-source model runs on a MacBook—evaluation requires no cloud infrastructure, no API keys, no data leaving the organization.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;G:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P on GitHub&lt;/a&gt; — Apache 2.0, on-device GUI agent&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;Cider SDK on GitHub&lt;/a&gt; — Quantization engine for Apple Silicon&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>opensource</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Harness Tells Your Agent What to Do. GUI Agents Let It Actually Do It.</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Mon, 25 May 2026 10:05:58 +0000</pubDate>
      <link>https://forem.com/mininglamp/harness-tells-your-agent-what-to-do-gui-agents-let-it-actually-do-it-1416</link>
      <guid>https://forem.com/mininglamp/harness-tells-your-agent-what-to-do-gui-agents-let-it-actually-do-it-1416</guid>
      <description>&lt;h2&gt;
  
  
  The Rise of Harness Engineering
&lt;/h2&gt;

&lt;p&gt;Harness Engineering has become the defining conversation in AI agent development this quarter. Anthropic published "Effective Harnesses for Long-Running Agents." OpenAI released their own take on constraining agent behavior through software engineering practices. The thesis is straightforward: wrap your AI agent in a structured control layer—task routing, approval gates, verification loops, and retrospectives—so it behaves reliably over extended sessions.&lt;/p&gt;

&lt;p&gt;The pattern makes intuitive sense. An unconstrained agent is a liability. A harnessed agent is a tool. The community has responded: open-source harness frameworks are emerging, giving teams reusable scaffolding for decision-level reliability.&lt;/p&gt;

&lt;p&gt;But here's the question no one is asking loudly enough: &lt;strong&gt;after the harness decides what to do, how does the agent actually do it?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Harness Solves
&lt;/h2&gt;

&lt;p&gt;A harness framework operates at the decision layer. It answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What&lt;/strong&gt; should the agent do next?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In what order&lt;/strong&gt; should tasks execute?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When&lt;/strong&gt; should it pause for human review?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How&lt;/strong&gt; do we verify the outcome before moving on?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as the prefrontal cortex of your agent system—planning, sequencing, gating. Frameworks like cow-harness already provide open-source implementations of these patterns: task decomposition, approval workflows, retry logic, and audit trails.&lt;/p&gt;

&lt;p&gt;This is genuinely valuable. Without a harness, agents hallucinate plans, skip steps, and compound errors. With one, they become predictable and auditable.&lt;/p&gt;

&lt;p&gt;But predictable &lt;em&gt;planning&lt;/em&gt; is not the same as reliable &lt;em&gt;execution&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Execution Gap
&lt;/h2&gt;

&lt;p&gt;Consider a real scenario. Your harnessed agent determines the next action: "Open the CRM, navigate to the customer record for Acme Corp, and update the contract renewal date to June 15."&lt;/p&gt;

&lt;p&gt;The harness has done its job. The decision is correct. The approval gate passed. Now... how does the agent physically perform this action?&lt;/p&gt;

&lt;p&gt;Current execution methods each carry fundamental limitations:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CLI tools&lt;/strong&gt; — Powerful but narrow. Only works for systems that expose command-line interfaces. Most enterprise software does not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API calls&lt;/strong&gt; — The gold standard when available. But many critical business systems—legacy ERPs, proprietary desktop apps, government portals—simply have no API. Or the API covers 20% of what the GUI exposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DOM manipulation&lt;/strong&gt; — Works for web apps, breaks on desktop. Requires knowledge of the target app's internal structure. One frontend update can invalidate your selectors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RPA scripts&lt;/strong&gt; — The enterprise workaround. Record a macro, replay it. Brittle by nature: a single UI change—a moved button, a renamed field, a new modal dialog—breaks the entire flow. Maintenance cost scales linearly with the number of automations.&lt;/p&gt;

&lt;p&gt;The common thread: &lt;strong&gt;all of these methods require a pre-existing technical interface to the target system.&lt;/strong&gt; They assume the system was designed to be automated, or that someone has reverse-engineered a way in.&lt;/p&gt;

&lt;p&gt;In enterprise reality, the most critical systems are often GUI-only black boxes. No API. No CLI. No stable DOM. Just a screen that a human clicks through.&lt;/p&gt;

&lt;p&gt;This is the execution gap. Harness frameworks have nothing to say about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vision-Based GUI Agents as the Execution Layer
&lt;/h2&gt;

&lt;p&gt;What if the agent could interact with software the same way a human does—by looking at the screen and clicking?&lt;/p&gt;

&lt;p&gt;That's exactly what vision-based GUI agents do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input&lt;/strong&gt;: A screenshot of the current screen state&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understanding&lt;/strong&gt;: A vision-language model identifies UI elements—buttons, text fields, menus, labels—and comprehends their spatial relationships and semantic meaning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output&lt;/strong&gt;: Precise mouse coordinates and keyboard actions to accomplish the intended task&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key property: &lt;strong&gt;zero dependency on target system internals.&lt;/strong&gt; The agent doesn't need an API, a DOM tree, or accessibility hooks. It sees pixels and acts on them. This works across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web applications&lt;/li&gt;
&lt;li&gt;Native desktop software&lt;/li&gt;
&lt;li&gt;Remote desktop sessions&lt;/li&gt;
&lt;li&gt;Terminal UIs&lt;/li&gt;
&lt;li&gt;Even systems running in virtual machines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a human can operate it by looking at a monitor, a vision-based GUI agent can too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting It Together: Harness + GUI Agent
&lt;/h2&gt;

&lt;p&gt;This is where the architecture becomes complete. The harness provides the brain—deciding what to do, when to pause, how to verify. The GUI agent provides the hands—executing actions on any visual interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mano-P&lt;/strong&gt; is an open-source GUI agent built for exactly this role. Developed by Mininglamp Technology under the Apache 2.0 license, Mano-P implements a Vision-Language-Action (VLA) architecture designed to serve as the execution layer in agentic systems.&lt;/p&gt;

&lt;p&gt;The name encodes the philosophy: "Mano" is Spanish for "hand"—the part that acts. "P" stands for Private—your data never leaves the device.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture: Think-Act-Verify
&lt;/h3&gt;

&lt;p&gt;Mano-P operates through an inference loop that mirrors how a careful human operator works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt; — Observe the current screen state, reason about what UI elements are present, and determine the next action&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act&lt;/strong&gt; — Execute the precise mouse/keyboard operation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify&lt;/strong&gt; — Capture the resulting screen state and confirm the action had the intended effect&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This loop provides built-in error detection. If a click lands on the wrong element or a form doesn't submit, the verify step catches it immediately—enabling retry or escalation back to the harness layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  On-Device Performance
&lt;/h3&gt;

&lt;p&gt;Mano-P is designed for local execution. The quantized 4B model runs on consumer hardware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimum&lt;/strong&gt;: Apple M4 chip + 32GB RAM (Mac mini or MacBook)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance on M5 Pro&lt;/strong&gt;: ~80 tokens/s decode speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Cider SDK&lt;/strong&gt; provides W8A8 activation quantization, delivering approximately 12.7% prefill acceleration compared to the W8A16 baseline, and 1.4x–2.2x prefill speedup versus MLX native W4A16. This means real-time interaction with GUIs—no cloud round-trip, no latency spikes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benchmark Results
&lt;/h3&gt;

&lt;p&gt;On the OSWorld benchmark—the standard evaluation for GUI agent capabilities across real operating system tasks—Mano-P 1.0-72B achieved a &lt;strong&gt;58.2% success rate&lt;/strong&gt;, ranking #1 among specialized GUI agent models.&lt;/p&gt;

&lt;p&gt;For web navigation specifically, the WebRetriever Protocol I achieved a &lt;strong&gt;41.7 NavEval score&lt;/strong&gt;, demonstrating reliable multi-step web interaction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mano-AFK: The Full Automation Loop
&lt;/h3&gt;

&lt;p&gt;To demonstrate how harness-level planning connects to GUI-level execution, Mininglamp Technology built &lt;strong&gt;Mano-AFK&lt;/strong&gt;—an end-to-end autonomous development pipeline:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natural language requirement&lt;/strong&gt; → &lt;strong&gt;PRD generation&lt;/strong&gt; → &lt;strong&gt;Architecture design&lt;/strong&gt; → &lt;strong&gt;Code generation&lt;/strong&gt; → &lt;strong&gt;Deployment&lt;/strong&gt; → &lt;strong&gt;E2E testing&lt;/strong&gt; (Mano-P's visual model drives the browser to test the deployed app) → &lt;strong&gt;Bug detection&lt;/strong&gt; → &lt;strong&gt;Fix&lt;/strong&gt; → &lt;strong&gt;Retest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the harness + GUI agent pattern in its most complete form. The planning layer decomposes a vague requirement into structured development phases. The GUI agent handles the parts that require visual interaction—browser testing, UI verification, visual bug detection—without any test framework dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy by Design
&lt;/h3&gt;

&lt;p&gt;In local execution mode, all processing happens on-device. Screenshots are captured and analyzed locally. Model inference runs locally. No data transits to external servers. For organizations handling sensitive information—financial records, medical data, classified documents—this is not a feature. It's a requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest Limitations
&lt;/h2&gt;

&lt;p&gt;No technology is universally optimal. Vision-based GUI agents have real tradeoffs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overhead on simple web tasks&lt;/strong&gt; — For well-structured web applications with clean APIs or stable DOM trees, direct API calls or DOM manipulation will always be faster than screenshot-based interaction. If you have a good API, use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accuracy ceiling on complex UIs&lt;/strong&gt; — The 4B on-device model handles standard interfaces well but can struggle with extremely dense or unconventional UI layouts. The 72B model pushes accuracy significantly higher but requires more compute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best suited for specific scenarios:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Legacy enterprise systems with no API&lt;/li&gt;
&lt;li&gt;Cross-platform automation spanning web and desktop&lt;/li&gt;
&lt;li&gt;Data-sensitive workflows requiring strictly local execution&lt;/li&gt;
&lt;li&gt;Systems where UI changes frequently (vision adapts; scripts break)&lt;/li&gt;
&lt;li&gt;Remote desktop environments where DOM access is impossible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The right architecture uses the right tool for each target. API calls where APIs exist. DOM methods for stable web apps. And vision-based GUI agents for everything else—which, in most enterprises, is a surprisingly large surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The AI agent stack is crystallizing into two distinct layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Brain&lt;/strong&gt; — Harness frameworks that constrain, route, verify, and audit agent decisions. This is a solved problem with active open-source development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Hands&lt;/strong&gt; — Execution layers that translate decisions into physical actions on real systems. For GUI-bound systems, vision-based agents are the only approach that scales without per-system integration work.&lt;/p&gt;

&lt;p&gt;Harness tells the agent what to do. GUI agents let it actually do it. Together, they close the automation loop.&lt;/p&gt;

&lt;p&gt;Mano-P is Apache 2.0 licensed and available on GitHub: &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;https://github.com/Mininglamp-AI/Mano-P&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Feedback and contributions welcome.⭐&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Agent Execution Environments: Cloud Sandbox vs Local GUI vs Hybrid</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Fri, 22 May 2026 10:18:34 +0000</pubDate>
      <link>https://forem.com/mininglamp/agent-execution-environments-cloud-sandbox-vs-local-gui-vs-hybrid-3b60</link>
      <guid>https://forem.com/mininglamp/agent-execution-environments-cloud-sandbox-vs-local-gui-vs-hybrid-3b60</guid>
      <description>&lt;p&gt;When teams start building AI agents, most of the early energy goes into prompts, models, and tool definitions. Which model should we use? How do we structure the tool-calling loop? What's the right retry strategy?&lt;/p&gt;

&lt;p&gt;These are all reasonable questions. But there's another question that usually shows up late — often too late — and shapes everything else:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where should your AI agent actually run?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The execution environment isn't just an infrastructure detail. It determines what your agent can and can't access, how sensitive data moves (or doesn't), what hardware costs look like at scale, and how much your users are willing to trust the system. Get this decision right early, and a lot of other choices fall into place naturally. Get it wrong, and you're refactoring core architecture six months in.&lt;/p&gt;

&lt;p&gt;Let's walk through the three main approaches.&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment 1: Cloud Sandbox
&lt;/h2&gt;

&lt;p&gt;The most common starting point for agent deployment today is the cloud sandbox model. You spin up an isolated virtual machine or container in the cloud — services like E2B, Modal, or Manus handle the orchestration — and your agent operates entirely within that environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;When a task arrives, the platform provisions a clean runtime (often in seconds). The agent gets a shell, a browser, maybe a filesystem and some pre-installed tools. It executes its plan, produces output, and the environment is torn down. From the agent's perspective, it has a full operating system to work with. From the infrastructure perspective, nothing persists between runs unless you explicitly pass state.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it's good at
&lt;/h3&gt;

&lt;p&gt;Cloud sandboxes shine when the work is web-native. Scraping, form submission, browser automation, API interactions — anything that lives on the public internet is fair game. The isolation model is also excellent for security: if an agent misbehaves or encounters a malicious input, the blast radius is contained to a throwaway VM.&lt;/p&gt;

&lt;p&gt;Scalability is another genuine strength. You can run dozens or hundreds of concurrent agent sessions without worrying about resource contention on a shared machine. For demos, CI pipelines, and batch processing workflows, this is hard to beat.&lt;/p&gt;

&lt;h3&gt;
  
  
  The real constraints
&lt;/h3&gt;

&lt;p&gt;The limitations become visible when your actual work isn't web-native.&lt;/p&gt;

&lt;p&gt;Cloud agents can't open your Excel spreadsheet, interact with your internal ERP, or paste results into the desktop app your ops team uses every day. They operate on a synthetic environment — not your environment. Any data that needs to flow into the agent (files, credentials, internal documents) has to leave your machine first.&lt;/p&gt;

&lt;p&gt;For many enterprise workflows, that data boundary is the dealbreaker. Sending sensitive customer data or internal business records to a third-party cloud runtime creates compliance exposure that legal teams won't sign off on. And even when data sensitivity isn't the concern, there's a latency and cost dimension: every session spins up a billable runtime, and for long-running tasks the economics can get uncomfortable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best fit
&lt;/h3&gt;

&lt;p&gt;Cloud sandboxes are the right choice for: web-only automation, exploratory prototyping, public-data tasks, and workloads where horizontal scale matters more than local access.&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment 2: Local GUI Agent
&lt;/h2&gt;

&lt;p&gt;Local GUI agents work on a different model entirely. Instead of operating inside a synthetic cloud environment, the agent runs directly on a real desktop — your Mac, your Windows workstation, your on-premises server. It sees the actual screen. It interacts with actual apps. It operates in the environment where your work already lives.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;The agent captures the screen (via screenshots, accessibility APIs, or both), reasons about what it sees, and produces actions — mouse clicks, keyboard input, application-specific commands. The entire loop happens locally: perception, reasoning, action, and observation.&lt;/p&gt;

&lt;p&gt;This architecture requires more from the hardware, but it also removes entire categories of constraint. If you can do it by hand on your computer, a local GUI agent can learn to do it too.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it's good at
&lt;/h3&gt;

&lt;p&gt;The primary advantage is full environment access. Cross-application workflows — copy from a PDF, paste into a spreadsheet, trigger a report in your accounting software, email the result — are natural fits. These tasks are awkward or impossible in cloud sandboxes but routine for local agents.&lt;/p&gt;

&lt;p&gt;Data locality is the other major win. When the model and the agent runtime both live on-device, sensitive information never leaves the machine. There's no outbound API call carrying your customer records. Compliance teams have a much easier conversation. For industries with strict data residency requirements — healthcare, finance, defense — local execution isn't just convenient, it's sometimes the only path forward.&lt;/p&gt;

&lt;p&gt;There's also an economics angle worth noting. Local models, once running on capable hardware, cost nothing per inference. A cloud-based agent making hundreds of tool calls per session has per-token costs that add up. A local agent on good hardware has roughly fixed compute costs regardless of session count.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqp7qjsx7ax67qnagr0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqp7qjsx7ax67qnagr0g.png" alt="Mano-P Open Source Architecture" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mano-P's architecture: local model inference, screen perception, and action execution all happen on-device.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The real constraints
&lt;/h3&gt;

&lt;p&gt;Local GUI execution has real requirements. You need hardware capable of running capable models — ideally something with a good GPU or a high-bandwidth unified memory architecture (modern Apple Silicon machines, for instance, are well-suited for this). During agent execution, the screen is occupied. If your workflow involves a human using the same machine simultaneously, you'll need to think about scheduling.&lt;/p&gt;

&lt;p&gt;And there's a tooling maturity gap. Cloud sandbox providers have years of polished developer experience. Local GUI agent frameworks are newer, and the rough edges show. Documentation is spottier, error handling is less standardized, and debugging a "the agent clicked the wrong button" failure requires different muscle memory than debugging a web automation script.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best fit
&lt;/h3&gt;

&lt;p&gt;Local GUI agents belong in: enterprise desktop automation, privacy-sensitive workflows, cross-application tasks, long-running automations where per-inference cost matters, and any environment where data residency is non-negotiable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment 3: Hybrid
&lt;/h2&gt;

&lt;p&gt;The hybrid model tries to get the best of both. The most common configuration is a cloud-hosted reasoning layer (the "brain") combined with local execution capabilities (the "hands"). The model runs remotely; actions execute locally. Alternatively: a local model handles most reasoning, with cloud fallback for tasks requiring more capacity.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;In the cloud-brain/local-hands pattern, tool calls route through a local daemon that has access to the desktop environment. The model sees a clean API; the local runtime translates high-level actions into actual screen interactions. In the local-brain/cloud-fallback pattern, a capable local model handles the majority of reasoning, escalating to a remote model when confidence is low or the task is out-distribution.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it's good at
&lt;/h3&gt;

&lt;p&gt;Flexibility, primarily. Teams that need to handle a wide range of task types — some web-native, some desktop-native — without maintaining two completely separate pipelines. Hybrid architectures also make it easier to right-size compute: fast local models for simple reasoning, large remote models for complex planning.&lt;/p&gt;

&lt;h3&gt;
  
  
  The real constraints
&lt;/h3&gt;

&lt;p&gt;Complexity is the honest cost of hybrid. Two environments mean two failure domains, two latency contributions, two sets of credentials to manage. The seam between cloud reasoning and local action introduces a synchronization challenge — what happens when the cloud model issues an action that the local daemon can't execute because the target application isn't open? These edge cases are manageable, but they require deliberate design.&lt;/p&gt;

&lt;p&gt;For teams just getting started, hybrid is often premature optimization. Pick one environment, get it working well, and evolve toward hybrid when a specific need drives it.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Choose: A Decision Framework
&lt;/h2&gt;

&lt;p&gt;Rather than declaring a universal winner, here's a practical checklist:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;If Yes →&lt;/th&gt;
&lt;th&gt;If No →&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Does the task require local app access?&lt;/td&gt;
&lt;td&gt;Local GUI&lt;/td&gt;
&lt;td&gt;Cloud Sandbox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is data leaving the machine a compliance concern?&lt;/td&gt;
&lt;td&gt;Local GUI&lt;/td&gt;
&lt;td&gt;Either&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do you need to scale to 100+ concurrent sessions?&lt;/td&gt;
&lt;td&gt;Cloud Sandbox&lt;/td&gt;
&lt;td&gt;Either&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is the task entirely web-based?&lt;/td&gt;
&lt;td&gt;Cloud Sandbox&lt;/td&gt;
&lt;td&gt;Local GUI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do you have capable local hardware?&lt;/td&gt;
&lt;td&gt;Local GUI viable&lt;/td&gt;
&lt;td&gt;Cloud Sandbox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are you building a demo or prototype?&lt;/td&gt;
&lt;td&gt;Cloud Sandbox&lt;/td&gt;
&lt;td&gt;Consider Local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-app workflow (multiple desktop apps)?&lt;/td&gt;
&lt;td&gt;Local GUI&lt;/td&gt;
&lt;td&gt;Either&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A simpler heuristic: &lt;strong&gt;if the task touches local files, local apps, or sensitive data, start with local GUI. If it's web-only and needs to scale, start with cloud sandbox.&lt;/strong&gt; Move to hybrid when the seam becomes visible and worth engineering.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Note on Mano-P
&lt;/h2&gt;

&lt;p&gt;We've been building in this space at MiningLamp Technology with &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt;, an open-source local GUI agent (Apache 2.0). A few specifics that might be useful context for the discussion above:&lt;/p&gt;

&lt;p&gt;On the benchmark side, Mano-P's 72B evaluation configuration ranks #1 in the proprietary model category on OSWorld with a 58.2% task completion rate. The open-source release is the &lt;strong&gt;4B quantized version&lt;/strong&gt;, optimized for real-world on-device deployment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" alt="GUI Agent Grounding Benchmark" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OSWorld benchmark results — Mano-P 72B evaluation configuration leads the proprietary category at 58.2%. The open-source 4B version is what developers actually deploy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On the hardware side, Mano-P 1.0-4B running on Apple M5 Pro (64GB, Cider SDK) achieves ~80 tokens/s decode with W8A16 quantization; W8A8 activation quantization speeds up prefill by ~12.7% (source: README Performance Evaluation). The minimum requirement is an M4 chip with 32GB RAM — consumer-grade hardware that makes local agent execution realistic.&lt;/p&gt;

&lt;p&gt;The project is on GitHub if you want to dig into the architecture or try it locally: &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;https://github.com/Mininglamp-AI/Mano-P&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why On-Device AI Is Quietly Winning Over Cloud Inference — Three Reasons You Didn't See Coming</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Fri, 22 May 2026 09:46:11 +0000</pubDate>
      <link>https://forem.com/mininglamp/why-on-device-ai-is-quietly-winning-over-cloud-inference-three-reasons-you-didnt-see-coming-3h07</link>
      <guid>https://forem.com/mininglamp/why-on-device-ai-is-quietly-winning-over-cloud-inference-three-reasons-you-didnt-see-coming-3h07</guid>
      <description>&lt;p&gt;I noticed something odd a few months ago. Several engineers I respect — people building serious AI pipelines, not hobbyists — quietly shifted from API-based inference back toward running models locally. Not because of some principled stance. Not because they read a blog post. Because they &lt;em&gt;hit real problems&lt;/em&gt; and local inference solved them faster than any API change could.&lt;/p&gt;

&lt;p&gt;Nobody announced this. There was no "local AI is back" wave on Twitter. It just... happened.&lt;/p&gt;

&lt;p&gt;That got me thinking: if experienced engineers are making this choice in silence, the reasons probably aren't the ones being loudly debated. It's not "privacy is important" in the abstract. It's specific, concrete pain points that don't make good conference talks but absolutely dictate engineering decisions.&lt;/p&gt;

&lt;p&gt;Here are the three that actually moved the needle.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reason 1: The Regulatory Pressure Nobody Talks About Openly
&lt;/h2&gt;

&lt;p&gt;Everyone vaguely knows that GDPR exists. Fewer people have internalized what it means when your AI system processes user data through a third-party cloud endpoint.&lt;/p&gt;

&lt;p&gt;When you send a user's screen content, text input, or behavioral data to a cloud inference API, you've just created a data transfer to a third-party processor. Under GDPR Article 28, that processor needs a Data Processing Agreement. Under GDPR Chapter V, if that server is outside the EU, you need Standard Contractual Clauses or an adequacy decision. Under China's PIPL, cross-border data transfer requires a government-filed security assessment for anything above certain thresholds.&lt;/p&gt;

&lt;p&gt;This is not hypothetical. GDPR enforcement has been escalating steadily — the Irish DPC alone fined Meta €1.2 billion in May 2023 for EU-US data transfer violations. CCPA enforcement in California continues to expand. China's Personal Information Protection Law (PIPL), in effect since November 2021, is tightening cross-border data transfer requirements with mandatory security assessments.&lt;/p&gt;

&lt;p&gt;Here's the trap developers fall into: &lt;strong&gt;your AI vendor's privacy policy is not your compliance shield.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your application sends data to an inference API and something goes wrong, regulators look at &lt;em&gt;you&lt;/em&gt; — the data controller — not the API provider. The fact that the API provider has good security practices is relevant but not sufficient. You still need to demonstrate lawful basis, purpose limitation, data minimization, and cross-border transfer compliance for every single inference call that processes personal data.&lt;/p&gt;

&lt;p&gt;For applications involving GUI automation, document processing, customer service interactions, or anything that touches user-generated content — that's basically every inference call.&lt;/p&gt;

&lt;p&gt;Running inference on-device eliminates this exposure cleanly. The data never leaves the user's hardware. There's no cross-border transfer. The DPA requirement with an AI vendor disappears. The compliance surface collapses dramatically.&lt;/p&gt;

&lt;p&gt;I've watched legal teams add 3-6 months to product timelines trying to untangle the regulatory implications of cloud inference for EU or China deployments. On-device inference sidesteps the entire conversation. For teams that ship to regulated markets, that timeline compression is worth a lot.&lt;/p&gt;

&lt;p&gt;[IMAGE: A diagram showing data flow comparison — cloud inference with multiple regulatory checkpoints (GDPR, CCPA, PIPL) vs. on-device inference where data stays local]&lt;/p&gt;




&lt;h2&gt;
  
  
  Reason 2: Latency Isn't Just About Speed — It's About Determinism
&lt;/h2&gt;

&lt;p&gt;The average latency numbers for cloud inference look reasonable. Sub-200ms for most major providers, often well under 100ms for smaller models. When someone benchmarks cloud inference, those are the numbers they publish.&lt;/p&gt;

&lt;p&gt;The number that actually matters for production systems is P99. Or even P99.9.&lt;/p&gt;

&lt;p&gt;Cloud inference latency is variable in ways that are difficult to predict and nearly impossible to bound. A 50ms average can have a 2000ms P99 due to cold starts, regional capacity fluctuations, network path changes, or provider-side throttling. This isn't a criticism of cloud providers — it's inherent to shared infrastructure at scale.&lt;/p&gt;

&lt;p&gt;For many applications, this variability is fine. A chatbot that occasionally takes 2 seconds instead of 0.2 seconds is annoying but functional.&lt;/p&gt;

&lt;p&gt;For GUI automation agents, variability kills reliability.&lt;/p&gt;

&lt;p&gt;When an agent is navigating a UI — clicking buttons, reading screen state, deciding what to do next — it's executing a feedback loop. Each inference call determines the next action, which changes the screen state, which feeds back into the next inference call. The entire loop depends on predictable timing. If one inference step takes 20x longer than expected, the agent may be acting on stale screen state, may miss UI transitions, or may time out waiting for an action to complete.&lt;/p&gt;

&lt;p&gt;This isn't a latency optimization problem. It's a &lt;em&gt;determinism&lt;/em&gt; problem. The agent needs to be able to reason about timing as part of its control logic.&lt;/p&gt;

&lt;p&gt;On-device inference gives you P99 you can actually plan around. On Apple Silicon with appropriate quantization, you get consistent throughput that's bounded by local hardware — not by whatever is happening on a shared inference cluster on the other side of the planet. You can profile it, characterize it, and build your agent's timing assumptions around real measurements.&lt;/p&gt;

&lt;p&gt;For GUI automation specifically, the reliability improvement from this determinism is often more impactful than the raw latency numbers suggest. We've observed this pattern repeatedly: switching from cloud inference to on-device inference doesn't just make an agent faster — it makes it &lt;em&gt;work&lt;/em&gt; in scenarios where it was previously failing intermittently and unpredictably.&lt;/p&gt;

&lt;p&gt;[IMAGE: A latency distribution graph comparing cloud inference (wide spread, long tail) vs. on-device inference (tight distribution, predictable P99)]&lt;/p&gt;




&lt;h2&gt;
  
  
  Reason 3: The Cost Crossover Most People Missed
&lt;/h2&gt;

&lt;p&gt;This one requires some arithmetic, but it's worth doing.&lt;/p&gt;

&lt;p&gt;Cloud inference pricing has been dropping steadily. For context, GPT-4-class inference that cost $0.03/1K tokens in 2023 is now available at a fraction of that from multiple providers. For many use cases, cloud inference is cheap.&lt;/p&gt;

&lt;p&gt;But "cheap per call" and "cheap at scale" are different calculations.&lt;/p&gt;

&lt;p&gt;Three things happened in the last 18 months that changed the math for on-device inference:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First:&lt;/strong&gt; W4A8 and W8A8 quantization techniques matured significantly. A model running W4A8 quantization on Apple Silicon achieves quality within a few percentage points of full-precision while running at dramatically higher throughput. This isn't theoretical — it's in production, measurable, and reproducible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second:&lt;/strong&gt; Apple M4 silicon arrived with a substantially improved Neural Engine and memory bandwidth profile. A 4B quantized model on Apple Silicon now achieves throughput that would have required a much larger machine a year ago.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third:&lt;/strong&gt; The "zero marginal cost" nature of on-device inference becomes meaningful at enterprise scale.&lt;/p&gt;

&lt;p&gt;Here's the calculation people miss: for applications where inference is happening continuously — monitoring, automation agents, real-time assistance — the cost per hour of cloud inference adds up in a way that the per-call pricing obscures.&lt;/p&gt;

&lt;p&gt;If you're running an autonomous agent that makes 10 inference calls per minute during active use, and a user is active for 6 hours per day, that's 3,600 inference calls per day per user. At even $0.001 per call (which is optimistic for capable models), that's $3.60/user/day — $1,314/user/year. For a B2B product with 500 users, you're looking at $657,000/year in pure inference costs, scaling linearly with usage.&lt;/p&gt;

&lt;p&gt;The break-even against on-device depends on hardware costs and usage patterns, but for enterprise deployments with heavy inference usage, the crossover typically arrives in 12-18 months. After that point, every inference call is essentially free.&lt;/p&gt;

&lt;p&gt;This doesn't mean on-device always wins on cost — for bursty, low-volume use cases, cloud inference is clearly more economical. But for continuous-use automation and monitoring applications, the TCO calculation has quietly flipped, and many teams haven't updated their mental model to account for it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Builders
&lt;/h2&gt;

&lt;p&gt;None of this means cloud inference is going away. Cloud inference will remain the right choice for many workloads — burst capacity, the largest models, multi-modal tasks that require more than local hardware can provide, and anywhere the regulatory and latency considerations I've described don't apply.&lt;/p&gt;

&lt;p&gt;But the decision is no longer "cloud by default, local if you're weird about privacy." The calculus is more nuanced now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;If you process personal data from users in the EU, California, or China&lt;/strong&gt;, you need to do the compliance math honestly before assuming cloud inference is viable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you're building agent loops where timing matters&lt;/strong&gt;, P99 latency from cloud inference may be silently causing reliability failures you're attributing to other causes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you have sustained, high-volume inference at enterprise scale&lt;/strong&gt;, you may be past the cost crossover already and not realize it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The engineers I mentioned at the start didn't arrive at local inference through ideology. They arrived through debugging. They found the compliance lawyers, the intermittent timeouts, the bills that didn't look right.&lt;/p&gt;

&lt;p&gt;That's usually how actual engineering decisions get made.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Project Worth Watching
&lt;/h2&gt;

&lt;p&gt;One example of this shift playing out in practice: &lt;strong&gt;Mano-P&lt;/strong&gt;, an open-source GUI-VLA agent from MiningLamp Technology that runs fully on-device (Apache 2.0, &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The performance numbers are interesting as a concrete data point for what on-device inference can actually deliver today: Mano-P 1.0-4B running on Apple M5 Pro (64GB, Cider SDK) achieves ~80 tokens/s decode with W8A16 quantization; enabling W8A8 activation quantization speeds up prefill by ~12.7%. The 72B evaluation configuration (not open-sourced — used for benchmarking only) reached 58.2% on the OSWorld benchmark (proprietary model category). The open-source 4B version is what developers actually deploy and run locally.&lt;/p&gt;

&lt;p&gt;If you're building in the GUI automation or edge agent space and want to see what current hardware can actually do, it's worth a look:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap Mininglamp-AI/tap &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; brew &lt;span class="nb"&gt;install &lt;/span&gt;mano-cua
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;[IMAGE: Screenshot of Mano-P running an on-device GUI task on a MacBook, showing the agent interface and live task execution]&lt;/p&gt;




&lt;p&gt;The quiet shift I noticed among those engineers isn't a trend piece. It's just people solving real problems with the best available tools — and the best available tools for a growing set of problems now happen to run locally.&lt;/p&gt;

&lt;p&gt;That's worth paying attention to.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>machinelearning</category>
      <category>privacy</category>
    </item>
    <item>
      <title>The VLA Testing Pipeline in Mano-AFK: When AI Agents QA Their Own Work</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Thu, 21 May 2026 11:23:31 +0000</pubDate>
      <link>https://forem.com/mininglamp/the-vla-testing-pipeline-in-mano-afk-when-ai-agents-qa-their-own-work-20gh</link>
      <guid>https://forem.com/mininglamp/the-vla-testing-pipeline-in-mano-afk-when-ai-agents-qa-their-own-work-20gh</guid>
      <description>&lt;p&gt;AI coding tools have gotten remarkably good at generating code. You describe what you want, and within minutes you have functions, components, even entire applications scaffolded out. But there's a question that rarely gets asked in the excitement: who tests it?&lt;/p&gt;

&lt;p&gt;Writing code accounts for maybe 30% of shipping software. The remaining 70% — defining requirements, deploying, testing, finding bugs, fixing them, and verifying the fixes — is where most projects quietly stall. Every AI coding assistant today stops at some variation of "here's the code, good luck." The developer is still left to deploy it, test it manually, discover the bugs, explain the bugs back to the AI, wait for fixes, and re-test.&lt;/p&gt;

&lt;p&gt;That workflow isn't autonomous development. It's autocomplete with extra steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Testing Gap Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Most engineering teams rely on a layered testing strategy: linting catches syntax errors, unit tests verify individual functions, and API tests confirm that endpoints return the right data. These layers are well-understood, well-automated, and widely adopted.&lt;/p&gt;

&lt;p&gt;But here's the uncomfortable reality: all three can pass while the application is completely broken for end users.&lt;/p&gt;

&lt;p&gt;A button's &lt;code&gt;onClick&lt;/code&gt; handler might correctly call an API endpoint that returns valid JSON — and the unit test, API test, and linter will all report green. Meanwhile, the button itself is hidden behind a CSS overflow, or renders off-screen on mobile, or navigates to a blank page because the frontend routing is misconfigured. The backend works. The tests pass. The user sees nothing.&lt;/p&gt;

&lt;p&gt;This is the E2E testing gap. It's the difference between "the code compiles" and "the software ships." And it's the hardest layer to automate, because it requires something most test frameworks don't have: the ability to actually look at the application and interact with it the way a human would.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Traditional E2E Testing Falls Short
&lt;/h2&gt;

&lt;p&gt;Tools like Selenium and Playwright have been the go-to for browser-based E2E testing for years. They work by programmatically controlling a browser through DOM selectors — clicking elements by their CSS class, filling inputs by their HTML id, asserting text content by XPath.&lt;/p&gt;

&lt;p&gt;The problem is fragility. DOM-based selectors break whenever the UI changes. A designer renames a class, a framework update restructures the component tree, a developer switches from a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; to a &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; — and the entire test suite fails, not because the application is broken, but because the selectors are stale.&lt;/p&gt;

&lt;p&gt;This creates a maintenance burden that scales linearly with application complexity. Large teams often dedicate entire QA engineers just to keep Selenium tests from becoming red noise. Smaller teams simply skip E2E testing altogether.&lt;/p&gt;

&lt;p&gt;There's a more fundamental issue, too. DOM-based testing can only verify what's programmatically accessible. It can check that a text node contains "Success" but it can't tell you that the success message is rendered in white text on a white background. It can verify that an image element exists but not that the image actually loaded. It operates on structure, not on what the user actually sees.&lt;/p&gt;

&lt;h2&gt;
  
  
  VLA: Giving Agents Eyes
&lt;/h2&gt;

&lt;p&gt;Vision-Language-Action (VLA) models change this equation. A VLA model takes a screenshot of the application, understands what it sees through visual reasoning, and generates concrete actions — click coordinates, text input, scroll directions — based on that understanding.&lt;/p&gt;

&lt;p&gt;The key difference from DOM-based automation: VLA operates on pixels, not selectors. It doesn't need to know that the "Submit" button is a &lt;code&gt;&amp;lt;button class="btn-primary"&amp;gt;&lt;/code&gt;. It sees a button labeled "Submit" and clicks it, exactly as a human tester would. If the button moves to a different position on the page, the VLA model still finds it. If the framework changes from React to Vue, the visual interface stays the same and the tests still work.&lt;/p&gt;

&lt;p&gt;This makes VLA-based testing inherently more robust than selector-based approaches. But it also enables something selector-based tools fundamentally cannot do: visual validation. A VLA model can verify that a chart actually renders with the correct data, that a color-coded status indicator is the right color, that a modal overlay is visible and properly positioned. It tests what the user experiences, not what the DOM describes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" alt="Benchmark Overview" width="800" height="610"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Mano-P's benchmark performance across multiple evaluation dimensions, including GUI grounding and visual understanding tasks.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Full Pipeline: Build → Test → Fix → Repeat
&lt;/h2&gt;

&lt;p&gt;Individual testing capability is useful. But the real value emerges when visual testing becomes part of a fully autonomous development pipeline — where an AI agent doesn't just write code, but also deploys it, tests it with real browser interactions, and fixes whatever breaks.&lt;/p&gt;

&lt;p&gt;Here's what that pipeline looks like in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Requirements first.&lt;/strong&gt; Before a single line of code is written, a structured PRD (Product Requirements Document) is generated with acceptance criteria. Every test case traces back to a specific requirement. Every bug fix maps to an AC number. This eliminates the most common failure mode of AI-generated code: "it works, but it doesn't match the intent."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Build and deploy.&lt;/strong&gt; Code is generated, dependencies are installed, and the application is deployed to a local development server — all without human intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Layered testing.&lt;/strong&gt; The pipeline runs lint checks first (fast, catches syntax issues), then API tests (verifies backend logic), then E2E tests using a VLA model to open the app in a browser, navigate through user flows, and verify that the interface matches the acceptance criteria.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Fix loop.&lt;/strong&gt; When tests fail, the agent reads the failure report, inspects the relevant code, makes targeted fixes, re-deploys, and re-tests. This loop can run for multiple iterations — catching not just the initial bug but also regressions introduced by the fix itself.&lt;/p&gt;

&lt;p&gt;The entire cycle — from "build me a budget tracker" to "here's your running app with a test report" — runs without human involvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adversary Review: Why the Builder Shouldn't Test Itself
&lt;/h2&gt;

&lt;p&gt;There's a well-known principle in software engineering: the person who writes the code shouldn't be the only one testing it. Developers have blind spots about their own work. They unconsciously avoid testing the edge cases they didn't think of during implementation.&lt;/p&gt;

&lt;p&gt;The same principle applies to AI agents. When a single agent builds and tests, it tends to generate tests that validate its own assumptions rather than challenging them. The tests pass not because the code is correct, but because the tests are aligned with the same reasoning that produced the code.&lt;/p&gt;

&lt;p&gt;A more robust approach uses separation of concerns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Build Agent&lt;/strong&gt; writes the code, handles deployment, and fixes bugs&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;Adversary Agent&lt;/strong&gt; independently reviews the PRD and source code to find problems the builder missed&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Main Agent&lt;/strong&gt; triages each finding through code inspection, API tests, or E2E verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The adversary operates without knowledge of the builder's implementation decisions. It reads the requirements, reads the code, and asks: "What could go wrong that the builder didn't consider?" This catches usability gaps, data integrity issues, inconsistent behavior across features, and missing edge cases that automated tests alone would miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-Evolution: Getting Smarter Over Projects
&lt;/h2&gt;

&lt;p&gt;Most AI coding tools treat every project as a fresh start. The context window resets, lessons from previous sessions are lost, and the same mistakes get repeated.&lt;/p&gt;

&lt;p&gt;A self-evolving pipeline maintains persistent knowledge across projects through two mechanisms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build rules&lt;/strong&gt; — When a bug takes multiple fix iterations to resolve, the lesson is extracted and applied to all future projects. "Always add loading states to async data fetches" isn't a generic best practice; it's a specific rule learned from a specific failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preference accumulation&lt;/strong&gt; — Layout patterns, color schemes, component choices, and architectural preferences converge over time. The tenth project reflects accumulated understanding of what the developer actually wants, not just what they described in a single prompt.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a meaningful shift from stateless code generation to something that develops institutional memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-AFK: An Open-Source Implementation
&lt;/h2&gt;

&lt;p&gt;At Mininglamp, we built &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;Mano-AFK&lt;/a&gt; as an open-source implementation of this full pipeline. It takes a natural language description, generates a PRD with acceptance criteria, builds the application, deploys it locally, runs layered testing (lint → API → E2E → adversary review), and iterates through fix loops — up to 10 rounds — until all tests pass or a detailed report is generated.&lt;/p&gt;

&lt;p&gt;The E2E testing layer is powered by &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt;, Mininglamp's on-device VLA model. Mano-P runs entirely on local hardware — the 4B quantized model achieves 76 tokens/s decode speed on an M4 Pro with just 4.3 GB peak memory. No screenshots leave the device, no API keys are required, and there's zero per-test cost. It uses pure vision to understand GUI interfaces without relying on DOM parsing or accessibility trees, which means it works across web apps, desktop software, and any application with a visual interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FGUI_Agent_Grounding_Benchmark.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FGUI_Agent_Grounding_Benchmark.png" alt="GUI Agent Grounding Benchmark" width="800" height="470"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Mano-P's GUI grounding benchmark results — the ability to accurately locate and interact with UI elements is foundational to reliable visual testing.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For teams that prefer cloud-based testing, Mano-AFK also supports Claude CUA as an alternative backend. The local mode with Mano-P is recommended for development workflows where privacy, latency, and cost matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Development Workflows
&lt;/h2&gt;

&lt;p&gt;The combination of VLA-based visual testing, adversary review, and self-evolving build rules points toward a future where "AI-assisted development" means more than code generation. It means AI agents that can participate in the full software lifecycle — including the 70% that happens after the code is written.&lt;/p&gt;

&lt;p&gt;We're still early. VLA models aren't perfect at visual understanding, adversary review can produce false positives, and self-evolution needs many project cycles to show meaningful improvement. But the direction is clear: autonomous development pipelines that close the loop between writing code and shipping software.&lt;/p&gt;

&lt;p&gt;Both &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;Mano-AFK&lt;/a&gt; and &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt; are open source and available on GitHub. If this approach to autonomous testing resonates with your workflow, we'd welcome you to try them out and share your experience. ⭐&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
    <item>
      <title>Three Open-Source Projects That Turn Your Mac Into a Private AI Workstation</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Tue, 19 May 2026 12:05:56 +0000</pubDate>
      <link>https://forem.com/mininglamp/three-open-source-projects-that-turn-your-mac-into-a-private-ai-workstation-3347</link>
      <guid>https://forem.com/mininglamp/three-open-source-projects-that-turn-your-mac-into-a-private-ai-workstation-3347</guid>
      <description>&lt;p&gt;The idea of running AI agents entirely on your laptop used to be a joke. A fun thought experiment you'd entertain over coffee before switching back to your cloud API dashboard and watching the bills pile up.&lt;/p&gt;

&lt;p&gt;In 2026, it's a real workflow.&lt;/p&gt;

&lt;p&gt;Not a demo. Not a "technically possible if you squint" proof of concept. An actual, production-grade stack where a vision-language model sees your screen, operates your apps, accelerates inference on Apple Silicon, and builds entire applications from a product spec — all without a single byte leaving your machine.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://github.com/Mininglamp-AI" rel="noopener noreferrer"&gt;Mininglamp Technology&lt;/a&gt;, we've been building toward this with three open-source projects. Each solves a distinct piece of the on-device AI puzzle. Together, they form something we think is genuinely new: a complete private AI workstation stack that runs on a Mac.&lt;/p&gt;

&lt;p&gt;Let's walk through them.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Mano-P: The Agent That Sees Your Screen
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/Mano-P&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most "AI agents" are glorified API wrappers. They read text, call tools, and hope the tool's interface hasn't changed since the prompt was written. Mano-P takes a fundamentally different approach: it's a GUI-VLA (Vision-Language-Action) model that perceives your screen the way a human does — by looking at it.&lt;/p&gt;

&lt;p&gt;Mano-P comes in two sizes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;72B (cloud/server):&lt;/strong&gt; The full model, currently ranked &lt;strong&gt;#1 on OSWorld&lt;/strong&gt; with a score of &lt;strong&gt;58.2%&lt;/strong&gt; — a significant lead over the second-place opencua-72b at 45.0%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4B (local):&lt;/strong&gt; A distilled model designed to run entirely on-device. On an M5 Pro, it decodes at roughly &lt;strong&gt;~80 tokens/second&lt;/strong&gt; with a peak memory footprint of just &lt;strong&gt;4.3GB&lt;/strong&gt;. It runs on M4 chips with 32GB RAM.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqp7qjsx7ax67qnagr0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqp7qjsx7ax67qnagr0g.png" alt="Mano-P Architecture" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What makes this interesting isn't just the benchmark numbers — it's the interaction model. Mano-P doesn't need custom integrations or tool definitions. It sees buttons, text fields, menus, and dialogs the same way you do. Tell it "open Safari and find the latest Hacker News post about Rust," and it navigates the GUI visually, clicking and typing as needed.&lt;/p&gt;

&lt;p&gt;The 72B model also includes &lt;strong&gt;WebRetriever&lt;/strong&gt;, a web navigation component that scores &lt;strong&gt;41.7 on NavEval&lt;/strong&gt; — ahead of Gemini 2.5 Pro (40.9) and Claude 4.5 (31.3). Web browsing as a first-class agent capability, not an afterthought.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;The traditional approach to computer-use agents is brittle. You build tool adapters, maintain API schemas, and pray that the next macOS update doesn't break your Accessibility API hooks. A vision-first agent sidesteps all of that. If a human can use the app, Mano-P can use the app.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Cider: Inference Acceleration for Apple Silicon
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/cider&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Running a 4B model at 80 tok/s on a Mac doesn't happen by accident. It requires an inference engine that actually understands Apple Silicon's hardware characteristics. That's what Cider is.&lt;/p&gt;

&lt;p&gt;Cider is an inference acceleration SDK built specifically for Apple's M-series chips. Its key contribution is &lt;strong&gt;activation quantization&lt;/strong&gt; — specifically W8A8 and W4A8 schemes — which fills a gap that MLX currently doesn't cover. MLX supports weight-only quantization (W4A16, W8A16), but activations stay in full precision. Cider quantizes both weights &lt;em&gt;and&lt;/em&gt; activations, which unlocks substantially better throughput.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMininglamp-AI%2FMano-P%2Fmain%2Fpics%2FBenchmark_Overview.png" alt="Benchmark Overview" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Numbers
&lt;/h3&gt;

&lt;p&gt;On an M5 Pro, Cider delivers &lt;strong&gt;1.4–2.2x faster inference&lt;/strong&gt; compared to MLX W4A16, depending on the quantization granularity you choose:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Quantization&lt;/th&gt;
&lt;th&gt;Granularity&lt;/th&gt;
&lt;th&gt;Speedup vs MLX W4A16&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;W8A8 / W4A8&lt;/td&gt;
&lt;td&gt;Per-channel&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;1.8x&lt;/strong&gt; (fastest)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;W8A8 / W4A8&lt;/td&gt;
&lt;td&gt;Per-group (gs=128)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.5x&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;W8A8 / W4A8&lt;/td&gt;
&lt;td&gt;Per-group (gs=64)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.3x&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There's a tradeoff between speed and accuracy, as you'd expect. On the CUA Benchmark (M5, 16GB), W8A16 quantization maintains &lt;strong&gt;58.0% accuracy&lt;/strong&gt; while W8A8 comes in at &lt;strong&gt;54.0%&lt;/strong&gt;. Depending on your use case, that 4-point delta may or may not matter — for many agentic workflows, the speed gain is worth it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Not Just Use MLX?
&lt;/h3&gt;

&lt;p&gt;This isn't about replacing MLX. MLX is excellent at what it does. But weight-only quantization hits a wall when you need both low memory and high throughput for real-time agent interactions. Activation quantization is the next lever, and right now, Cider is the open-source option that pulls it on Apple Silicon.&lt;/p&gt;

&lt;p&gt;Think of it this way: MLX gives you the foundation. Cider fills the gap in activation quantization that lets you push throughput further on the same hardware.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Mano-AFK: The Autonomous App Builder
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/mano-afk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where things get wild.&lt;/p&gt;

&lt;p&gt;Mano-AFK takes a PRD (Product Requirements Document) and turns it into a working application. Not a skeleton. Not boilerplate. A deployed, tested application — with &lt;strong&gt;zero human intervention&lt;/strong&gt; in the loop.&lt;/p&gt;

&lt;p&gt;Here's the pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read the PRD&lt;/strong&gt; — Parse requirements, extract features, identify tech stack&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write the code&lt;/strong&gt; — Generate the full application&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy it&lt;/strong&gt; — Spin up a local or containerized environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test it visually&lt;/strong&gt; — Using Mano-P's vision model to actually &lt;em&gt;look at&lt;/em&gt; the running app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find bugs&lt;/strong&gt; — Compare what's on screen to what the PRD specified&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix them&lt;/strong&gt; — Modify code, redeploy, retest&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqozj0uo6efvd19f8zth.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqozj0uo6efvd19f8zth.jpeg" alt="Mano-Action Training Flow" width="799" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The critical piece here is step 4. Most code-generation tools "test" by running unit tests they also generated — which is roughly as useful as grading your own homework. Mano-AFK uses Mano-P's vision capabilities to perform &lt;em&gt;visual&lt;/em&gt; testing: it loads the app, looks at the screen, and verifies that the UI actually matches the spec. A button that's supposed to be blue but renders as white? Caught. A form that submits but shows no confirmation? Caught.&lt;/p&gt;

&lt;p&gt;This closes the loop in a way that pure code generation can't. The vision model acts as an independent quality gate that evaluates the &lt;em&gt;artifact&lt;/em&gt;, not just the &lt;em&gt;source&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What It's Good For
&lt;/h3&gt;

&lt;p&gt;Mano-AFK shines for internal tools, prototypes, and MVPs where the cost of human QA exceeds the cost of iteration cycles. It's not going to replace your engineering team on a complex distributed system. But for "I need a dashboard that shows these metrics with these filters by Thursday"? It's remarkably capable.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stack: Model → Accelerator → Builder
&lt;/h2&gt;

&lt;p&gt;Here's where the three projects become more than the sum of their parts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│              Your Mac (M4+ / 32GB)          │
│                                             │
│  ┌──────────┐  ┌──────────┐  ┌───────────┐ │
│  │  Mano-P  │  │  Cider   │  │ Mano-AFK  │ │
│  │  (Agent) │──│  (Accel) │──│ (Builder) │ │
│  │  4B VLA  │  │  W8A8    │  │ PRD→App   │ │
│  └──────────┘  └──────────┘  └───────────┘ │
│                                             │
│  Data stays here. Always.                   │
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mano-P&lt;/strong&gt; provides the vision-language-action intelligence — the ability to see, understand, and act on screen content. &lt;strong&gt;Cider&lt;/strong&gt; accelerates inference so that intelligence runs at interactive speeds on consumer hardware. &lt;strong&gt;Mano-AFK&lt;/strong&gt; orchestrates multi-step autonomous workflows, using Mano-P as both its brain and its eyes.&lt;/p&gt;

&lt;p&gt;The result is a stack where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your AI agent perceives and operates your entire desktop&lt;/li&gt;
&lt;li&gt;Inference is fast enough for real-time interaction (not "wait 30 seconds per action" fast — actually fast)&lt;/li&gt;
&lt;li&gt;Autonomous workflows can build, deploy, and quality-test applications without human involvement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing leaves your machine.&lt;/strong&gt; No API calls to external servers. No telemetry. No data exfiltration vectors. Your code, your screen content, your documents — they stay on your Mac.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters more than people think. Enterprise teams working with proprietary code, healthcare organizations handling patient data, legal teams reviewing confidential documents — these groups can't use cloud AI agents, period. An on-device stack isn't a nice-to-have for them. It's the only option.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hardware Requirements
&lt;/h3&gt;

&lt;p&gt;Let's be clear about what you need: &lt;strong&gt;Apple M4 with 32GB of RAM&lt;/strong&gt; is the minimum for running the 4B model at usable speeds. An M5 Pro will give you the best experience. This isn't a "runs on any Mac" situation — you need the unified memory bandwidth and Neural Engine capabilities of recent Apple Silicon.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;We're not claiming this replaces cloud AI. The 72B model exists for a reason — some workloads need that scale, and running it requires serious hardware. What we &lt;em&gt;are&lt;/em&gt; saying is that the gap between "cloud-only" and "runs on your laptop" has narrowed dramatically, and for a growing category of workflows, the on-device option is not just viable but &lt;em&gt;preferable&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The three forces driving this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Model distillation has gotten remarkably good.&lt;/strong&gt; The 4B Mano-P retains enough capability from its 72B parent to handle real-world GUI tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Silicon's unified memory architecture is uniquely suited to LLM inference.&lt;/strong&gt; High memory bandwidth + large unified pool = exactly what transformer decoding needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Activation quantization (via Cider) closes the remaining throughput gap.&lt;/strong&gt; Weight-only quantization was the easy win; activation quantization is the hard one that makes real-time interaction possible.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The open-source angle matters here too. These aren't black-box binaries. You can inspect the model weights, audit the inference engine, verify that nothing phones home. For privacy-sensitive deployments, "trust us" isn't good enough. "Read the code" is.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;All three projects are released under &lt;strong&gt;Apache 2.0&lt;/strong&gt; — use them commercially, fork them, contribute back, or just kick the tires.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mano-P&lt;/strong&gt; (GUI Vision-Language-Action Agent): &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/Mano-P&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cider&lt;/strong&gt; (Apple Silicon Inference Acceleration): &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/cider&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mano-AFK&lt;/strong&gt; (Autonomous App Builder): &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/mano-afk&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build something with them, we'd love to hear about it. File an issue, open a PR, or just star the repos if you think this direction is worth pursuing.&lt;/p&gt;

&lt;p&gt;The future of AI workstations isn't in the cloud. It's on your desk.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Mininglamp Technology builds AI infrastructure for enterprises. Our open-source projects focus on on-device AI agents, inference optimization, and autonomous software development. Learn more at &lt;a href="https://github.com/Mininglamp-AI" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>apple</category>
    </item>
    <item>
      <title>Agent vs Skill vs MCP vs Tool: The 4-Layer Stack Every AI Developer Should Know</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Thu, 14 May 2026 11:10:04 +0000</pubDate>
      <link>https://forem.com/mininglamp/agent-vs-skill-vs-mcp-vs-tool-the-4-layer-stack-every-ai-developer-should-know-17no</link>
      <guid>https://forem.com/mininglamp/agent-vs-skill-vs-mcp-vs-tool-the-4-layer-stack-every-ai-developer-should-know-17no</guid>
      <description>&lt;h2&gt;
  
  
  The Terminology Problem
&lt;/h2&gt;

&lt;p&gt;The AI agent ecosystem has a vocabulary collision. "Tool" means one thing in LangChain, another in AutoGPT, and something else entirely in Claude's function-calling docs. "Skill" and "agent" are similarly overloaded—an "agent" might be a simple prompt wrapper or a fully autonomous system that books flights and deploys code. "MCP" arrived in late 2024 and added yet another term to the mix.&lt;/p&gt;

&lt;p&gt;This matters architecturally. When layers are conflated, testing becomes harder, reuse drops, and swapping a model means rewriting half the system. A function that orchestrates 15 steps gets called a "tool." A prompt that strings together API calls gets called an "agent." The result is codebases where nothing is composable.&lt;/p&gt;

&lt;p&gt;A 4-layer mental model resolves most of the confusion—similar to how the OSI model gave networking a shared vocabulary, or how MVC clarified web application structure. It's not a rigid specification, but a framework for making architectural discussions more productive.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4-Layer Stack
&lt;/h2&gt;

&lt;p&gt;From bottom to top:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FMininglamp-AI%2FMano-P%2Fraw%2Fmain%2Fassets%2Fframework.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FMininglamp-AI%2FMano-P%2Fraw%2Fmain%2Fassets%2Fframework.png" alt="Architecture diagram showing the 4-layer stack"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1: Tools — The Atoms
&lt;/h3&gt;

&lt;p&gt;A tool is a single, stateless function that performs one atomic operation. It clicks a button, reads a file, calls an API, or captures a screenshot. Tools have no memory, no planning capability, and no awareness of why they're being called.&lt;/p&gt;

&lt;p&gt;Key properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic&lt;/strong&gt; (or close to it)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testable in isolation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composable&lt;/strong&gt; — designed to be called by higher layers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment-specific&lt;/strong&gt; — a &lt;code&gt;click()&lt;/code&gt; on macOS differs in implementation from &lt;code&gt;click()&lt;/code&gt; on Android, even if the interface is identical&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;screenshot()&lt;/code&gt; — captures the current screen&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;click(x, y)&lt;/code&gt; — clicks at coordinates&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;read_file(path)&lt;/code&gt; — returns file contents&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;http_get(url)&lt;/code&gt; — fetches a URL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools are the smallest composable unit. They accept input, perform one action, and return a result. No side quests. The web analogy: individual HTTP endpoints. A &lt;code&gt;GET /users/:id&lt;/code&gt; doesn't know about business logic—it fetches a row from a database and returns it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 2: MCP (Model Context Protocol) — The Connectors
&lt;/h3&gt;

&lt;p&gt;MCP is a standardized transport layer for tool discovery and invocation across process boundaries. Think of it as GraphQL or gRPC for AI systems—it defines how tools are discovered, described, and called, not what they do.&lt;/p&gt;

&lt;p&gt;Before MCP, every agent framework had its own tool integration spec. Building a tool for LangChain meant rebuilding it for AutoGPT. Building it for CrewAI meant doing it again. MCP standardizes three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discovery:&lt;/strong&gt; "What tools are available on this server?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema:&lt;/strong&gt; "What parameters does this tool accept? What does it return?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transport:&lt;/strong&gt; stdio, HTTP, or WebSocket—the calling code picks the transport&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP is about interoperability, not intelligence. An MCP server exposes tools; it never decides when to use them. The calling agent makes all decisions. An MCP server is a waiter that presents the menu and takes orders—it doesn't choose the meal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When MCP adds value:&lt;/strong&gt; Tools living in different processes or machines. Multiple agents or frameworks sharing the same tool set. Tool authors who want to write once and have it work across LangChain, Claude, OpenAI Assistants, and others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When MCP adds overhead without benefit:&lt;/strong&gt; Everything runs in-process and only one agent consumes the tools. In that case, direct function calls are simpler.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: Skills — The Playbooks
&lt;/h3&gt;

&lt;p&gt;A skill is a reusable, multi-step procedure that combines tools to accomplish a meaningful task. The web analogy: a service-layer module. A &lt;code&gt;PlaceOrderUseCase&lt;/code&gt; orchestrates inventory checks, payment processing, and notifications—it's not a single endpoint but a choreography of endpoints.&lt;/p&gt;

&lt;p&gt;"Fill out a web form" is a skill: it involves locating fields, typing values, handling dropdowns, scrolling, and clicking submit. Each step invokes tools, but the sequence, branching logic, and error recovery are the skill's contribution.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Navigate to Settings &amp;gt; Privacy &amp;gt; Clear Cache" (UI navigation)&lt;/li&gt;
&lt;li&gt;"Search for a flight, compare prices, select the cheapest" (multi-step research)&lt;/li&gt;
&lt;li&gt;"Read an Excel file, extract key metrics, generate a summary" (data analysis)&lt;/li&gt;
&lt;li&gt;"Log into a service, check account status, export a report" (multi-app workflow)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Skills are portable when the underlying tool layer provides the required primitives. A "fill web form" skill works on any OS as long as &lt;code&gt;click&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, and &lt;code&gt;screenshot&lt;/code&gt; tools are available underneath.&lt;/p&gt;

&lt;p&gt;The skill is the natural unit of reuse. A 3-line function and a 300-line multi-step workflow serve fundamentally different purposes; separating them clarifies what's testable in isolation (tools) versus what requires integration testing (skills). Skills can also be shared across agents—one agent might use a "file analysis" skill in a data pipeline context, another in a customer support context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 4: Agent — The Decision-Maker
&lt;/h3&gt;

&lt;p&gt;An agent is the autonomous reasoning entity that decides &lt;em&gt;what&lt;/em&gt; to do, &lt;em&gt;when&lt;/em&gt;, and &lt;em&gt;why&lt;/em&gt;. It observes the environment (via tools), reasons about the next action (via its language model), selects the appropriate skill, monitors execution, and adapts when things fail.&lt;/p&gt;

&lt;p&gt;An agent owns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal decomposition&lt;/strong&gt; — breaking "book me a flight to Tokyo" into subtasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill selection&lt;/strong&gt; — choosing which playbook fits the current subtask&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error recovery&lt;/strong&gt; — detecting failures and trying alternatives&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt; — tracking what's been done across a session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Termination judgment&lt;/strong&gt; — knowing when the goal is achieved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents are model-powered. Replace the model, and the agent's capability ceiling changes. But in well-layered architecture, skills and tools remain valid regardless of which model drives the agent. This is the key insight: the agent is the most volatile layer (models improve quarterly), while tools and skills are the most stable (click is still click).&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Layers Compose
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent (decides what to do)
  ↓ selects
Skill (knows how to do it)
  ↓ invokes via
MCP (discovers and routes)
  ↓ calls
Tool (executes one atomic action)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation enables:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Swappable models&lt;/strong&gt; — upgrade the agent's LLM without touching skills or tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portable skills&lt;/strong&gt; — move a skill from cloud to edge by swapping the tool layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testable tools&lt;/strong&gt; — unit-test each tool independently, integration-test each skill&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interoperable infrastructure&lt;/strong&gt; — MCP means tools work with any compliant agent&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A Real-World Example: Mano-P
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt; is Mininglamp Technology's open-source on-device GUI agent for macOS. It illustrates how the Agent and Skill layers work together in a local-first, privacy-preserving architecture.&lt;/p&gt;

&lt;p&gt;It is pure vision-driven—understanding screens via screenshots, with no dependency on DOM trees, accessibility APIs, or HTML scraping. A local 4B-parameter model runs the entire inference loop on-device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At the Tool layer:&lt;/strong&gt; Screen capture, mouse click, keyboard input, scroll—all native macOS operations. No cloud calls for any action primitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At the Skill layer:&lt;/strong&gt; Multi-step workflows for desktop tasks—form filling, app navigation, data extraction—compose the native tools into reliable sequences. These are packaged as &lt;code&gt;mano-skill&lt;/code&gt;, a format callable by external orchestrators like Claude Code or OpenClaw agents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At the Agent layer:&lt;/strong&gt; The vision-language model observes screenshots and decides the next action autonomously. On Apple M4 + 32GB RAM, it runs at 76 tok/s using the Cider SDK (MLX inference acceleration with W8A8 activation quantization). Data never leaves the device—no screenshots uploaded to cloud APIs, no keystrokes logged remotely.&lt;/p&gt;

&lt;p&gt;On the OSWorld benchmark, Mano-P ranked #1 in the proprietary model category with 58.2% accuracy—demonstrating that smaller local models with well-separated architecture can compete with cloud-dependent systems on real desktop tasks.&lt;/p&gt;

&lt;p&gt;Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap Mininglamp-AI/tap &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; brew &lt;span class="nb"&gt;install &lt;/span&gt;mano-cua
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apache 2.0 licensed. Hardware requirement: Apple M4 chip + 32GB RAM.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use What
&lt;/h2&gt;

&lt;p&gt;Not every project needs all four layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools alone&lt;/strong&gt; — deterministic automation with fixed sequences (cron jobs, CI pipelines, simple scripts).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools + MCP&lt;/strong&gt; — tools live in different processes or machines; multiple agents share the same tool set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools + MCP + Skills&lt;/strong&gt; — multi-step workflows with conditional logic and error recovery; reusable procedures across different agents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full stack (Agent + Skill + MCP + Tool)&lt;/strong&gt; — goals are ambiguous or user-specified at runtime; the environment is dynamic; autonomous operation over extended sessions is needed.&lt;/p&gt;

&lt;p&gt;Building from the bottom up tends to work well. Get tools right first. Add MCP when interop is needed. Compose skills when workflows emerge. Add an agent when autonomous reasoning becomes necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Architecture Smells
&lt;/h2&gt;

&lt;p&gt;Patterns worth recognizing early:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monolithic prompts&lt;/strong&gt; — tools, skills, and orchestration logic all in one system message. Hard to test or debug individual pieces. Hard to reuse across projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Tools" that maintain state&lt;/strong&gt; — a function doing 15 things with internal state is a skill in disguise. Recognizing this improves testability and makes the codebase legible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP everywhere&lt;/strong&gt; — wrapping every in-process function call in MCP transport adds complexity without interoperability gains. MCP shines at boundaries, not within a single process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platform logic in skills&lt;/strong&gt; — skills containing OS-specific code instead of delegating to tools lose portability. The fix: push platform specifics down into the tool layer where they belong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent without skills&lt;/strong&gt; — putting all multi-step logic directly in the agent's prompt creates a brittle system that breaks when the model changes or the prompt grows too long.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;The 4-layer model—Tool, MCP, Skill, Agent—provides a vocabulary for answering recurring design questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where does this logic belong?&lt;/li&gt;
&lt;li&gt;What's reusable vs. environment-specific?&lt;/li&gt;
&lt;li&gt;What can be tested in isolation?&lt;/li&gt;
&lt;li&gt;What changes when the model is swapped?&lt;/li&gt;
&lt;li&gt;What survives a model upgrade without modification?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the same separation-of-concerns questions that web development answered with MVC, service layers, and API gateways. The AI agent stack is working through equivalent patterns now. The projects that age well will be the ones with clean boundaries between layers—where upgrading the LLM doesn't require rewriting the skill library, and swapping from macOS to Linux only means changing the tool implementations.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Mano-P is open-source at &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/Mano-P&lt;/a&gt;. If you find this useful, a ⭐ on GitHub helps the project reach more developers.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why One Giant Model Ruling Everything Is a Bad Idea</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Wed, 13 May 2026 09:56:36 +0000</pubDate>
      <link>https://forem.com/mininglamp/why-one-giant-model-ruling-everything-is-a-bad-idea-339c</link>
      <guid>https://forem.com/mininglamp/why-one-giant-model-ruling-everything-is-a-bad-idea-339c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5ya2wqwxiw0g9k3qv7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5ya2wqwxiw0g9k3qv7l.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Narrative Everyone Accepted Without Questioning
&lt;/h2&gt;

&lt;p&gt;There's a story the AI industry has been telling itself for the past few years, and it goes something like this: &lt;em&gt;bigger is better, and the biggest wins&lt;/em&gt;. More parameters. More data. More compute. The leaderboard rewards scale, venture capital rewards scale, and so the entire field marches in one direction — upward.&lt;/p&gt;

&lt;p&gt;But spend enough time in the trenches — dealing with real deployment constraints, real failure modes, and real questions about who controls what — and this narrative starts to look, at best, incomplete.&lt;/p&gt;

&lt;p&gt;What if scaling &lt;em&gt;up&lt;/em&gt; is only half the story? What if the other half — scaling &lt;em&gt;out&lt;/em&gt; — is not just a fallback for teams who can't afford the big model, but a fundamentally different architecture that solves problems the monolithic approach structurally cannot?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Internet Is Changing at the Infrastructure Level
&lt;/h2&gt;

&lt;p&gt;Here's something that doesn't get discussed enough: the internet itself is undergoing a quiet paradigm shift.&lt;/p&gt;

&lt;p&gt;The old internet was designed to connect human attention. Search engines, social feeds, recommendation algorithms — they all competed for the same scarce resource: the roughly 16 waking hours each person has per day. The entire ad-tech economy was built on this bottleneck.&lt;/p&gt;

&lt;p&gt;The emerging internet connects &lt;em&gt;agent compute&lt;/em&gt;. Software agents don't sleep. They don't get bored. They don't have a finite attention span that advertisers fight over. When AI agents become the primary consumers and producers of internet traffic — not just humans browsing pages — the architecture of the network itself needs to change.&lt;/p&gt;

&lt;p&gt;This isn't a distant future. It's already happening. API calls between services are growing faster than human page views. Autonomous agents are booking meetings, writing code, filing reports, and negotiating with other agents. The internet is transitioning from a human attention marketplace to an agent cooperation network.&lt;/p&gt;

&lt;p&gt;And this transition raises a profound question: should that cooperation network be controlled by a single model, or distributed across many?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Scaling Up Alone Is Structurally Risky
&lt;/h2&gt;

&lt;p&gt;To be clear: large models are not inherently bad. They're remarkable achievements. Frontier systems demonstrate capabilities that seemed impossible five years ago. The research behind them is genuinely impressive.&lt;/p&gt;

&lt;p&gt;But as an &lt;em&gt;architectural strategy for the entire field&lt;/em&gt;, the "one model to rule them all" approach has structural risks that don't go away by throwing more compute at them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extreme centralization.&lt;/strong&gt; Training frontier models costs hundreds of millions of dollars. Only a handful of organizations on Earth can play this game. That means the most powerful AI capabilities are concentrated in very few hands. Whatever your politics, this level of concentration should give you pause.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black-box decision making.&lt;/strong&gt; When a single 2-trillion-parameter model makes a decision, good luck auditing &lt;em&gt;why&lt;/em&gt;. Interpretability research is making progress, but the field is nowhere near being able to trace a complex reasoning chain through a monolithic transformer with confidence. For high-stakes domains — medicine, law, finance — "trust me, the big model said so" isn't going to cut it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diminishing returns on investment.&lt;/strong&gt; The scaling laws that powered the last generation of breakthroughs are showing signs of flattening in certain domains. Training costs are growing faster than capability gains. At some point, the next 10x in compute doesn't buy 10x in usefulness — it buys marginally better benchmark scores that don't translate to real-world value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single points of failure.&lt;/strong&gt; When an entire AI strategy depends on one provider's API staying up, staying affordable, and staying aligned with the user's interests... that's one policy change away from a very bad week.&lt;/p&gt;

&lt;p&gt;None of these are reasons to abandon large models. They're reasons to ask: is there a complementary approach?&lt;/p&gt;

&lt;h2&gt;
  
  
  Scaling Out: A Different Architectural Bet
&lt;/h2&gt;

&lt;p&gt;An alternative gaining traction in the industry: instead of making one model infinitely large, connect many specialized models over the internet and let them cooperate on tasks.&lt;/p&gt;

&lt;p&gt;Consider how the internet itself succeeded. It didn't win by building one giant supercomputer that everyone connects to. It won by creating a protocol that lets millions of different machines — each with their own capabilities, owners, and purposes — collaborate. The genius was in the &lt;em&gt;connection&lt;/em&gt;, not the &lt;em&gt;concentration&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Scaling Out applies the same principle to AI. Different agents, potentially running different models optimized for different tasks, coordinate over network protocols to accomplish complex goals. A planning agent delegates to a code-writing agent, which delegates to a testing agent, which reports back. Each agent is independently deployable, replaceable, and auditable.&lt;/p&gt;

&lt;p&gt;The advantages mirror those of distributed systems in general:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resilience.&lt;/strong&gt; No single agent failure takes down the whole system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialization.&lt;/strong&gt; Each agent can be optimized for its specific task rather than being a jack-of-all-trades.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability.&lt;/strong&gt; The communication between agents is inspectable. The reasoning chain is explicit in the messages, not buried in hidden layers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility.&lt;/strong&gt; No billion-dollar GPU cluster required to participate. A well-tuned 7B model running on modest hardware can be a valuable node in an agent network.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  MOA vs. MoE: The Difference That Matters
&lt;/h2&gt;

&lt;p&gt;Anyone familiar with Mixture of Experts (MoE) might be thinking: "This is already solved. MoE architectures route different inputs to different expert sub-networks within a single model."&lt;/p&gt;

&lt;p&gt;That's true, but there's a crucial distinction.&lt;/p&gt;

&lt;p&gt;In MoE, the routing happens &lt;em&gt;inside&lt;/em&gt; the model. It's an internal optimization — a way to make a single model more efficient. The experts share weights, share a training process, and share an operator. From the outside, it's still one black box. There's no way to inspect which expert handled a query, no way to audit the expert's reasoning independently, and no way to replace one expert without retraining the whole system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mixture of Agents (MOA)&lt;/strong&gt; is architecturally different. Each agent is a &lt;em&gt;separate system&lt;/em&gt; — potentially running a different model, operated by a different team, connected over the internet. The "routing" is explicit: an orchestrator delegates tasks to agents based on their declared capabilities, and the communication happens over observable channels.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;White-box cooperation.&lt;/strong&gt; Every message between agents is inspectable. It can be logged, audited, replayed. There's no hidden routing decision buried in a softmax layer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independent governance.&lt;/strong&gt; Each agent can have its own safety constraints, access controls, and compliance requirements. A medical agent can enforce HIPAA. A financial agent can enforce SOX. These constraints don't need to be negotiated inside a single model's RLHF training.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceable accountability.&lt;/strong&gt; When something goes wrong, it's possible to point to exactly which agent made which decision based on which inputs. Try doing that with a trillion-parameter monolith.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evolvability.&lt;/strong&gt; Swap out one agent for a better version without touching the rest of the system. Upgrade incrementally. No need for a six-month retraining cycle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MoE is an optimization technique for building better monoliths. MOA is an architectural pattern for building &lt;em&gt;systems of cooperation&lt;/em&gt;. They solve different problems at different levels of the stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Picture: Democratized AI Research
&lt;/h2&gt;

&lt;p&gt;There's one more angle that doesn't get enough attention: what happens when the barrier to contributing to AI systems is lowered?&lt;/p&gt;

&lt;p&gt;Right now, a domain expert — a biologist, a materials scientist, a climate researcher — who wants to leverage AI for their field has limited options: (a) fine-tune someone else's foundation model if the budget allows, or (b) hope that the general-purpose model happens to know enough about the niche.&lt;/p&gt;

&lt;p&gt;In a Scaling Out world, there's option (c): build a specialized agent for a specific domain and plug it into the network. That agent doesn't need to be a frontier model. It needs to be &lt;em&gt;good at its specific thing&lt;/em&gt; — identifying protein structures, simulating material properties, parsing climate data — and able to communicate its results to other agents that handle the parts it can't.&lt;/p&gt;

&lt;p&gt;This is how scientific collaboration works among humans. No single scientist knows everything. Progress happens when specialists communicate effectively. There's no reason AI-assisted research should be different.&lt;/p&gt;

&lt;p&gt;Imagine an internet where thousands of domain-specific AI agents — each built by experts in their respective fields — cooperate on complex research problems. A genomics agent identifies candidate genes. A chemistry agent predicts binding affinities. A literature agent surfaces relevant prior work. An experiment-design agent proposes validation studies. Each one is modest in isolation. Together, they're formidable.&lt;/p&gt;

&lt;p&gt;This isn't just a technical architecture. It's a statement about who gets to participate in the AI revolution. If the only path forward is "build a bigger model," then only the richest organizations get a seat at the table. If the path forward is "build a specialized agent and connect it," then every domain expert in the world is a potential contributor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Does This Leave Us?
&lt;/h2&gt;

&lt;p&gt;Scaling Out does not replace Scaling Up. Large foundation models will continue to be valuable — as general-purpose reasoning engines, as pre-training bases for fine-tuning, as components within larger agent systems. The question isn't "which one wins." It's "what's the right mix, and who decides?"&lt;/p&gt;

&lt;p&gt;The more likely future looks less like one omniscient oracle and more like an internet of cooperating specialists. Not because distributed systems are trendy, but because the problems that actually need solving — scientific discovery, complex engineering, personalized medicine, climate adaptation — are too varied, too specialized, and too important to trust to any single system, no matter how large.&lt;/p&gt;

&lt;p&gt;The monolithic model is a cathedral. The agent network is a bazaar. History suggests which one adapts faster.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's your take?&lt;/strong&gt; Is this overcomplicating things — will a sufficiently large model really handle everything? Or does the distributed approach resonate with how you think about building reliable systems? If you've experimented with multi-agent architectures, what worked and what didn't? &lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>The HN Post That Got 1,700 Upvotes: Local AI Needs to Be the Norm.Why "Local AI" Just Became the Default for Developers</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Tue, 12 May 2026 09:45:13 +0000</pubDate>
      <link>https://forem.com/mininglamp/the-hn-post-that-got-1700-upvotes-local-ai-needs-to-be-the-normwhy-local-ai-just-became-the-32i9</link>
      <guid>https://forem.com/mininglamp/the-hn-post-that-got-1700-upvotes-local-ai-needs-to-be-the-normwhy-local-ai-just-became-the-32i9</guid>
      <description>&lt;h1&gt;
  
  
  The HN Post That Got 1,700 Upvotes: Local AI Needs to Be the Norm
&lt;/h1&gt;

&lt;p&gt;In early 2025, a post titled "Local AI needs to be the norm" hit the front page of Hacker News and stayed there. It collected 1,763 upvotes and over 800 comments. No product launch, no benchmark claim, no drama — just a statement that resonated with a large number of developers simultaneously.&lt;/p&gt;

&lt;p&gt;The comments weren't the usual HN contrarianism either. Most of them were agreements, expansions, and stories of people already running models locally for daily work. Reading through that thread felt less like a debate and more like a census.&lt;/p&gt;

&lt;p&gt;Something shifted. This article is an attempt to understand what, why, and where it leads.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cloud Assumption Is Cracking
&lt;/h2&gt;

&lt;p&gt;For the past two years, the default mental model for AI has been: send your data to a powerful server, get results back. OpenAI, Anthropic, Google — they all operate on this assumption. You pay per token, your data traverses the internet, and the model lives somewhere you'll never see.&lt;/p&gt;

&lt;p&gt;This worked fine when models were enormous and consumer hardware was weak. GPT-4 at launch required infrastructure that no individual could replicate. The cloud wasn't just convenient — it was the only option.&lt;/p&gt;

&lt;p&gt;But hardware caught up faster than most expected. Apple's M-series chips turned laptops into credible inference machines. The M4 Pro can run a 4-billion parameter quantized model at 476 tokens per second for prefill and 76 tokens per second for decode, using 4.3GB of peak memory. That's not a toy — that's production-grade speed for most interactive use cases.&lt;/p&gt;

&lt;p&gt;Meanwhile, the model side moved just as fast. Quantization techniques (GGUF, AWQ, GPTQ) made it possible to shrink models dramatically without proportional quality loss. A well-quantized 7B model today outperforms the full-precision 13B models of 18 months ago on most practical tasks.&lt;/p&gt;

&lt;p&gt;The gap between "what you can run locally" and "what you need from the cloud" is narrowing every quarter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Developers Care About Local
&lt;/h2&gt;

&lt;p&gt;The HN thread was revealing because it surfaced the actual motivations, not the marketing ones. Here's what kept coming up:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy isn't paranoia.&lt;/strong&gt; Developers working on proprietary codebases, medical data, legal documents, or internal communications can't send that to third-party APIs without violating policies, NDAs, or regulations. This isn't about tinfoil hats — it's about professional responsibility. A developer at a bank can't pipe customer data to OpenAI's API, no matter how good the model is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Latency is UX.&lt;/strong&gt; A local model responds in milliseconds. No network round-trip, no queue, no cold start. For code completion, text editing, or any interactive workflow, the difference between 50ms and 500ms is the difference between a tool that feels invisible and one that interrupts your flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost compounds.&lt;/strong&gt; API pricing looks cheap per call, but it adds up. A team of 10 developers making moderate use of GPT-4 for coding assistance can easily spend $2,000-5,000/month. A local model on existing hardware costs nothing after setup. For startups and indie developers, this matters enormously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline availability.&lt;/strong&gt; Planes, trains, bad WiFi, rural areas, classified environments — there are many contexts where internet access is unreliable or prohibited. Local models work everywhere your hardware goes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control and reproducibility.&lt;/strong&gt; When you run a model locally, you know exactly which version, which weights, which quantization you're using. Cloud APIs change without notice. Models get updated, deprecated, or have their behavior modified. Local inference gives you a frozen, reproducible environment.&lt;/p&gt;

&lt;p&gt;None of these are theoretical. They're daily realities for working developers.&lt;/p&gt;

&lt;p&gt;What's notable is that these motivations cut across experience levels and company sizes. A solo indie developer cares about cost. A staff engineer at a Fortune 500 cares about compliance. A researcher cares about reproducibility. A journalist in a hostile regime cares about privacy as a survival matter. Local AI serves all of them with the same architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Ecosystem That Made It Possible
&lt;/h2&gt;

&lt;p&gt;Local AI didn't become practical because of one breakthrough. It happened because an entire ecosystem matured simultaneously:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;llama.cpp&lt;/strong&gt; made inference accessible. Georgi Gerganov's C++ implementation proved you could run large language models on consumer hardware without Python, without CUDA, without a GPU cluster. It was a proof of concept that became infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ollama&lt;/strong&gt; made it approachable. Download a model, run it with one command, expose an API. Ollama did for local LLMs what Docker did for containers — it removed the setup friction that kept most developers from trying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apple's MLX framework&lt;/strong&gt; brought first-party support. Apple clearly sees on-device AI as a strategic differentiator. MLX is optimized for Apple Silicon in ways that third-party frameworks can't match, and Apple Intelligence's architecture is explicitly local-first with cloud as fallback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hugging Face's ecosystem&lt;/strong&gt; provided the models. The proliferation of open-weight models (Llama, Mistral, Phi, Qwen, Gemma) meant developers had real choices. Competition drove quality up and size down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quantization research&lt;/strong&gt; made the math work. Papers like GPTQ, AWQ, and QuIP# showed that aggressive quantization (4-bit, even 2-bit) could preserve model quality for most practical tasks. This was the key that unlocked consumer hardware — you don't need 70B parameters if 7B quantized gets you 90% of the way there.&lt;/p&gt;

&lt;p&gt;The result: in 2024-2025, running a competent local model went from "impressive hack" to "standard developer workflow." The HN post didn't create this trend — it named something that was already happening.&lt;/p&gt;

&lt;p&gt;It's worth noting how fast this moved. In early 2023, running any useful model locally required a beefy NVIDIA GPU and considerable technical skill. By late 2024, a MacBook Air could run a 7B model with no configuration beyond installing Ollama. That's a two-year journey from "research project" to "commodity tool."&lt;/p&gt;

&lt;h2&gt;
  
  
  Apple's Bet Tells You the Direction
&lt;/h2&gt;

&lt;p&gt;Apple's approach to AI is worth studying because Apple doesn't make speculative bets. They ship what they believe will be the default in 3-5 years.&lt;/p&gt;

&lt;p&gt;Apple Intelligence is architecturally local-first. The on-device model handles most requests. Only when a task exceeds local capability does it route to Private Cloud Compute — and even then, Apple designed PCC so that data is processed in a stateless enclave that even Apple employees can't access.&lt;/p&gt;

&lt;p&gt;This isn't just a privacy story. It's an architecture story. Apple is betting that the future of AI interaction is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Most inference happens on-device&lt;/li&gt;
&lt;li&gt;The cloud is a capability fallback, not the default&lt;/li&gt;
&lt;li&gt;Users shouldn't have to think about where processing happens&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The MLX framework, the Neural Engine improvements in each chip generation, the Core ML optimizations — these are multi-year, multi-billion-dollar investments. Apple doesn't spend that money on trends they think will reverse.&lt;/p&gt;

&lt;p&gt;When the largest company in the world builds its AI strategy around local inference, that's a signal worth paying attention to.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Local Models to Local Agents
&lt;/h2&gt;

&lt;p&gt;Here's where the conversation gets interesting, and where the HN thread didn't fully go.&lt;/p&gt;

&lt;p&gt;Running a model locally is valuable, but it's still fundamentally a chat interface. You ask, it answers. The model is a brain in a jar — it can think, but it can't act.&lt;/p&gt;

&lt;p&gt;The next logical step is obvious: if you can run inference locally, why not run agents locally?&lt;/p&gt;

&lt;p&gt;An agent doesn't just generate text — it perceives your screen, understands context, and takes actions. It clicks buttons, fills forms, navigates applications, moves files. The gap between "AI that tells you how to do something" and "AI that does it for you" is the gap between a language model and an agent.&lt;/p&gt;

&lt;p&gt;Cloud-based agents have a fundamental problem: they need to see your screen. That means streaming your desktop to a remote server continuously. Every document you open, every email you read, every private message — all sent to someone else's infrastructure. Even if you trust the provider today, you're creating a surveillance surface that didn't need to exist.&lt;/p&gt;

&lt;p&gt;Local agents solve this elegantly. The model runs on your machine. It perceives your screen locally. It acts locally. Your data never leaves your device because there's nowhere else for it to go.&lt;/p&gt;

&lt;p&gt;This is where the "local AI as norm" argument becomes strongest. For chat and text generation, privacy concerns are manageable — you can be careful about what you paste into a prompt. But for agents that continuously observe your workflow? Local-only isn't a preference; it's a requirement for anyone who takes security seriously.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Puzzle of On-Device Agents
&lt;/h2&gt;

&lt;p&gt;Building a local agent is harder than running a local chatbot. The challenges are specific:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vision understanding.&lt;/strong&gt; The agent needs to interpret screenshots — understand UI elements, read text, recognize buttons, comprehend layouts. This requires vision-language models that are both capable and small enough to run locally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action grounding.&lt;/strong&gt; Seeing a button is different from knowing how to click it. The agent needs to map visual understanding to precise coordinates and actions. This is a harder problem than it sounds — UI elements are dynamic, vary across applications, and don't come with semantic labels accessible to the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed.&lt;/strong&gt; An agent that takes 10 seconds to decide what to click is useless for interactive workflows. Inference needs to be fast enough that the agent feels responsive, not laggy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability.&lt;/strong&gt; Unlike a chatbot where a bad response is just annoying, an agent that clicks the wrong button can cause real damage. Accuracy matters more when the model has agency.&lt;/p&gt;

&lt;p&gt;These constraints push toward a specific architecture: small, fast, vision-capable models that are optimized for action prediction rather than general conversation. You don't need GPT-4-level reasoning for most UI interactions — you need precise, fast, visual understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Vision-Only Matters
&lt;/h2&gt;

&lt;p&gt;There are two approaches to building GUI agents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessibility-tree based:&lt;/strong&gt; Parse the application's DOM or accessibility API to get structured data about UI elements. Feed that structure to the model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vision-only:&lt;/strong&gt; Give the model a screenshot. Let it figure out what's on screen the same way a human would — by looking.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The accessibility approach seems easier, but it's brittle. Not all applications expose clean accessibility trees. Electron apps, games, custom UI frameworks, remote desktops — they all have incomplete or missing accessibility data. You're building on an abstraction that the underlying applications don't reliably provide.&lt;/p&gt;

&lt;p&gt;Vision-only is harder to build but more robust in deployment. If a human can see it and interact with it, a vision-based agent can too. No dependency on application internals, no platform-specific APIs, no breaking when an app updates its UI framework.&lt;/p&gt;

&lt;p&gt;This mirrors how humans actually interact with computers. We don't read the DOM — we look at the screen and click what looks right. A vision-only agent generalizes the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Convergence
&lt;/h2&gt;

&lt;p&gt;Put the pieces together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local inference is fast enough for interactive use&lt;/li&gt;
&lt;li&gt;Vision-language models are small enough to run on consumer hardware&lt;/li&gt;
&lt;li&gt;Developers want their data to stay local&lt;/li&gt;
&lt;li&gt;Agents are the natural evolution beyond chatbots&lt;/li&gt;
&lt;li&gt;Vision-only approaches generalize across applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The convergence point is clear: on-device AI agents that see your screen, understand your intent, and act locally — with zero data leaving your machine.&lt;/p&gt;

&lt;p&gt;This isn't a prediction about 2030. The hardware exists today. The models exist today. The demand — as that HN post demonstrated — has been here for a while.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where We're Putting Our Work
&lt;/h2&gt;

&lt;p&gt;At Mininglamp Technology, we've been building toward this convergence with &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;Mano-P&lt;/a&gt; — an open-source, on-device GUI agent that runs locally on Mac.&lt;/p&gt;

&lt;p&gt;Mano-P takes the vision-only approach: it perceives your screen through screenshots and executes actions directly, with no data leaving your device. On the OSWorld benchmark, it achieves 58.2% accuracy — currently ranked #1. The 4B quantized model runs on an M4 Pro at 476 tokens/s prefill and 76 tokens/s decode, with 4.3GB peak memory usage. It's licensed under Apache 2.0.&lt;/p&gt;

&lt;p&gt;We built it because we believe the argument in that HN post is correct: local AI should be the norm. And local agents are where that norm leads.&lt;/p&gt;

&lt;p&gt;If this direction resonates with how you think about AI tooling, the &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;repo is open&lt;/a&gt;. Contributions and stars are always appreciated.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>privacy</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Full-Stack On-Device GUI Agent — Mano-P Model + Cider + AFK, All Open Source</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Wed, 06 May 2026 11:06:58 +0000</pubDate>
      <link>https://forem.com/mininglamp/full-stack-on-device-gui-agent-mano-p-model-cider-afk-all-open-source-1gaa</link>
      <guid>https://forem.com/mininglamp/full-stack-on-device-gui-agent-mano-p-model-cider-afk-all-open-source-1gaa</guid>
      <description>&lt;h1&gt;
  
  
  Full-Stack On-Device GUI Agent — Mano-P Model + Cider + AFK, All Open Source
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;GUI automation (Computer Use Agent) is becoming a key capability in the AI agent ecosystem. However, most existing solutions rely on cloud-based inference — every screenshot captured during task execution must be uploaded to a remote server for visual understanding. This creates significant data privacy concerns, especially in enterprise and security-sensitive environments.&lt;/p&gt;

&lt;p&gt;Today, we are officially open-sourcing the &lt;strong&gt;Mano-P 1.0-4B local model&lt;/strong&gt;, the &lt;strong&gt;Cider inference acceleration SDK&lt;/strong&gt;, and &lt;strong&gt;Mano-AFK&lt;/strong&gt; (an end-to-end automated app builder) — bringing a complete on-device GUI agent stack to Apple Silicon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All screenshots and task data stay on your device. No cloud APIs required.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncchcu8a59yayqdyimux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncchcu8a59yayqdyimux.png" alt="Mano-P Architecture" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Mano-P
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mano-P&lt;/strong&gt; is an open-source GUI-VLA (Vision-Language-Action) agent designed for edge devices. "Mano" means "hand" in Spanish, and "P" stands for Private — we believe individuals and organizations should be able to create their own private AI.&lt;/p&gt;

&lt;p&gt;Built on the full Mano technical framework (&lt;a href="https://arxiv.org/abs/2509.17336" rel="noopener noreferrer"&gt;Mano Technical Report&lt;/a&gt;), Mano-P uses a three-stage progressive training pipeline (SFT → Offline RL → Online RL) with a think-act-verify reasoning loop to achieve high-precision GUI understanding and operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmark results (Mano-P 1.0-72B):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OSWorld&lt;/strong&gt; (Specialized GUI Agent Models): &lt;strong&gt;58.2% success rate&lt;/strong&gt;, ranked #1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebRetriever Protocol I&lt;/strong&gt;: &lt;strong&gt;41.7 NavEval score&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn84c2hme34qvu6ji68fk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn84c2hme34qvu6ji68fk.png" alt="OSWorld Benchmark" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-P 1.0-4B Local Model
&lt;/h2&gt;

&lt;p&gt;The Mano-P 1.0-4B model runs directly on Apple Silicon devices with no internet connection required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardware Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apple M4 chip or above (Mac mini / MacBook)&lt;/li&gt;
&lt;li&gt;32GB+ unified memory&lt;/li&gt;
&lt;li&gt;Alternatively: Mano-P compute stick via USB 4.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Performance (Apple M5 Pro, 64GB RAM):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;W8A16: Prefill 2.839s, Decode ~80 tokens/s&lt;/li&gt;
&lt;li&gt;W8A8 (with Cider): Prefill 2.519s, Decode ~79.5 tokens/s&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;~12.7% prefill speedup&lt;/strong&gt; with Cider W8A8&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; In local mode, all inference runs on-device via MLX. No screenshots or task descriptions are transmitted over the network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🤗 &lt;a href="https://huggingface.co/Mininglamp-2718/Mano-P" rel="noopener noreferrer"&gt;HuggingFace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🪄 &lt;a href="https://modelscope.cn/models/Mininglamp/Mano-P" rel="noopener noreferrer"&gt;ModelScope&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cider — INT8 Activation Quantization SDK for MLX
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cider&lt;/strong&gt; is an open-source inference acceleration SDK for macOS, built on Apple MLX.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Cider Exists
&lt;/h3&gt;

&lt;p&gt;MLX's built-in quantization is &lt;strong&gt;weight-only&lt;/strong&gt;: &lt;code&gt;QuantizedLinear&lt;/code&gt; dequantizes weights to FP16 and runs FP16 GEMM. MLX does not provide a true W8A8 inference path where both weights and activations are quantized to INT8 for computation.&lt;/p&gt;

&lt;p&gt;Cider fills this gap with custom Metal kernels that implement fused quantize-matmul-dequant primitives, exposed as MLX custom primitives with full lazy evaluation support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supported Modes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;W8A8&lt;/strong&gt;: INT8 symmetric weights + INT8 per-token activation quantization → TensorOps matmul2d&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;W4A8&lt;/strong&gt;: INT4 packed weights + INT8 per-token activation quantization → Unpack → TensorOps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Performance (Apple M5 Pro)
&lt;/h3&gt;

&lt;p&gt;End-to-end VLM acceleration: Cider W8A8 achieves &lt;strong&gt;1.4x–2.2x prefill speedup&lt;/strong&gt; vs MLX native W4A16, while maintaining comparable decode speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compatibility
&lt;/h3&gt;

&lt;p&gt;Cider works with &lt;strong&gt;any MLX model&lt;/strong&gt;, not just Mano-P. It also provides non-invasive compatibility patches for &lt;code&gt;mlx_vlm&lt;/code&gt; (verified on v0.4.3), fixing several issues with Qwen3-VL multi-image inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditional Compilation
&lt;/h3&gt;

&lt;p&gt;INT8 TensorOps C++ extensions build only on Apple M5+. On M4 devices, Cider installs as a pure Python package with &lt;code&gt;is_available()&lt;/code&gt; returning False. Use &lt;code&gt;CIDER_FORCE_BUILD=1&lt;/code&gt; to override.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/cider&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-AFK — End-to-End App Builder
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mano-AFK&lt;/strong&gt; is an automated application construction pipeline powered by Mano-P. From a single natural language description, it autonomously handles:&lt;/p&gt;

&lt;p&gt;Requirements clarification → Architecture design → Code generation → Deployment → E2E GUI testing → Bug fixing → Delivering a working application&lt;/p&gt;

&lt;p&gt;The E2E testing phase uses Mano-P as the local visual model backend, driving real browsers for GUI automation testing. When tests fail, the system automatically locates defects, fixes code, and re-verifies — forming a complete build-test-fix loop entirely on-device.&lt;/p&gt;

&lt;h3&gt;
  
  
  CUA Benchmark
&lt;/h3&gt;

&lt;p&gt;Test environment: Mano-P 4B on MacBook Pro M5 (16GB unified memory), 100 tasks across 5 auto-built web applications.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;W8A16: &lt;strong&gt;58.0% accuracy&lt;/strong&gt;, avg 6.1 steps, ~1,253 tok/s prefill&lt;/li&gt;
&lt;li&gt;W8A8 (Cider): &lt;strong&gt;54.0% accuracy&lt;/strong&gt;, avg 6.93 steps, ~1,453 tok/s prefill&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: On 16GB devices, W8A8 requires storing both original and INT8 weights, nearly doubling weight memory. Memory pressure may offset prefill gains. We recommend 4GB+ free memory beyond model size for full W8A8 benefit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/mano-afk&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install CLI&lt;/span&gt;
brew tap Mininglamp-AI/tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;mano-cua

&lt;span class="c"&gt;# Set up local mode&lt;/span&gt;
mano-cua check
mano-cua install-sdk
mano-cua install-model

&lt;span class="c"&gt;# Run locally&lt;/span&gt;
mano-cua run &lt;span class="s2"&gt;"Open Safari and search Python"&lt;/span&gt; &lt;span class="nt"&gt;--local&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Open Source Roadmap
&lt;/h2&gt;

&lt;p&gt;Mano-P follows a phased open-source strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase 1 (Released):&lt;/strong&gt; Mano-CUA Skills — for Agent enthusiasts using OpenClaw, Claude Code, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 2 (This Release):&lt;/strong&gt; Local model + Cider SDK — for developers with high security requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 3 (Coming Soon):&lt;/strong&gt; Training methods, pruning, and quantization techniques — for developers with custom model training needs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/Mano-P&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cider SDK: &lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/cider&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Mano-AFK: &lt;a href="https://github.com/Mininglamp-AI/mano-afk" rel="noopener noreferrer"&gt;github.com/Mininglamp-AI/mano-afk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Paper: &lt;a href="https://arxiv.org/abs/2509.17336" rel="noopener noreferrer"&gt;arxiv.org/abs/2509.17336&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;License: Apache 2.0&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;We welcome feedback via GitHub Issues and Discussions. If you're interested in on-device AI, we'd love to hear what you build with Mano-P.&lt;/p&gt;

&lt;p&gt;If you find this useful, consider giving us a ⭐ on GitHub — it helps us keep building in the open.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>apple</category>
    </item>
    <item>
      <title>Dual Launch! Mininglamp Technology Open-Sources Cider On-Device Inference Acceleration Framework and Mano-P On-Device Model</title>
      <dc:creator>Mininglamp</dc:creator>
      <pubDate>Wed, 06 May 2026 10:05:15 +0000</pubDate>
      <link>https://forem.com/mininglamp/dual-launch-mininglamp-technology-open-sources-cider-on-device-inference-acceleration-framework-227l</link>
      <guid>https://forem.com/mininglamp/dual-launch-mininglamp-technology-open-sources-cider-on-device-inference-acceleration-framework-227l</guid>
      <description>&lt;p&gt;Mininglamp Technology has officially open-sourced its self-developed Cider inference acceleration SDK (Software Development Kit) and the on-device GUI agent model Mano-P. Following the earlier open-sourcing of the Mano-CUA skill, this release of the Mano-P model vividly demonstrates the immense potential of on-device models in real-world business workflows. Meanwhile, the Cider framework addresses computation operators and hardware invocation mechanisms at the foundational level, empowering on-device large models to run smoothly on macOS local compute with greater efficiency and lower memory footprint.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Mininglamp-AI/Mano-P" rel="noopener noreferrer"&gt;GitHub-Mano-P&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Mininglamp-AI/cider" rel="noopener noreferrer"&gt;Cider SDK&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mano-P: Validating the Deployment Potential of On-Device Agents
&lt;/h2&gt;

&lt;p&gt;Mano-P is Mininglamp Technology's self-developed on-device GUI-VLA agent model. It understands and operates graphical interfaces through pure vision, without relying on traditional API integrations or being limited to browser scenarios. Instead, it can directly interact with desktop software, web-based systems, and more complex graphical workflows.&lt;/p&gt;

&lt;p&gt;Complex graphical interface interactions inherently demand robust multimodal visual understanding capabilities from the model. The model must continuously process screenshots at high frequency, precisely locate minuscule UI elements, and execute subsequent actions based on visual feedback. Under traditional cloud-based large model architectures, the token cost incurred by such high-frequency visual interactions is extraordinarily high.&lt;/p&gt;

&lt;p&gt;In contrast, the 4B-parameter Mano-P on-device model not only achieves accuracy comparable to cloud-based large models on CUA tasks but also completely eliminates the otherwise prohibitive cloud API call costs. In fully offline local mode, all application screenshots, interaction processes, and task data are strictly confined to the user's local device, making privacy protection a matter of "physical isolation" by design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cider: An On-Device Inference Acceleration Framework for Apple Silicon
&lt;/h2&gt;

&lt;p&gt;The core metrics that truly determine the usability of on-device models are local inference speed, hardware utilization, memory footprint, integration cost, and long-term stability. If inference speed is too slow, the AI interaction experience suffers significantly; if memory usage is too high, the model becomes difficult to deploy widely on mainstream devices; if integration costs remain prohibitive, enterprises and developers struggle to rapidly incorporate on-device capabilities into their business pipelines.&lt;/p&gt;

&lt;p&gt;Cider was born precisely to address these challenges. As a self-developed and open-sourced SDK from Mininglamp Technology, Cider is built on the Apple MLX ecosystem, purpose-built for macOS and Apple Silicon. It precisely fills the gaps in the native MLX framework regarding activation quantization and specific tensor computation capabilities, serving as a highly efficient on-device inference framework designed for the broad open-source model ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqxxza24mpchv9he49vlr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqxxza24mpchv9he49vlr.jpg" alt=" " width="800" height="289"&gt;&lt;/a&gt;&lt;br&gt;
Currently, the native Apple MLX architecture already supports weight quantization modes such as W4A16 and W8A16. Building upon this foundation, Cider further provides W8A8 and W4A8 inference paths. Through deep integration of online activation quantization, INT8 TensorOps computation, quantized matrix multiplication, and dequantization pipelines, Cider fully unleashes the underlying computational potential of Apple Silicon, enabling open-source models not merely to "run on Mac" but to operate smoothly with higher efficiency and lower memory consumption.&lt;/p&gt;

&lt;p&gt;In benchmark testing, Cider's operator speed in W8A8 mode achieves approximately 1.4x to 1.9x improvement over native MLX mode, with specific performance varying by Batch Size. In W4A8 mode, Cider further reduces weight memory footprint by 50% compared to W8A8 mode while matching the computational speed of native MLX's full-precision W4A16 approach in high-concurrency scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjlbwqhef2lpalev36wl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjlbwqhef2lpalev36wl.jpg" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;br&gt;
For the Qwen3-VL series of mainstream vision-language models, Cider demonstrates highly significant acceleration in end-to-end prefill scenarios. Under varying prompt lengths, compared to native MLX W8A16 mode, Cider's W8A8 PC mode delivers approximately 17% to 22% prefill speed improvement for the Qwen3-VL-4B model; for the Qwen3-VL-2B model, this speedup leaps to approximately 57% to 61%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufr0rd7ggsgwbfl9hyoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufr0rd7ggsgwbfl9hyoy.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;br&gt;
Additionally, Cider has performed deep optimization and non-invasive fixes for technical challenges such as RoPE position handling in multi-image inference, substantially improving inference stability for complex visual tasks. Since visual interaction tasks typically require processing longer contexts, more complex screenshot information, and denser inference requests, this magnitude of performance improvement is particularly critical for on-device VLMs and GUI agents.&lt;/p&gt;

&lt;p&gt;Furthermore, Cider actively explores heterogeneous collaboration between the Apple Neural Engine and GPU on the M4 chip. For a long time, on-device large model inference has primarily relied on GPUs, while the potential of the Neural Engine in Apple chips has remained largely untapped. By introducing an ANE+GPU heterogeneous tensor parallelism mechanism, Cider enables both types of compute units to work in concert, achieving an additional approximately 3% to 16% acceleration in certain test scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimal Integration, Enabling Local Acceleration for More Open-Source Models
&lt;/h2&gt;

&lt;p&gt;Cider seamlessly supports any LLM model, covering Qwen, Llama, Mistral, as well as VLM models such as Qwen3-VL, with a built-in OpenAI-compatible VLM inference service. Enterprises and developers need not rewrite model architectures—with only minimal code adaptation, integration can be achieved effortlessly.&lt;/p&gt;

&lt;p&gt;During the prefill phase, Cider supports enabling W8A8 INT8 TensorOps to dramatically boost computation speed; during the decode phase, the framework intelligently falls back to the original weight path, effectively avoiding unnecessary additional overhead.&lt;/p&gt;

&lt;p&gt;Whether enterprises aim to deploy highly customized local large language models within their internal networks, or developers are committed to building vertical-domain private AI application ecosystems, Cider provides a robust, reliable, and highly extensible underlying inference infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Toward Private AI: Building Local Intelligence Infrastructure
&lt;/h2&gt;

&lt;p&gt;In the past, most large model applications relied on cloud computing. Cloud-based models offer stronger scalability, but in enterprise scenarios, data transmission costs, privacy security, API call expenses, and network dependency have become issues that cannot be ignored. Particularly in scenarios involving internal systems, core business processes, sensitive interface screenshots, and task data, on-device AI brings the model closer to where data originates, reducing transmission risks while improving response speed and autonomous controllability.&lt;/p&gt;

&lt;p&gt;By enhancing local inference efficiency, Cider brings "data never leaves the device" closer to a truly viable engineering solution. When local models achieve better inference performance, enterprises gain the confidence to explore private AI deployment across more scenarios—such as local intelligent assistants, enterprise internal Agents, offline task execution, on-device multimodal analysis, and automated workflows with high confidentiality requirements.&lt;/p&gt;

&lt;p&gt;Going forward, Mininglamp Technology will also open-source the complete Mano-Action training methodology and related tools, helping enterprises and developers train customized GUI agent models based on their own data, or develop new training techniques on top of Mano-Action, fully empowering enterprise customization and algorithmic innovation.&lt;/p&gt;

&lt;p&gt;Mininglamp Technology is extending its deep expertise in intelligent agents, multimodal models, and enterprise-grade AI applications further down to the foundations of underlying inference frameworks and on-device model development. We are committed to providing developers and enterprise users with a complete, out-of-the-box private AI infrastructure, enabling AI to truly achieve private deployment, low-cost operation, and trustworthy real-world implementation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>agents</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
