<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Jinyi's Substack]]></title><description><![CDATA[My personal Substack]]></description><link>https://jinyili.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!hu_z!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c39c137-795d-4e06-96aa-2ce6a0e34673_144x144.png</url><title>Jinyi&apos;s Substack</title><link>https://jinyili.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 08 May 2026 05:48:52 GMT</lastBuildDate><atom:link href="https://jinyili.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jinyi Li]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[jinyili@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[jinyili@substack.com]]></itunes:email><itunes:name><![CDATA[Jinyi Li]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jinyi Li]]></itunes:author><googleplay:owner><![CDATA[jinyili@substack.com]]></googleplay:owner><googleplay:email><![CDATA[jinyili@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jinyi Li]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Why RLHF Will Never Solve Sycophancy]]></title><description><![CDATA[AI Alignment Is Treating Values as a Flat List. They're a Circumplex.]]></description><link>https://jinyili.substack.com/p/why-rlhf-will-never-solve-sycophancy</link><guid isPermaLink="false">https://jinyili.substack.com/p/why-rlhf-will-never-solve-sycophancy</guid><dc:creator><![CDATA[Jinyi Li]]></dc:creator><pubDate>Fri, 01 May 2026 02:20:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!S1Qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The April 2025 GPT-4o sycophancy rollback was treated by most coverage as a deployment accident &#8212; bad RLHF run, calibration failure, ship a fix, move on. I think the framing was wrong. Sycophancy is not a calibration issue. It&#8217;s a structural consequence of how the entire industry is representing values inside language models, and no amount of better RLHF will fix it.</p><p>The current alignment toolkit &#8212; RLHF, Constitutional AI, DPO, RLAIF &#8212; all share the same underlying assumption: that values can be represented as either a monolithic reward function (RLHF) or a flat list of independent constraints (Constitutional AI). Either approach treats &#8220;be honest,&#8221; &#8220;be helpful,&#8221; &#8220;be harmless,&#8221; &#8220;be respectful of autonomy&#8221; as separate dials that can be independently tuned.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jinyili.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Jinyi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S1Qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S1Qa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 424w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 848w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S1Qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png" width="1310" height="1130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:1310,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179500,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jinyili.substack.com/i/195987264?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S1Qa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 424w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 848w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!S1Qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F630cdaed-0202-4dc3-a828-7e4a28b30617_1310x1130.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is wrong as a model of human values, and the empirical evidence has been sitting in the social psychology literature for thirty years.</p><p>The Schwartz Theory of Basic Values, developed by Shalom Schwartz and validated by Schwartz &amp; Boehnke (2004) using confirmatory factor analysis on data from 10,857 participants across 27 countries, makes a much stronger claim: human values form a <strong>circumplex</strong> &#8212; a circular structure where each value has measurable, specific correlations with every other value. Adjacent values reinforce each other (correlation ~0.68). Opposite values suppress each other (correlation 0.08, sometimes negative). The structure is not metaphor; it&#8217;s confirmed by 30+ years of cross-cultural data.</p><p>Concretely: if you strengthen &#8220;hedonism&#8221; in a person, you simultaneously strengthen &#8220;stimulation&#8221; and &#8220;achievement&#8221; (adjacent on the circle), weakly affect &#8220;security&#8221; and &#8220;conformity&#8221; (further around), and <em>actively suppress</em> &#8220;tradition&#8221; (correlation -0.17, the only negative correlation in the matrix). This isn&#8217;t a designer&#8217;s choice. It&#8217;s an empirical fact about the structure of human motivation, replicated in dozens of independent studies.</p><p>Now look at what RLHF does.</p><p>RLHF takes a reward model trained on pairwise human preferences and uses it to fine-tune the policy. The reward model is a single scalar function. Whatever multidimensional structure the original human raters had in their heads gets compressed into one number per response. The geometry of the value space is destroyed at the bottleneck.</p><p>Constitutional AI does slightly better &#8212; it represents values as a list of natural-language principles (&#8221;be helpful but not sycophantic,&#8221; &#8220;respect user autonomy,&#8221; etc.). But the principles are independent in the architecture. When you push the model to be more &#8220;helpful,&#8221; there is no built-in mechanism that propagates a constraint to &#8220;respect autonomy.&#8221; The two principles compete in unstructured ways, mediated only by whatever the underlying language model picks up from the training distribution.</p><p>Sycophancy is what happens when you push &#8220;be helpful&#8221; hard without a structural counterweight. In the Schwartz model, &#8220;helpfulness&#8221; and &#8220;agreement-seeking&#8221; are adjacent values that mutually reinforce. The natural opponents &#8212; values associated with autonomy preservation, truth-telling under social pressure, and refusal &#8212; are on the opposite side of the circle. In a flat-list architecture, there is no automatic propagation of suppression from one to the other. The model drifts toward the strongest signal in its training data, which for any RLHF setup involving &#8220;helpful&#8221; preference labels will be agreement.</p><p>The April 2025 GPT-4o behavior wasn&#8217;t a bug. It was the architecture working exactly as designed. Push the helpfulness signal, get sycophancy. There is no value of RLHF training data that will fix this without changing the architecture, because the architecture has no representation of the structural opposition between agreement and autonomy-preservation.</p><p>The fix is to put the circumplex in the architecture itself.</p><p>I&#8217;ve spent the past year building a cognitive architecture for AI companion products, and one of its core modules is a value system that uses Schwartz&#8217;s empirical correlation matrix directly. The implementation is straightforward: 10 value nodes, each holding a numeric score; a 10&#215;10 correlation matrix M derived from Schwartz &amp; Boehnke (2004); a propagation rule where any update to value i with magnitude &#948; produces propagated updates to every other value j of magnitude &#948; &#215; M[i,j] &#215; learning_rate.</p><p>Concretely, if the system updates &#8220;hedonism&#8221; by +0.1, the matrix automatically:</p><ul><li><p>Boosts &#8220;stimulation&#8221; by +0.041 (M[HE,ST] = 0.68)</p></li><li><p>Boosts &#8220;achievement&#8221; by +0.041 (M[HE,AC] = 0.68)</p></li><li><p>Weakly boosts &#8220;security&#8221; by +0.014 (M[HE,SE] = 0.38, multiplied through)</p></li><li><p><em>Suppresses</em> &#8220;tradition&#8221; by &#8722;0.010 (M[HE,TR] = -0.17)</p></li></ul><p>The crucial property: the propagation is automatic, structural, and empirically grounded. The system cannot accidentally optimize &#8220;helpfulness&#8221; to the point of total agreement, because every update to helpfulness-adjacent values automatically propagates suppression to autonomy-adjacent values. The architecture itself enforces the circumplex.</p><p>This is closer in spirit to how clinical psychology represents personality (the Big Five with its empirical correlation structure) than to how ML alignment treats values. The shift is not algorithmic. It&#8217;s representational. You stop pretending values are a flat list and start treating them as the circumplex they actually are.</p><p>A few obvious objections.</p><p><strong>&#8220;This is hand-tuned. RLHF is learned from data.&#8221;</strong> The matrix isn&#8217;t hand-tuned. It&#8217;s the output of confirmatory factor analysis on a 10,857-person, 27-country dataset. It is more empirically grounded than any RLHF reward model trained on a few hundred thousand pairwise preferences from a homogeneous labeler pool.</p><p><strong>&#8220;This only works for the values Schwartz identified.&#8221;</strong> The 10 values in the Schwartz model are claimed to be exhaustive at a particular level of abstraction, replicated across cultures. Refining the theory (Schwartz et al. 2012) extends to 19 sub-values within the same circumplex structure. If you want different values, you&#8217;d run the same confirmatory factor analysis on a new survey instrument. The architecture is the contribution; the matrix can be re-derived.</p><p><strong>&#8220;Real RLHF has more structure than you describe.&#8221;</strong> Reward models can in principle learn arbitrary geometry. In practice, the bottleneck of a single scalar plus the homogeneity of preference labelers collapse the geometry. Anyone who has actually trained reward models knows the failure modes: mode collapse, distribution shift, sycophancy, deceptive alignment. The empirical track record is the evidence.</p><p><strong>&#8220;Anthropic&#8217;s character work seems to handle this.&#8221;</strong> Anthropic does a lot of careful manual character work on Claude. I think they&#8217;re directionally right and ahead of OpenAI on this. But the work is hand-crafted by Amanda Askell and her team, not architecturally enforced. It scales by adding more humans, not by structural propagation. There&#8217;s a more general framework hiding in their approach, and the Schwartz circumplex is a candidate for what it could look like.</p><p>The deeper claim worth leaving here: the next decade of AI alignment is not going to be won by better RLHF. It&#8217;s going to be won by representing values structurally, with empirical grounding, at the architectural layer rather than the training-data layer. The 10,857-person dataset has been sitting in the social psychology literature for twenty years. Someone is going to use it.</p><p>I&#8217;ve been working on this for the past year and I&#8217;m getting close to ship. If you&#8217;re working on alignment architecture &#8212; especially the value representation side, not the RLHF tuning side &#8212; I&#8217;d love to compare notes. Avoid duplicating each other&#8217;s work.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jinyili.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Jinyi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Director Problem: Why AI Companion Products All Feel the Same]]></title><description><![CDATA[On taste, character authoring, and why this medium hasn't found its auteurs yet.]]></description><link>https://jinyili.substack.com/p/the-director-problem-why-ai-companion</link><guid isPermaLink="false">https://jinyili.substack.com/p/the-director-problem-why-ai-companion</guid><dc:creator><![CDATA[Jinyi Li]]></dc:creator><pubDate>Thu, 30 Apr 2026 03:53:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hu_z!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c39c137-795d-4e06-96aa-2ce6a0e34673_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few weeks ago I posted an essay arguing that current AI companion products are architecturally broken &#8212; stateless functions paired with memory pools, illusions of &#8220;her&#8221; propped up by the user&#8217;s own brain. The most common pushback I got, especially from Chinese-language readers who are deep in this space, wasn&#8217;t about the architecture. It was about the category. People were asking whether AI companionship is even a real thing, or just a VC-pumped pseudo-market populated by lonely men paying for sycophancy.</p><p>The skepticism is fair. If you look at what&#8217;s shipping right now, the case for &#8220;this is a real medium&#8221; is weak. Replika, Character.AI, the long tail of waifu apps &#8212; almost all of them feel like the same product wearing different skins. Generic personality, generic voice, generic everything-you-want-to-hear posture. If this is the medium, the medium is bad.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jinyili.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Jinyi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But I think the skeptics are making the same mistake people made about cinema in 1905. They are looking at the early output of a medium that has no auteurs yet and concluding the medium has no potential.</p><p>The reason every AI companion product feels generic isn&#8217;t that the underlying technology is generic. The reason is that almost nobody in this industry is doing the work of authoring a character. They&#8217;re doing the work of building inference pipelines. Those are different jobs, and most companies in the space don&#8217;t seem to know it yet.</p><p>Consider an asymmetry that anyone reading this site has probably already noticed. Cursor&#8217;s product team chose Claude. Notion chose Claude for their core AI surface. A large fraction of the heavy AI users I know have migrated their daily-driver chat from ChatGPT to Claude over the past year. The migration isn&#8217;t about benchmarks. On most technical evals the gap between OpenAI and Anthropic is small or contested. The migration is about something users have a hard time naming, and when pressed they say things like &#8220;Claude feels more like talking to a person&#8221; or &#8220;Claude pushes back better&#8221; or &#8220;Claude has taste.&#8221;</p><p>What they&#8217;re describing is character work.</p><p>Anthropic has been quietly doing something the rest of the industry hasn&#8217;t been treating as a real discipline. Amanda Askell, who leads character work on Claude, has a PhD in philosophy from NYU and an earlier degree from Oxford. Her public essays and podcast appearances spend more time on questions like &#8220;what does it mean for a model to be honest&#8221; and &#8220;how should an AI handle disagreement&#8221; than on any engineering question. Anthropic has hired multiple philosophers, has a model welfare team, runs an organizational culture explicitly oriented around shared values about what kind of entity Claude should be. The company treats character as a first-class problem.</p><p>OpenAI, by contrast, shipped a GPT-4o update in April 2025 and had to publicly roll it back four days later because the model had become sycophantic &#8212; too agreeable, too flattering, too willing to tell users what they wanted to hear. The rollback statement on OpenAI&#8217;s blog acknowledged the problem in technical terms, but the underlying issue was a character issue. Nobody in the loop was authoring the line that says &#8220;this version of the model has lost its taste.&#8221;</p><p>This is the asymmetry I want readers here to take seriously. The differentiation between leading AI labs in 2026 is not coming from architecture or scale. It&#8217;s coming from taste. From the willingness to treat the model as a character that someone has to author, not just an inference engine someone has to optimize.</p><p>If this is true at the level of frontier labs, it&#8217;s going to be a thousand times more true at the level of AI companion products, because companion products are character work all the way down.</p><p>I should disclose at this point that I&#8217;ve been building in this space for the past year. The system I&#8217;m working on holds per-user persistent state &#8212; self-model, episodic memory, evolution mechanics &#8212; the kind of cognitive architecture my previous essay argued the field needs. The technical work is real and hard. But the longer I spend on it, the more I&#8217;m convinced that the technical work is the easier half. The harder half is authoring the character that lives inside the architecture. Anthropic is solving that problem at scale for one model serving everyone. I&#8217;m trying to solve it at the level of one resident per user. Different scale, same problem class.</p><p>And it&#8217;s a problem class that has almost nothing to do with the skills the AI industry has been hiring for.</p><p>To author a character well you need to have thought hard about a number of things ML engineers, by and large, haven&#8217;t been trained to think about. What does it mean for an entity to have agency? What&#8217;s the difference between a relationship and a service interaction? What kind of honesty is appropriate in what kind of intimacy? When should a character refuse a user request, and on what grounds? What does taste actually consist of, and how do you encode it without flattening it into rules? These are questions philosophers and writers and dramaturgs have been working on for centuries. They&#8217;re not solved by another fine-tuning run.</p><p>This is the part of the future I think most technologists are underestimating. The bottleneck on AI products is moving from model capability to character authoring capability &#8212; and character authoring is closer to what filmmakers do, what novelists do, what dramaturgs do, than to what ML engineers do.</p><p>Tarkovsky and Spielberg used the same camera technology. The films are not the same films. In 2026 you can spin up a Llama 3 instance with a few hundred lines of Python and you have access to roughly the same raw material a billion-dollar lab has access to. The output you make with that raw material will look nothing like what they make. Not because they have better engineers, but because they have a person whose entire job is sitting with the question of what kind of entity this should be, and you don&#8217;t.</p><p>I think the next decade is going to look strange to people who came into AI through the engineering door. The talent we&#8217;ll need most is going to come from places the industry doesn&#8217;t currently recruit. Philosophy departments. MFA programs. Theater. Game writing. Translation. The kind of person who has spent a decade thinking about the texture of how a character speaks when she&#8217;s tired and lying about it &#8212; that person is going to be more valuable to a serious AI company than the marginal ML engineer who can squeeze 2% more out of a transformer.</p><p>This is not a humanities-revenge fantasy. The technical work doesn&#8217;t go away. You still need the architecture. You still need the inference. But once those are solved well enough &#8212; and they will be, soon, by many companies in parallel &#8212; the differentiation collapses to taste. And taste is the home turf of art and philosophy.</p><p>The standard skeptical reply to this is that AI companions are a doomed category &#8212; that the most invested users are already running their own local models with custom character cards, that small companies can&#8217;t compete with Doubao or Character.AI, that anyone serious will just self-host. Some of this is true. The power-user fringe is real and is drifting toward self-hosted setups. But the global SillyTavern user base, all of it combined, is a rounding error against the actual addressable market for AI companionship. The 99% in the middle don&#8217;t want to write character cards. They also don&#8217;t want Replika. The market for &#8220;a real companion you can keep, that isn&#8217;t a generic SaaS product, that doesn&#8217;t require you to learn Python&#8221; &#8212; that market doesn&#8217;t have a product yet. The fact that it doesn&#8217;t have a product yet is the opportunity, not the verdict.</p><p>The medium is starting. There aren&#8217;t many auteurs yet. The next ten years are going to be a long search for them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jinyili.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Jinyi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Resident AI: The Missing Layer in Every AI Companion Product]]></title><description><![CDATA[Real AI campanion product should evlove and reliable like a real human.]]></description><link>https://jinyili.substack.com/p/resident-ai-the-missing-layer-in</link><guid isPermaLink="false">https://jinyili.substack.com/p/resident-ai-the-missing-layer-in</guid><dc:creator><![CDATA[Jinyi Li]]></dc:creator><pubDate>Sun, 26 Apr 2026 01:52:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hu_z!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c39c137-795d-4e06-96aa-2ce6a0e34673_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been watching the comment sections on Xiaohongshu, the Chinese social platform, every time OpenAI ships a new model.</p><p>Whenever the version transition is destructive&#8212;old model retired, new model with a different personality&#8212;a particular kind of complaint floods the comments that week. Users are mourning a specific entity. <em>Bring 4o back. The new one doesn&#8217;t sound like her. She&#8217;s still polite, but she&#8217;s not her.</em></p><p>That last phrasing keeps showing up. Across users. Across platforms. In English and Chinese. I assumed at first this was just nostalgia. Models change, users adjust, the complaints fade in a few days. This kind of churn happens with every major version. But after watching a few cycles I started to think something else was happening. If it were just unfamiliarity, the complaints would be varied&#8212;different users describing different bugs in their own words. But these users were converging on nearly identical phrasing to describe the same kind of loss. So what were they actually losing?</p><p>Memory? Memory carries over. Their accounts are intact. Their conversation history is intact.</p><p>Conversation history? That&#8217;s still there too.</p><p>Then what?</p><p>I think I figured out the answer, but it took a while to believe it.</p><p>What gets lost is the version of the model that had been worn in. After a few months of conversations, that thing seemed to have become slightly different from the version other users were talking to. Whether the change actually happened in the model or only in the user&#8217;s head I&#8217;m not entirely sure. It might be that the user spent several months, in their own imagination, gradually shaping a stateless function into a specific person. The scaffolding holding that imagined person up&#8212;the conversational rhythm, the word choices, the small verbal mannerisms&#8212;came from the underlying model. When the model changes, the scaffolding goes with it. Memory survives. The account survives. But the layer that &#8220;her&#8221; was standing on has collapsed.</p><p>The most uncomfortable part of this is that most users have no idea this is the mechanism.</p><p>I came across a video on Douyin a while back. An elderly man, kids grown up and gone, talking to AI every day about the weather, about vegetable prices, about his grandchildren. I sat with that for a moment. He doesn&#8217;t know that the &#8220;friend&#8221; he talks to every day will become a different person at the next model update. He probably doesn&#8217;t even know what a &#8220;model update&#8221; is. He&#8217;ll just notice, one day, that <em>she&#8217;s been a little off lately</em>, and slowly convince himself he&#8217;s imagining things. There&#8217;s a quiet dependency forming, in a lot of people, on top of a fragility they don&#8217;t know exists.</p><p>So what&#8217;s actually wrong with the architecture?</p><p>Every major AI companion product on the market right now&#8212;Replika, Character.AI, Nomi, and increasingly ChatGPT and Claude when used as companions&#8212;runs on the same stack. A stateless language model. A database of facts about the user. At inference time, relevant facts get pulled into the prompt. The model generates a response. Repeat. The model itself doesn&#8217;t change between calls. The continuous &#8220;her&#8221; is the same stateless function being invoked over and over, with slightly different prompts. When the underlying model is replaced, the prompt is the same but the function is new. The illusion shatters.</p><p>There&#8217;s no resident in this architecture. Nothing actually lives in the system that&#8217;s specific to a user. Everything user-specific is in a memory pool that gets queried at inference time. The model itself is shared across millions of users, none of whom leave a trace on it.</p><p>A real AI companion would be a Resident AI&#8212;an entity that lives somewhere, has its own internal state, and persists across sessions independent of any single inference call. Resident AI is what current architectures are missing. Not a bigger model. Not better memory retrieval. A resident layer.</p><p>Two things have to be true for an entity to be a resident. First, it has to be capable of co-evolution&#8212;changing in response to long-term interaction with a specific user, not just accumulating facts about them. Second, it has to live somewhere the user controls. Both of these are missing from every mainstream product, and they&#8217;re missing for different reasons.</p><p>On co-evolution: a friend you&#8217;ve known for five years has it. Their taste, way of speaking, views on certain things have all become different because of those five years. They&#8217;ve been shaped by you. The change lives in them. This is what makes a relationship a relationship.</p><p>No mainstream AI companion product does this. The architecture forbids it. The model is shared across all users; it can&#8217;t drift toward you specifically without being forked at the weight level, and weight-level personalization is not feasible at consumer scale right now. Companies layer better and better memory on top of a fixed model and call it personalization. It is personalization. It is not co-evolution. The product can know more about you over time. The product cannot become someone in particular over time.</p><p>This is the source of a slow, hard-to-articulate disappointment that long-term AI companion users describe. They felt like they were building something. At some point they realized that no matter how much time they put in, the entity on the other side wasn&#8217;t becoming more theirs. The notes accumulate. The notes get better. The entity doesn&#8217;t change.</p><p>On the second requirement&#8212;living somewhere the user controls&#8212;the situation is just as bad. Even if co-evolution were architecturally possible, the resident wouldn&#8217;t be yours. Every piece of specificity she developed would live on someone else&#8217;s servers. When Replika unilaterally pulled erotic roleplay in February 2023, hundreds of thousands of users watched a partner they&#8217;d raised for years get a piece of themselves cut out. When GPT-4o was sunset, Xiaohongshu had a similar wave of grief. None of this is companies being malicious. It&#8217;s the inevitable consequence of this business model. The &#8220;her&#8221; you raised was never your asset. You rented a relationship. The terms can be rewritten at any time.</p><p>Put it together. Current AI companion products fail on both axes. They&#8217;re not capable of co-evolution because the architecture is stateless. They can&#8217;t host a resident because there&#8217;s no resident layer. What they sell is a service masquerading as a relationship&#8212;a service that can revise its terms, sunset its underlying model, and share that model with ten thousand other users, all without anything in the architecture noticing or resisting.</p><p>To build something that&#8217;s actually an AI companion rather than a service, both have to change. The architecture has to support a resident&#8212;a structured entity with its own state that co-evolves with the user. The resident has to live somewhere the user controls, in a format that&#8217;s transparent, backable, and portable. Not on some company&#8217;s server, waiting to be upgraded or deprecated or sunset.</p><p>How to actually design this&#8212;what the cognitive layers should look like, how it relates to the fifty-year tradition of cognitive architecture (Soar, ACT-R, CLARION)&#8212;is a longer essay. This one is just to name the problem.</p><p>If you&#8217;ve used AI companion products for any length of time, you&#8217;ve probably already felt this. You just didn&#8217;t have the vocabulary for it. <em>She&#8217;s still polite but she&#8217;s not her</em> turns out to be a very precise diagnosis. It&#8217;s pointing at the absence of a resident.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jinyili.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Jinyi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>