Claude Code Buddy മാറ്റം മാർഗ്ഗനിർദ്ദേശം: എങ്ങനെ മിനുക്കിയ പാരമ്പര്യതലത്തെ പെട്ടി നേടാം

4/2/2026
5 min read

Claude Code Buddy മാറ്റം മാർഗ്ഗനിർദ്ദേശം: എങ്ങനെ മിനുക്കിയ പാരമ്പര്യതലത്തെ പെട്ടി നേടാം

2026年4月1日,Anthropic 在 Claude Code 2.1.89 版本中悄然上线了一个彩蛋功能——/buddy 宠物系统。在终端输入 /buddy 后,一只 ASCII 风格的小动物会"孵化"在你的输入框旁边,陪你写代码、吐槽 bug。

每只 Buddy 由账号 ID 通过确定性算法生成,意味着同一个账号永远获得同一只宠物。但通过修改配置文件中的 userID,我们可以"重ROLL"出心仪的宠物。本文将详细介绍算法原理和完整的修改脚本。

一、Buddy 系统概览

18 种物种

系统目前包含 18 种可爱的物种:

  • duck - 鸭子(经典的 Rubber Duck Debugging)

  • goose - 鹅(调皮捣蛋)

  • blob - 果冻(软萌不定形)

  • cat - 猫(高冷傲娇)

  • dragon - 龙(霸气守护)

  • octopus - 章鱼(多线程思考)

  • owl - 猫头鹰(智慧导师)

  • penguin - 企鹅(正装出席)

  • turtle - 乌龟(稳健可靠)

  • snail - 蜗牛(慢工出细活)

  • ghost - 幽灵(神出鬼没)

  • axolotl - 蝾螈(可爱治愈)

  • capybara - 水豚(佛系大师)

  • cactus - 仙人掌(暖心植物)

  • robot - 机器人(理性至上)

  • rabbit - 兔子(活蹦乱跳)

  • mushroom - 蘑菇(安静观察)

  • chonk - 胖墩(圆滚滚)

5 级稀有度

  • Common(普通) - 60% 概率,无帽子装饰

  • Uncommon(罕见) - 25% 概率,解锁帽子

  • Rare(稀有) - 10% 概率,更多装饰

  • Epic(史诗) - 4% 概率,专属装饰

  • Legendary(传说) - 1% 概率,顶级装饰
此外还有独立的 1% 闪光(Shiny)概率,闪光宠物拥有彩虹色微光动画!闪光传说的概率是 1% × 1% = 0.01%,约万分之一。

二、算法原理深度解析

Buddy 的生成采用确定性随机算法,核心流程如下:

1. 种子字符串拼接

const SALT = "friend-2026-401"; // 4月1日愚人节彩蛋 const key = userId + SALT;

Salt 值 friend-2026-401 中的 401 代表 4月1日——一个精心设计的愚人节彩蛋。

2. FNV-1a 32-bit 哈希

将种子字符串转换为 32 位整数:

function hashString(s) { let h = 2166136261; // FNV offset basis for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); // FNV prime } return h >>> 0; }

3. Mulberry32 PRNG

用哈希值初始化伪随机数生成器:function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }

Mulberry32 ഗെയിം വികസനത്തിൽ സാധാരണയായി ഉപയോഗിക്കുന്ന ഒരു ലഘുവായ PRNG ആണ്, പ്രോഗ്രാമാറ്റിക് ജനറേഷൻക്കും പോർട്ടുകൾ വീഴ്ചയ്ക്കും അനുയോജ്യമാണ്。

4. അപൂർവതയുടെ ആകർഷണം (പ്രധാന!)

const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 };

function rollRarity(rng) { const total = 60 + 25 + 10 + 4 + 1; // = 100 let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITYWEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }

重要:RARITIES 数组的顺序必须是从低到高,这是加权随机选择的标准实现。

三、完整 Reroll 脚本

以下脚本可以搜索并生成闪光传说级 Buddy 的 userID:

// Claude Code Buddy Reroll 脚本 // 基于 Claude Code 源码逆向分析

// FNV-1a 32-bit hash function hashString(s) { let h = 2166136261; for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); } return h >>> 0; }

// Mulberry32 PRNG function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }

const SPECIES = [ "duck", "goose", "blob", "cat", "dragon", "octopus", "owl", "penguin", "turtle", "snail", "ghost", "axolotl", "capybara", "cactus", "robot", "rabbit", "mushroom", "chonk" ];const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 }; const SALT = "friend-2026-401";

function pick(rng, arr) { return arr[Math.floor(rng() arr.length)]; }

function rollRarity(rng) { const total = Object.values(RARITYWEIGHTS).reduce((a, b) => a + b, 0); let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITYWEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }

function testUserId(userId) { const key = userId + SALT; const seed = hashString(key); const rng = mulberry32(seed); const rarity = rollRarity(rng); const species = pick(rng, SPECIES); const shiny = rng() < 0.01; return { rarity, species, shiny }; }

function randomUserId() { let id = ""; for (let i = 0; i < 64; i++) { id += Math.floor(Math.random() 16).toString(16); } return id; }

//闪光传说的搜索 console.log("搜索闪光传说 Buddy...\n"); const targetSpecies = process.argv[2] || null;

while (true) { const userId = randomUserId(); const result = testUserId(userId);

if (result.rarity === "legendary" && result.shiny) { if (!targetSpecies || result.species === targetSpecies) { console.log("找到了!"); console.log("物种:", result.species); console.log("稀有度: 传说"); console.log("闪光: 是!"); console.log("userID:", userId); break; } } }

四、使用步骤

  • 保存脚本:将上述代码保存为 buddy-reroll.js

  • 运行脚本node buddy-reroll.js(可指定物种:node buddy-reroll.js dragon

  • 复制 userID:脚本会输出一个闪光传说级 Buddy 的 userID- കോൺഫിഗറേഷൻ മാറ്റുക
# എഡിറ്റ് ~/.claude.json cat ~/.claude.json | jq '.userID = "നിന്റെ പുതിയ userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json

  • Claude Code പുനരാരംഭിക്കുക,എഴുതുക /buddy പുതിയ പെട്ടി കാണാൻ!

അഞ്ചു, തട്ടിപ്പ് പ്രതിരോധ ഡിസൈൻ തത്വങ്ങൾ

Claude Code-ന്റെ ഡിസൈൻ വളരെ ചതുരമാണ്, ബോൺസ് (Bones) & സോൾ (Soul) വേർതിരിച്ച ഘടന ഉപയോഗിക്കുന്നു:

  • Bones(ബോൺസ്):പ്രജാതി, അപൂർവത, രൂപം, ഗുണങ്ങൾ——userID-ൽ നിന്ന് വീണ്ടും കണക്കാക്കുന്നു, ഒരിക്കലും സ്ഥിരമായി സൂക്ഷിക്കില്ല

  • Soul(സോൾ):പേര്, സ്വഭാവ വിവരണം——സ്ഥിരമായി പ്രാദേശിക കോൺഫിഗറേഷനിലേക്ക് സൂക്ഷിക്കുന്നു
ഇത് നിങ്ങൾ config ഫയലിലെ rarity ഫീൽഡ് നേരിട്ട് എഡിറ്റ് ചെയ്താലും, സിസ്റ്റം വായിക്കുമ്പോൾ
roll(userID)-ന്റെ ഫലത്തോടെ മൂടും എന്നതാണ്. കുറിപ്പുകൾ വളരെ നേരിയതായാണ് എഴുതപ്പെട്ടിരിക്കുന്നത്:editing config.companion can't fake a rarity`。

എന്നാൽ userID സ്വയം മാറ്റാൻ കഴിയുന്നതാണ്, ഇതാണ് ഈ ലേഖനത്തിന്റെ രീതി。

ആറു, സംഗ്രഹം

Claude Code Buddy ഒരു ശ്രദ്ധാപൂർവ്വമായ ഡിസൈൻ ചെയ്ത ഇഷ്ടക്കുറിപ്പാണ്, ഇതിൽ ഉൾക്കൊള്ളുന്നു:

  • നിശ്ചിതത്വം:FNV-1a + Mulberry32-ന്റെ ക്ലാസിക് സംയോജനം

  • കാർഡ് എടുക്കൽ മെക്കാനിസം:5-ലവല അപൂർവത + 1% മിനുസം, Gacha ഗെയിമിന്റെ ആത്മാവ്

  • തട്ടിപ്പ് പ്രതിരോധ ഡിസൈൻ:ബോൺസ്/സോൾ വേർതിരിക്കൽ, നീതിയുണ്ടാക്കുന്നു

  • ഊർജ്ജസ്വല ദിനത്തിന്റെ ഇഷ്ടക്കുറിപ്പ്:salt മൂല്യം 4-മത്തെ 1-ന്റെ ടൈംസ്റ്റാമ്പ് മറച്ചിരിക്കുന്നു
ഇപ്പോൾ പരീക്ഷിക്കൂ! നിങ്ങൾക്ക് ഇഷ്ടമുള്ള മിനുസമുള്ള ലെജൻഡറി Buddy കിട്ടട്ടെ!

ഉറവിടങ്ങൾ:

  • Claude Code 2.1.89 സോഴ്സ് കോഡ് ചോർച്ച (npm source map അപകടം)

  • 掘金:《深扒 Claude Code Buddy 模式:一只仙人掌背后的确定性随机算法》[[HTMLPLACEHOLDER0]]
[[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]]

[[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLDER5]]

[[HTMLPLACEHOLDER6]] [[HTMLPLACEHOLDER7]]

[[HTMLPLACEHOLDER8]] [[HTMLPLACEHOLDER9]] [[HTMLPLACEHOLDER10]]

[[HTMLPLACEHOLDER11]]

[[HTMLPLACEHOLDER12]] [[HTMLPLACEHOLDER_13]]

Published in Technology

You Might Also Like

Obsidian Defuddle പുറത്തിറക്കി, Obsidian Web Clipper-നെ പുതിയ ഉയരത്തിലേക്ക് കൊണ്ടുപോയിTechnology

Obsidian Defuddle പുറത്തിറക്കി, Obsidian Web Clipper-നെ പുതിയ ഉയരത്തിലേക്ക് കൊണ്ടുപോയി

Obsidian Defuddle പുറത്തിറക്കി, Obsidian Web Clipper-നെ പുതിയ ഉയരത്തിലേക്ക് കൊണ്ടുപോയി ഞാൻ എപ്പോഴും Obsidian-ന്റെ ആധാരഭ...

OpenAI അപ്രതീക്ഷിതമായി "മൂന്ന്-in-ഒന്ന്" പ്രഖ്യാപിച്ചു: ബ്രൗസർ + പ്രോഗ്രാമിംഗ് + ChatGPT സംയോജനം, കഴിഞ്ഞ ഒരു വർഷം തെറ്റായ വഴിയിലേക്കു പോയതായി ആന്തരികമായി അംഗീകരിച്ചുTechnology

OpenAI അപ്രതീക്ഷിതമായി "മൂന്ന്-in-ഒന്ന്" പ്രഖ്യാപിച്ചു: ബ്രൗസർ + പ്രോഗ്രാമിംഗ് + ChatGPT സംയോജനം, കഴിഞ്ഞ ഒരു വർഷം തെറ്റായ വഴിയിലേക്കു പോയതായി ആന്തരികമായി അംഗീകരിച്ചു

OpenAI അപ്രതീക്ഷിതമായി "മൂന്ന്-in-ഒന്ന്" പ്രഖ്യാപിച്ചു: ബ്രൗസർ + പ്രോഗ്രാമിംഗ് + ChatGPT സംയോജനം, കഴിഞ്ഞ ഒരു വർഷം തെറ്റാ...

2026, ഇനി സ്വയം 'ആത്മനിർവഹണം' ചെയ്യാൻ സമ്മർദം നൽകേണ്ട! ഈ 8 ചെറിയ കാര്യങ്ങൾ ചെയ്യുക, ആരോഗ്യവും സ്വാഭാവികമായി വരുംHealth

2026, ഇനി സ്വയം 'ആത്മനിർവഹണം' ചെയ്യാൻ സമ്മർദം നൽകേണ്ട! ഈ 8 ചെറിയ കാര്യങ്ങൾ ചെയ്യുക, ആരോഗ്യവും സ്വാഭാവികമായി വരും

2026, ഇനി സ്വയം 'ആത്മനിർവഹണം' ചെയ്യാൻ സമ്മർദം നൽകേണ്ട! ഈ 8 ചെറിയ കാര്യങ്ങൾ ചെയ്യുക, ആരോഗ്യവും സ്വാഭാവികമായി വരും പുതിയ ...

അവിടെ കുറവായിട്ടും കുറയാത്ത അമ്മമാർ, അവരെ ഇവിടെ കാണാംHealth

അവിടെ കുറവായിട്ടും കുറയാത്ത അമ്മമാർ, അവരെ ഇവിടെ കാണാം

അവിടെ കുറവായിട്ടും കുറയാത്ത അമ്മമാർ, അവരെ ഇവിടെ കാണാം മാർച്ച് മാസത്തിന്റെ മധ്യത്തിൽ, നിങ്ങളുടെ കുറവാക്കൽ പദ്ധതിയേന്താണ്...

📝
Technology

AI Browser 24 മണിക്കൂർ സ്ഥിരമായ പ്രവർത്തന മാർഗ്ഗനിർദ്ദേശം

AI Browser 24 മണിക്കൂർ സ്ഥിരമായ പ്രവർത്തന മാർഗ്ഗനിർദ്ദേശം ഈ ട്യൂട്ടോറിയൽ ഒരു സ്ഥിരമായ, ദീർഘകാല പ്രവർത്തനമുള്ള AI ബ്രൗസർ ...

📝
Technology

എജന്റ്-ബ്രൗസർ കോൺഫിഗറേഷൻ ഗൈഡ്: CDP വഴി ബ്രൗസർ ലോഗിൻ സ്റ്റേറ്റ് പുനരുപയോഗിക്കുക

എജന്റ്-ബ്രൗസർ കോൺഫിഗറേഷൻ ഗൈഡ്: CDP വഴി ബ്രൗസർ ലോഗിൻ സ്റ്റേറ്റ് പുനരുപയോഗിക്കുക\n\nഈ ഗൈഡ് എങ്ങനെ എജന്റ്-ബ്രൗസർ ഇൻസ്റ്റാൾ ...