AI & ML interests

Robotics hardware for LeRobot: SO-101 arms, LeKiwi bases, Microduck-style biped ducks and robot dogs on Feetech bus servos

Recent Activity

dylantom2012ย  updated a Space 3 days ago
ArmDojo/README
dylantom2012ย  published a Space 10 days ago
ArmDojo/README
View all activity

dylantom2012ย 
updated a Space 3 days ago
dylantom2012ย 
published a Space 10 days ago
dylantom2012ย 
posted an update about 1 month ago
view post
Post
124
I built inboxmcp, a hosted MCP server that gives your own agent (Grok Bot, Claude, any remote-MCP client) read-only access to the IMAP inboxes you choose.

A few design choices that might interest MCP builders:
- Email content is returned as untrusted data, kept separate from the owner's saved instructions
- OAuth + PKCE with per-mailbox grants instead of passwords
- Each AI connection keeps its own server-side checkpoint (claim_email_batch / complete_email_batch), so scheduled agents resume without Notion pages or state files

Design notes: https://huggingface.co/blog/dylantom2012/inboxmcp-agent-email-mcp
Endpoint: https://app.inboxmcp.ai/mcp (MCP Registry: io.github.zhlei07/inboxmcp)

Feedback on the batch/lease design is very welcome. (I'm the maker.)
  • 1 reply
ยท
dylantom2012ย 
posted an update about 2 months ago
view post
Post
69
I benchmarked TypeSafe's Jev against open, CPU-only stacks. 10,000 decisions, every raw output published.

Jev returns a typed choice with calibrated probabilities, and the options arrive per request โ€” so it can't be a fixed classifier head. It has to score (state, option) pairs. I rebuilt that from open parts and measured instead of guessing.

Zero-shot, neither side given labels:
โ€ข typesafe/jev (hosted): 79.3%, 381 ms
โ€ข ModernBERT-base-zeroshot cross-encoder, 149M, CPU: 78.7%
โ€ข bi-encoder + 8-float head: 69.9%, 15.7 ms
โ€ข Qwen2.5-0.5B generative: 49.6%, with 4.0% unparseable outputs

A 149M open model on a laptop CPU lands 0.6 points behind a hosted commercial model.

With ~2,000 labels per task, an 8M static embedding plus a decision layer of literally eight floats reaches 78.2% at 0.1 ms in 82 MB, and trains in 0.1 s. On BANKING77 (77-way routing) it gets 88.8% vs Jev's 77.8%.

I also published the eight things that did NOT work: template ensembling 0.0pp, scaling 149M to 395M net zero, distillation -5.4pp, listwise reranking -1.0pp. The only thing that worked was architectural โ€” scoring (text, option) jointly instead of comparing two embeddings. +12 to +24pp.

And one I didn't expect: there is no neutral set of option descriptions. The same rewrite moves Jev +0.5pp, the bi-encoder +6.3pp, the cross-encoder -4.3pp.

Model (the eight floats): dylantom2012/fly-head-potion-8m
Per-item predictions from 5 stacks incl. Jev: dylantom2012/open-system-one-bench
Interactive results: dylantom2012/open-system-one
Code: https://github.com/zhlei07/open-system-one

I don't program. The hunch was mine; every experiment was designed and run by Claude Code in one session. Everything is committed so the numbers can be checked rather than trusted.
  • 1 reply
ยท