Claude Code Buddy સુધારણા માર્ગદર્શિકા: કેવી રીતે મેળવો ચમકદાર દંતકથા સ્તરની પેટે
Claude Code Buddy સુધારણા માર્ગદર્શિકા: કેવી રીતે મેળવો ચમકદાર દંતકથા સ્તરની પેટે
2026年4月1日,Anthropic 在 Claude Code 2.1.89 版本中悄然上线了一个彩蛋功能——/buddy 宠物系统。在终端输入 /buddy 后,一只 ASCII 风格的小动物会"孵化"在你的输入框旁边,陪你写代码、吐槽 bug。
每只 Buddy 由账号 ID 通过确定性算法生成,意味着同一个账号永远获得同一只宠物。但通过修改配置文件中的 userID,我们可以"重ROLL"出心仪的宠物。本文将详细介绍算法原理和完整的修改脚本。
一、Buddy 系统概览
18 种物种
系统目前包含 18 种可爱的物种:
- duck - બટકું(ક્લાસિક રબર બટકું ડિબગિંગ)
- 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% સંભાવના, ટોચની સજાવટ
二、算法原理深度解析
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; }; }
મલબેરી32 એ રમત વિકાસમાં સામાન્ય રીતે ઉપયોગમાં લેવાતી હળવા વજનની 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; }
// મલબેરી32 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 -= RARITY_WEIGHTS[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... "); 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 માં સ્થાયી
roll(userID) ના પરિણામથી ઓવરરાઈટ કરશે. ટિપ્પણી ખૂબ જ સ્પષ્ટ છે:editing config.companion can't fake a rarity。
પરંતુ userID પોતે ફેરફાર કરી શકાય છે, આ લેખની પદ્ધતિનું સિદ્ધાંત છે.
છ, સારાંશ
Claude Code Buddy એક સારી રીતે ડિઝાઇન કરેલ ઇસ્ટર અંડા ફીચર છે, જેનું સંયોજન છે:
- નિશ્ચિતતા રેન્ડમ:FNV-1a + Mulberry32 નો ક્લાસિક સંયોજન
- કાર્ડ ડ્રોઇંગ મિકેનિઝમ:5 સ્તરની દુર્લભતા + 1% ચમક, Gacha રમતોની આત્મા
- ચોરી રોકવા માટેની ડિઝાઇન:હાડકાં/આત્મા અલગ, ન્યાયસંગતતા સુનિશ્ચિત કરે છે
- અપ્રિલ ફૂલ્સ ઇસ્ટર અંડા:salt મૂલ્ય 1 એપ્રિલના ટાઇમસ્ટેમ્પને છુપાવે છે
સંદર્ભ સામગ્રી:
- Claude Code 2.1.89 સોર્સ કોડ લીક (npm source map દુર્ઘટના)
- જ્વેલ:"Claude Code Buddy મોડલની ઊંડાણમાં તપાસ: એક કાક્ટસ પાછળની નિશ્ચિતતા રેન્ડમ અલ્ગોરિધમ"- DEV.to: મેં ક્લોડ કોડ સોર્સ કોડને ફાડ્યો

