PARRY (1972, DEC PDP-10 / Stanford AI Lab)
Author(s): Kenneth Mark Colby (with Roger C. Parkison, William S. Faught)
Sources: Wikipedia: PARRY, RFC 439 “PARRY encounters the DOCTOR” (1973) (IA: rfc0439), Colby, Artificial Paranoia: A Computer Simulation of Paranoid Processes (1975), History of Information: Colby develops PARRY
Category: inspiration, Batch 10 (gameplay-mechanics mining). The canonical example of an NPC / voice driven by a hidden numeric emotional state that shapes and escalates its output.
Serves: Marty Glitch (assigned by Josh; see cart map)
What it is
Section titled “What it is”PARRY is a 1972 conversational program by psychiatrist Kenneth Colby that models a paranoid patient in a psychiatric interview. Where ELIZA passively reflected the user’s words, PARRY carries a fixed backstory and a running internal emotional state, and it construes what you type as friendly, hostile, or neutral, then answers in character. It gave the paranoia a concrete fiction: PARRY plays a man who once fought a bookie who did not pay off a bet, believes the bookie’s underworld and Mafia contacts are now after him, and steers conversations toward that fear. In blind testing, psychiatrists could not reliably tell PARRY’s transcripts from real patients’.
Mechanics
Section titled “Mechanics”Sourced from Colby’s model as reported in the references, the RFC 439 ARPANET transcript, and standard histories. I could not access the OCR of Colby’s 1975 book directly (the scan is lending-restricted), so the exact numeric ranges below are described qualitatively. I did not quote figures from it.
- Platform and language. Developed from 1971 at the Stanford AI Lab; written in MLISP (a Stanford LISP dialect) with parts in PDP-10 assembly, running on a DEC PDP-10 under the WAITS timesharing operating system.
- Input handling: construe for malevolence. Each typed line is interpreted for intent. PARRY tries to read the input as directly or indirectly malevolent. When it detects malevolence, it triggers an affective response keyed to the kind of threat: physical malevolence raises fear, psychological malevolence raises anger, and either kind also raises mistrust (per the History of Information and affect-model summaries).
- The affect model: three numeric emotional levels. PARRY tracks quantitative internal variables for anger, fear, and mistrust. These levels rise and fall dynamically across the conversation in response to what the user says. They are the difference from ELIZA: the same input produces a different reply depending on the current emotional level. High anger pushes hostile counterattacks; high fear pushes guarded withdrawal; rising mistrust is an interpretive bias that makes PARRY read otherwise-neutral input as threatening, deepening the spiral. Colby framed paranoia as a rule-driven, self-reinforcing way of processing input, and the variables implement that loop.
- Sensitive topics and a scripted delusion. PARRY holds a set of touchy subjects tied to its backstory: bookies, horse racing, gambling, the underworld, and the Mafia. Probing these “flares” the emotional state and steers PARRY into volunteering its persecution narrative, partly to try to recruit the interviewer’s help. RFC 439 captures the tone: “A bookie didn’t pay me off once,” “I know the mob controls the big rackets,” and, of horse racing, “There are some tricky operators down there.”
- Response selection. Output is authored canned text selected by the current affect levels and the construed intent of the input, with the aim of offsetting the perceived threat through counterattack or withdrawal. There is no learning; the behavior is a fixed rule set plus the moving emotional state.
- The famous tests. On 18 September 1972, PARRY was connected to ELIZA (Weizenbaum’s DOCTOR) over the ARPANET and the two programs conversed, transcribed as RFC 439. In Colby’s validation, psychiatrists interviewed real patients and PARRY via teletype and a separate panel judged the transcripts; they identified which was the program only about 48% of the time, indistinguishable from chance.
Mineable patterns
Section titled “Mineable patterns”- A hidden numeric affect state that drives output. The core idea: keep private variables (anger, fear, mistrust) that the user never sees, update them each turn from what the user does, and let their levels pick which authored line comes out. Same input, different reply, because the internal state moved.
- Classify input intent, then react. Before answering, score the input as friendly / hostile / neutral (PARRY’s malevolence construal). That classification of intent drives the branch.
- Escalation and de-escalation thresholds. Emotional levels crossing a threshold flip the response register from guarded to hostile and back. A cheap, legible way to make a voice feel like it has a temper and a memory of the last few turns.
- Sensitive-topic tracking that arms a scripted narrative. A small set of trigger subjects that, when touched, raise the state and steer the conversation into a pre-authored storyline. Reusable for any character guarding a secret.
- A stable persona with a fixed backstory. PARRY is one authored character with a consistent fiction (the bookie, the Mafia). The affect model animates a fixed personality; the two together read as a coherent person.
- Convincing on a tiny footprint. No parser of meaning and no model weights. Keyword construal plus three counters plus a canned-line table passed for a patient. It fits a constrained device and a fixed memory budget.
KN-86 resonance
Section titled “KN-86 resonance”Light, concept-level only. No minigame is being designed here.
- CIPHER as a voice with concealed affect state. CIPHER is KN-86’s authored terminal voice on the auxiliary OLED. PARRY is the reference for backing such a voice with hidden numeric levels that select which authored line is emitted as those levels rise and fall, kept as a small authored table.
- Interrogation / negotiation as an affect loop. A dialogue cart where the operator questions a suspect or handler could track that character’s private fear/anger/mistrust and gate what it reveals, escalating or withholding based on how the operator probes.
- Sensitive-topic triggers gating disclosure. A hidden list of touchy subjects that, when the operator hits them, shifts the character’s state and unlocks (or locks) a scripted branch. A legible, offline, fully-authored mechanic.
- Cross-link.
ecala.md, the same batch’s other conversational-AI entry, is the passive ELIZA-family baseline PARRY adds hidden emotional state on top of.
Sources & verification
Section titled “Sources & verification”- Confidence: HIGH on identity, authorship, year, platform, the three-variable affect model (anger, fear, mistrust), the malevolence-construal input handling, the gambling/bookie/Mafia delusion, the ARPANET ELIZA session (RFC 439, 18 Sept 1972), and the ~48% psychiatrist result. These are corroborated across Wikipedia, History of Information, the affect-model research summaries, and the RFC primary transcript.
- Implementation detail (MLISP + PDP-10 assembly, WAITS, collaborators Parkison and Faught): HIGH, from the consolidated history via web search; Wikipedia alone was vaguer on language.
- Unverified / not quoted: exact numeric ranges for the affect variables. Colby’s 1975 book (IA
artificialparano00colb) is the primary source for the precise scales and update rules, but its OCR is behind Internet Archive’s lending restriction and the download stalled. I described the variables’ behavior qualitatively and did not invent a specific 0-to-N scale or threshold values. - IA items cited:
rfc0439(RFC 439 transcript),artificialparano00colb(Colby’s book). Aparry_chatbotitem and a CMU AI-repository PARRY source package also exist for anyone reconstructing the program.