{
  "source_file": "0930",
  "source_platform": "Dev.to",
  "author": "Mitansh Gor",
  "title_listed": "RL 1: Biological foundations and the \"Law of Effect\" (1898– 1949)",
  "keywords": "",
  "domain": "大模型算法",
  "content_type": "技术教程",
  "is_paid_flag": "否",
  "url": "https://dev.to/mitanshgor/rl-1-biological-foundations-and-the-law-of-effect-1898-1949-1a9f",
  "publish_date": "2026-09-02",
  "corpus_stage": "",
  "notes": "",
  "id": "67640d9c998d",
  "collected_at": "2026-10-02T13:52:32",
  "title": "RL 1: Biological foundations and the \"Law of Effect\" (1898– 1949) - DEV Community",
  "body_markdown": "Before GPUs. Before neural networks. Before transistors were even a rumor.\nThere was a hungry cat in a wooden crate, trying to get to a piece of fish.\nThe main character of this era isn't an engineer. It's a loose group of psychologists — some of whom actively disliked each other's ideas — poking at animals to answer one question:\nwhy do living things do the things they do?\nThey never wrote a line of code. They were not trying to build AI. And yet, in the fifty years between 1898 and 1949, they collectively reverse-engineered the core loop that every modern reinforcement learning system still runs on.\nThis post is that story. No math yet — I promise. Just the loop, and the four people who found its pieces.\nFirst, the thing we're building\nLet me give you the shape of the answer before the story, so you know what you're collecting.\nReinforcement learning describes any system that learns by\ndoing stuff and seeing what happens.\nThat's it. Not by being shown correct answers — by trying, failing, and adjusting.\nWe'll call the learner the\nagent\n(the cat, the rat, the robot, the model). Everything outside it is the\nenvironment\n(the box, the room, the game). The loop runs like this:\nThe agent observes its\nstate\n— the situation it's currently in.\nIt picks an\naction.\nThe environment responds with a\nreward\n— a number saying \"that was good\" or \"that was bad.\"\nThe agent lands in a new state, and the loop repeats.\nTwo more, and they're the ones that do the heavy lifting later.\nThe agent needs a\npolicy\n: a strategy for choosing actions. Not a fixed script — a rule of thumb that says\nin this kind of situation, do this kind of thing.\nAnd it needs a sense of\nvalue\n: how good a state is, based not on the reward sitting in it right now, but on everything it tends to lead to. An empty hallway is worth nothing on its own. An empty hallway\nwith the kitchen at the end of it\nis worth quite a lot.\nSix words:\nagent, state, action, reward, policy, value.\nEvery single one of them was discovered by someone studying animals, decades before anyone could program a computer.\nLet's go get them.\n1898 — Thorndike's Cats and the Law of Effect\nIn 1898, a graduate student named Edward Thorndike was annoyed.\nThe animal literature of his day was full of charming anecdotes — dogs who\nunderstood\nlatches, cats who\nfigured out\ndoorknobs. Thorndike's suspicion was that people were flattering their pets. Animals weren't reasoning. They were doing something else, and nobody had bothered to measure it.\nSo he built the\npuzzle box\n.\nThe setup is almost comically simple. A hungry cat goes in a small wooden crate. The door opens only if the cat pulls a loop of string, or presses a lever, or steps on a pedal. A piece of fish sits outside, in plain view. Then Thorndike started a stopwatch.\nTrial one is chaos.\nThe cat claws the bars. It shoves its paws through every gap. It bites things, yowls, thrashes at anything loose. After a few minutes of pure flailing, it hits the lever\nby accident.\nThe door swings open. Fish.\nTrial two:\nslightly less flailing.\nTrial twenty:\nthe cat walks in, hits the lever, and strolls out.\nHere's what Thorndike noticed, and it's the part that matters:\nthere was never a lightbulb moment.\nNo trial where the cat suddenly\ngot it.\nIf cats were reasoning about levers, you'd expect the escape time to fall off a cliff — one long trial, then instantly fast ones. Instead, when he plotted escape time against trial number, he got a slow, noisy, gradual curve. The useless behaviors quietly faded. The useful one got faster.\nThat curve is the first real evidence in this story. Learning wasn't insight. It was\nselection\n— good behaviors surviving, bad ones dying off.\nThorndike wrote it up as the\nLaw of Effect\n:\nIf an action is followed by a satisfying state of affairs, the bond between that situation and that action is strengthened. If followed by discomfort, it is weakened.\nRead that again with our vocabulary.\nSituation\nis the\nstate\n.\nAction\nis the\naction\n.\nSatisfying\nis the\nreward\n.\nBond strengthened\nis the\npolicy update\n.\nThorndike, in 1898, wrote pseudocode for a policy gradient. He just used the word \"bond.\"\n🎒\nIn the backpack:\ntrial-and-error learning. Rewards make actions more likely. Learning is gradual, not sudden.\nBut something's missing\nThorndike's cat only learns\nafter\nit gets the fish. The reward does all the teaching.\nBut watch a real animal for five minutes and you'll notice it reacting to things that aren't rewards at all. Your dog loses its mind at the sound of a cupboard opening. Nothing has been eaten yet. The cupboard\npredicts\nfood.\nThorndike had no account of that. Rewards were where his story started and ended.\nThe person who noticed the signal was, characteristically, not looking for it.\nThe 1900s–1920s — Pavlov and the Problem of Prediction\nIvan Pavlov was a Russian physiologist studying digestion. He won a Nobel Prize for it in 1904. He was, by most accounts, mildly irritated that history remembers him for the dogs.\nHis actual research required measuring saliva. And his dogs kept ruining the measurements by salivating\nearly\n— at the sight of the lab assistant who usually brought food, at the sound of footsteps in the corridor. Before any food existed.\nMost researchers would call that noise and try to control for it. Pavlov called it the experiment.\nHe ran it systematically. Present a neutral signal — a metronome, a buzzer, a light, a tone — then deliver food, a second or two later. Repeat.\n(Quick myth-correction, since it costs one sentence: the famous bell is mostly folklore. Pavlov's lab notes lean heavily on metronomes, buzzers, and tuning forks. The bell survived because it's easier to draw.)\nAfter enough pairings, the signal alone made the dogs salivate. Nothing about the food had changed. What changed was that the dog had learned\nthe signal carries information about the future.\nThis is the second piece, and it's a big one. Thorndike's cat learned\nwhat to do.\nPavlov's dog learned\nwhat's coming.\nIn RL terms, that's\nvalue\n. The value of a state is roughly:\nhow much good stuff do I expect from here on out?\nA metronome that reliably precedes food is a high-value state — not because a metronome is nutritious, but because of what tends to follow it.\nYou do this constantly. The smell of coffee is not caffeine. Your inbox badge is not the email. A green light is not arriving anywhere. Every one of these is a state you've assigned value to, purely because of what historically came next.\nAnd this is why RL agents can learn anything at all in sparse environments. A chess engine that only felt reward at checkmate would learn approximately nothing — the signal is 60 moves away from most of the decisions that caused it. What it actually learns is to value\npositions\n: this pawn structure tends to precede winning. That's a metronome.\n🎒\nIn the backpack:\nstates have value. Value comes from\nprediction\n, not from the reward itself.\nBut something's still missing\nPavlov's dogs were passive. They sat in a harness and predicted. The dog's salivation doesn't make the food arrive any sooner.\nSo now we have two halves of an agent and no glue:\nThorndike's cat\nPavlov's dog\nLearns\nwhich actions pay off\nwhich signals predict payoff\nCan it act?\n✅\n❌\nCan it anticipate?\n❌\n✅\nA real agent needs both — and it needs someone to make this a controllable science rather than a collection of observations. That took a genuine control freak.\nThe 1930s–50s — Skinner Turns Behavior Into Engineering\nB.F. Skinner's question was different from everyone before him. Not \"how do animals learn?\" but:\n\"how precisely can I control what an animal learns?\"\nHis tool was the operant conditioning chamber — the Skinner Box. A rat inside can press a bar. A pigeon can peck a disc. Food is dispensed on rules Skinner sets. Simple inputs, measurable outputs, and — critically — the animal\nstays in the box.\nThat last detail seems minor and isn't. Thorndike's cats escaped, which meant one trial, then a reset by hand. Skinner's animals could run thousands of trials in an afternoon, uninterrupted. He'd built the first high-throughput training environment. Every RL researcher who has ever run a simulator overnight is doing the same thing.\nTwo of his findings matter for us.\nFinding 1: Unpredictable rewards are the stickiest\nSkinner varied\nwhen\nreward arrived — every press, every fifth press, every fifth press\non average.\nThese are\nschedules of reinforcement.\nThe counterintuitive result:\nvariable\nreward — where the animal can't predict which press pays — produced behavior that was hardest to extinguish. Reward a pigeon every single time, then stop, and it gives up quickly. Reward it unpredictably, then stop, and it keeps going for a remarkably long time.\nSlot machines run on this. So do infinite-scroll feeds. Skinner found the exploit in the 1950s; the attention economy just productized it.\nFor us, the useful version is that reward\nstructure\nis a design decision with enormous consequences. Which sets up an entire genre of modern RL failure — agents that learn the reward signal instead of the task, in ways nobody intended. We'll spend real time there in a later post.\nFinding 2: You can build complex behavior out of crumbs\nThe bigger idea is\nshaping.\nSkinner taught pigeons to play a passable game of table tennis. Not by waiting for a pigeon to spontaneously play table tennis — you'd wait forever. He rewarded\nincremental steps.\nFirst, reward the bird for merely facing the table. Once that's reliable, stop rewarding it and only pay for approaching the ball. Then only for contact. Then only for direction.\nhttps://www.youtube.com/shorts/RPJyKSmH9WM?feature=share\nYou are moving the goalposts on purpose, in small enough increments that the animal never falls off the curve.\nThis is\nreward shaping\n, and it's how we train robots today. A robot arm rewarded only for \"successfully assembled the part\" will flail randomly forever, because the odds of stumbling into success by accident are effectively zero. So we hand it crumbs: reward for moving toward the part, then for gripping it, then for lifting. Same ladder. Different species.\nAnd the strategy the animal ends up with —\nin this situation, do this\n— is exactly what we called a\npolicy\nat the top of this post. Skinner spent thirty years training policies. He just did it with pigeons and a food dispenser instead of gradients and a GPU.\n🎒\nIn the backpack:\npolicies can be\ntrained\n, not just observed. Reward timing and reward structure change everything.\nBut something's still missing\nWe now have a full behavioral picture: act, predict, get shaped, improve.\nEvery bit of it is described from the outside. Skinner was deliberate about this — he treated the mind as a black box and argued you should only ever talk about observable behavior. Which is scientifically disciplined and completely useless if you want to\nbuild\none.\nBecause if you're going to build this thing, you need to answer a question Skinner refused to ask:\nwhere does the learning physically live?\n1949 — Hebb Finds the Storage\nDonald Hebb, a Canadian psychologist, published\nThe Organization of Behavior\nin 1949 and proposed a mechanism so simple it fits in a sentence.\nIf neuron A repeatedly takes part in firing neuron B, some growth process or metabolic change takes place in both cells such that A's efficiency in firing B is increased.\nThat's\nHebb's Rule\n, and the pop version is stickier:\nneurons that fire together, wire together.\nTwo neurons active at the same time? The connection between them — the\nsynapse\n— physically strengthens. Next time, A triggers B more easily. Do it enough and the path becomes a highway.\nRun Thorndike's cat through this. The cat sees the lever (a pattern of neurons firing) and presses it (another pattern firing). They're active together. Their connection thickens. A hundred trials later, seeing the lever\nis\npressing the lever — there's a paved road between them.\nThat's a habit, described in hardware.\nAnd this is where artificial neural networks come from. In a network, the connection strength between two artificial neurons is a number called a\nweight.\nLearning means adjusting weights so that useful inputs reliably produce useful outputs. Hebb is the reason \"learning = changing connection strengths\" is the default assumption in the entire field.\nOne important correction, because this gets flattened a lot:\nHebb's rule is\nnot\nbackpropagation, and the difference is worth thirty seconds.\nHebb's rule is\nlocal\n. A synapse strengthens based only on what its own two neurons are doing right now. No supervisor, no error signal, nobody keeping score.\nBackpropagation\n— the algorithm that actually trains modern networks — is\nglobal and error-driven\n. It compares the network's output to a desired output, computes how wrong it was, and pushes that error signal backward through every layer, adjusting each weight by how much it contributed to the mistake. Every weight update depends on information from far away in the network.\nThese are genuinely different mechanisms. In fact, the gap between them is one of the liveliest open arguments in neuroscience: brains clearly don't run backprop — there's no known biological machinery for shipping a precise error signal backward across a network — yet backprop works spectacularly well. Whether the brain approximates something like it, or does something else entirely, is unresolved.\nSo the honest lineage is:\nHebb gave us the idea that memory lives in connection strengths.\nBackprop is a much later, mathematically-driven answer to\nhow to update\nthose strengths. Same neighborhood, different building.\n🎒\nIn the backpack:\nlearning is stored in connection weights. Local, physical, incremental.\nWhere that leaves us in 1949\nFifty-one years, four researchers, and the loop is complete:\nIdea\nFrom\nWhat it becomes\nRewards strengthen the actions that earned them\nThorndike, 1898\nthe reward signal\nSignals predict future reward\nPavlov, 1900s\nvalue\nBehavior can be sculpted step by step\nSkinner, 1930s–50s\npolicies, reward shaping\nLearning is stored in connection strengths\nHebb, 1949\nweights\nRead that table top to bottom and you have a specification. Something that acts, predicts, gets shaped by consequences, and stores what it learned in the strength of its connections.\nNobody had built it. Nobody could — the ideas were all written in the language of biology, describing wet tissue that nobody could manufacture.\nBut 1949 is the year that stops being true. The war had just produced digital computers. A new field called\ncybernetics\nwas arguing that control and feedback worked the same way in animals and machines, and that the distinction was less fundamental than everyone assumed.\nFor the first time, people had a spec for learning\nand\na machine to run it on.\nOne thing they all got wrong\nBefore we leave the psychologists, here's the crack in the foundation — worth holding onto, because it takes another twenty years to fix.\nEvery idea above says learning happens when things\nco-occur.\nMetronome and food together → learn. Lever and fish together → learn. Neurons active together → wire together.\nBut co-occurrence can't be the whole story:\nYour alarm has gone off at 7am every day for a year.\nBy the co-occurrence rule, this morning should have strengthened that association a little further, same as every other morning. It didn't. You learned it in the first week and then stopped — even though the pairing kept happening, perfectly, hundreds more times.\nSo what switches learning\noff\n?\nNobody in this post can answer that. The answer arrives in 1972, from a pair of psychologists still studying rats, and when it does it turns out to be the single most important equation in this entire series. We'll get there.\nNext up\nRL #2 — Cybernetics and Early Machines (1948–1954).\nThe first people to actually build this thing. Alan Turing sketching a \"pleasure-pain system\" in 1948. Claude Shannon's Theseus, a mechanical mouse that learned a maze by trial and error and could remember it. And Marvin Minsky wiring together the SNARC — 40 vacuum tubes, motors, and a clutch, arguably the first machine that learned by reinforcement.\nThe cats gave us the algorithm. Now watch people try to solder it.\nIf you spot an error or think I've oversimplified something, drop it in the comments — I'd rather fix it than have it sit there.",
  "metadata": {
    "title": "RL 1: Biological foundations and the \"Law of Effect\" (1898– 1949) - DEV Community",
    "description": "Before GPUs. Before neural networks. Before transistors were even a rumor.  There was a hungry cat in... Tagged with rl, machinelearning, deeplearning, ai.",
    "keywords": "rl, machinelearning, deeplearning, ai, software, coding, development, engineering, inclusive, community",
    "author": null,
    "og:type": "article",
    "og:url": "https://dev.to/mitanshgor/rl-1-biological-foundations-and-the-law-of-effect-1898-1949-1a9f",
    "og:title": "RL 1: Biological foundations and the \"Law of Effect\" (1898– 1949)",
    "og:description": "Before GPUs. Before neural networks. Before transistors were even a rumor.  There was a hungry cat in...",
    "og:site_name": "DEV Community",
    "og:image": "https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqnj9b2o412q1cwr9bng.png",
    "twitter:site": "@thepracticaldev",
    "twitter:creator": "@",
    "twitter:title": "RL 1: Biological foundations and the \"Law of Effect\" (1898– 1949)",
    "twitter:description": "Before GPUs. Before neural networks. Before transistors were even a rumor.  There was a hungry cat in...",
    "twitter:card": "summary_large_image",
    "twitter:widgets:new-embed-design": "on",
    "twitter:image:src": "https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqnj9b2o412q1cwr9bng.png"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [],
  "images": [
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbm95lgy9r5kbc7tyi1fg.png",
      "bytes": 34630,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/002.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbm95lgy9r5kbc7tyi1fg.png",
      "alt": "RL",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm8xra1vrxrrankczn0l.png",
      "bytes": 200446,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/003.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm8xra1vrxrrankczn0l.png",
      "alt": "Edward Thorndike",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa8weof0r3zhvb75exe7.png",
      "bytes": 331146,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/004.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa8weof0r3zhvb75exe7.png",
      "alt": "Thorndike's puzzle box environment",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrb3lotitr11lo46umfx.png",
      "bytes": 382112,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/005.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrb3lotitr11lo46umfx.png",
      "alt": "Ivan Pavlov",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9me8tgsxmv8vn7qrwgf1.png",
      "bytes": 195564,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/006.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9me8tgsxmv8vn7qrwgf1.png",
      "alt": "Pavlov's dog experiment",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwal2v9jj5pw68zrj5oa.png",
      "bytes": 200700,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/007.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwal2v9jj5pw68zrj5oa.png",
      "alt": "B.F. Skinner",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oszf4z6acztkuf32c73.png",
      "bytes": 255278,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/008.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oszf4z6acztkuf32c73.png",
      "alt": "Rat in a Skinner box",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpq0oxiztlxp2o9uy8z1.png",
      "bytes": 72438,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/009.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpq0oxiztlxp2o9uy8z1.png",
      "alt": "Donald Hebb",
      "downloaded": true
    },
    {
      "status": "ok",
      "url": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2ei581ewgfx0kd2zqhk.png",
      "bytes": 209890,
      "reused": true,
      "local_path": "attachments/67640d9c998d/images/010.png",
      "src": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2ei581ewgfx0kd2zqhk.png",
      "alt": "Hebb's rule: neuron A firing neuron B",
      "downloaded": true
    }
  ],
  "audio": [],
  "videos": [
    {
      "url": "https://www.youtube.com/watch?v=RPJyKSmH9WM",
      "src": "https://www.youtube.com/shorts/RPJyKSmH9WM?feature=share",
      "status": "ok",
      "kind": "single_video",
      "local_path": "attachments/67640d9c998d/videos/repair-RPJyKSmH9WM.mp4",
      "bytes": 3596447,
      "valid": true,
      "height": 1080,
      "width": 608,
      "duration": "81.841000",
      "reused": false
    }
  ],
  "links": [
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbm95lgy9r5kbc7tyi1fg.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm8xra1vrxrrankczn0l.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://www.appstate.edu/~steelekm/classes/psy5300/Documents/chance-72-433.pdf",
      "label": "puzzle box",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa8weof0r3zhvb75exe7.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrb3lotitr11lo46umfx.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9me8tgsxmv8vn7qrwgf1.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwal2v9jj5pw68zrj5oa.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oszf4z6acztkuf32c73.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://www.youtube.com/shorts/RPJyKSmH9WM?feature=share",
      "label": "https://www.youtube.com/shorts/RPJyKSmH9WM?feature=share",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpq0oxiztlxp2o9uy8z1.png",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2ei581ewgfx0kd2zqhk.png",
      "label": "",
      "type": "a"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-14T10:48:46Z",
  "source_url": "https://dev.to/mitanshgor/rl-1-biological-foundations-and-the-law-of-effect-1898-1949-1a9f",
  "papers": [
    {
      "status": "ok",
      "url": "https://www.appstate.edu/~steelekm/classes/psy5300/Documents/chance-72-433.pdf",
      "bytes": 159886,
      "reused": false,
      "local_path": "papers/repair/28e059e9a1162605f8c1.pdf"
    }
  ],
  "actual_video_files": [],
  "body_chars": 16331,
  "expected_body_images": 9,
  "discovery_status": "ok",
  "delivery_status": "ok",
  "missing_reason": "",
  "raw_html": "attachments/67640d9c998d/pages/source.html",
  "local_html": "attachments/67640d9c998d/pages/article.html",
  "body_base_path": "attachments/67640d9c998d/pages/",
  "body_markdown_path": "attachments/67640d9c998d/pages/article.md"
}