psikosen/canopy-258m-r3-v3
0411
Canopy-258M-R3 v3: Ultra-Accelerated Edge Browser Agent & MoE Flagship
Canopy-258M-R3 v3 is an ultra-efficient 258.56M parameter Recurrent Mixture-of-Experts (MoE) model optimized for high-speed edge computing, tool synthesis, and browser automation.
v3 introduces the Hybrid Input Protocol and Event-Driven DOM Synchronization, achieving a 2.02x speedup across real-world browser batteries and a 5.1x acceleration (500%+) on multi-step interactive forms.
What is New in v3
- Hybrid Input Protocol (`ActionExecutor`):
- Automatically differentiates static form fields (passwords, emails, registration, multi-step wizards) from reactive stream targets (search autocompletes, live comboboxes, typeaheads).
- Static Form Inputs: Uses atomic CDP
fill()with standard DOMinputandchangeevent dispatch, dropping typing latency from >1,400 ms down to <40 ms (35x acceleration). - Interactive Streams: Automatically detects search/combobox targets and preserves natural Gaussian typing cadence ($\mu=35 ext{ms}$) so reactive debounce and AJAX handlers populate suggestions properly.
- Developer control supported via
BrowserAction(stream_input=True|False).
- Snappy Cubic Bézier Motor Kinematics:
- Calibrated cubic Bézier trajectory duration (80 ms – 220 ms, 8–16 steps) with smoothstep ease-in/ease-out curves and sub-pixel micro-jitter.
- Preserves human motor telemetry to avoid synthetic robotic detection while eliminating sluggish travel lag.
- Event-Driven Scroll Mutation Synchronization:
- Streamlined wheel step dispatch with immediate
scrollandresizewindow event notifications. - Instantly triggers
IntersectionObserverhandlers and dynamic infinite scroll listeners without stalling.
- Structured Data Scraping & Web Extraction Engine:
- First-class structured parsing for tables (2D row/column matrices), lists, and individual element attributes via
controller.scrape_table(),controller.scrape_element(), andcontroller.scrape_page().
- Visual Step Logging & Audit Receipts:
- Step-by-step high-resolution PNG screenshot auditing with illuminated green bounding boxes on target marks, glowing red coordinate reticles, and top-left HUD step badges.
Performance Benchmarks: v2 vs v3 (7-Scenario Battery)
Complex Chained Actions Benchmark (Multi-Stage Orchestration)
Model Architecture Specifications
Quickstart: Python Inference & Web Automation
1. Model Loading
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "psikosen/canopy-258m-r3-v3"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = "<|im_start|>user\nWrite a Python function to extract all email addresses from a web page.<|im_end|>\n<|im_start|>assistant\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.2)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))2. Fast Browser Agent Execution (miniswardbower)
import asyncio
from miniswardbower.browser.controller import BrowserController
from miniswardbower.core.config import BrowserConfig
from miniswardbower.core.schemas import BrowserAction, BrowserActionType
async def run_agent():
controller = BrowserController(BrowserConfig(headless=True))
await controller.start()
try:
await controller.goto("https://news.ycombinator.com")
# 1. Scrape structured data
page_data = await controller.scrape_page()
print("Page Title:", page_data.get("title"))
# 2. Fast atomic fill
await controller.execute_action(
BrowserAction(op=BrowserActionType.TYPE, target="input[name='q']", text="LLM Edge", stream_input=False)
)
await controller.execute_action(
BrowserAction(op=BrowserActionType.PRESS, key="Enter")
)
finally:
await controller.stop()
asyncio.run(run_agent())License
Released under the Apache 2.0 License.
