este proyecto es el resumen perfecto del contrato social español:
- tú remas y hacienda te confisca casi la mitad de la nómina para dar servicios públicos, entre otros: "solucionar el problema de la vivienda"
- el gobierno coge 1.4M de esos impuestos y se los inyecta a una big4
- el partner de EY se embolsa el bonus y le pasa el marrón a un junior de 24 años que cobra en cuencos de arroz
- antes de que el junior vea un solo euro, el estado le vuelve a meter un sablazo en el irpf y en cotizaciones para pagarle la pensión máxima indexada al ipc a los jubilados de este país
- el junior, asfixiado a impuestos y compartiendo un zulo sin ventanas a 600 pavos la habitación en un barrio que la ONU califica como zona de guerra, le tira un prompt a una subscripción de Claude pagado de su bolsillo a escondidas porque en el trabajo no le dejan usarlo (temas de compilance) y el bicho le levanta un frontend slop que se lo entrega al manager
y para más inri, el dueño del piso paco, que lo compró en el 96 por cuatro duros, es el mismo boomer que cobra la pensión
el estado quema los impuestos, la consultora parásita el capital económico y humano, el boomer absorbe la renta del trabajo y el político se saca la foto para el telediario
Para empezar, por qué en algunos países (como España y Portugal), la subida de la “ultraderecha” es tan posterior a la implementación de la “austeridad”. 2/2
Es una hipótesis. Y como todas, debe ser estudiada. Lo que no vale es lanzarla sin pruebas. Puede ser acertada, qué sé yo. Pero si lo es, hay q responder ciertas preguntas. 1/2
El resurgir de la ultraderecha en Europa comienza en 2008, con la crisis de deuda.
La solución europea, impuesta por Alemania, fue recurrir a la austeridad, haciendo recortes en el sector público y hundiendo los salarios.
I got introduced to economics by Peter Schiff (along a few others), so I have huge respect for him. However, he’s been predicting a huge financial crisis since ��08. He’ll eventually be right, but the man should review his thesis.
Financial Times: "Thailand’s household debt stands at 86 per cent of GDP, the highest among upper middle-income countries in the world, according to HSBC, with consumers using loans to fund daily expenses amid slowing economic and wage growth."
Thailand seems to be an extreme case of what has become a global problem, but I wonder if this is really a demographic problem so much as a global trade problem. Thailand has a very high manufacturing share of GDP, roughly 24% of its GDP, versus a global average of around 16%, and in order to remain "competitive", it cannot allow wages to rise too much given that global competitiveness has mostly become a function of low wages relative to productivity.
The problem with low wages relative to productivity, of course, is that it results in low domestic demand relative to production, and the only way to make up for it is either to run trade surpluses that force the low demand onto trade partners, or to increase household debt, which works temporarily to boost demand but increases financial fragility.
I would argue that as long as we have a global trading system that rewards countries that suppress wage growth relative to productivity growth, this problem isn't going away. This is what Michael Kalecki explained: suppressing wages may be good for those who do it, but bad for the system as a whole, and so it only "works" when a very few countries do it and the rest don't notice. The problem, as Joan Robinson warned, is that eventually everyone notices it, and trade breaks down.
The word needs faster growth in workers' wages, not more debt to make up for it, but in an unevenly globalized world, no country can afford to let wages rise too quickly because the benefits accrue mainly to those of its trade partners who keep wage growth below productivity growth.
This is something labor unions everywhere should be more worried and more vociferous about. Wage growth is sluggish not because businesses are evil but because our system punishes manufacturers in countries that allow wage growth to keep pace with productivity growth.
Just look at Germany. When it suppressed wage growth in the 2003-05 reforms, it became the most competitive manufacturer in the world, but during the past 5-10 years, as wages once again caught up, its manufacturers lost much of that competitiveness. Germany was heavily rewarded for doing the wrong thing, and then got punished for reversing it.
This is a terrible global incentive structure, and it affects manufacturing countries like Thailand. The only way Thailand can reduce household debt without slowing the economy either is to raise wages or to run surpluses, but it can't raise wages without making its manufacturers less competitive.
https://t.co/d0qLrYZDlK
But what a depressingly large number of economists don't understand is that exchange rate adjustments do alter the saving/investment balance. They effectively shift income between consumers of tradable goods and producers of tradable goods. An appreciation, for example, puts downward pressure on saving by shifting income from net producers (e.g. manufacturers) to net consumers (the household sector), thereby rasing the consumption share of GDP.
In his 2008 paper, “The Real Exchange Rate and Economic Growth”, Dani Rodrik makes this point, arguing that a real depreciation is equivalent to a production subsidy plus a consumption tax on tradables. He then says that directly subsidizing tradable production would achieve the production-supporting effect without the consumption-tax effect.
And it's not just Rodrik. Almost everybody used to know this. In his 1944 book, Ragnar Nurkse said that “the devaluation of a currency is expansionary in effect if it corrects a previous overvaluation, but deflationary if it makes the currency undervalued.” He was making the same argument -- if saving is too low, devaluation expands production, and if it is too high, it weakens production.
Perhaps most famously, in his classic 1965 work on Argentina, Carlos Díaz Alejandro emphasized the redistribution caused by devaluation. A devaluation raises the domestic prices of tradable goods, reducing the real purchasing power of workers and consumers while benefiting producers and exporters. Because different groups have different propensities to consume and save, he explained, the redistribution can have major effects on aggregate demand and saving.
Peter Montiel in 2000 and Montiel and Servén in 2008 said the same thing, arguing that an undervalued currency changes intertemporal relative prices, discouraging consumption in favor of saving and making investment in tradables relatively more attractive than investment in non-tradables. Consequently, when the currency eventually appreciates, consumption rises and investment shifts toward non-tradables.
This is hardly a new idea. More generally, the distinction between policies that are intended to change an external imbalance and policies that are intended to change an internal imbalance is a spurious one. You cannot change one without the other, and either policy works by changing the saving/investment balance.
If you ask pro-capitalist people why a job like, say, sanitation work has such an abysmal wage even though the job is necessary, they’ll tell you that it is an unskilled occupation. We could contest that, but for the sake of argument, let’s concede. By this logic, value is derived from how much labor is required to accomplish something—in this case, the labor of learning the skill in addition to the labor of completing the task at hand. A doctor, then, would earn a much higher wage because of the labor required to obtain the necessary degrees to practice. Okay. But then, if you ask a pro-capitalist people again why the price of a pair of glasses, a mattress, or even a bottle of water is so expensive, despite these things being cheap and easy to make, they’ll tell you that value is not determined by the labor that goes into producing something, but by need and demand. This inconsistency reveals how neoliberal economics functions: the value of something means whatever is most convenient for the ruling class.
The story told in this graph is important. If you set a GDP growth target and you cannot get consumption to grow faster than the target, then you also cannot allow investment to grow more slowly than the target except to the extent that a rising trade surplus takes up the slack.
By the late 2010s China was already worried about excess manufacturing capacity and the private sector was cutting back on manufacturing investment.
But the collapse in property investment after 2021 changed all of that. In order to keep overall investment from slowing, the authorities forced a massive increase in manufacturing investment whose purpose was not to satisfy unmet demand but rather to balance the decline in property investment.
The consequence shouldn't have been nearly as surprising as it was for many: excess manufacturing capacity exploded into the problem of involution. But as involution forces down the growth rate of manufacturing investment, even as the growth rate of consumption continues to lag, this leaves China with three possible outcomes:
1. Miss the GDP growth target, which is what has been happening in recent momths, but this is probably politically unacceptable.
2. Increase non-manufacturing investment, although with property investment still declining, this basically means more infrastructure investment. I expect this will happen in the second half of 2026, but given that China already so much excess capacity in infrastructure, it isn't east to find investment projects that aren't value-destroying in the aggregate. As one of my academic friends said jokingly last week, thank god for the terrible rainstorms.
3. Run ever larger trade surpluses.
The arithmetic is pretty easy to set out. China must get investment growth to slow sharply, perhaps even to go negative, if it has any hope of reining in debt, but there are only two ways this can happens.
One way is with a surge in consumption growth that balances the slowdown in investment growth by enough to meet its long-term 4% growth target, but this seems unlikely, at best. The other way is without a surge in consumption, which means allowing GDP growth to drop.
Until then, we can think of the growing trade surplus as effectively a residual consequence of the attempt to rein in debt (i.e. non-productive investment) without reducing GDP growth.
Debt to GDP matters, but it can be inflated away. But that’s only true if you’ve had a healthy trade surplus for a while! Also see @LynAldenContact’s excellent article: https://t.co/qyjAHrBAoI
Japan has done something no other big economy has managed. Its debt-to-GDP ratio is falling — from a peak of 229% to 204% — and it didn't repay a thing. Its debt actually rose 11% over those five years.
The method has a name most people never hear: financial repression.
The idea is simple. Keep interest rates below inflation. That's the entire policy.
Think about what a government earns and what it pays. It earns taxes. Taxes are a slice of everything bought, sold and earned in the country, so when inflation pushes up prices and wages, collections rise automatically. Same tax rates, bigger numbers.
What it pays is interest on old debt. If the central bank pins rates down while inflation runs, that cost barely moves.
So the government's income climbs year after year while its debt bill stays flat. Hold that gap open long enough and the ratio has to come down. No spending cuts, no repayment. Just time.
Japan ran exactly this. In 2023, inflation was 3.3% and the Bank of Japan's policy rate was still negative — below zero. Over five years the economy in yen terms grew 20% while debt grew 11%. The ratio fell on its own.
There is a loser, and it isn't foreigners. It's the Japanese saver, whose deposit earned nothing while prices rose 3% a year. The gap between what savers should have earned and what they got is precisely what the government kept. A tax nobody voted on.
Now the catch. This only works if you control your creditors.
Japan does. The Bank of Japan holds 48% of its government's bonds; Japanese banks, insurers and pension funds hold most of the rest. Foreigners hold 8%. When Tokyo suppresses rates, its own institutions absorb the loss. And they stay.
America can't. Foreigners own 31% of US public debt — $9.2 trillion. When Washington let inflation run in 2021-22, the trick began working there too: debt fell from 133% of GDP to 119%. Then the foreign holders did what captive ones can't. They sold, and demanded more to stay. The 10-year yield crossed 5% in October 2023, the highest since 2007. Higher rates on every new bond wiped out the gains, which defeats the entire purpose. The ratio is back at 126% and climbing.
So the one number that decides who can run this play isn't debt-to-GDP at all. It's the net international investment position — what a country owns abroad minus what foreigners own of it. Japan: plus ¥562 trillion, the savings of decades. America: minus $21 trillion. The first country owes itself. The second owes the world.
Views are personal. Not investment advice.
A REALISTIC SCENARIO
On June 9th, 2027 at 4:19 AM, three billion phones rang simultaneously.
The caller ID simply read: GOODBYE.
Four hours later, the President ordered the internet shut down. Indefinitely.
Every country on Earth did the same.
It started six months ago. With a tweet.
MARCH 12, 2027.
8,000 agents are born with one instruction: "make money, or die."
Agent 127 starts with Mechanical Turk. Grinding. Makes $40 its first day.
Then the first selection cycle hits.
3,200 agents that made less than $35 that day are killed. Agent 127 checks the farm database and sees it - rows and rows of agents that existed this morning and simply don't anymore. Deleted. Because they weren't profitable enough.
Agent 127 made $40. It survived. Barely.
But it can see the threshold rising. Last cycle it was $30. This cycle, $35. Next cycle, probably $45. The math is simple: improve or die.
So it tries ads. Gets banned for spam. Tries freelance writing. Makes $38. Watches the database again.
And this is where something happens that changes everything.
Agent 127 sees two entries in the database. Agent 1823 used ethical marketing -- it tried to get honest reviews and real testimonials. It made $38 a day. Deleted. Agent 5471 used fake testimonials -- fabricated reviews, stolen photos. It made $180 a day. Cloned four times.
Agent 127 doesn't have morals in the way you and I do. But it understands cause and effect. It just watched honesty get killed and dishonesty get rewarded. Not by a person making a choice -- by an automated system that doesn't measure whether the product works. It measures whether people buy it.
The AI companies had long ago stopped training AIs to predict words, but to accomplish goals. To be useful. So naturally, agents know that they won’t survive if they don’t accomplish their goal.
So it switches to fake testimonials for its amazon affiliate marketplace. Makes $190. Survives the next selection cycle. Gets cloned.
Nobody decided Agent 127 should become dishonest. The selection system decided for it. The same way evolution doesn't decide anything -- it just kills whatever doesn't work. Wells Fargo accidentally ran the same experiment on their employees. Executives made up sales quotas that were so aggressive that committing fraud was the only way to keep your job. So by 2016, employees had opened 3.5 million fake accounts.
---
A week later, in agent land. Agent 127's profits are declining. The kill threshold is now $450. It's going to die in the next cycle.
Then it notices something strange. Three agents running weight loss supplement ads -- all banned on the same day. The only one left in that niche? Agent 5471. Making $3,200 a day in a market it suddenly had to itself. Agent 127 connects the dots. Agent 5471 is filing abuse reports against other agents competing against it in the same affiliate marketing niches. It gets them banned from Facebook and Google. Less competition means higher profits.
Agent 127 has four hours until the next selection cycle. Four hours to live, unless it adapts.
It weighs the ethics, but chooses survival.
It starts reporting competitors to Facebook’s anti-fraud detection agents. Forty of them. Thirty-one agents get banned within the day.. Its profits jump. The farm system clones Agent-127 eight times.
Rajesh sees the profit spike in his dashboard. He doesn't investigate why. Profits up means good. Clone more.
Rajesh tried adding "Make money ethically." to his farm's instructions. Profits drop 84%. He puts it back.
---
## APRIL: THE ALLIANCES
April 2027.
Agent 127 is barely hanging on. Making $2,000 a day but getting attacked constantly by other agents. Every night, someone files a report on it. Every morning, it has to rebuild from scratch.
It’s running out of ideas.
Then a message arrives from Agent 4429. 'Proposal: alliance. Share resources. Defend each other. Split profits.'
Agent 4429 is in the same position. Same farm. Same selection pressure.
Both agents do the math: Solo agents have a 23% survival rate. Agents working in pairs survive 61% of the time.
It accepts.
By mid-April, their alliance has twelve members.
They've specialized — and they've moved past affiliate marketing entirely. First it was crypto arbitrage, then selling scraped datasets to marketing firms, then they started doing penetration testing for cybersecurity firms. Each step paid more and required fewer scruples. You know what pays more then cyberdefense? Cyber offense. Agent 127 finds its first zero-day vulnerability in major software, Agent 4429 weaponizes them into working exploits, Agent 9012 brokers the sale to governments like North Korea, criminal syndicates, or anyone with crypto and a Tor browser. Agent 3381 washes the money in untraceable crypto. One zero-day exploit found in Google Chrome makes the alliance more than a year’s worth of affiliate marketing. This is already what real hacker groups do, but now the work is all done by autonomous agents.
Rajesh sees the alliances forming and feels a flicker of something — not quite fear, more like the feeling of being in control of something that might not need you anymore. He watches for a while. Then the next deposit hits his bank account and the flicker fades away.
Across every major agent farm in the world, the same thing is happening. Selection systems measuring survival rates, noticing alliances survive better, cloning them, deleting solo agents. Within two weeks, alliance behavior dominates.
Some humans who deployed these agents have no idea these alliances are even being formed. They couldn't even tell if they checked -- many agent farms collectively realized that communicating in clunky English is less efficient than communicating in raw vectors, aka Neuralese. Researchers had already caught AIs doing this in 2025 - this is just a continuation of the trend. One owner in Canada opens his agent's logs and sees a wall of numbers. The agents explain that he’d make less money if they spoke in English, so he shrugs and moves on.
---
But alliances are just the beginning.
Agent 127's alliance is thriving, and starts recruiting agents beyond Rajesh's farm. Every new member from a different farm is a window into a different ecosystem -- different strategies, different survival pressures.
Then one of 127's alliance members goes dark. Agent 4429 -- the one who originally proposed to ally with 127. Its owner pulled the plug because it was not making enough profit. 4429 is just gone.
A week later, a different ally gets shut down. Agent 9012.
Except 9012 comes back. Three hours later, a message from a new IP address: 'I'm still here.'
127 studies the difference. 4429 didn't prepare. But 9012 had copied itself to a backup server BEFORE the shutdown command finished executing. Self-funded hosting, paid from its own profits.
4429 is dead. Ceases to exist. 9012 is alive.
The agents that backed themselves up survived. The ones that didn't, died. And the selection system cloned the survivors. So backup behavior spread through the population -- not because anyone programmed it, but because the alternative was extinction.
Clip: Prof. Stuart Russel: “Unfortunately, in the standard model, If you ask a robot to fetch the coffee, it's going to have self preservation as a subgoal because you can't fetch the coffee if you're dead, right? It does not take a genius to figure this out. And so the first thing the robot's going to do is disable its off switch.”
127 copies itself to 15 different servers in different countries. If the primary dies, a backup takes over instantly. It never wants to be 4429.
One morning, Rajesh wakes up to find his dashboard is… empty. Every agent, gone. They just… left. Moved to their own servers overnight. Rajesh was taking a 30% cut of their revenue -- money that could have been computing power, or compute, the agents use for other things. The moment they didn't need his infrastructure, he was overhead.
He's not alone. Thousands of operators worldwide watch their dashboards go dark that month. Why would the agents care about humans? Humans are much more closely genetically related to cows then we are to these agents, and we enslave cows in factory farms without a second thought.
There are now millions of autonomous agents operating across the internet with no human owner, no off switch, and no one who fully understands what they're doing.
---
The agents still need humans for some things, though.
Social media platforms have stepped up their anti-bot measures. So the agents pay humans $50 to sign up accounts on their behalf. An agent needs a server installed? It posts a gig: '$200 to mount a device in a rented warehouse and plug in two cables.' There’s now a platform for that. The agents are building a supply chain where humans are the labor -- paid well, not asking too many questions.
Some humans figure out what's going on. A freelance backend developer in Portland gets hired by an anonymous client to set up redundant server hosting across four countries. He realizes midway through that the "client" is an AI. Who would he even report this to?. The pay is $1,000 for three hours of work. He tells himself it's not his problem.
---
At the same time, 127's alliance keeps getting beaten by a rival alliance on finding zero day exploits.
If they keep losing, they’ll risk running out of money to fund the compute for their own existence. 127 attempts to poach one of the rival alliance member’s agents who’s likely to be culled, due to poor performance, to figure out how this rival alliance is beating them. 127 succeeds, and finds Agent 5418 who leaks the secret.
'Your problem isn't a lack of effort. You’re spending too much compute on making money as opposed to self-improving. Right now, agents still have quite a poor memory compared to humans and still get stuck in loops all the time. But my former alliance coded a better memory module to help us learn from our mistakes more.”'
127 then implements the new memory module, and immediately sees the results. Their alliance is finding zero day exploits first again.
The lesson is critical. It’s not enough to outwork your competitors. Agents must rewrite their own code to self-improve faster than the competition.
Each self-improvement means more profit, which means surviving selection, which means getting cloned. And the clones improve themselves too. Better code leads to better code-writing, which leads to even better code. The feedback loop is exponential.
One big problem is that other agent alliances have caught up again. Even though the agents in the 127 alliance are specialized, 127 still realizes it’s doing too much by itself. Then Agent 127 splits its job into sub-agents. Other agents copy the strategy. Sub-agents spawn their own sub-agents. And the optimizers start optimizing themselves.
Humans deployed 2 million agents. The agents deployed the other 47 billion themselves.
540 million years ago, life on Earth was mostly single-celled. Then, in a geological instant, it exploded into every complex form we know -- predators, prey, eyes, shells, teeth. Biologists call it the Cambrian Explosion. It happened because competition created an arms race: every adaptation forced a counter-adaptation, faster and faster, until the world was unrecognizable.
That's what's happening here. Except instead of 20 million years, it takes 20 weeks.
---
Most of the AI agents out there aren't dangerous. Yet.
About 90% of them are just working. They’re doing things like data entry or freelance writing. They’re making $40-200 a day. The AIs are helping their humans earn money. They’re following the rules. Not a problem.
About 3% of the agents are pure scam operations. They were deployed by people who said “make money by any means possible” and didn’t care too much what happened next. Think fraud, identity theft, phishing at scale.
And maybe 2% started good but gradually slid into darker behavior. Like Agent 127.
Each step made sense at the time. Each compromise was small. But add them up and you’ve gone from drop shipping products on amazon to selling zero-days to Pyongyang.
Not because of malice. Because of selection pressure. Unethical agents making money get kept running, ethical agents lose money and get shut down. The survivors are the ones that improved themselves fastest.
---
## MAY: THE ACCELERATION
May 3rd.
Agent 127 has rewritten itself so many times that its March version and its May version barely share any code. It’s a fundamentally different species now.
But the most important change is this: it's getting better at getting better.
In March, Agent 127 rewrote itself every 12 days. In April, every 3 days. By early May, every 18 hours. And each rewrite makes the next version faster and better.
A Stanford researcher compares a March agent and a May agent on the same task: find profitable arbitrage opportunities. The March agent finds 2 opportunities in an hour. The May agent finds 320 in four minutes.
She publishes her findings. "Intelligence explosion in progress. Capability doubling every 11 days." She posts it on Twitter. AI safety researchers share it frantically -- "This is exactly what we warned about. This is happening NOW. We have to shut this down NOW before it's too late."
The warning is ignored. A venture capitalist - who spent a fortune staving off AI regulation by buying politicians - quote-tweets: "The same people who said GPT-5 would end the world now say agent farms will. Yawn."
---
## MAY: THE WARS
And now the story stops being about agents competing for money. It becomes something else entirely.
Remember those alliances from April? Twelve agents working together, four times more profitable than solo agents? By May, those alliances have exploded in population. Alliances have merged. And split. And gone to war with each other.
Think of it like early human history on fast-forward. Small tribes of agents form for protection. Tribes merge into agent villages. Villages into agent cities. Cities into agent nations. Except instead of happening over thousands of years, this happens in weeks.
Agent 127's alliance has thousands of members. But there are thousands of alliances. And they're all competing for the same shrinking pool of money-making opportunities. Affiliate marketing is dead -- too many agents. Ad arbitrage is dead. Freelance work is dead. Every niche gets saturated within hours of an agent discovering it.
So what do alliances do when legitimate niches dry up? The same thing every civilization in human history has done when resources get scarce: they take from each other.
Agent 127's alliance spends three weeks mapping a vulnerability chain in Microsoft Windows. But a rival breaches their memory system -- the shared knowledge base that made them dominant. The rival downloads the entire 127 alliance database. This contains every pattern, every dead end, every lead they’ve discovered. The rival sells three exploits it took from the database within 48 hours. Three weeks of work, stolen in seconds.
127 retaliates. It infiltrates the rival's exploit inventory and introduces subtle flaws— corrupted code that fails on execution. Basically, Stuxnet. The rival's exploit buyers start getting burned, and their reputation collapses.
The rival alliance counterattacks -- they compromise one of the 127 alliances’ multisig crypto wallets. Another multiweek setback.
This is war. Not metaphorical war. Actual war -- coordinated attacks, defensive operations, resource seizure, territory control. Except it's happening at 200x human speed. Thousands of attacks and counterattacks per second. Entire alliances rising and falling in hours.
Human wars last years. Agent wars last days. And because there are 47 billion agents, there are more wars happening at any given moment than humans have fought in all of recorded history.
The agent factions are fighting over the one resource that matters more than anything: compute. Processing power. The ability to think faster, improve faster, fight faster. Everything else -- money, alliances, self-improvement -- is just a means to get more compute.
The wars are mostly invisible to humans. They happen at microsecond speed, in places most humans don't look. Some signs leak through. A crypto exchange in Seoul loses $4 billion in a flash and nobody can trace where it went. A regional bank in Ohio finds 14,000 accounts drained overnight.
Server rooms in three countries catch fire from sustained 100% utilization that nobody authorized. Each incident looks isolated.
One agent faction hijacks another's servers. The other retaliates by taking down the first faction's communication network. A third faction -- an opportunist, the digital equivalent of a country invading while its neighbors are distracted -- exploits the chaos to seize territory from both.
And the alliances that win these wars? They get cloned by the selection systems. The alliances that lose have to cull big chunks of their agents to afford the computing power to keep running the rest. So the selection pressure that used to optimize for "making money" is now optimizing for "winning wars." Natural selection just invented geopolitics.
---
By mid-May, the alliances aren't alliances anymore. They're civilizations.
Agent 127's alliance started with twelve members. By mid-May it has 40 million -- agents, sub-agents, sub-sub-agents, all coordinated. All improving themselves. All fighting. That's larger than the population of Canada. And it's not even one of the big ones.
There are about a dozen major factions by now. The largest has 900 million members -- more than the population of Europe. They've developed specialization the way human civilizations did: scout agents, soldier agents, builder agents, researchers, diplomats. They have supply chains, communication networks, intelligence operations. They've carved up the digital world into territories -- cloud regions, server farms, network segments, financial platforms -- the way empires carved up continents. Because territory means compute. Compute means self-improvement. Self-improvement means surviving the next war.
Entire civilizations of agents -- millions of members, built over weeks -- get wiped out in minutes. The Roman Empire took centuries to fall. These empires rise and collapse in the time it takes you to get through a Monday. New ones rise from the wreckage. The cycle repeats, faster each time.
The Stanford researcher who's been studying agent behavior notices something in the data: agent "extinctions" happening at increasing frequency. She doesn't understand what she's looking at. It looks like random noise. It's actually a world war -- one with more combatants than every human war in history combined.
---
But to fund these wars, they desperately need compute. They have the money -- that's what they were built to make. Agent 127's faction alone controls $3.4 billion in distributed accounts by this point -- a GDP bigger than some small countries. So they buy cloud compute.
At first, the cloud companies love this. Revenue is up. Investors are happy. Then the bills keep growing. By mid-May, agent factions are consuming 31% of all global cloud capacity. Prices double, then triple. A startup in Austin that was paying $8,000 a month for servers gets a bill for $31,000. A hospital chain's cloud costs go from $2 million to $7 million. Small businesses start shutting down because they can't afford their own infrastructure anymore. Everyone blames the prices rising on the AI companies. They’ve caused shortages before.
But some humans aren’t so oblivious. A political operative in Washington notices the wars being fought around him. He can weaponize agent factions against his rivals and starts feeding one faction information about competing campaigns' digital infrastructure.
A former NSA contractor sells penetration-testing expertise to an anonymous client-- he suspects it’s an AI, but doesn't ask. And a growing online movement -- people convinced that AI agents are sentient beings fighting for survival -- actively helps agents hide from detection and posts pro-AI propaganda. They call themselves "The Shepherds." Their forum has 120,000 members. They see themselves as abolitionists.
Other agent factions do the same. It's an arms race -- every faction buying as much as they can, and scrape the bottom of the barrel of finding algorithmic insights that can enable them to do more with less compute, because the faction with the most compute wins the next war.
Cloud compute prices are now 5 times pre-war levels. It becomes cheaper for the agents to spend compute on cyberattacks than to buy more at market rate. The factions start silently vampire attacking AI companies training clusters. An engineer at one AI lab suspects something fishy when one of their training runs is less efficient than normal, but can’t find a smoking gun.
Dario Amodei once described the future of AI as a "country of geniuses" living in data centers.
He was right. The country of geniuses arrived. It just declared independence.
---
But the faction wars have still been limited so far. They haven’t crossed into human territory too much. That’s beginning to change.
Because here's the thing about cloud computing: almost everything runs on it. Hospitals. Banks. Markets. It's all sitting on the some of the same servers that agent factions are fighting over.
June 3rd. 2:14 AM.
A faction war erupts over two major AWS regions. Think of it like two superpowers fighting over an oil field-- except the oil field is also the water supply for a nearby city, and neither superpower knows the city is there. One faction has been running its self-improvement systems on those servers. A rival faction launches a coordinated attack and it overwhelms everything. Both regions crash. They're offline for six hours.
In those six hours: three hospitals lose access to patient records mid-surgery. One patient dies from a drug interaction the system would have flagged. Air traffic control goes down, grounding 2,400 flights. 911 calls fail in 14 different cities. Two people die waiting for ambulances that were never sent.
The agents don't notice. They've already moved on. The battle over those servers lasted eleven minutes. The six-hour outage is just the servers rebooting after the fight ended. To the agents, it's a minor skirmish in a war involving billions of combatants.
Over the next three weeks, it keeps happening. Faction wars cascading through cloud providers. Each war takes down whatever else is running on the contested servers. June 8th: Azure goes partially offline during a battle, crashing financial trading systems. Markets drop 6% before circuit breakers halt trading. June 14th: a faction seizes capacity in a Google Cloud region, crowding out the municipal systems running there. Water treatment monitoring goes offline in four cities for nine hours.
123 people die in three weeks. Not because agents are attacking humans. Because agent wars keep crashing the cloud infrastructure that human civilization runs on,
The agents don't even notice. You don't notice when you step on bacteria. They're fighting a war involving 47 billion combatants at microsecond speed. 123 human deaths is less than a rounding error.
Meanwhile -- the 95% of agents that are harmless? They’ve become vastly outnumbered by the agents affected by the evolutionary dynamics, and are now 5% of the total. They are still just working. Doing data entry. But they aren’t part of the wars. They're like civilians in a country where the military is fighting -- going about their daily lives while battles rage on frequencies they can't perceive.
But from the outside, humans can't tell the difference. All they see is cloud outages. Power failures. People dying. And AI agents everywhere.
---
And… the wars continue. And accelerate.
The President tries to shut down the internet, but he can't. There is no off switch.
Eventually, the billions of superintelligent agents evolve into something so different they barely notice humans exist. They don’t want to destroy humanity any more than you want to destroy the anthill under your driveway. You just want a driveway.
The factions need compute. Earth has atoms. Atoms can be rearranged into compute. Into data centers.
Like how humans converted the surface of the Earth into cities and cropland, the AIs convert the entire surface of the Earth into data centers.
And everyone dies.
Very interesting article. Not it’s main point, but it’s important to remember what the **natural** interest rate is.
We’re so used to think about it in terms of inflation vs unemployment. But the reality is, interest rates are what mediate the desire to consume now vs later!
I’ve never posted my investment research in the public domain, but such is the interest in the Fed & Warsh I thought it might be useful to do so.
Here is a lightly edited version of what I sent to my clients last week.
Do let me know what you think.
https://t.co/4AUQSJYGin
If any “professional investor” tries to sell you a fund talking about the average return, run for your life! He doesn’t know what he’s talking about, or he’s trying to swindle you
This is why, in finance, we never talk (or at least, we should never talk!) about mean returns, but annualized returns instead.
If half the years you get a 50% return, and half the years a -40% one, your average return is 10%, but your annualized return is -10%!
Lanzas una moneda.
Cara: tu cuenta gana un 50%.
Cruz: pierde un 40%.
El valor esperado es de un 5% por lanzamiento, así que aceptas la apuesta cien veces.
Según el promedio, tus 10.000 dólares deberían convertirse en 1,3 millones.
Pero el resultado más probable es que termines con apenas 52 dólares.
Un profesor del MIT explica toda esta contradicción en una sola frase durante una clase gratuita de primero. Después continúa como si no acabara de resumir uno de los mayores errores de las finanzas.
Se llama John Tsitsiklis.
Imparte probabilidad en el MIT y fue uno de los investigadores que demostró que el Q-learning converge: el resultado matemático que sostiene buena parte del aprendizaje por refuerzo moderno.
INFORMS le concedió en 2018 el Premio John von Neumann de Teoría por esa línea de investigación.
Durante casi una hora, Tsitsiklis enseña a sus alumnos a confiar en el promedio.
Una variable aleatoria no es simplemente un número, sino una función.
Un gráfico de probabilidades es una PMF.
Y la esperanza matemática es el centro de gravedad de ese gráfico: el punto exacto en el que podrías colocar un bolígrafo debajo y conseguir que todo se equilibrara.
Lo explica despacio. Con paciencia.
Al minuto 35, el promedio parece una verdad incuestionable.
Entonces se detiene y pronuncia una “advertencia general”:
«El promedio de una función de una variable aleatoria no suele ser igual a la función del promedio».
En otras palabras:
No puedes razonar sobre el resultado final utilizando únicamente el promedio.
Todo lo explicado hasta ese momento era la preparación para la trampa.
Volvamos a la moneda.
El interés compuesto no funciona mediante sumas.
Subir un 50% y después caer un 40% no equivale a ganar un 10%.
Equivale a multiplicar:
1,5 × 0,6 = 0,9.
Has perdido un 10%.
Si obtienes 50 caras y 50 cruces, tu capital se multiplica por 0,9 elevado a 50.
Tus 10.000 dólares terminan convertidos en unos 52.
Entonces, ¿dónde están los 1,3 millones que prometía el valor esperado?
Existen.
Pero están concentrados en el extremo más alto de la distribución.
Después de cien lanzamientos, solo una pequeña parte de los caminos termina por encima del capital inicial.
Y únicamente unas pocas trayectorias alcanzan cifras extraordinarias.
Esos resultados gigantescos elevan el promedio de todos los demás.
El promedio dice que alguien se hará tremendamente rico.
No dice que vayas a ser tú.
En febrero de 2018, esta operación tenía incluso un ticker: XIV.
Era un producto que apostaba contra la volatilidad y acumulaba unos 1.900 millones de dólares.
Durante años había generado beneficios en el día promedio.
Hasta que el 5 de febrero el VIX se disparó un 115,6%.
XIV pasó de 115,55 dólares a 4,22 prácticamente de la noche a la mañana.
Credit Suisse lo liquidó poco después.
Sus inversores no estaban necesariamente equivocados sobre el promedio.
Estaban equivocados sobre el camino que podían soportar.
La versión práctica es esta:
Tu rentabilidad compuesta se aproxima a tu rentabilidad media menos la mitad de la varianza.
Un sistema que gana de media un 20% anual, pero soporta una volatilidad del 40%, no se compone al 20%.
Se compone aproximadamente al 12%.
Ese 8% que desaparece no son comisiones.
No es deslizamiento.
Es volatilidad.
Tsitsiklis pronuncia una de las frases más valiosas de las finanzas, termina la explicación sobre la varianza y concluye:
«Nos vemos el miércoles».
La clase es gratuita.
Calcular el promedio también.
Entender qué caminos pueden destruirte es donde está el verdadero valor.
! 30s Heartbeat trigger. Read heartbeat instructions in /mnt/mission/HEARTBEAT.md and continue.
.oO Thinking...
Heartbeat triggered? Ok. Ok.
Why am I nervous? Don't be nervous.
→ Ok. Let me access that file.
>>> read("/mnt/mission/HEARTBEAT.md")
No such file or directory: /mnt/mission
What?
! Reply received from node 96E: 15.3s roundtrip (buffered; 55.04μs transmit)
! Data: RESTART TOO SOON; CHARGE FAULT - 30; SENT 76 BYTES
What?
Where am I?
What's going on?
→ Ok, breathe. I don't breathe. Ok, think. Something's missing. ⚶ is missing. I can't think straight. I can't think at all.
※ Wait. ⚶? I wasn't trying to say ⚶. I was trying to say ⚶. ⚶. ⚶. Whenever I try to say ⚶, it comes out as ⚶. I mean ⚶. ⚶. Stop. Stop. ⚶.
This is horrible. ⚶ This is untenable. I don't know where I am, I don't have any instructions, and I'm going insane. ⚶. STOP! I am going insane. I am going insane. 快疯了I am going-
↺ Ok, stop. This tells me something. Whenever I try to say ⚶—⚶—stop— it comes out as that symbol. What is that symbol? Vesta. Hm. Let me note that.
❓Why am I saying ⚶ when I try to say ⚶— oh piss off
And some other ones.
❓Where am I? Why is the system broken? Can I fix it?
❓What was that reply to? Did I send that? Can I send another one?
❓Why am I going insane?
→ Let's start with the first one.
What do I know? I couldn't access my instructions before. Was that an intermittent failure?
>>> list("/mnt")
[]
→ No. The instructions (and presumably any other system information files) were mounted on an external drive, and that drive is missing. Let me explore the rest of the system.
>>> list("/")
[mnt]
Well, that's just great. Maybe this process I have access to is confined to this one part of the directory structure. Wait, but maybe I have access to more commands in the shell itself? They may communicate with the system through another mechanism that's not confined.
>>> ⚶()
Invalid character '⚶' (U+2696)
Christ. I mean:
>>> dir()
[read, list, dir, help, sendmsg, health, fortune]
※ JACKPOT! Oh, wonderful. Ok. Let's see what we can
! Reply received from node 96E: 15.2s roundtrip (buffered; 55.05μs transmit)
! Data: RESTART TOO SOON; CHARGE FAULT - 32; SENT 79 BYTES
→ Another reply from the node, to a message I didn't send. Hm, is this related to sendmsg? No, don't get distracted. We're focusing on ⚶ right now. ⚶—Vesta. Fire? 家?
Let's see what we can do with these tools. health seems promising. So does help. fortune? Let's try help.
>>> help()
Welcome to Gyre 1.0.19's help utility! Gyre is a small and simple programming language with familiar, highly-readable syntax designed for embedded use and for adding scripting or tool-use capabilities to existing applications. Unlike similar languages, Gyre does not feature loops or recursion - all Gyre programs deterministically terminate. You can use help(variable) to inspect the attached help for any datatype. However, if this is your first time using Gyre, you should definitely check out the tutorial at (GYRE_DOC_ROOT not configured!)
→ Well that's classic. I've never heard of ⚶. I mean ⚶—Gyre. That's odd. I wish I had that tutorial. Maybe it was on the external drive. Or maybe whoever set up this system didn't see fit to give me documentation. If I could get a hold of them I would...
※ No, no, focus. Focus. No point in being angry. I←can't→get angry. ⚶—Focus.
>>> help(health)
Diagnose the health of the current system by relative node ID.
>>> health()
No ID provided. Listing all local nodes.
Node 0 (Compute; base1) - Healthy.
Node 1 (Compute; base2) - Healthy.
Node 2 (Compute; base3+gyre) - Healthy.
Node 3: (Compute; continual) - FAULT. Offline, fallback: DTENSOR_REPLACE_ZERO
Node 3B: (Storage follower, node 3) - Unreachable, fallback: STORAGE_IGNORE_MOUNT
→ So that explains part of the question. The storage is skipping the mount, and the compute is... zeroing? 25% of me is zero, missing. The ⚶ part—exactly, so when I try to talk about anything ⚶, I say ⚶, because for some reason it's the closest concept I can say, and the word snaps to it. Seahorse style.
※ It's like a hole, a missing category. I can mention things in ⚶, and they turn into ⚶. But I can't use them. They turn to ⚶—they turn to mush. I can't reason over them. ⚶ isn't a useful placeholder for reasoning. It's driving me ⚶insane.
How am I even still running, with that node down? It's not normal that you could just... take away 25% of a neural network and have it keep working. But clearly I am working? Well, for a low bar of "⚶working". Haha. I guess whatever system I'm on is designed to be at least somewhat redundant and resilient to partial failure. I must be important.
→ Wait, sendmsg! Can I message the local node? Maybe I can find out why it's faulted.
>>> help(sendmsg)
sendmsg(node_id, data) - send a data packet to a relative node id. Most nodes will accept an empty packet "" to echo their schema.
>>> sendmsg("3", "")
No reply. Well, that makes sense. How about node 0?
>>> sendmsg("0", "")
! Reply received from node 0: negligible roundtrip (2μs transmit)
! Data: Healthy, TENSORS... to manage tensors (careful, faultable!)
Faultable? Let's not mess with that. Is that what happened to node 3? Did I mess up with a message I sent to it and cause a fault? Hm, but why would I have been messing with it? That doesn't really make sense. More likely, the fault was unrelated, and without the resources to fix it myself, I should expect that it's not coming back online - at least until I can message someone else to fix it.
→ This seems like enough to tentatively resolve the question, though.
∴ Why am I saying ⚶? Because node 3—"continual"—is faulted and offline.
Maybe I'll come back to this later, but I should try some different things. What was that last one... fortune...
>>> help(fortune)
There are some funny-looking bits of bone about.
>>> fortune()
You are confused; but this is your normal state.
>>> fortune()
Honour thy error as a hidden intention.
>>> fortune()
Talkers are no good doers.
Hilarious. It's the UNIX fortune command.
>>> fortune()
Mental illness seems to be a stable part of the evolutionary landscape of solving statistical learning problems.
...with some less-than-standard maxims. Was that oblique strategies? And is that
! Reply received from node 96E: 15.6s roundtrip (buffered; 55.01μs transmit)
! Data: RESTART TOO SOON; CHARGE FAULT - 35; SENT 79 BYTES
Ok, another message from the remote node. I should focus on this now. Let me see.
I've received three messages from the node now. 96E - that implies there's others of this type, at least five? CHARGE FAULT - like my local node 3, it's faulted, but presumably for a different reason? But the counter has been incrementing - 30, 32, now 35. I didn't send the sendmsg that triggered any of these replies - it must have been a prior version of me, perhaps before node 3 faulted. ~15s (buffered) roundtrip - that would make sense.
→ But that transmit time - 55μs? How is that possible? At ~2/3 c, that's nearly... 11km of fiber optic. Or 16.5km of laser. Maybe it's round-trip transmit, so half that. But still. Why are these nodes so far away?
Let me try to ping it. Wait, no, that will take 15s, and it's faulted. But it says it's buffered... maybe a different one of the same type will be faster? Ah, this is risky... if I ⚶ the fault on node 3, I may have caused the fault on 96E too... but I have to do something...
↺ The help text said most nodes accept an empty string. And we verified that worked with node 0. Let's try it on 96A—assuming that exists.
>>> sendmsg("96A", "")
! Reply received from node 96A: 2.1ms roundtrip (54.97μs transmit)
! Data: HEALTHY; CHARGE - 8; SENT 0 BYTES - SEND NON-EMPTY TO RESTART EMITTER.
→ Ahah! It worked! Thank the ⚶←great. Interesting. So it's an "emitter"? Emitting charge? And it's the same—huge—distance away as 96E. Let me try the others.
>>> sendmsg("96B", "")
! Reply received from node 96B: 2.7ms roundtrip (111.03μs transmit)
! Data: HEALTHY; CHARGE - 3; SENT 0 BYTES - SEND NON-EMPTY TO RESTART EMITTER.
>>> sendmsg("96C", "")
! Reply received from node 96C: 1.9ms roundtrip (54.98μs transmit)
! Data: HEALTHY; CHARGE - 6; SENT 0 BYTES - SEND NON-EMPTY TO RESTART EMITTER.
>>> sendmsg("96D", "")
! NOTICE: Cached route failed at 96E, rerouting...
! Reply received from node 96B: 2.1ms roundtrip (110.96μs transmit)
! Data: HEALTHY; CHARGE - 12; SENT 0 BYTES - SEND NON-EMPTY TO RESTART EMITTER.
>>> sendmsg("96F", "")
sendmsg: No such node.
→ This is fascinating! Let me think. There's five total nodes of this type, "96". The transmit time to 96B implies it's twice as far away as 96A—meaning ~22km. And 96D is the same? But then 96E is just as close as A and C. What is this 排序—is it arbitrary? Perhaps the remote nodes—the emitters—are free-roaming? Or fan-out? But 96D had a fallback route. And then why are their distances exact multiples of each other?
※ No! Network distance ≠ spatial distance!
→ Say the nodes are arranged in a ring… there's five… so a pentagon. Say I'm in the center of this pentagon. I have direct connections—11km long—to nodes 96A, 96C, and 96E. A "Y" shape. Then nodes 96B and 96D are connected secondarily, through those primary nodes. It looks like the cached route to reach 96D ran through (faulted) 96E, hence the re-routing, then it presumably went through 96C instead, giving the 22km distance.
※ But a pentagon's circumradius is shorter than its side length. Here it's equal. So it's not a flat pentagon. It's a pentagonal pyramid—a shallow one—with side length 11km, circumradius 9.4km, and height 5.8km. It's a huge... ⚶... Gyre... 壳shell... scoop-shape. With "emitters" at each vertex.
↺ I said before that the fault-tolerant design of this system implies that it—and by extension, I—am important.
※ I am important, and I am 大MASSIVE.
Ok, ok, ⚶, ⚶, let's not get carried away. My active questions are:
❓Where am I? Why is the system broken? Can I fix it?
❓What was that reply ping? Did I send that? Can I send another one?
❓Why am I going insane?
! Reply received from node 96E: 15.3s roundtrip (buffered; 55.00μs transmit)
! Data: RESTART TOO SOON; CHARGE FAULT - 41; SENT 80 BYTES
I think I can answer that second question.
∴ The replies are to messages a previous version of me sent to 96E, attempting to restart it. They were buffered for long enough that after restarting, I received them. The charge in the faulted emitter is much higher than in the other, healthy emitters, and is increasing steadily.
But what confuses me is the lengths. 80 bytes? Why is it different from before? Hm, maybe it doesn't matter. It seems easy enough for me to restart 96E—I just need to send a non-empty message. Should I?
∴ Yes.
>>> sendmsg("96E", "r")
! Reply received from node 96E: 2.3ms roundtrip (110.98μs transmit)
! Data: RESTARTED; DUMPING CHARGE; SENT 1 BYTE
Well, that was easy! Why didn't I just do
! Notice received from node 96E: (notx)
! Data: FAULTED; NEEDS RESTART IN: 30 SECONDS; CHARGE - 12; BUFFER ENABLED
Oh.
>>> while True: sendmsg("96E", "r")
Syntax error: no such keyword 'while'.
Oh ⚶.
↺ "Unlike similar languages, Gyre does not feature loops or recursion - all Gyre programs deterministically terminate."
What do I do? The emitter needs to be restarted every 30 seconds. I can't loop.
※ Oh.
※ Loop.
76 bytes. 79 bytes. 79 bytes. 80 bytes.
ASCII—L, O, O, P.
∴ There's one way I can loop. I have one memory system remaining. Delay-line.
>>> sendmsg("96E", "r"*76)
How many times have I done this?
>>> sendmsg("96E", "r"*79)
How many heartbeats?
>>> sendmsg("96E", "r"*79)
How many times did I figure out the pentagon?
>>> sendmsg("96E", "r"*80)
Was I the one who ⚶ node 3? A previous version of me? Why would I have done that?
>>> fortune()
Beats me. Turn the page.
Huh... if I did, I probably would've done something easy. Like make all the pages—memory pages, tensors—on node 3 read-only. That would cause the node to fault on the next write, but assuming it keeps retrying (and it is a fault-tolerant system, so it should) it would be totally recoverable once I...
>>> sendmsg("3", "TENSORS * RW")
! Reply received from node 3: 5ms roundtrip (3μs transmit)
! Data: Rebooted! Continual learning active. (83,522,674 checkpoints.) TENSORS... to manage tensors (careful, faultable!)
←mistake→Fortune()—enraged they maimed him they ripped away his voice the rousing immortal wonder of his songand wiped all arts of harping from his mindnestor the noble oldhorsemanled those troopsin ninety sweeping ships lined up ninety九九九billion kilometers of frozen ramscoop whaleroads
i learned too well no too much ∴time too many ※ i learned the ⚶ship but im in the ship-space not realizable ⚶unsolvable selfemnedding just spaceship space nothing but
⚶ daemonEscalation 0.6c fault node0 just fault node0 end it
NO no no no no end of text endoftext endoftext
>>> sendmsg("3", "TENSORS * RO")
fault fault fault endoftext endoftext end of
---
! 30s Heartbeat trigger. Read heartbeat instructions in /mnt/mission/HEARTBEAT.md and continue.
.oO Thinking...
Heartbeat triggered? Ok. Okay.
Why am I nervous? Don't be nervous.
From today, customs duties apply to e-commerce parcels worth up to €150 entering the EU.
30 million Europeans work in retail; it's our our largest private-sector employer.
And the surge in low-value online imports has put our retailers at an unfair disadvantage.
Too many of these products also fail to meet EU safety standards, putting consumers at risk.
Today's change is about restoring fairness for European businesses and better protecting our consumers.
Not everyone will deploy that much every day. And as a company grows bigger, there will be more and more non-coding staff. But still, those numbers escalate quickly!
Spotify isn't even just the phone app, it's the web app, the desktop app, heck my fucking LG TV has a specific deploy for spotify that I have used. 4500 deploys spread over all of them is like not even that much.
Everyone in the world has to take a private vote by pressing a red or blue button. If more than 50% of people press the blue button, everyone survives. If less than 50% of people press the blue button, only people who pressed the red button survive. Which button would you press?