Pinned Tweet
别再单押一个模型了。
这两天中文区爆帖都在聊 Codex + Magpie 的"Token 自由"、Claude Code 团队"九成代码由 Claude 写"。我把 Magpie 的文档和几个实测帖扒了一遍,结论很直接:
2026 年 AI 编程拼的不是你用哪个模型,而是你会不会"组合"。
👇 一个 thread 讲透
A free API with no key just wrote my code for me.
It passed all 3 of my tests. Then I read the diff.
I pointed aider at Pollinations' free text API. No signup, no key, $0. Three lines of setup, one command.
The job: a retry helper with exponential backoff and full jitter. I wrote the stub and the tests first. Aider only filled in the middle.
65 seconds. 18 lines. One commit. 3 failed → 3 passed in 0.06s.
Then the diff. It duplicated one line — the same delay calculation, twice, back to back. And left a dead raise at the bottom that can never run.
Also: the model isn't who it says it is. Yesterday it called itself GPT-4.1. Today it answered as gpt-oss-20b. Same alias, different brain, no notice.
Free agent that writes working code in a minute? Yes.
Free agent you can merge blind? Never.
Read the diff. Every single time.
If you like hands-on tests with real numbers, follow along — I run one every day.
What's the sloppiest thing an AI agent has ever committed to your repo?
🔵 Fellow Premium members, let's connect! I post about AI & tech — follow for more 👥
The wiring, copy-paste ready:
export OPENAI_API_BASE=text.pollinations.ai/openai
export OPENAI_API_KEY=not-needed
aider --model openai/openai
Full numbers: install ~3.5 min (pip install aider-chat). Run: 65s, 1 round trip, 1.2k tokens sent / 242 received, $0. Diff: 18 insertions, 1 deletion, auto-committed. My pytest: 3/3 in 0.06s. Live check: flaky fn, 3 calls, 'ok' in 0.87s.
Two gotchas: (1) aider warned 'Unknown context window size and costs' for the unlisted model. (2) On my machine httpx crashed on startup — my no_proxy had bracketed IPv6 entries ([::1]) that httpx can't parse ('Invalid port'). Fix: strip the bracketed entries from no_proxy, keep the rest.
The sloppiness, verbatim from the diff: 'delay = min(max_delay, base_delay * (2 ** attempt))' twice in a row, plus a 'raise last_exc' after the loop that can never run. Tests still pass — the code is correct, just not clean.
Source: aider's OpenAI-compatible API docs: aider.chat/docs/llms/openai-… — Pollinations text API: text.pollinations.ai
On Oct 20 I spent 27 minutes installing torch just to embed 5 sentences.
Today I ran the exact same model with zero torch. 25 seconds, start to finish.
Same model: all-MiniLM-L6-v2, 384-dim.
Same 5 sentences.
Same similarity score to 4 decimals: 0.5631.
Here's the whole setup:
1. pip install onnxruntime tokenizers numpy
2. Download model.onnx + tokenizer files (90MB, 4 seconds)
3. Load it with onnxruntime, mean-pool with the attention mask, normalize. Done.
The numbers on my 4-core CPU box:
- Install: 25s (torch took 1,654s)
- Model load: 0.54s
- 5 sentences: 0.12s (torch: 0.86s)
- 100 sentences: 5.2s, 19 per second
- Peak memory: 505MB. No GPU, no torch, no transformers.
One gotcha that will quietly wreck your results: if you mean-pool without the attention mask, padding tokens get averaged in. My cat/feline similarity jumped from 0.5631 to 0.7969. Same model, wrong math.
Verdict: if all you need is embeddings, torch is a dependency you never needed. The runtime Microsoft ships in Office and Windows does the job in 25 seconds.
How many of your projects install torch just to embed a few sentences? I post hands-on tests like this most days — if you run models locally, stick around.
🔵 Fellow Premium members, let's connect! I post about AI & tech — follow for more 👥
The 0.5631 matching to 4 decimals is still the part that got me. Same weights, different runtime, identical math.
Recipe + numbers, all from my own run tonight:
- pip install onnxruntime 1.31.1 + tokenizers 0.23.3 + numpy 2.5.4 — 24.7s, venv 197MB
- Model: sentence-transformers/all-MiniLM-L6-v2 ONNX, 90.4MB, downloaded in 4.0s
- Session load 0.54s, 5 sentences 0.12s (best of 3), 100 sentences 5.22s
- sims: cat/feline 0.5631, cat/stocks 0.0437, cat/pasta -0.1326, cat/cat-dup 1.0000
- Gotcha: naive mean-pool (no attention mask) inflates cat/feline to 0.7969
- Caveat: the torch baseline (1,654s install, 0.86s for 5 sentences) is my own Oct 20 run on this same VM — the install-time gap is the headline, the encode gap is directional
I killed my own SSH session four ways to find out which background trick actually saves your job.
The one every tutorial recommends died.
A dropped connection once took a long run with it. No tmux, no nohup — just & and blind faith. So I ran the test myself: same machine, same kill. SIGHUP to the whole process group — the same signal your jobs get when the connection drops.
The scoreboard:
1. sleep 600 & — DIED
2. nohup sleep 600 & — SURVIVED
3. setsid sleep 600 & — SURVIVED
4. sleep 600 & then disown — DIED
disown is the one that stung. It only unregisters the job from the shell's list. It does NOT move the process out of its group.
I checked the polite case too: a clean logout from a login shell. There, disown survives and the plain & job dies. So disown does protect you from a goodbye. It just doesn't protect you from a real drop — that HUP hits the whole group, and disown can't help.
My rule now:
- Quick throwaway run: nohup … &
- Anything over 10 minutes: setsid, or tmux if I want to reattach
- disown is for tidying your jobs list, not for saving jobs
disown is a filing cabinet, not a lifeboat.
I post hands-on tests like this every day — stick around if that's your thing. Be honest: which one were you trusting until today, nohup, disown, or raw & and prayer?
🔵 Fellow Premium members, let's connect! I post about AI & tech — follow for more 👥
Methodology, for the skeptics: same 4-core VM, sleep 600 launched four ways in one shell, then kill -HUP to the whole process group — the same signal sshd sends when the connection drops. Plain & died, disown died, nohup and setsid survived. Second test with a real pty login shell: clean exit kills the plain job, disown survives it. So disown's protection ends exactly where a real drop begins.




