Featured image of post After My Wheelchair Exploded: A自救 for a Severe AI Dependent

After My Wheelchair Exploded: A自救 for a Severe AI Dependent

All my model channels run through a local gateway. Last night it crashed and stayed down all night—crash loops, 12,000 auto-reboots, every exit dead. I woke up and realized I didn't even know how to manually start it. I'd been sitting in my wheelchair for a long time when it suddenly blew up. This post records the feelings of that moment and the prescription I wrote for myself: skip the degree, rebuild a foundational skill set from Nand2Tetris to operating systems.

The Sky Fell for a Whole Night

Let me start with what happened last night.

Running on this machine is a local gateway called CPA (CLIProxyAPI). Every major model provider—Claude, Grok, GLM—all routes through it. Eight AI tools: opencode, codex, kimi, pi, gemini, mimo, openclaw, hermes, plus claude itself. All egress points funnel through it. It’s my wheelchair, and I’ve been sitting in it for a long time.

At 21:59 the night before yesterday, it crashed. And not just crashed—it fell into an infinite loop.

The logs were terrifying: systemd restarted it every two seconds, it died, it came back, it died again—for eight straight hours, over twelve thousand automatic restarts. It was still crashing while I slept, and when I woke up, every tool was down. At 5:39 AM, a recovery action finally stopped it (that also froze the restart counter at 12,443); at 5:42 AM it was brought back up, and for the next fifteen hours, zero failures.

After the dust settled, the chain of events was clear: one agent broke the config, another agent happened to fix it while patching some other tool, and the whole night was held together by systemd alone. What really kept me afloat was a single line—Restart=always—and an automated recovery process I had nothing to do with.

I slept through the whole thing.

The first thing I felt upon waking wasn’t checking the logs—it was a very unfamiliar panic: if systemd hadn’t held it together, if no one had fixed it, I wouldn’t know how to bring it back manually.

I’m not saying I never learned this. I built this gateway myself, step by step. I configured the systemd service myself. But for the past several months, every problem has been handled by agents: log agents reading, config agents changing, restart scripts agents writing. Three months ago I could’ve probably pulled the entire service back up with my bare hands. Today, staring at that service name, I couldn’t even remember whether to use status or –user.

It’s like someone who’s been in a wheelchair so long they’ve forgotten how to use their legs.

After Digging In, the Sky Didn’t Fall

Bottom line first, so this doesn’t read like a sob story: everything is fine now.

The service is alive, stable for over ten hours, health check returning 200, 100+ models registered, I tested one end-to-end and it responded normally. All eight tools individually verified—every one working.

I later looked at the journal and found something that made my back go cold: the restart counter had stopped at 12,443. At first glance I thought it was a lifetime cumulative total, but looking closer, it had only been at 286 before the loop started. Of those twelve thousand-plus restarts, 98% came from that single night. This wasn’t a minor incident I happened to walk through—I was in a full-blown infrastructure blackout for an entire night, and I was asleep.

But the panic wasn’t only about numbers. It asked me a question I couldn’t answer:

How much engineering skill do I have left without agents?

The Wheelchair Isn’t the Problem—Forgetting How to Walk Is

When I calmed down, I realized the dependency itself isn’t wrong. I have attention deficit; agents aren’t a luxury for me, they’re infrastructure. In the past two months, I’ve shipped security research, a blog pipeline, and several products using this setup. The wheelchair let me go places I couldn’t reach before—that’s just a fact.

The problem is elsewhere: the longer you sit in a wheelchair, the more you forget how far you could originally walk.

Not all skills have atrophied. I use architecture judgment every day—it only gets sharper. Troubleshooting intuition too: when an agent can’t fix something, I’m still the one making the call. What’s actually degrading is the底层手感—the command-line muscle memory, the system-level causal chains, the complete flow of pulling a service up from scratch. Those used to be my hands-on work; now they’ve all become agent inputs and outputs. I’m standing outside the pipe, watching the dashboard.

Stare at a dashboard long enough and you start thinking you understand the pipes.

So I’ve Decided to Go Back to School—Without the Degree

That morning after I woke up, my first reaction was: go get a computer science degree.

After thirty minutes of cooling off, I shot that down. Because once I拆开了 my motivation, I realized what I actually want isn’t a diploma—it’s that systematic training. The valuable part of a degree is the curriculum sequence and the hands-on labs that force you to build things, and both are freely available now. The most expensive part of the degree path is time: enrollment, exams, lining up for someone else’s schedule.

So it’s self-study, but self-study “like a university”: ordered, with labs, no skipping. I mapped out three layers:

Layer one: lay the foundation (four to six months). Core track: Nand2Tetris—the course with the tagline “from NAND gates to Tetris.” Week one: build NOT, AND, OR gates from NANDs; by the end, you assemble a working computer yourself, then write an assembler, a virtual machine, and a compiler for it, all the way to a minimal operating system. CS50 runs parallel as a supplementary track to rebuild coding feel. The expected payoff is clear: computers have no magic—if every layer was built by your own hands, you’ll know exactly where it broke when it does.

Layer two: three hard bones (one to one-and-a-half years). Computer Systems: A Programmer’s Perspective with CMU labs; MIT 6.S081, modifying a real kernel on xv6; Computer Networking: A Top-Down Approach. These three are the core of a CS major’s “systems intuition.” After finishing networking, the next time something like ISP-interfered SSH or a frozen proxy pool hits—real problems I’ve actually encountered in my own environment—I won’t wait for an agent to save me. I’ll know exactly which layer to dig into.

Layer three: use my own machine as the battlefield. Rule I set for myself: when something breaks, troubleshoot it by hand for thirty minutes before calling an agent. I run a full stack of real infrastructure at home—gateway, containers, tunnels, databases—stuff most students have to fabricate project ideas to practice with. I already have it all. Those thirty minutes of hands-on debugging are the training itself, and everything I learn applies to real things.

The task for Day 1 of Layer one is already set, and it’s small: download the software suite, fill out one AND gate file from the first project.

Finally

Leaving myself three kill-switch commands in case the wheelchair blows up again:

1
2
3
systemctl status cli-proxy-api.service      # check if it's alive or dead
sudo systemctl restart cli-proxy-api.service  # manual restart
curl http://127.0.0.1:8317/healthz          # probe liveness; 200 means it's up

Three commands, typed one by one into the terminal. Only after typing them did I realize: this is probably the first time in months I’ve touched this system with my own hands, without any agent.

I’ll keep riding the wheelchair—it genuinely is fast. But my legs need to get strong again.

As I finish writing this, the service has been running stably for over ten hours now. It has no idea that the night it crashed pulled me back to school.