[{"data":1,"prerenderedAt":17558},["ShallowReactive",2],{"blog-posts":3,"content-\u002Fposts\u002Ftowards-monosemanticity":13797},[4,4176,7281,7472,7510,7795,7827,8895,9195,9246,9310,9667,9873,9911,10419,10469,10557,10690],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"date":11,"categories":12,"tags":13,"draft":7,"body":17,"_type":4170,"_id":4171,"_source":4172,"_file":4173,"_stem":4174,"_extension":4175},"\u002Fposts\u002Ftowards-monosemanticity","posts",false,"","LLM 可解释性（一）：SAE与单语义","读 Anthropic《Towards Monosemanticity》。从难以解释的神经元出发, 讲清superposition为什么让单个神经元混成一团, SAE怎么把多语义的激活分解成单语义特征。","2026-07-12 22:00:00","殆罔集",[14,15,16],"LLMs","可解释性","SAE",{"type":18,"children":19,"toc":4163},"root",[20,57,64,69,85,96,812,971,1026,1177,1280,1285,1304,1316,1331,1336,1346,1352,2031,2688,2700,3442,3447,3864,3870,3882,4007,4019,4038,4044,4049,4061,4066,4107,4119,4125,4130,4142,4146,4157],{"type":21,"tag":22,"props":23,"children":24},"element","blockquote",{},[25,38],{"type":21,"tag":26,"props":27,"children":28},"p",{},[29,32],{"type":30,"value":31},"text","首先想问:",{"type":21,"tag":33,"props":34,"children":35},"strong",{},[36],{"type":30,"value":37},"神经网络里,到底什么是\"一个概念\"?",{"type":21,"tag":26,"props":39,"children":40},{},[41,43,48,50,55],{"type":30,"value":42},"直觉上我们想找具体能够表征某一个概念的神经元, 但真实模型里单个神经元会对多个不同的概念\u002F模式同时起反应，这就是 ",{"type":21,"tag":33,"props":44,"children":45},{},[46],{"type":30,"value":47},"polysemanticity(多义性)",{"type":30,"value":49},"。Anthropic 这篇的工作是:既然神经元本身不好直接解释,那我们就用稀疏自编码器(SAE)把激活\"解混\"成一组",{"type":21,"tag":33,"props":51,"children":52},{},[53],{"type":30,"value":54},"单语义特征(monosemantic features)",{"type":30,"value":56},",并给出证据说这些特征才是模型真正在用的计算单元。",{"type":21,"tag":58,"props":59,"children":61},"h2",{"id":60},"一为什么单个神经元看不懂",[62],{"type":30,"value":63},"一、为什么单个神经元看不懂",{"type":21,"tag":26,"props":65,"children":66},{},[67],{"type":30,"value":68},"机械可解释性(mechanistic interpretability)最早的想法很朴素:打开模型,逐个神经元看它对什么输入有反应,像生物学家找\"祖母细胞\"那样。但这条路撞墙了,因为绝大多数神经元是多义的,一个神经元可能同时对 DNA 序列、阿拉伯文、人名首字母大写都有反应。",{"type":21,"tag":26,"props":70,"children":71},{},[72,74,83],{"type":30,"value":73},"为什么? Anthropic 在更早的 ",{"type":21,"tag":75,"props":76,"children":80},"a",{"href":77,"rel":78},"https:\u002F\u002Ftransformer-circuits.pub\u002F2022\u002Ftoy_model\u002Findex.html#strategic-ways-out",[79],"nofollow",[81],{"type":30,"value":82},"Toy Models of Superposition",{"type":30,"value":84}," 里给了一个很干净的假设:",{"type":21,"tag":22,"props":86,"children":87},{},[88],{"type":21,"tag":26,"props":89,"children":90},{},[91],{"type":21,"tag":33,"props":92,"children":93},{},[94],{"type":30,"value":95},"模型要表达的概念(features)比它拥有的维度(neurons)多得多。",{"type":21,"tag":26,"props":97,"children":98},{},[99,101,106,108,113,115,175,177,219,221,228,230,275,277,431,433,495,497,502,504,546,548,726,728,810],{"type":30,"value":100},"于是模型把一堆概念\"挤\"进一个低维空间里——这就是 ",{"type":21,"tag":33,"props":102,"children":103},{},[104],{"type":30,"value":105},"superposition(叠加)",{"type":30,"value":107},"。直觉上,如果每个概念是高维空间里一个",{"type":21,"tag":33,"props":109,"children":110},{},[111],{"type":30,"value":112},"几乎正交",{"type":30,"value":114},"的方向,那么 ",{"type":21,"tag":116,"props":117,"children":120},"span",{"className":118},[119],"katex",[121,151],{"type":21,"tag":116,"props":122,"children":125},{"className":123},[124],"katex-mathml",[126],{"type":21,"tag":127,"props":128,"children":130},"math",{"xmlns":129},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[131],{"type":21,"tag":132,"props":133,"children":134},"semantics",{},[135,145],{"type":21,"tag":136,"props":137,"children":138},"mrow",{},[139],{"type":21,"tag":140,"props":141,"children":142},"mi",{},[143],{"type":30,"value":144},"d",{"type":21,"tag":146,"props":147,"children":149},"annotation",{"encoding":148},"application\u002Fx-tex",[150],{"type":30,"value":144},{"type":21,"tag":116,"props":152,"children":156},{"className":153,"ariaHidden":155},[154],"katex-html","true",[157],{"type":21,"tag":116,"props":158,"children":161},{"className":159},[160],"base",[162,168],{"type":21,"tag":116,"props":163,"children":167},{"className":164,"style":166},[165],"strut","height:0.6944em;",[],{"type":21,"tag":116,"props":169,"children":173},{"className":170},[171,172],"mord","mathnormal",[174],{"type":30,"value":144},{"type":30,"value":176}," 维空间可以塞下远多于 ",{"type":21,"tag":116,"props":178,"children":180},{"className":179},[119],[181,202],{"type":21,"tag":116,"props":182,"children":184},{"className":183},[124],[185],{"type":21,"tag":127,"props":186,"children":187},{"xmlns":129},[188],{"type":21,"tag":132,"props":189,"children":190},{},[191,198],{"type":21,"tag":136,"props":192,"children":193},{},[194],{"type":21,"tag":140,"props":195,"children":196},{},[197],{"type":30,"value":144},{"type":21,"tag":146,"props":199,"children":200},{"encoding":148},[201],{"type":30,"value":144},{"type":21,"tag":116,"props":203,"children":205},{"className":204,"ariaHidden":155},[154],[206],{"type":21,"tag":116,"props":207,"children":209},{"className":208},[160],[210,214],{"type":21,"tag":116,"props":211,"children":213},{"className":212,"style":166},[165],[],{"type":21,"tag":116,"props":215,"children":217},{"className":216},[171,172],[218],{"type":30,"value":144},{"type":30,"value":220}," 个几乎正交的方向(只要允许它们之间有一点干扰),代价是每个方向不再对齐到任何一根坐标轴(也就是不再等于某个神经元)。这件事不是拍脑袋--苏剑林在",{"type":21,"tag":75,"props":222,"children":225},{"href":223,"rel":224},"https:\u002F\u002Fkexue.fm\u002Farchives\u002F7076",[79],[226],{"type":30,"value":227},"《n维空间下两个随机向量的夹角分布》",{"type":30,"value":229},"里算过:两个随机单位向量的夹角 ",{"type":21,"tag":116,"props":231,"children":233},{"className":232},[119],[234,257],{"type":21,"tag":116,"props":235,"children":237},{"className":236},[124],[238],{"type":21,"tag":127,"props":239,"children":240},{"xmlns":129},[241],{"type":21,"tag":132,"props":242,"children":243},{},[244,252],{"type":21,"tag":136,"props":245,"children":246},{},[247],{"type":21,"tag":140,"props":248,"children":249},{},[250],{"type":30,"value":251},"θ",{"type":21,"tag":146,"props":253,"children":254},{"encoding":148},[255],{"type":30,"value":256},"\\theta",{"type":21,"tag":116,"props":258,"children":260},{"className":259,"ariaHidden":155},[154],[261],{"type":21,"tag":116,"props":262,"children":264},{"className":263},[160],[265,269],{"type":21,"tag":116,"props":266,"children":268},{"className":267,"style":166},[165],[],{"type":21,"tag":116,"props":270,"children":273},{"className":271,"style":272},[171,172],"margin-right:0.0278em;",[274],{"type":30,"value":251},{"type":30,"value":276}," 的密度正比于 ",{"type":21,"tag":116,"props":278,"children":280},{"className":279},[119],[281,339],{"type":21,"tag":116,"props":282,"children":284},{"className":283},[124],[285],{"type":21,"tag":127,"props":286,"children":287},{"xmlns":129},[288],{"type":21,"tag":132,"props":289,"children":290},{},[291,334],{"type":21,"tag":136,"props":292,"children":293},{},[294,330],{"type":21,"tag":295,"props":296,"children":297},"msup",{},[298,312],{"type":21,"tag":136,"props":299,"children":300},{},[301,306],{"type":21,"tag":140,"props":302,"children":303},{},[304],{"type":30,"value":305},"sin",{"type":21,"tag":307,"props":308,"children":309},"mo",{},[310],{"type":30,"value":311},"⁡",{"type":21,"tag":136,"props":313,"children":314},{},[315,319,324],{"type":21,"tag":140,"props":316,"children":317},{},[318],{"type":30,"value":144},{"type":21,"tag":307,"props":320,"children":321},{},[322],{"type":30,"value":323},"−",{"type":21,"tag":325,"props":326,"children":327},"mn",{},[328],{"type":30,"value":329},"2",{"type":21,"tag":140,"props":331,"children":332},{},[333],{"type":30,"value":251},{"type":21,"tag":146,"props":335,"children":336},{"encoding":148},[337],{"type":30,"value":338},"\\sin^{d-2}\\theta",{"type":21,"tag":116,"props":340,"children":342},{"className":341,"ariaHidden":155},[154],[343],{"type":21,"tag":116,"props":344,"children":346},{"className":345},[160],[347,352,420,426],{"type":21,"tag":116,"props":348,"children":351},{"className":349,"style":350},[165],"height:0.9069em;",[],{"type":21,"tag":116,"props":353,"children":356},{"className":354},[355],"mop",[357,362],{"type":21,"tag":116,"props":358,"children":360},{"className":359},[355],[361],{"type":30,"value":305},{"type":21,"tag":116,"props":363,"children":366},{"className":364},[365],"msupsub",[367],{"type":21,"tag":116,"props":368,"children":371},{"className":369},[370],"vlist-t",[372],{"type":21,"tag":116,"props":373,"children":376},{"className":374},[375],"vlist-r",[377],{"type":21,"tag":116,"props":378,"children":381},{"className":379,"style":350},[380],"vlist",[382],{"type":21,"tag":116,"props":383,"children":385},{"style":384},"top:-3.1208em;margin-right:0.05em;",[386,392],{"type":21,"tag":116,"props":387,"children":391},{"className":388,"style":390},[389],"pstrut","height:2.7em;",[],{"type":21,"tag":116,"props":393,"children":399},{"className":394},[395,396,397,398],"sizing","reset-size6","size3","mtight",[400],{"type":21,"tag":116,"props":401,"children":403},{"className":402},[171,398],[404,409,415],{"type":21,"tag":116,"props":405,"children":407},{"className":406},[171,172,398],[408],{"type":30,"value":144},{"type":21,"tag":116,"props":410,"children":413},{"className":411},[412,398],"mbin",[414],{"type":30,"value":323},{"type":21,"tag":116,"props":416,"children":418},{"className":417},[171,398],[419],{"type":30,"value":329},{"type":21,"tag":116,"props":421,"children":425},{"className":422,"style":424},[423],"mspace","margin-right:0.1667em;",[],{"type":21,"tag":116,"props":427,"children":429},{"className":428,"style":272},[171,172],[430],{"type":30,"value":251},{"type":30,"value":432},",关于 ",{"type":21,"tag":116,"props":434,"children":436},{"className":435},[119],[437,470],{"type":21,"tag":116,"props":438,"children":440},{"className":439},[124],[441],{"type":21,"tag":127,"props":442,"children":443},{"xmlns":129},[444],{"type":21,"tag":132,"props":445,"children":446},{},[447,465],{"type":21,"tag":136,"props":448,"children":449},{},[450,455,461],{"type":21,"tag":140,"props":451,"children":452},{},[453],{"type":30,"value":454},"π",{"type":21,"tag":140,"props":456,"children":458},{"mathvariant":457},"normal",[459],{"type":30,"value":460},"\u002F",{"type":21,"tag":325,"props":462,"children":463},{},[464],{"type":30,"value":329},{"type":21,"tag":146,"props":466,"children":467},{"encoding":148},[468],{"type":30,"value":469},"\\pi\u002F2",{"type":21,"tag":116,"props":471,"children":473},{"className":472,"ariaHidden":155},[154],[474],{"type":21,"tag":116,"props":475,"children":477},{"className":476},[160],[478,483,489],{"type":21,"tag":116,"props":479,"children":482},{"className":480,"style":481},[165],"height:1em;vertical-align:-0.25em;",[],{"type":21,"tag":116,"props":484,"children":487},{"className":485,"style":486},[171,172],"margin-right:0.0359em;",[488],{"type":30,"value":454},{"type":21,"tag":116,"props":490,"children":492},{"className":491},[171],[493],{"type":30,"value":494},"\u002F2",{"type":30,"value":496}," 对称,均值就是 90°。但光有均值不够--二维、三维的均值也是 90°。真正让结论成立的是",{"type":21,"tag":33,"props":498,"children":499},{},[500],{"type":30,"value":501},"方差",{"type":30,"value":503},":文章证明方差随维度 ",{"type":21,"tag":116,"props":505,"children":507},{"className":506},[119],[508,529],{"type":21,"tag":116,"props":509,"children":511},{"className":510},[124],[512],{"type":21,"tag":127,"props":513,"children":514},{"xmlns":129},[515],{"type":21,"tag":132,"props":516,"children":517},{},[518,525],{"type":21,"tag":136,"props":519,"children":520},{},[521],{"type":21,"tag":140,"props":522,"children":523},{},[524],{"type":30,"value":144},{"type":21,"tag":146,"props":526,"children":527},{"encoding":148},[528],{"type":30,"value":144},{"type":21,"tag":116,"props":530,"children":532},{"className":531,"ariaHidden":155},[154],[533],{"type":21,"tag":116,"props":534,"children":536},{"className":535},[160],[537,541],{"type":21,"tag":116,"props":538,"children":540},{"className":539,"style":166},[165],[],{"type":21,"tag":116,"props":542,"children":544},{"className":543},[171,172],[545],{"type":30,"value":144},{"type":30,"value":547}," 趋于 0,近似为 ",{"type":21,"tag":116,"props":549,"children":551},{"className":550},[119],[552,594],{"type":21,"tag":116,"props":553,"children":555},{"className":554},[124],[556],{"type":21,"tag":127,"props":557,"children":558},{"xmlns":129},[559],{"type":21,"tag":132,"props":560,"children":561},{},[562,589],{"type":21,"tag":136,"props":563,"children":564},{},[565],{"type":21,"tag":566,"props":567,"children":568},"mfrac",{},[569,574],{"type":21,"tag":325,"props":570,"children":571},{},[572],{"type":30,"value":573},"1",{"type":21,"tag":136,"props":575,"children":576},{},[577,581,585],{"type":21,"tag":140,"props":578,"children":579},{},[580],{"type":30,"value":144},{"type":21,"tag":307,"props":582,"children":583},{},[584],{"type":30,"value":323},{"type":21,"tag":325,"props":586,"children":587},{},[588],{"type":30,"value":329},{"type":21,"tag":146,"props":590,"children":591},{"encoding":148},[592],{"type":30,"value":593},"\\frac{1}{d-2}",{"type":21,"tag":116,"props":595,"children":597},{"className":596,"ariaHidden":155},[154],[598],{"type":21,"tag":116,"props":599,"children":601},{"className":600},[160],[602,607],{"type":21,"tag":116,"props":603,"children":606},{"className":604,"style":605},[165],"height:1.2484em;vertical-align:-0.4033em;",[],{"type":21,"tag":116,"props":608,"children":610},{"className":609},[171],[611,617,721],{"type":21,"tag":116,"props":612,"children":616},{"className":613},[614,615],"mopen","nulldelimiter",[],{"type":21,"tag":116,"props":618,"children":620},{"className":619},[566],[621],{"type":21,"tag":116,"props":622,"children":625},{"className":623},[370,624],"vlist-t2",[626,709],{"type":21,"tag":116,"props":627,"children":629},{"className":628},[375],[630,702],{"type":21,"tag":116,"props":631,"children":634},{"className":632,"style":633},[380],"height:0.8451em;",[635,667,681],{"type":21,"tag":116,"props":636,"children":638},{"style":637},"top:-2.655em;",[639,644],{"type":21,"tag":116,"props":640,"children":643},{"className":641,"style":642},[389],"height:3em;",[],{"type":21,"tag":116,"props":645,"children":647},{"className":646},[395,396,397,398],[648],{"type":21,"tag":116,"props":649,"children":651},{"className":650},[171,398],[652,657,662],{"type":21,"tag":116,"props":653,"children":655},{"className":654},[171,172,398],[656],{"type":30,"value":144},{"type":21,"tag":116,"props":658,"children":660},{"className":659},[412,398],[661],{"type":30,"value":323},{"type":21,"tag":116,"props":663,"children":665},{"className":664},[171,398],[666],{"type":30,"value":329},{"type":21,"tag":116,"props":668,"children":670},{"style":669},"top:-3.23em;",[671,675],{"type":21,"tag":116,"props":672,"children":674},{"className":673,"style":642},[389],[],{"type":21,"tag":116,"props":676,"children":680},{"className":677,"style":679},[678],"frac-line","border-bottom-width:0.04em;",[],{"type":21,"tag":116,"props":682,"children":684},{"style":683},"top:-3.394em;",[685,689],{"type":21,"tag":116,"props":686,"children":688},{"className":687,"style":642},[389],[],{"type":21,"tag":116,"props":690,"children":692},{"className":691},[395,396,397,398],[693],{"type":21,"tag":116,"props":694,"children":696},{"className":695},[171,398],[697],{"type":21,"tag":116,"props":698,"children":700},{"className":699},[171,398],[701],{"type":30,"value":573},{"type":21,"tag":116,"props":703,"children":706},{"className":704},[705],"vlist-s",[707],{"type":30,"value":708},"​",{"type":21,"tag":116,"props":710,"children":712},{"className":711},[375],[713],{"type":21,"tag":116,"props":714,"children":717},{"className":715,"style":716},[380],"height:0.4033em;",[718],{"type":21,"tag":116,"props":719,"children":720},{},[],{"type":21,"tag":116,"props":722,"children":725},{"className":723},[724,615],"mclose",[],{"type":30,"value":727},"(弧度²),",{"type":21,"tag":116,"props":729,"children":731},{"className":730},[119],[732,764],{"type":21,"tag":116,"props":733,"children":735},{"className":734},[124],[736],{"type":21,"tag":127,"props":737,"children":738},{"xmlns":129},[739],{"type":21,"tag":132,"props":740,"children":741},{},[742,759],{"type":21,"tag":136,"props":743,"children":744},{},[745,749,754],{"type":21,"tag":140,"props":746,"children":747},{},[748],{"type":30,"value":144},{"type":21,"tag":307,"props":750,"children":751},{},[752],{"type":30,"value":753},"=",{"type":21,"tag":325,"props":755,"children":756},{},[757],{"type":30,"value":758},"1000",{"type":21,"tag":146,"props":760,"children":761},{"encoding":148},[762],{"type":30,"value":763},"d=1000",{"type":21,"tag":116,"props":765,"children":767},{"className":766,"ariaHidden":155},[154],[768,796],{"type":21,"tag":116,"props":769,"children":771},{"className":770},[160],[772,776,781,786,792],{"type":21,"tag":116,"props":773,"children":775},{"className":774,"style":166},[165],[],{"type":21,"tag":116,"props":777,"children":779},{"className":778},[171,172],[780],{"type":30,"value":144},{"type":21,"tag":116,"props":782,"children":785},{"className":783,"style":784},[423],"margin-right:0.2778em;",[],{"type":21,"tag":116,"props":787,"children":790},{"className":788},[789],"mrel",[791],{"type":30,"value":753},{"type":21,"tag":116,"props":793,"children":795},{"className":794,"style":784},[423],[],{"type":21,"tag":116,"props":797,"children":799},{"className":798},[160],[800,805],{"type":21,"tag":116,"props":801,"children":804},{"className":802,"style":803},[165],"height:0.6444em;",[],{"type":21,"tag":116,"props":806,"children":808},{"className":807},[171],[809],{"type":30,"value":758},{"type":30,"value":811}," 时标准差只有约 1.8°,夹角几乎被钉死在 90°。",{"type":21,"tag":26,"props":813,"children":814},{},[815,817,862,864,969],{"type":30,"value":816},"另外有JL引理：塞下 ",{"type":21,"tag":116,"props":818,"children":820},{"className":819},[119],[821,843],{"type":21,"tag":116,"props":822,"children":824},{"className":823},[124],[825],{"type":21,"tag":127,"props":826,"children":827},{"xmlns":129},[828],{"type":21,"tag":132,"props":829,"children":830},{},[831,839],{"type":21,"tag":136,"props":832,"children":833},{},[834],{"type":21,"tag":140,"props":835,"children":836},{},[837],{"type":30,"value":838},"N",{"type":21,"tag":146,"props":840,"children":841},{"encoding":148},[842],{"type":30,"value":838},{"type":21,"tag":116,"props":844,"children":846},{"className":845,"ariaHidden":155},[154],[847],{"type":21,"tag":116,"props":848,"children":850},{"className":849},[160],[851,856],{"type":21,"tag":116,"props":852,"children":855},{"className":853,"style":854},[165],"height:0.6833em;",[],{"type":21,"tag":116,"props":857,"children":860},{"className":858,"style":859},[171,172],"margin-right:0.109em;",[861],{"type":30,"value":838},{"type":30,"value":863}," 个向量只需要 ",{"type":21,"tag":116,"props":865,"children":867},{"className":866},[119],[868,921],{"type":21,"tag":116,"props":869,"children":871},{"className":870},[124],[872],{"type":21,"tag":127,"props":873,"children":874},{"xmlns":129},[875],{"type":21,"tag":132,"props":876,"children":877},{},[878,916],{"type":21,"tag":136,"props":879,"children":880},{},[881,886,892,897,902,907,911],{"type":21,"tag":140,"props":882,"children":883},{},[884],{"type":30,"value":885},"O",{"type":21,"tag":307,"props":887,"children":889},{"stretchy":888},"false",[890],{"type":30,"value":891},"(",{"type":21,"tag":140,"props":893,"children":894},{},[895],{"type":30,"value":896},"l",{"type":21,"tag":140,"props":898,"children":899},{},[900],{"type":30,"value":901},"o",{"type":21,"tag":140,"props":903,"children":904},{},[905],{"type":30,"value":906},"g",{"type":21,"tag":140,"props":908,"children":909},{},[910],{"type":30,"value":838},{"type":21,"tag":307,"props":912,"children":913},{"stretchy":888},[914],{"type":30,"value":915},")",{"type":21,"tag":146,"props":917,"children":918},{"encoding":148},[919],{"type":30,"value":920},"O(logN)",{"type":21,"tag":116,"props":922,"children":924},{"className":923,"ariaHidden":155},[154],[925],{"type":21,"tag":116,"props":926,"children":928},{"className":927},[160],[929,933,938,943,949,954,959,964],{"type":21,"tag":116,"props":930,"children":932},{"className":931,"style":481},[165],[],{"type":21,"tag":116,"props":934,"children":936},{"className":935,"style":272},[171,172],[937],{"type":30,"value":885},{"type":21,"tag":116,"props":939,"children":941},{"className":940},[614],[942],{"type":30,"value":891},{"type":21,"tag":116,"props":944,"children":947},{"className":945,"style":946},[171,172],"margin-right:0.0197em;",[948],{"type":30,"value":896},{"type":21,"tag":116,"props":950,"children":952},{"className":951},[171,172],[953],{"type":30,"value":901},{"type":21,"tag":116,"props":955,"children":957},{"className":956,"style":486},[171,172],[958],{"type":30,"value":906},{"type":21,"tag":116,"props":960,"children":962},{"className":961,"style":859},[171,172],[963],{"type":30,"value":838},{"type":21,"tag":116,"props":965,"children":967},{"className":966},[724],[968],{"type":30,"value":915},{"type":30,"value":970}," 维空间。",{"type":21,"tag":22,"props":972,"children":973},{},[974],{"type":21,"tag":26,"props":975,"children":976},{},[977],{"type":21,"tag":33,"props":978,"children":979},{},[980,982,1024],{"type":30,"value":981},"高维空间里随便抓两个方向就几乎正交,所以能塞下远多于 ",{"type":21,"tag":116,"props":983,"children":985},{"className":984},[119],[986,1007],{"type":21,"tag":116,"props":987,"children":989},{"className":988},[124],[990],{"type":21,"tag":127,"props":991,"children":992},{"xmlns":129},[993],{"type":21,"tag":132,"props":994,"children":995},{},[996,1003],{"type":21,"tag":136,"props":997,"children":998},{},[999],{"type":21,"tag":140,"props":1000,"children":1001},{},[1002],{"type":30,"value":144},{"type":21,"tag":146,"props":1004,"children":1005},{"encoding":148},[1006],{"type":30,"value":144},{"type":21,"tag":116,"props":1008,"children":1010},{"className":1009,"ariaHidden":155},[154],[1011],{"type":21,"tag":116,"props":1012,"children":1014},{"className":1013},[160],[1015,1019],{"type":21,"tag":116,"props":1016,"children":1018},{"className":1017,"style":166},[165],[],{"type":21,"tag":116,"props":1020,"children":1022},{"className":1021},[171,172],[1023],{"type":30,"value":144},{"type":30,"value":1025}," 个几乎正交的方向。",{"type":21,"tag":26,"props":1027,"children":1028},{},[1029,1031,1073,1075,1175],{"type":30,"value":1030},"随手模拟一下:在不同维度 ",{"type":21,"tag":116,"props":1032,"children":1034},{"className":1033},[119],[1035,1056],{"type":21,"tag":116,"props":1036,"children":1038},{"className":1037},[124],[1039],{"type":21,"tag":127,"props":1040,"children":1041},{"xmlns":129},[1042],{"type":21,"tag":132,"props":1043,"children":1044},{},[1045,1052],{"type":21,"tag":136,"props":1046,"children":1047},{},[1048],{"type":21,"tag":140,"props":1049,"children":1050},{},[1051],{"type":30,"value":144},{"type":21,"tag":146,"props":1053,"children":1054},{"encoding":148},[1055],{"type":30,"value":144},{"type":21,"tag":116,"props":1057,"children":1059},{"className":1058,"ariaHidden":155},[154],[1060],{"type":21,"tag":116,"props":1061,"children":1063},{"className":1062},[160],[1064,1068],{"type":21,"tag":116,"props":1065,"children":1067},{"className":1066,"style":166},[165],[],{"type":21,"tag":116,"props":1069,"children":1071},{"className":1070},[171,172],[1072],{"type":30,"value":144},{"type":30,"value":1074}," 里各取一万个随机向量,看随机一对的夹角落在 ",{"type":21,"tag":116,"props":1076,"children":1078},{"className":1077},[119],[1079,1131],{"type":21,"tag":116,"props":1080,"children":1082},{"className":1081},[124],[1083],{"type":21,"tag":127,"props":1084,"children":1085},{"xmlns":129},[1086],{"type":21,"tag":132,"props":1087,"children":1088},{},[1089,1126],{"type":21,"tag":136,"props":1090,"children":1091},{},[1092,1097,1102,1107,1112,1117,1121],{"type":21,"tag":307,"props":1093,"children":1094},{"stretchy":888},[1095],{"type":30,"value":1096},"[",{"type":21,"tag":325,"props":1098,"children":1099},{},[1100],{"type":30,"value":1101},"80",{"type":21,"tag":140,"props":1103,"children":1104},{"mathvariant":457},[1105],{"type":30,"value":1106},"°",{"type":21,"tag":307,"props":1108,"children":1109},{"separator":155},[1110],{"type":30,"value":1111},",",{"type":21,"tag":325,"props":1113,"children":1114},{},[1115],{"type":30,"value":1116},"100",{"type":21,"tag":140,"props":1118,"children":1119},{"mathvariant":457},[1120],{"type":30,"value":1106},{"type":21,"tag":307,"props":1122,"children":1123},{"stretchy":888},[1124],{"type":30,"value":1125},"]",{"type":21,"tag":146,"props":1127,"children":1128},{"encoding":148},[1129],{"type":30,"value":1130},"[80°,100°]",{"type":21,"tag":116,"props":1132,"children":1134},{"className":1133,"ariaHidden":155},[154],[1135],{"type":21,"tag":116,"props":1136,"children":1138},{"className":1137},[160],[1139,1143,1148,1154,1160,1164,1170],{"type":21,"tag":116,"props":1140,"children":1142},{"className":1141,"style":481},[165],[],{"type":21,"tag":116,"props":1144,"children":1146},{"className":1145},[614],[1147],{"type":30,"value":1096},{"type":21,"tag":116,"props":1149,"children":1151},{"className":1150},[171],[1152],{"type":30,"value":1153},"80°",{"type":21,"tag":116,"props":1155,"children":1158},{"className":1156},[1157],"mpunct",[1159],{"type":30,"value":1111},{"type":21,"tag":116,"props":1161,"children":1163},{"className":1162,"style":424},[423],[],{"type":21,"tag":116,"props":1165,"children":1167},{"className":1166},[171],[1168],{"type":30,"value":1169},"100°",{"type":21,"tag":116,"props":1171,"children":1173},{"className":1172},[724],[1174],{"type":30,"value":1125},{"type":30,"value":1176}," 的比例:",{"type":21,"tag":1178,"props":1179,"children":1183},"pre",{"className":1180,"code":1181,"language":1182,"meta":8,"style":8},"language-python shiki shiki-themes github-light github-dark","import numpy as np\n\nnp.random.seed(0)\nfor d in [2, 3, 10, 100, 1000]:\n    n = 10000\n    x = np.random.randn(n, d)\n    x \u002F= np.linalg.norm(x, axis=1, keepdims=True)\n    i, j = np.random.randint(n, size=100000), np.random.randint(n, size=100000)\n    ang = np.degrees(np.arccos(np.clip((x[i] * x[j]).sum(1), -1, 1)))\n    print(f\"d={d:5d}: 夹角落在 [80°, 100°] 的比例 = {(np.abs(ang - 90) \u003C= 10).mean():.4f}\")\n","python",[1184],{"type":21,"tag":1185,"props":1186,"children":1187},"code",{"__ignoreMap":8},[1188,1198,1208,1217,1226,1235,1244,1253,1262,1271],{"type":21,"tag":116,"props":1189,"children":1192},{"class":1190,"line":1191},"line",1,[1193],{"type":21,"tag":116,"props":1194,"children":1195},{},[1196],{"type":30,"value":1197},"import numpy as np\n",{"type":21,"tag":116,"props":1199,"children":1201},{"class":1190,"line":1200},2,[1202],{"type":21,"tag":116,"props":1203,"children":1205},{"emptyLinePlaceholder":1204},true,[1206],{"type":30,"value":1207},"\n",{"type":21,"tag":116,"props":1209,"children":1211},{"class":1190,"line":1210},3,[1212],{"type":21,"tag":116,"props":1213,"children":1214},{},[1215],{"type":30,"value":1216},"np.random.seed(0)\n",{"type":21,"tag":116,"props":1218,"children":1220},{"class":1190,"line":1219},4,[1221],{"type":21,"tag":116,"props":1222,"children":1223},{},[1224],{"type":30,"value":1225},"for d in [2, 3, 10, 100, 1000]:\n",{"type":21,"tag":116,"props":1227,"children":1229},{"class":1190,"line":1228},5,[1230],{"type":21,"tag":116,"props":1231,"children":1232},{},[1233],{"type":30,"value":1234},"    n = 10000\n",{"type":21,"tag":116,"props":1236,"children":1238},{"class":1190,"line":1237},6,[1239],{"type":21,"tag":116,"props":1240,"children":1241},{},[1242],{"type":30,"value":1243},"    x = np.random.randn(n, d)\n",{"type":21,"tag":116,"props":1245,"children":1247},{"class":1190,"line":1246},7,[1248],{"type":21,"tag":116,"props":1249,"children":1250},{},[1251],{"type":30,"value":1252},"    x \u002F= np.linalg.norm(x, axis=1, keepdims=True)\n",{"type":21,"tag":116,"props":1254,"children":1256},{"class":1190,"line":1255},8,[1257],{"type":21,"tag":116,"props":1258,"children":1259},{},[1260],{"type":30,"value":1261},"    i, j = np.random.randint(n, size=100000), np.random.randint(n, size=100000)\n",{"type":21,"tag":116,"props":1263,"children":1265},{"class":1190,"line":1264},9,[1266],{"type":21,"tag":116,"props":1267,"children":1268},{},[1269],{"type":30,"value":1270},"    ang = np.degrees(np.arccos(np.clip((x[i] * x[j]).sum(1), -1, 1)))\n",{"type":21,"tag":116,"props":1272,"children":1274},{"class":1190,"line":1273},10,[1275],{"type":21,"tag":116,"props":1276,"children":1277},{},[1278],{"type":30,"value":1279},"    print(f\"d={d:5d}: 夹角落在 [80°, 100°] 的比例 = {(np.abs(ang - 90) \u003C= 10).mean():.4f}\")\n",{"type":21,"tag":26,"props":1281,"children":1282},{},[1283],{"type":30,"value":1284},"输出大致是 d=2: 0.11、d=3: 0.17、d=10: 0.39、d=100: 0.92、d=1000: 1.00--维度一上来,几乎每一对都贴着 90°。",{"type":21,"tag":26,"props":1286,"children":1287},{},[1288,1290,1295,1297,1302],{"type":30,"value":1289},"不过\"塞得下\"只是第一步,还得\"不崩\"。方向挤在一起就不再严格正交,激活一个特征会顺带蹭到别的特征一点--这是叠加付出的",{"type":21,"tag":33,"props":1291,"children":1292},{},[1293],{"type":30,"value":1294},"干扰",{"type":30,"value":1296},"。光靠\"几乎正交\"压不住它,真正让 superposition 成立的是",{"type":21,"tag":33,"props":1298,"children":1299},{},[1300],{"type":30,"value":1301},"稀疏",{"type":30,"value":1303},":同时激活的特征很少,蹭到的项也少,加上每对方向本来就接近 90°,干扰才被压成可忽略的噪声。没有稀疏,这个近似就站不住,叠加也就不可行。",{"type":21,"tag":26,"props":1305,"children":1306},{},[1307,1309,1314],{"type":30,"value":1308},"所以 polysemanticity 是模型在有限容量下",{"type":21,"tag":33,"props":1310,"children":1311},{},[1312],{"type":30,"value":1313},"主动选择",{"type":30,"value":1315},"的压缩策略:",{"type":21,"tag":1317,"props":1318,"children":1319},"ul",{},[1320,1326],{"type":21,"tag":1321,"props":1322,"children":1323},"li",{},[1324],{"type":30,"value":1325},"神经元 = 坐标轴方向 → 因为叠加,一个轴上叠了好几个概念 → 多义。",{"type":21,"tag":1321,"props":1327,"children":1328},{},[1329],{"type":30,"value":1330},"特征 = 叠加后那个几乎正交的方向 → 才是\"一个概念\"的载体 → 单义。",{"type":21,"tag":26,"props":1332,"children":1333},{},[1334],{"type":30,"value":1335},"另外，LLM其实是对超大规模数据的压缩，superposition可以说是压缩过程中自然的行为；对应的，我们追求可解释性就需要进行解压缩。",{"type":21,"tag":26,"props":1337,"children":1338},{},[1339,1341],{"type":30,"value":1340},"结论很清楚:",{"type":21,"tag":33,"props":1342,"children":1343},{},[1344],{"type":30,"value":1345},"要看懂模型,得先把叠加解开,把坐标轴换成特征方向。",{"type":21,"tag":58,"props":1347,"children":1349},{"id":1348},"二稀疏自编码器把混合的激活解混",[1350],{"type":30,"value":1351},"二、稀疏自编码器:把混合的激活\"解混\"",{"type":21,"tag":26,"props":1353,"children":1354},{},[1355,1357,1451,1453,1607,1609,1688,1690,1732,1734,1896,1898,1903,1905,2029],{"type":30,"value":1356},"上面说模型把概念稀疏叠加进激活,写成式子就是 ",{"type":21,"tag":116,"props":1358,"children":1360},{"className":1359},[119],[1361,1399],{"type":21,"tag":116,"props":1362,"children":1364},{"className":1363},[124],[1365],{"type":21,"tag":127,"props":1366,"children":1367},{"xmlns":129},[1368],{"type":21,"tag":132,"props":1369,"children":1370},{},[1371,1394],{"type":21,"tag":136,"props":1372,"children":1373},{},[1374,1379,1384,1389],{"type":21,"tag":140,"props":1375,"children":1376},{},[1377],{"type":30,"value":1378},"x",{"type":21,"tag":307,"props":1380,"children":1381},{},[1382],{"type":30,"value":1383},"≈",{"type":21,"tag":140,"props":1385,"children":1386},{},[1387],{"type":30,"value":1388},"W",{"type":21,"tag":140,"props":1390,"children":1391},{},[1392],{"type":30,"value":1393},"f",{"type":21,"tag":146,"props":1395,"children":1396},{"encoding":148},[1397],{"type":30,"value":1398},"x \\approx Wf",{"type":21,"tag":116,"props":1400,"children":1402},{"className":1401,"ariaHidden":155},[154],[1403,1430],{"type":21,"tag":116,"props":1404,"children":1406},{"className":1405},[160],[1407,1412,1417,1421,1426],{"type":21,"tag":116,"props":1408,"children":1411},{"className":1409,"style":1410},[165],"height:0.4831em;",[],{"type":21,"tag":116,"props":1413,"children":1415},{"className":1414},[171,172],[1416],{"type":30,"value":1378},{"type":21,"tag":116,"props":1418,"children":1420},{"className":1419,"style":784},[423],[],{"type":21,"tag":116,"props":1422,"children":1424},{"className":1423},[789],[1425],{"type":30,"value":1383},{"type":21,"tag":116,"props":1427,"children":1429},{"className":1428,"style":784},[423],[],{"type":21,"tag":116,"props":1431,"children":1433},{"className":1432},[160],[1434,1439,1445],{"type":21,"tag":116,"props":1435,"children":1438},{"className":1436,"style":1437},[165],"height:0.8889em;vertical-align:-0.1944em;",[],{"type":21,"tag":116,"props":1440,"children":1443},{"className":1441,"style":1442},[171,172],"margin-right:0.1389em;",[1444],{"type":30,"value":1388},{"type":21,"tag":116,"props":1446,"children":1449},{"className":1447,"style":1448},[171,172],"margin-right:0.1076em;",[1450],{"type":30,"value":1393},{"type":30,"value":1452},":字典 ",{"type":21,"tag":116,"props":1454,"children":1456},{"className":1455},[119],[1457,1510],{"type":21,"tag":116,"props":1458,"children":1460},{"className":1459},[124],[1461],{"type":21,"tag":127,"props":1462,"children":1463},{"xmlns":129},[1464],{"type":21,"tag":132,"props":1465,"children":1466},{},[1467,1505],{"type":21,"tag":136,"props":1468,"children":1469},{},[1470,1474,1479],{"type":21,"tag":140,"props":1471,"children":1472},{},[1473],{"type":30,"value":1388},{"type":21,"tag":307,"props":1475,"children":1476},{},[1477],{"type":30,"value":1478},"∈",{"type":21,"tag":295,"props":1480,"children":1481},{},[1482,1488],{"type":21,"tag":140,"props":1483,"children":1485},{"mathvariant":1484},"double-struck",[1486],{"type":30,"value":1487},"R",{"type":21,"tag":136,"props":1489,"children":1490},{},[1491,1495,1500],{"type":21,"tag":140,"props":1492,"children":1493},{},[1494],{"type":30,"value":144},{"type":21,"tag":307,"props":1496,"children":1497},{},[1498],{"type":30,"value":1499},"×",{"type":21,"tag":140,"props":1501,"children":1502},{},[1503],{"type":30,"value":1504},"m",{"type":21,"tag":146,"props":1506,"children":1507},{"encoding":148},[1508],{"type":30,"value":1509},"W \\in \\mathbb{R}^{d\\times m}",{"type":21,"tag":116,"props":1511,"children":1513},{"className":1512,"ariaHidden":155},[154],[1514,1541],{"type":21,"tag":116,"props":1515,"children":1517},{"className":1516},[160],[1518,1523,1528,1532,1537],{"type":21,"tag":116,"props":1519,"children":1522},{"className":1520,"style":1521},[165],"height:0.7224em;vertical-align:-0.0391em;",[],{"type":21,"tag":116,"props":1524,"children":1526},{"className":1525,"style":1442},[171,172],[1527],{"type":30,"value":1388},{"type":21,"tag":116,"props":1529,"children":1531},{"className":1530,"style":784},[423],[],{"type":21,"tag":116,"props":1533,"children":1535},{"className":1534},[789],[1536],{"type":30,"value":1478},{"type":21,"tag":116,"props":1538,"children":1540},{"className":1539,"style":784},[423],[],{"type":21,"tag":116,"props":1542,"children":1544},{"className":1543},[160],[1545,1550],{"type":21,"tag":116,"props":1546,"children":1549},{"className":1547,"style":1548},[165],"height:0.8491em;",[],{"type":21,"tag":116,"props":1551,"children":1553},{"className":1552},[171],[1554,1560],{"type":21,"tag":116,"props":1555,"children":1558},{"className":1556},[171,1557],"mathbb",[1559],{"type":30,"value":1487},{"type":21,"tag":116,"props":1561,"children":1563},{"className":1562},[365],[1564],{"type":21,"tag":116,"props":1565,"children":1567},{"className":1566},[370],[1568],{"type":21,"tag":116,"props":1569,"children":1571},{"className":1570},[375],[1572],{"type":21,"tag":116,"props":1573,"children":1575},{"className":1574,"style":1548},[380],[1576],{"type":21,"tag":116,"props":1577,"children":1579},{"style":1578},"top:-3.063em;margin-right:0.05em;",[1580,1584],{"type":21,"tag":116,"props":1581,"children":1583},{"className":1582,"style":390},[389],[],{"type":21,"tag":116,"props":1585,"children":1587},{"className":1586},[395,396,397,398],[1588],{"type":21,"tag":116,"props":1589,"children":1591},{"className":1590},[171,398],[1592,1597,1602],{"type":21,"tag":116,"props":1593,"children":1595},{"className":1594},[171,172,398],[1596],{"type":30,"value":144},{"type":21,"tag":116,"props":1598,"children":1600},{"className":1599},[412,398],[1601],{"type":30,"value":1499},{"type":21,"tag":116,"props":1603,"children":1605},{"className":1604},[171,172,398],[1606],{"type":30,"value":1504},{"type":30,"value":1608}," 过完备(",{"type":21,"tag":116,"props":1610,"children":1612},{"className":1611},[119],[1613,1644],{"type":21,"tag":116,"props":1614,"children":1616},{"className":1615},[124],[1617],{"type":21,"tag":127,"props":1618,"children":1619},{"xmlns":129},[1620],{"type":21,"tag":132,"props":1621,"children":1622},{},[1623,1639],{"type":21,"tag":136,"props":1624,"children":1625},{},[1626,1630,1635],{"type":21,"tag":140,"props":1627,"children":1628},{},[1629],{"type":30,"value":1504},{"type":21,"tag":307,"props":1631,"children":1632},{},[1633],{"type":30,"value":1634},"≫",{"type":21,"tag":140,"props":1636,"children":1637},{},[1638],{"type":30,"value":144},{"type":21,"tag":146,"props":1640,"children":1641},{"encoding":148},[1642],{"type":30,"value":1643},"m \\gg d",{"type":21,"tag":116,"props":1645,"children":1647},{"className":1646,"ariaHidden":155},[154],[1648,1675],{"type":21,"tag":116,"props":1649,"children":1651},{"className":1650},[160],[1652,1657,1662,1666,1671],{"type":21,"tag":116,"props":1653,"children":1656},{"className":1654,"style":1655},[165],"height:0.5782em;vertical-align:-0.0391em;",[],{"type":21,"tag":116,"props":1658,"children":1660},{"className":1659},[171,172],[1661],{"type":30,"value":1504},{"type":21,"tag":116,"props":1663,"children":1665},{"className":1664,"style":784},[423],[],{"type":21,"tag":116,"props":1667,"children":1669},{"className":1668},[789],[1670],{"type":30,"value":1634},{"type":21,"tag":116,"props":1672,"children":1674},{"className":1673,"style":784},[423],[],{"type":21,"tag":116,"props":1676,"children":1678},{"className":1677},[160],[1679,1683],{"type":21,"tag":116,"props":1680,"children":1682},{"className":1681,"style":166},[165],[],{"type":21,"tag":116,"props":1684,"children":1686},{"className":1685},[171,172],[1687],{"type":30,"value":144},{"type":30,"value":1689},"),编码 ",{"type":21,"tag":116,"props":1691,"children":1693},{"className":1692},[119],[1694,1715],{"type":21,"tag":116,"props":1695,"children":1697},{"className":1696},[124],[1698],{"type":21,"tag":127,"props":1699,"children":1700},{"xmlns":129},[1701],{"type":21,"tag":132,"props":1702,"children":1703},{},[1704,1711],{"type":21,"tag":136,"props":1705,"children":1706},{},[1707],{"type":21,"tag":140,"props":1708,"children":1709},{},[1710],{"type":30,"value":1393},{"type":21,"tag":146,"props":1712,"children":1713},{"encoding":148},[1714],{"type":30,"value":1393},{"type":21,"tag":116,"props":1716,"children":1718},{"className":1717,"ariaHidden":155},[154],[1719],{"type":21,"tag":116,"props":1720,"children":1722},{"className":1721},[160],[1723,1727],{"type":21,"tag":116,"props":1724,"children":1726},{"className":1725,"style":1437},[165],[],{"type":21,"tag":116,"props":1728,"children":1730},{"className":1729,"style":1448},[171,172],[1731],{"type":30,"value":1393},{"type":30,"value":1733}," 稀疏(",{"type":21,"tag":116,"props":1735,"children":1737},{"className":1736},[119],[1738,1787],{"type":21,"tag":116,"props":1739,"children":1741},{"className":1740},[124],[1742],{"type":21,"tag":127,"props":1743,"children":1744},{"xmlns":129},[1745],{"type":21,"tag":132,"props":1746,"children":1747},{},[1748,1782],{"type":21,"tag":136,"props":1749,"children":1750},{},[1751,1756,1760,1773,1778],{"type":21,"tag":140,"props":1752,"children":1753},{"mathvariant":457},[1754],{"type":30,"value":1755},"∥",{"type":21,"tag":140,"props":1757,"children":1758},{},[1759],{"type":30,"value":1393},{"type":21,"tag":1761,"props":1762,"children":1763},"msub",{},[1764,1768],{"type":21,"tag":140,"props":1765,"children":1766},{"mathvariant":457},[1767],{"type":30,"value":1755},{"type":21,"tag":325,"props":1769,"children":1770},{},[1771],{"type":30,"value":1772},"0",{"type":21,"tag":307,"props":1774,"children":1775},{},[1776],{"type":30,"value":1777},"≪",{"type":21,"tag":140,"props":1779,"children":1780},{},[1781],{"type":30,"value":1504},{"type":21,"tag":146,"props":1783,"children":1784},{"encoding":148},[1785],{"type":30,"value":1786},"\\|f\\|_0 \\ll m",{"type":21,"tag":116,"props":1788,"children":1790},{"className":1789,"ariaHidden":155},[154],[1791,1882],{"type":21,"tag":116,"props":1792,"children":1794},{"className":1793},[160],[1795,1799,1804,1809,1869,1873,1878],{"type":21,"tag":116,"props":1796,"children":1798},{"className":1797,"style":481},[165],[],{"type":21,"tag":116,"props":1800,"children":1802},{"className":1801},[171],[1803],{"type":30,"value":1755},{"type":21,"tag":116,"props":1805,"children":1807},{"className":1806,"style":1448},[171,172],[1808],{"type":30,"value":1393},{"type":21,"tag":116,"props":1810,"children":1812},{"className":1811},[171],[1813,1818],{"type":21,"tag":116,"props":1814,"children":1816},{"className":1815},[171],[1817],{"type":30,"value":1755},{"type":21,"tag":116,"props":1819,"children":1821},{"className":1820},[365],[1822],{"type":21,"tag":116,"props":1823,"children":1825},{"className":1824},[370,624],[1826,1857],{"type":21,"tag":116,"props":1827,"children":1829},{"className":1828},[375],[1830,1852],{"type":21,"tag":116,"props":1831,"children":1834},{"className":1832,"style":1833},[380],"height:0.3011em;",[1835],{"type":21,"tag":116,"props":1836,"children":1838},{"style":1837},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[1839,1843],{"type":21,"tag":116,"props":1840,"children":1842},{"className":1841,"style":390},[389],[],{"type":21,"tag":116,"props":1844,"children":1846},{"className":1845},[395,396,397,398],[1847],{"type":21,"tag":116,"props":1848,"children":1850},{"className":1849},[171,398],[1851],{"type":30,"value":1772},{"type":21,"tag":116,"props":1853,"children":1855},{"className":1854},[705],[1856],{"type":30,"value":708},{"type":21,"tag":116,"props":1858,"children":1860},{"className":1859},[375],[1861],{"type":21,"tag":116,"props":1862,"children":1865},{"className":1863,"style":1864},[380],"height:0.15em;",[1866],{"type":21,"tag":116,"props":1867,"children":1868},{},[],{"type":21,"tag":116,"props":1870,"children":1872},{"className":1871,"style":784},[423],[],{"type":21,"tag":116,"props":1874,"children":1876},{"className":1875},[789],[1877],{"type":30,"value":1777},{"type":21,"tag":116,"props":1879,"children":1881},{"className":1880,"style":784},[423],[],{"type":21,"tag":116,"props":1883,"children":1885},{"className":1884},[160],[1886,1891],{"type":21,"tag":116,"props":1887,"children":1890},{"className":1888,"style":1889},[165],"height:0.4306em;",[],{"type":21,"tag":116,"props":1892,"children":1894},{"className":1893},[171,172],[1895],{"type":30,"value":1504},{"type":30,"value":1897},")。这正是经典**字典学习(dictionary learning)**的形式,而解混它就是把这个方程反过来解--顺手的工具是 ",{"type":21,"tag":33,"props":1899,"children":1900},{},[1901],{"type":30,"value":1902},"sparse autoencoder(SAE)",{"type":30,"value":1904},"。对模型某一层(这篇是小型 SoLU transformer 的 MLP 层)的激活向量 ",{"type":21,"tag":116,"props":1906,"children":1908},{"className":1907},[119],[1909,1946],{"type":21,"tag":116,"props":1910,"children":1912},{"className":1911},[124],[1913],{"type":21,"tag":127,"props":1914,"children":1915},{"xmlns":129},[1916],{"type":21,"tag":132,"props":1917,"children":1918},{},[1919,1941],{"type":21,"tag":136,"props":1920,"children":1921},{},[1922,1926,1930],{"type":21,"tag":140,"props":1923,"children":1924},{},[1925],{"type":30,"value":1378},{"type":21,"tag":307,"props":1927,"children":1928},{},[1929],{"type":30,"value":1478},{"type":21,"tag":295,"props":1931,"children":1932},{},[1933,1937],{"type":21,"tag":140,"props":1934,"children":1935},{"mathvariant":1484},[1936],{"type":30,"value":1487},{"type":21,"tag":140,"props":1938,"children":1939},{},[1940],{"type":30,"value":144},{"type":21,"tag":146,"props":1942,"children":1943},{"encoding":148},[1944],{"type":30,"value":1945},"x \\in \\mathbb{R}^{d}",{"type":21,"tag":116,"props":1947,"children":1949},{"className":1948,"ariaHidden":155},[154],[1950,1976],{"type":21,"tag":116,"props":1951,"children":1953},{"className":1952},[160],[1954,1958,1963,1967,1972],{"type":21,"tag":116,"props":1955,"children":1957},{"className":1956,"style":1655},[165],[],{"type":21,"tag":116,"props":1959,"children":1961},{"className":1960},[171,172],[1962],{"type":30,"value":1378},{"type":21,"tag":116,"props":1964,"children":1966},{"className":1965,"style":784},[423],[],{"type":21,"tag":116,"props":1968,"children":1970},{"className":1969},[789],[1971],{"type":30,"value":1478},{"type":21,"tag":116,"props":1973,"children":1975},{"className":1974,"style":784},[423],[],{"type":21,"tag":116,"props":1977,"children":1979},{"className":1978},[160],[1980,1984],{"type":21,"tag":116,"props":1981,"children":1983},{"className":1982,"style":1548},[165],[],{"type":21,"tag":116,"props":1985,"children":1987},{"className":1986},[171],[1988,1993],{"type":21,"tag":116,"props":1989,"children":1991},{"className":1990},[171,1557],[1992],{"type":30,"value":1487},{"type":21,"tag":116,"props":1994,"children":1996},{"className":1995},[365],[1997],{"type":21,"tag":116,"props":1998,"children":2000},{"className":1999},[370],[2001],{"type":21,"tag":116,"props":2002,"children":2004},{"className":2003},[375],[2005],{"type":21,"tag":116,"props":2006,"children":2008},{"className":2007,"style":1548},[380],[2009],{"type":21,"tag":116,"props":2010,"children":2011},{"style":1578},[2012,2016],{"type":21,"tag":116,"props":2013,"children":2015},{"className":2014,"style":390},[389],[],{"type":21,"tag":116,"props":2017,"children":2019},{"className":2018},[395,396,397,398],[2020],{"type":21,"tag":116,"props":2021,"children":2023},{"className":2022},[171,398],[2024],{"type":21,"tag":116,"props":2025,"children":2027},{"className":2026},[171,172,398],[2028],{"type":30,"value":144},{"type":30,"value":2030},", 训练一个 autoencoder:",{"type":21,"tag":26,"props":2032,"children":2033},{},[2034],{"type":21,"tag":116,"props":2035,"children":2037},{"className":2036},[119],[2038,2203],{"type":21,"tag":116,"props":2039,"children":2041},{"className":2040},[124],[2042],{"type":21,"tag":127,"props":2043,"children":2044},{"xmlns":129},[2045],{"type":21,"tag":132,"props":2046,"children":2047},{},[2048,2198],{"type":21,"tag":136,"props":2049,"children":2050},{},[2051,2057,2061,2065,2087,2091,2103,2108,2112,2117,2129,2133,2137,2141,2146,2159,2163,2175,2179,2183,2187],{"type":21,"tag":2052,"props":2053,"children":2054},"mtext",{},[2055],{"type":30,"value":2056},"encode: ",{"type":21,"tag":140,"props":2058,"children":2059},{},[2060],{"type":30,"value":1393},{"type":21,"tag":307,"props":2062,"children":2063},{},[2064],{"type":30,"value":753},{"type":21,"tag":136,"props":2066,"children":2067},{},[2068,2072,2077,2082],{"type":21,"tag":140,"props":2069,"children":2070},{"mathvariant":457},[2071],{"type":30,"value":1487},{"type":21,"tag":140,"props":2073,"children":2074},{"mathvariant":457},[2075],{"type":30,"value":2076},"e",{"type":21,"tag":140,"props":2078,"children":2079},{"mathvariant":457},[2080],{"type":30,"value":2081},"L",{"type":21,"tag":140,"props":2083,"children":2084},{"mathvariant":457},[2085],{"type":30,"value":2086},"U",{"type":21,"tag":307,"props":2088,"children":2089},{"stretchy":888},[2090],{"type":30,"value":891},{"type":21,"tag":1761,"props":2092,"children":2093},{},[2094,2098],{"type":21,"tag":140,"props":2095,"children":2096},{},[2097],{"type":30,"value":1388},{"type":21,"tag":2052,"props":2099,"children":2100},{},[2101],{"type":30,"value":2102},"enc",{"type":21,"tag":2052,"props":2104,"children":2105},{},[2106],{"type":30,"value":2107}," ",{"type":21,"tag":140,"props":2109,"children":2110},{},[2111],{"type":30,"value":1378},{"type":21,"tag":307,"props":2113,"children":2114},{},[2115],{"type":30,"value":2116},"+",{"type":21,"tag":1761,"props":2118,"children":2119},{},[2120,2125],{"type":21,"tag":140,"props":2121,"children":2122},{},[2123],{"type":30,"value":2124},"b",{"type":21,"tag":2052,"props":2126,"children":2127},{},[2128],{"type":30,"value":2102},{"type":21,"tag":307,"props":2130,"children":2131},{"stretchy":888},[2132],{"type":30,"value":915},{"type":21,"tag":307,"props":2134,"children":2135},{"separator":155},[2136],{"type":30,"value":1111},{"type":21,"tag":423,"props":2138,"children":2140},{"width":2139},"2em",[],{"type":21,"tag":2052,"props":2142,"children":2143},{},[2144],{"type":30,"value":2145},"decode: ",{"type":21,"tag":2147,"props":2148,"children":2149},"mover",{"accent":155},[2150,2154],{"type":21,"tag":140,"props":2151,"children":2152},{},[2153],{"type":30,"value":1378},{"type":21,"tag":307,"props":2155,"children":2156},{},[2157],{"type":30,"value":2158},"^",{"type":21,"tag":307,"props":2160,"children":2161},{},[2162],{"type":30,"value":753},{"type":21,"tag":1761,"props":2164,"children":2165},{},[2166,2170],{"type":21,"tag":140,"props":2167,"children":2168},{},[2169],{"type":30,"value":1388},{"type":21,"tag":2052,"props":2171,"children":2172},{},[2173],{"type":30,"value":2174},"dec",{"type":21,"tag":2052,"props":2176,"children":2177},{},[2178],{"type":30,"value":2107},{"type":21,"tag":140,"props":2180,"children":2181},{},[2182],{"type":30,"value":1393},{"type":21,"tag":307,"props":2184,"children":2185},{},[2186],{"type":30,"value":2116},{"type":21,"tag":1761,"props":2188,"children":2189},{},[2190,2194],{"type":21,"tag":140,"props":2191,"children":2192},{},[2193],{"type":30,"value":2124},{"type":21,"tag":2052,"props":2195,"children":2196},{},[2197],{"type":30,"value":2174},{"type":21,"tag":146,"props":2199,"children":2200},{"encoding":148},[2201],{"type":30,"value":2202},"\\text{encode: } f = \\mathrm{ReLU}(W_{\\text{enc}}\\, x + b_{\\text{enc}}), \\qquad \\text{decode: } \\hat{x} = W_{\\text{dec}}\\, f + b_{\\text{dec}}",{"type":21,"tag":116,"props":2204,"children":2206},{"className":2205,"ariaHidden":155},[154],[2207,2242,2356,2518,2614],{"type":21,"tag":116,"props":2208,"children":2210},{"className":2209},[160],[2211,2215,2224,2229,2233,2238],{"type":21,"tag":116,"props":2212,"children":2214},{"className":2213,"style":1437},[165],[],{"type":21,"tag":116,"props":2216,"children":2218},{"className":2217},[171,30],[2219],{"type":21,"tag":116,"props":2220,"children":2222},{"className":2221},[171],[2223],{"type":30,"value":2056},{"type":21,"tag":116,"props":2225,"children":2227},{"className":2226,"style":1448},[171,172],[2228],{"type":30,"value":1393},{"type":21,"tag":116,"props":2230,"children":2232},{"className":2231,"style":784},[423],[],{"type":21,"tag":116,"props":2234,"children":2236},{"className":2235},[789],[2237],{"type":30,"value":753},{"type":21,"tag":116,"props":2239,"children":2241},{"className":2240,"style":784},[423],[],{"type":21,"tag":116,"props":2243,"children":2245},{"className":2244},[160],[2246,2250,2261,2266,2333,2337,2342,2347,2352],{"type":21,"tag":116,"props":2247,"children":2249},{"className":2248,"style":481},[165],[],{"type":21,"tag":116,"props":2251,"children":2253},{"className":2252},[171],[2254],{"type":21,"tag":116,"props":2255,"children":2258},{"className":2256},[171,2257],"mathrm",[2259],{"type":30,"value":2260},"ReLU",{"type":21,"tag":116,"props":2262,"children":2264},{"className":2263},[614],[2265],{"type":30,"value":891},{"type":21,"tag":116,"props":2267,"children":2269},{"className":2268},[171],[2270,2275],{"type":21,"tag":116,"props":2271,"children":2273},{"className":2272,"style":1442},[171,172],[2274],{"type":30,"value":1388},{"type":21,"tag":116,"props":2276,"children":2278},{"className":2277},[365],[2279],{"type":21,"tag":116,"props":2280,"children":2282},{"className":2281},[370,624],[2283,2322],{"type":21,"tag":116,"props":2284,"children":2286},{"className":2285},[375],[2287,2317],{"type":21,"tag":116,"props":2288,"children":2291},{"className":2289,"style":2290},[380],"height:0.1514em;",[2292],{"type":21,"tag":116,"props":2293,"children":2295},{"style":2294},"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;",[2296,2300],{"type":21,"tag":116,"props":2297,"children":2299},{"className":2298,"style":390},[389],[],{"type":21,"tag":116,"props":2301,"children":2303},{"className":2302},[395,396,397,398],[2304],{"type":21,"tag":116,"props":2305,"children":2307},{"className":2306},[171,398],[2308],{"type":21,"tag":116,"props":2309,"children":2311},{"className":2310},[171,30,398],[2312],{"type":21,"tag":116,"props":2313,"children":2315},{"className":2314},[171,398],[2316],{"type":30,"value":2102},{"type":21,"tag":116,"props":2318,"children":2320},{"className":2319},[705],[2321],{"type":30,"value":708},{"type":21,"tag":116,"props":2323,"children":2325},{"className":2324},[375],[2326],{"type":21,"tag":116,"props":2327,"children":2329},{"className":2328,"style":1864},[380],[2330],{"type":21,"tag":116,"props":2331,"children":2332},{},[],{"type":21,"tag":116,"props":2334,"children":2336},{"className":2335,"style":424},[423],[],{"type":21,"tag":116,"props":2338,"children":2340},{"className":2339},[171,172],[2341],{"type":30,"value":1378},{"type":21,"tag":116,"props":2343,"children":2346},{"className":2344,"style":2345},[423],"margin-right:0.2222em;",[],{"type":21,"tag":116,"props":2348,"children":2350},{"className":2349},[412],[2351],{"type":30,"value":2116},{"type":21,"tag":116,"props":2353,"children":2355},{"className":2354,"style":2345},[423],[],{"type":21,"tag":116,"props":2357,"children":2359},{"className":2358},[160],[2360,2364,2429,2434,2439,2444,2448,2457,2505,2509,2514],{"type":21,"tag":116,"props":2361,"children":2363},{"className":2362,"style":481},[165],[],{"type":21,"tag":116,"props":2365,"children":2367},{"className":2366},[171],[2368,2373],{"type":21,"tag":116,"props":2369,"children":2371},{"className":2370},[171,172],[2372],{"type":30,"value":2124},{"type":21,"tag":116,"props":2374,"children":2376},{"className":2375},[365],[2377],{"type":21,"tag":116,"props":2378,"children":2380},{"className":2379},[370,624],[2381,2418],{"type":21,"tag":116,"props":2382,"children":2384},{"className":2383},[375],[2385,2413],{"type":21,"tag":116,"props":2386,"children":2388},{"className":2387,"style":2290},[380],[2389],{"type":21,"tag":116,"props":2390,"children":2391},{"style":1837},[2392,2396],{"type":21,"tag":116,"props":2393,"children":2395},{"className":2394,"style":390},[389],[],{"type":21,"tag":116,"props":2397,"children":2399},{"className":2398},[395,396,397,398],[2400],{"type":21,"tag":116,"props":2401,"children":2403},{"className":2402},[171,398],[2404],{"type":21,"tag":116,"props":2405,"children":2407},{"className":2406},[171,30,398],[2408],{"type":21,"tag":116,"props":2409,"children":2411},{"className":2410},[171,398],[2412],{"type":30,"value":2102},{"type":21,"tag":116,"props":2414,"children":2416},{"className":2415},[705],[2417],{"type":30,"value":708},{"type":21,"tag":116,"props":2419,"children":2421},{"className":2420},[375],[2422],{"type":21,"tag":116,"props":2423,"children":2425},{"className":2424,"style":1864},[380],[2426],{"type":21,"tag":116,"props":2427,"children":2428},{},[],{"type":21,"tag":116,"props":2430,"children":2432},{"className":2431},[724],[2433],{"type":30,"value":915},{"type":21,"tag":116,"props":2435,"children":2437},{"className":2436},[1157],[2438],{"type":30,"value":1111},{"type":21,"tag":116,"props":2440,"children":2443},{"className":2441,"style":2442},[423],"margin-right:2em;",[],{"type":21,"tag":116,"props":2445,"children":2447},{"className":2446,"style":424},[423],[],{"type":21,"tag":116,"props":2449,"children":2451},{"className":2450},[171,30],[2452],{"type":21,"tag":116,"props":2453,"children":2455},{"className":2454},[171],[2456],{"type":30,"value":2145},{"type":21,"tag":116,"props":2458,"children":2461},{"className":2459},[171,2460],"accent",[2462],{"type":21,"tag":116,"props":2463,"children":2465},{"className":2464},[370],[2466],{"type":21,"tag":116,"props":2467,"children":2469},{"className":2468},[375],[2470],{"type":21,"tag":116,"props":2471,"children":2473},{"className":2472,"style":166},[380],[2474,2487],{"type":21,"tag":116,"props":2475,"children":2477},{"style":2476},"top:-3em;",[2478,2482],{"type":21,"tag":116,"props":2479,"children":2481},{"className":2480,"style":642},[389],[],{"type":21,"tag":116,"props":2483,"children":2485},{"className":2484},[171,172],[2486],{"type":30,"value":1378},{"type":21,"tag":116,"props":2488,"children":2489},{"style":2476},[2490,2494],{"type":21,"tag":116,"props":2491,"children":2493},{"className":2492,"style":642},[389],[],{"type":21,"tag":116,"props":2495,"children":2499},{"className":2496,"style":2498},[2497],"accent-body","left:-0.2222em;",[2500],{"type":21,"tag":116,"props":2501,"children":2503},{"className":2502},[171],[2504],{"type":30,"value":2158},{"type":21,"tag":116,"props":2506,"children":2508},{"className":2507,"style":784},[423],[],{"type":21,"tag":116,"props":2510,"children":2512},{"className":2511},[789],[2513],{"type":30,"value":753},{"type":21,"tag":116,"props":2515,"children":2517},{"className":2516,"style":784},[423],[],{"type":21,"tag":116,"props":2519,"children":2521},{"className":2520},[160],[2522,2526,2592,2596,2601,2605,2610],{"type":21,"tag":116,"props":2523,"children":2525},{"className":2524,"style":1437},[165],[],{"type":21,"tag":116,"props":2527,"children":2529},{"className":2528},[171],[2530,2535],{"type":21,"tag":116,"props":2531,"children":2533},{"className":2532,"style":1442},[171,172],[2534],{"type":30,"value":1388},{"type":21,"tag":116,"props":2536,"children":2538},{"className":2537},[365],[2539],{"type":21,"tag":116,"props":2540,"children":2542},{"className":2541},[370,624],[2543,2581],{"type":21,"tag":116,"props":2544,"children":2546},{"className":2545},[375],[2547,2576],{"type":21,"tag":116,"props":2548,"children":2551},{"className":2549,"style":2550},[380],"height:0.3361em;",[2552],{"type":21,"tag":116,"props":2553,"children":2554},{"style":2294},[2555,2559],{"type":21,"tag":116,"props":2556,"children":2558},{"className":2557,"style":390},[389],[],{"type":21,"tag":116,"props":2560,"children":2562},{"className":2561},[395,396,397,398],[2563],{"type":21,"tag":116,"props":2564,"children":2566},{"className":2565},[171,398],[2567],{"type":21,"tag":116,"props":2568,"children":2570},{"className":2569},[171,30,398],[2571],{"type":21,"tag":116,"props":2572,"children":2574},{"className":2573},[171,398],[2575],{"type":30,"value":2174},{"type":21,"tag":116,"props":2577,"children":2579},{"className":2578},[705],[2580],{"type":30,"value":708},{"type":21,"tag":116,"props":2582,"children":2584},{"className":2583},[375],[2585],{"type":21,"tag":116,"props":2586,"children":2588},{"className":2587,"style":1864},[380],[2589],{"type":21,"tag":116,"props":2590,"children":2591},{},[],{"type":21,"tag":116,"props":2593,"children":2595},{"className":2594,"style":424},[423],[],{"type":21,"tag":116,"props":2597,"children":2599},{"className":2598,"style":1448},[171,172],[2600],{"type":30,"value":1393},{"type":21,"tag":116,"props":2602,"children":2604},{"className":2603,"style":2345},[423],[],{"type":21,"tag":116,"props":2606,"children":2608},{"className":2607},[412],[2609],{"type":30,"value":2116},{"type":21,"tag":116,"props":2611,"children":2613},{"className":2612,"style":2345},[423],[],{"type":21,"tag":116,"props":2615,"children":2617},{"className":2616},[160],[2618,2623],{"type":21,"tag":116,"props":2619,"children":2622},{"className":2620,"style":2621},[165],"height:0.8444em;vertical-align:-0.15em;",[],{"type":21,"tag":116,"props":2624,"children":2626},{"className":2625},[171],[2627,2632],{"type":21,"tag":116,"props":2628,"children":2630},{"className":2629},[171,172],[2631],{"type":30,"value":2124},{"type":21,"tag":116,"props":2633,"children":2635},{"className":2634},[365],[2636],{"type":21,"tag":116,"props":2637,"children":2639},{"className":2638},[370,624],[2640,2677],{"type":21,"tag":116,"props":2641,"children":2643},{"className":2642},[375],[2644,2672],{"type":21,"tag":116,"props":2645,"children":2647},{"className":2646,"style":2550},[380],[2648],{"type":21,"tag":116,"props":2649,"children":2650},{"style":1837},[2651,2655],{"type":21,"tag":116,"props":2652,"children":2654},{"className":2653,"style":390},[389],[],{"type":21,"tag":116,"props":2656,"children":2658},{"className":2657},[395,396,397,398],[2659],{"type":21,"tag":116,"props":2660,"children":2662},{"className":2661},[171,398],[2663],{"type":21,"tag":116,"props":2664,"children":2666},{"className":2665},[171,30,398],[2667],{"type":21,"tag":116,"props":2668,"children":2670},{"className":2669},[171,398],[2671],{"type":30,"value":2174},{"type":21,"tag":116,"props":2673,"children":2675},{"className":2674},[705],[2676],{"type":30,"value":708},{"type":21,"tag":116,"props":2678,"children":2680},{"className":2679},[375],[2681],{"type":21,"tag":116,"props":2682,"children":2684},{"className":2683,"style":1864},[380],[2685],{"type":21,"tag":116,"props":2686,"children":2687},{},[],{"type":21,"tag":26,"props":2689,"children":2690},{},[2691,2693,2698],{"type":30,"value":2692},"目标函数是",{"type":21,"tag":33,"props":2694,"children":2695},{},[2696],{"type":30,"value":2697},"重建误差 + 稀疏惩罚",{"type":30,"value":2699},":",{"type":21,"tag":26,"props":2701,"children":2702},{},[2703],{"type":21,"tag":116,"props":2704,"children":2706},{"className":2705},[119],[2707,2838],{"type":21,"tag":116,"props":2708,"children":2710},{"className":2709},[124],[2711],{"type":21,"tag":127,"props":2712,"children":2713},{"xmlns":129},[2714],{"type":21,"tag":132,"props":2715,"children":2716},{},[2717,2833],{"type":21,"tag":136,"props":2718,"children":2719},{},[2720,2725,2729,2788,2792,2797],{"type":21,"tag":140,"props":2721,"children":2723},{"mathvariant":2722},"script",[2724],{"type":30,"value":2081},{"type":21,"tag":307,"props":2726,"children":2727},{},[2728],{"type":30,"value":753},{"type":21,"tag":2730,"props":2731,"children":2732},"munder",{},[2733,2783],{"type":21,"tag":2730,"props":2734,"children":2735},{},[2736,2778],{"type":21,"tag":136,"props":2737,"children":2738},{},[2739,2743,2747,2751,2762],{"type":21,"tag":140,"props":2740,"children":2741},{"mathvariant":457},[2742],{"type":30,"value":1755},{"type":21,"tag":140,"props":2744,"children":2745},{},[2746],{"type":30,"value":1378},{"type":21,"tag":307,"props":2748,"children":2749},{},[2750],{"type":30,"value":323},{"type":21,"tag":2147,"props":2752,"children":2753},{"accent":155},[2754,2758],{"type":21,"tag":140,"props":2755,"children":2756},{},[2757],{"type":30,"value":1378},{"type":21,"tag":307,"props":2759,"children":2760},{},[2761],{"type":30,"value":2158},{"type":21,"tag":2763,"props":2764,"children":2765},"msubsup",{},[2766,2770,2774],{"type":21,"tag":140,"props":2767,"children":2768},{"mathvariant":457},[2769],{"type":30,"value":1755},{"type":21,"tag":325,"props":2771,"children":2772},{},[2773],{"type":30,"value":329},{"type":21,"tag":325,"props":2775,"children":2776},{},[2777],{"type":30,"value":329},{"type":21,"tag":307,"props":2779,"children":2780},{"stretchy":155},[2781],{"type":30,"value":2782},"⏟",{"type":21,"tag":2052,"props":2784,"children":2785},{},[2786],{"type":30,"value":2787},"重建",{"type":21,"tag":307,"props":2789,"children":2790},{},[2791],{"type":30,"value":2116},{"type":21,"tag":140,"props":2793,"children":2794},{},[2795],{"type":30,"value":2796},"λ",{"type":21,"tag":2730,"props":2798,"children":2799},{},[2800,2829],{"type":21,"tag":2730,"props":2801,"children":2802},{},[2803,2825],{"type":21,"tag":136,"props":2804,"children":2805},{},[2806,2810,2814],{"type":21,"tag":140,"props":2807,"children":2808},{"mathvariant":457},[2809],{"type":30,"value":1755},{"type":21,"tag":140,"props":2811,"children":2812},{},[2813],{"type":30,"value":1393},{"type":21,"tag":1761,"props":2815,"children":2816},{},[2817,2821],{"type":21,"tag":140,"props":2818,"children":2819},{"mathvariant":457},[2820],{"type":30,"value":1755},{"type":21,"tag":325,"props":2822,"children":2823},{},[2824],{"type":30,"value":573},{"type":21,"tag":307,"props":2826,"children":2827},{"stretchy":155},[2828],{"type":30,"value":2782},{"type":21,"tag":2052,"props":2830,"children":2831},{},[2832],{"type":30,"value":1301},{"type":21,"tag":146,"props":2834,"children":2835},{"encoding":148},[2836],{"type":30,"value":2837},"\\mathcal{L} = \\underbrace{\\|x - \\hat{x}\\|_2^2}_{\\text{重建}} + \\lambda \\underbrace{\\|f\\|_1}_{\\text{稀疏}}",{"type":21,"tag":116,"props":2839,"children":2841},{"className":2840,"ariaHidden":155},[154],[2842,2869,3208],{"type":21,"tag":116,"props":2843,"children":2845},{"className":2844},[160],[2846,2850,2856,2860,2865],{"type":21,"tag":116,"props":2847,"children":2849},{"className":2848,"style":854},[165],[],{"type":21,"tag":116,"props":2851,"children":2854},{"className":2852},[171,2853],"mathcal",[2855],{"type":30,"value":2081},{"type":21,"tag":116,"props":2857,"children":2859},{"className":2858,"style":784},[423],[],{"type":21,"tag":116,"props":2861,"children":2863},{"className":2862},[789],[2864],{"type":30,"value":753},{"type":21,"tag":116,"props":2866,"children":2868},{"className":2867,"style":784},[423],[],{"type":21,"tag":116,"props":2870,"children":2872},{"className":2871},[160],[2873,2878,3195,3199,3204],{"type":21,"tag":116,"props":2874,"children":2877},{"className":2875,"style":2876},[165],"height:2.4404em;vertical-align:-1.5763em;",[],{"type":21,"tag":116,"props":2879,"children":2882},{"className":2880},[2881,2730],"minner",[2883],{"type":21,"tag":116,"props":2884,"children":2886},{"className":2885},[370,624],[2887,3183],{"type":21,"tag":116,"props":2888,"children":2890},{"className":2889},[375],[2891,3178],{"type":21,"tag":116,"props":2892,"children":2895},{"className":2893,"style":2894},[380],"height:0.8641em;",[2896,2922],{"type":21,"tag":116,"props":2897,"children":2899},{"style":2898},"top:-1.4237em;",[2900,2904],{"type":21,"tag":116,"props":2901,"children":2903},{"className":2902,"style":642},[389],[],{"type":21,"tag":116,"props":2905,"children":2907},{"className":2906},[395,396,397,398],[2908],{"type":21,"tag":116,"props":2909,"children":2911},{"className":2910},[171,398],[2912],{"type":21,"tag":116,"props":2913,"children":2915},{"className":2914},[171,30,398],[2916],{"type":21,"tag":116,"props":2917,"children":2920},{"className":2918},[171,2919,398],"cjk_fallback",[2921],{"type":30,"value":2787},{"type":21,"tag":116,"props":2923,"children":2924},{"style":2476},[2925,2929],{"type":21,"tag":116,"props":2926,"children":2928},{"className":2927,"style":642},[389],[],{"type":21,"tag":116,"props":2930,"children":2932},{"className":2931},[2881,2730],[2933],{"type":21,"tag":116,"props":2934,"children":2936},{"className":2935},[370,624],[2937,3166],{"type":21,"tag":116,"props":2938,"children":2940},{"className":2939},[375],[2941,3161],{"type":21,"tag":116,"props":2942,"children":2944},{"className":2943,"style":2894},[380],[2945,3007],{"type":21,"tag":116,"props":2946,"children":2950},{"className":2947,"style":2949},[2948],"svg-align","top:-2.102em;",[2951,2955],{"type":21,"tag":116,"props":2952,"children":2954},{"className":2953,"style":642},[389],[],{"type":21,"tag":116,"props":2956,"children":2960},{"className":2957,"style":2959},[2958],"stretchy","height:0.548em;min-width:1.6em;",[2961,2981,2994],{"type":21,"tag":116,"props":2962,"children":2966},{"className":2963,"style":2965},[2964],"brace-left","height:0.548em;",[2967],{"type":21,"tag":2968,"props":2969,"children":2975},"svg",{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2974},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","0.548em","0 0 400000 548","xMinYMin slice",[2976],{"type":21,"tag":2977,"props":2978,"children":2980},"path",{"d":2979},"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",[],{"type":21,"tag":116,"props":2982,"children":2985},{"className":2983,"style":2965},[2984],"brace-center",[2986],{"type":21,"tag":2968,"props":2987,"children":2989},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2988},"xMidYMin slice",[2990],{"type":21,"tag":2977,"props":2991,"children":2993},{"d":2992},"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",[],{"type":21,"tag":116,"props":2995,"children":2998},{"className":2996,"style":2965},[2997],"brace-right",[2999],{"type":21,"tag":2968,"props":3000,"children":3002},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":3001},"xMaxYMin slice",[3003],{"type":21,"tag":2977,"props":3004,"children":3006},{"d":3005},"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",[],{"type":21,"tag":116,"props":3008,"children":3009},{"style":2476},[3010,3014],{"type":21,"tag":116,"props":3011,"children":3013},{"className":3012,"style":642},[389],[],{"type":21,"tag":116,"props":3015,"children":3017},{"className":3016},[171],[3018,3023,3028,3032,3037,3041,3085],{"type":21,"tag":116,"props":3019,"children":3021},{"className":3020},[171],[3022],{"type":30,"value":1755},{"type":21,"tag":116,"props":3024,"children":3026},{"className":3025},[171,172],[3027],{"type":30,"value":1378},{"type":21,"tag":116,"props":3029,"children":3031},{"className":3030,"style":2345},[423],[],{"type":21,"tag":116,"props":3033,"children":3035},{"className":3034},[412],[3036],{"type":30,"value":323},{"type":21,"tag":116,"props":3038,"children":3040},{"className":3039,"style":2345},[423],[],{"type":21,"tag":116,"props":3042,"children":3044},{"className":3043},[171,2460],[3045],{"type":21,"tag":116,"props":3046,"children":3048},{"className":3047},[370],[3049],{"type":21,"tag":116,"props":3050,"children":3052},{"className":3051},[375],[3053],{"type":21,"tag":116,"props":3054,"children":3056},{"className":3055,"style":166},[380],[3057,3069],{"type":21,"tag":116,"props":3058,"children":3059},{"style":2476},[3060,3064],{"type":21,"tag":116,"props":3061,"children":3063},{"className":3062,"style":642},[389],[],{"type":21,"tag":116,"props":3065,"children":3067},{"className":3066},[171,172],[3068],{"type":30,"value":1378},{"type":21,"tag":116,"props":3070,"children":3071},{"style":2476},[3072,3076],{"type":21,"tag":116,"props":3073,"children":3075},{"className":3074,"style":642},[389],[],{"type":21,"tag":116,"props":3077,"children":3079},{"className":3078,"style":2498},[2497],[3080],{"type":21,"tag":116,"props":3081,"children":3083},{"className":3082},[171],[3084],{"type":30,"value":2158},{"type":21,"tag":116,"props":3086,"children":3088},{"className":3087},[171],[3089,3094],{"type":21,"tag":116,"props":3090,"children":3092},{"className":3091},[171],[3093],{"type":30,"value":1755},{"type":21,"tag":116,"props":3095,"children":3097},{"className":3096},[365],[3098],{"type":21,"tag":116,"props":3099,"children":3101},{"className":3100},[370,624],[3102,3149],{"type":21,"tag":116,"props":3103,"children":3105},{"className":3104},[375],[3106,3144],{"type":21,"tag":116,"props":3107,"children":3109},{"className":3108,"style":2894},[380],[3110,3127],{"type":21,"tag":116,"props":3111,"children":3113},{"style":3112},"top:-2.453em;margin-left:0em;margin-right:0.05em;",[3114,3118],{"type":21,"tag":116,"props":3115,"children":3117},{"className":3116,"style":390},[389],[],{"type":21,"tag":116,"props":3119,"children":3121},{"className":3120},[395,396,397,398],[3122],{"type":21,"tag":116,"props":3123,"children":3125},{"className":3124},[171,398],[3126],{"type":30,"value":329},{"type":21,"tag":116,"props":3128,"children":3130},{"style":3129},"top:-3.113em;margin-right:0.05em;",[3131,3135],{"type":21,"tag":116,"props":3132,"children":3134},{"className":3133,"style":390},[389],[],{"type":21,"tag":116,"props":3136,"children":3138},{"className":3137},[395,396,397,398],[3139],{"type":21,"tag":116,"props":3140,"children":3142},{"className":3141},[171,398],[3143],{"type":30,"value":329},{"type":21,"tag":116,"props":3145,"children":3147},{"className":3146},[705],[3148],{"type":30,"value":708},{"type":21,"tag":116,"props":3150,"children":3152},{"className":3151},[375],[3153],{"type":21,"tag":116,"props":3154,"children":3157},{"className":3155,"style":3156},[380],"height:0.247em;",[3158],{"type":21,"tag":116,"props":3159,"children":3160},{},[],{"type":21,"tag":116,"props":3162,"children":3164},{"className":3163},[705],[3165],{"type":30,"value":708},{"type":21,"tag":116,"props":3167,"children":3169},{"className":3168},[375],[3170],{"type":21,"tag":116,"props":3171,"children":3174},{"className":3172,"style":3173},[380],"height:0.898em;",[3175],{"type":21,"tag":116,"props":3176,"children":3177},{},[],{"type":21,"tag":116,"props":3179,"children":3181},{"className":3180},[705],[3182],{"type":30,"value":708},{"type":21,"tag":116,"props":3184,"children":3186},{"className":3185},[375],[3187],{"type":21,"tag":116,"props":3188,"children":3191},{"className":3189,"style":3190},[380],"height:1.5763em;",[3192],{"type":21,"tag":116,"props":3193,"children":3194},{},[],{"type":21,"tag":116,"props":3196,"children":3198},{"className":3197,"style":2345},[423],[],{"type":21,"tag":116,"props":3200,"children":3202},{"className":3201},[412],[3203],{"type":30,"value":2116},{"type":21,"tag":116,"props":3205,"children":3207},{"className":3206,"style":2345},[423],[],{"type":21,"tag":116,"props":3209,"children":3211},{"className":3210},[160],[3212,3217,3222,3226],{"type":21,"tag":116,"props":3213,"children":3216},{"className":3214,"style":3215},[165],"height:2.3263em;vertical-align:-1.5763em;",[],{"type":21,"tag":116,"props":3218,"children":3220},{"className":3219},[171,172],[3221],{"type":30,"value":2796},{"type":21,"tag":116,"props":3223,"children":3225},{"className":3224,"style":424},[423],[],{"type":21,"tag":116,"props":3227,"children":3229},{"className":3228},[2881,2730],[3230],{"type":21,"tag":116,"props":3231,"children":3233},{"className":3232},[370,624],[3234,3431],{"type":21,"tag":116,"props":3235,"children":3237},{"className":3236},[375],[3238,3426],{"type":21,"tag":116,"props":3239,"children":3242},{"className":3240,"style":3241},[380],"height:0.75em;",[3243,3267],{"type":21,"tag":116,"props":3244,"children":3245},{"style":2898},[3246,3250],{"type":21,"tag":116,"props":3247,"children":3249},{"className":3248,"style":642},[389],[],{"type":21,"tag":116,"props":3251,"children":3253},{"className":3252},[395,396,397,398],[3254],{"type":21,"tag":116,"props":3255,"children":3257},{"className":3256},[171,398],[3258],{"type":21,"tag":116,"props":3259,"children":3261},{"className":3260},[171,30,398],[3262],{"type":21,"tag":116,"props":3263,"children":3265},{"className":3264},[171,2919,398],[3266],{"type":30,"value":1301},{"type":21,"tag":116,"props":3268,"children":3269},{"style":2476},[3270,3274],{"type":21,"tag":116,"props":3271,"children":3273},{"className":3272,"style":642},[389],[],{"type":21,"tag":116,"props":3275,"children":3277},{"className":3276},[2881,2730],[3278],{"type":21,"tag":116,"props":3279,"children":3281},{"className":3280},[370,624],[3282,3415],{"type":21,"tag":116,"props":3283,"children":3285},{"className":3284},[375],[3286,3410],{"type":21,"tag":116,"props":3287,"children":3289},{"className":3288,"style":3241},[380],[3290,3332],{"type":21,"tag":116,"props":3291,"children":3293},{"className":3292,"style":2949},[2948],[3294,3298],{"type":21,"tag":116,"props":3295,"children":3297},{"className":3296,"style":642},[389],[],{"type":21,"tag":116,"props":3299,"children":3301},{"className":3300,"style":2959},[2958],[3302,3312,3322],{"type":21,"tag":116,"props":3303,"children":3305},{"className":3304,"style":2965},[2964],[3306],{"type":21,"tag":2968,"props":3307,"children":3308},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2974},[3309],{"type":21,"tag":2977,"props":3310,"children":3311},{"d":2979},[],{"type":21,"tag":116,"props":3313,"children":3315},{"className":3314,"style":2965},[2984],[3316],{"type":21,"tag":2968,"props":3317,"children":3318},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2988},[3319],{"type":21,"tag":2977,"props":3320,"children":3321},{"d":2992},[],{"type":21,"tag":116,"props":3323,"children":3325},{"className":3324,"style":2965},[2997],[3326],{"type":21,"tag":2968,"props":3327,"children":3328},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":3001},[3329],{"type":21,"tag":2977,"props":3330,"children":3331},{"d":3005},[],{"type":21,"tag":116,"props":3333,"children":3334},{"style":2476},[3335,3339],{"type":21,"tag":116,"props":3336,"children":3338},{"className":3337,"style":642},[389],[],{"type":21,"tag":116,"props":3340,"children":3342},{"className":3341},[171],[3343,3348,3353],{"type":21,"tag":116,"props":3344,"children":3346},{"className":3345},[171],[3347],{"type":30,"value":1755},{"type":21,"tag":116,"props":3349,"children":3351},{"className":3350,"style":1448},[171,172],[3352],{"type":30,"value":1393},{"type":21,"tag":116,"props":3354,"children":3356},{"className":3355},[171],[3357,3362],{"type":21,"tag":116,"props":3358,"children":3360},{"className":3359},[171],[3361],{"type":30,"value":1755},{"type":21,"tag":116,"props":3363,"children":3365},{"className":3364},[365],[3366],{"type":21,"tag":116,"props":3367,"children":3369},{"className":3368},[370,624],[3370,3399],{"type":21,"tag":116,"props":3371,"children":3373},{"className":3372},[375],[3374,3394],{"type":21,"tag":116,"props":3375,"children":3377},{"className":3376,"style":1833},[380],[3378],{"type":21,"tag":116,"props":3379,"children":3380},{"style":1837},[3381,3385],{"type":21,"tag":116,"props":3382,"children":3384},{"className":3383,"style":390},[389],[],{"type":21,"tag":116,"props":3386,"children":3388},{"className":3387},[395,396,397,398],[3389],{"type":21,"tag":116,"props":3390,"children":3392},{"className":3391},[171,398],[3393],{"type":30,"value":573},{"type":21,"tag":116,"props":3395,"children":3397},{"className":3396},[705],[3398],{"type":30,"value":708},{"type":21,"tag":116,"props":3400,"children":3402},{"className":3401},[375],[3403],{"type":21,"tag":116,"props":3404,"children":3406},{"className":3405,"style":1864},[380],[3407],{"type":21,"tag":116,"props":3408,"children":3409},{},[],{"type":21,"tag":116,"props":3411,"children":3413},{"className":3412},[705],[3414],{"type":30,"value":708},{"type":21,"tag":116,"props":3416,"children":3418},{"className":3417},[375],[3419],{"type":21,"tag":116,"props":3420,"children":3422},{"className":3421,"style":3173},[380],[3423],{"type":21,"tag":116,"props":3424,"children":3425},{},[],{"type":21,"tag":116,"props":3427,"children":3429},{"className":3428},[705],[3430],{"type":30,"value":708},{"type":21,"tag":116,"props":3432,"children":3434},{"className":3433},[375],[3435],{"type":21,"tag":116,"props":3436,"children":3438},{"className":3437,"style":3190},[380],[3439],{"type":21,"tag":116,"props":3440,"children":3441},{},[],{"type":21,"tag":26,"props":3443,"children":3444},{},[3445],{"type":30,"value":3446},"几个关键点,我的理解:",{"type":21,"tag":3448,"props":3449,"children":3450},"ol",{},[3451,3585,3803],{"type":21,"tag":1321,"props":3452,"children":3453},{},[3454,3459,3461,3539,3541,3583],{"type":21,"tag":33,"props":3455,"children":3456},{},[3457],{"type":30,"value":3458},"字典比原维度大很多。",{"type":30,"value":3460}," MLP 宽度 ",{"type":21,"tag":116,"props":3462,"children":3464},{"className":3463},[119],[3465,3496],{"type":21,"tag":116,"props":3466,"children":3468},{"className":3467},[124],[3469],{"type":21,"tag":127,"props":3470,"children":3471},{"xmlns":129},[3472],{"type":21,"tag":132,"props":3473,"children":3474},{},[3475,3491],{"type":21,"tag":136,"props":3476,"children":3477},{},[3478,3482,3486],{"type":21,"tag":140,"props":3479,"children":3480},{},[3481],{"type":30,"value":144},{"type":21,"tag":307,"props":3483,"children":3484},{},[3485],{"type":30,"value":1383},{"type":21,"tag":325,"props":3487,"children":3488},{},[3489],{"type":30,"value":3490},"2048",{"type":21,"tag":146,"props":3492,"children":3493},{"encoding":148},[3494],{"type":30,"value":3495},"d \\approx 2048",{"type":21,"tag":116,"props":3497,"children":3499},{"className":3498,"ariaHidden":155},[154],[3500,3526],{"type":21,"tag":116,"props":3501,"children":3503},{"className":3502},[160],[3504,3508,3513,3517,3522],{"type":21,"tag":116,"props":3505,"children":3507},{"className":3506,"style":166},[165],[],{"type":21,"tag":116,"props":3509,"children":3511},{"className":3510},[171,172],[3512],{"type":30,"value":144},{"type":21,"tag":116,"props":3514,"children":3516},{"className":3515,"style":784},[423],[],{"type":21,"tag":116,"props":3518,"children":3520},{"className":3519},[789],[3521],{"type":30,"value":1383},{"type":21,"tag":116,"props":3523,"children":3525},{"className":3524,"style":784},[423],[],{"type":21,"tag":116,"props":3527,"children":3529},{"className":3528},[160],[3530,3534],{"type":21,"tag":116,"props":3531,"children":3533},{"className":3532,"style":803},[165],[],{"type":21,"tag":116,"props":3535,"children":3537},{"className":3536},[171],[3538],{"type":30,"value":3490},{"type":30,"value":3540},",但字典可以开到几十万甚至上百万个特征(扩张系数 expansion factor = 字典大小 \u002F ",{"type":21,"tag":116,"props":3542,"children":3544},{"className":3543},[119],[3545,3566],{"type":21,"tag":116,"props":3546,"children":3548},{"className":3547},[124],[3549],{"type":21,"tag":127,"props":3550,"children":3551},{"xmlns":129},[3552],{"type":21,"tag":132,"props":3553,"children":3554},{},[3555,3562],{"type":21,"tag":136,"props":3556,"children":3557},{},[3558],{"type":21,"tag":140,"props":3559,"children":3560},{},[3561],{"type":30,"value":144},{"type":21,"tag":146,"props":3563,"children":3564},{"encoding":148},[3565],{"type":30,"value":144},{"type":21,"tag":116,"props":3567,"children":3569},{"className":3568,"ariaHidden":155},[154],[3570],{"type":21,"tag":116,"props":3571,"children":3573},{"className":3572},[160],[3574,3578],{"type":21,"tag":116,"props":3575,"children":3577},{"className":3576,"style":166},[165],[],{"type":21,"tag":116,"props":3579,"children":3581},{"className":3580},[171,172],[3582],{"type":30,"value":144},{"type":30,"value":3584},",这篇扫到量级几百倍)。这正对应\"概念数 > 神经元数\"的叠加假设——故意给一个过完备(overcomplete)的字典。",{"type":21,"tag":1321,"props":3586,"children":3587},{},[3588,3593,3595,3637,3639,3644,3646,3689,3691,3801],{"type":21,"tag":33,"props":3589,"children":3590},{},[3591],{"type":30,"value":3592},"ReLU 强制非负 + L1 强制稀疏。",{"type":30,"value":3594}," 重建要求字典能还原 ",{"type":21,"tag":116,"props":3596,"children":3598},{"className":3597},[119],[3599,3620],{"type":21,"tag":116,"props":3600,"children":3602},{"className":3601},[124],[3603],{"type":21,"tag":127,"props":3604,"children":3605},{"xmlns":129},[3606],{"type":21,"tag":132,"props":3607,"children":3608},{},[3609,3616],{"type":21,"tag":136,"props":3610,"children":3611},{},[3612],{"type":21,"tag":140,"props":3613,"children":3614},{},[3615],{"type":30,"value":1378},{"type":21,"tag":146,"props":3617,"children":3618},{"encoding":148},[3619],{"type":30,"value":1378},{"type":21,"tag":116,"props":3621,"children":3623},{"className":3622,"ariaHidden":155},[154],[3624],{"type":21,"tag":116,"props":3625,"children":3627},{"className":3626},[160],[3628,3632],{"type":21,"tag":116,"props":3629,"children":3631},{"className":3630,"style":1889},[165],[],{"type":21,"tag":116,"props":3633,"children":3635},{"className":3634},[171,172],[3636],{"type":30,"value":1378},{"type":30,"value":3638},",L1 要求每个样本只激活很少几个特征。两个约束一起,逼着字典学出",{"type":21,"tag":33,"props":3640,"children":3641},{},[3642],{"type":30,"value":3643},"稀疏组合",{"type":30,"value":3645},"——每个激活向量被表示成\"少数几个特征方向\"的叠加。(",{"type":21,"tag":116,"props":3647,"children":3649},{"className":3648},[119],[3650,3672],{"type":21,"tag":116,"props":3651,"children":3653},{"className":3652},[124],[3654],{"type":21,"tag":127,"props":3655,"children":3656},{"xmlns":129},[3657],{"type":21,"tag":132,"props":3658,"children":3659},{},[3660,3667],{"type":21,"tag":136,"props":3661,"children":3662},{},[3663],{"type":21,"tag":140,"props":3664,"children":3665},{},[3666],{"type":30,"value":2796},{"type":21,"tag":146,"props":3668,"children":3669},{"encoding":148},[3670],{"type":30,"value":3671},"\\lambda",{"type":21,"tag":116,"props":3673,"children":3675},{"className":3674,"ariaHidden":155},[154],[3676],{"type":21,"tag":116,"props":3677,"children":3679},{"className":3678},[160],[3680,3684],{"type":21,"tag":116,"props":3681,"children":3683},{"className":3682,"style":166},[165],[],{"type":21,"tag":116,"props":3685,"children":3687},{"className":3686},[171,172],[3688],{"type":30,"value":2796},{"type":30,"value":3690}," 量级在 ",{"type":21,"tag":116,"props":3692,"children":3694},{"className":3693},[119],[3695,3733],{"type":21,"tag":116,"props":3696,"children":3698},{"className":3697},[124],[3699],{"type":21,"tag":127,"props":3700,"children":3701},{"xmlns":129},[3702],{"type":21,"tag":132,"props":3703,"children":3704},{},[3705,3728],{"type":21,"tag":136,"props":3706,"children":3707},{},[3708],{"type":21,"tag":295,"props":3709,"children":3710},{},[3711,3716],{"type":21,"tag":325,"props":3712,"children":3713},{},[3714],{"type":30,"value":3715},"10",{"type":21,"tag":136,"props":3717,"children":3718},{},[3719,3723],{"type":21,"tag":307,"props":3720,"children":3721},{},[3722],{"type":30,"value":323},{"type":21,"tag":325,"props":3724,"children":3725},{},[3726],{"type":30,"value":3727},"3",{"type":21,"tag":146,"props":3729,"children":3730},{"encoding":148},[3731],{"type":30,"value":3732},"10^{-3}",{"type":21,"tag":116,"props":3734,"children":3736},{"className":3735,"ariaHidden":155},[154],[3737],{"type":21,"tag":116,"props":3738,"children":3740},{"className":3739},[160],[3741,3746,3751],{"type":21,"tag":116,"props":3742,"children":3745},{"className":3743,"style":3744},[165],"height:0.8141em;",[],{"type":21,"tag":116,"props":3747,"children":3749},{"className":3748},[171],[3750],{"type":30,"value":573},{"type":21,"tag":116,"props":3752,"children":3754},{"className":3753},[171],[3755,3760],{"type":21,"tag":116,"props":3756,"children":3758},{"className":3757},[171],[3759],{"type":30,"value":1772},{"type":21,"tag":116,"props":3761,"children":3763},{"className":3762},[365],[3764],{"type":21,"tag":116,"props":3765,"children":3767},{"className":3766},[370],[3768],{"type":21,"tag":116,"props":3769,"children":3771},{"className":3770},[375],[3772],{"type":21,"tag":116,"props":3773,"children":3775},{"className":3774,"style":3744},[380],[3776],{"type":21,"tag":116,"props":3777,"children":3778},{"style":1578},[3779,3783],{"type":21,"tag":116,"props":3780,"children":3782},{"className":3781,"style":390},[389],[],{"type":21,"tag":116,"props":3784,"children":3786},{"className":3785},[395,396,397,398],[3787],{"type":21,"tag":116,"props":3788,"children":3790},{"className":3789},[171,398],[3791,3796],{"type":21,"tag":116,"props":3792,"children":3794},{"className":3793},[171,398],[3795],{"type":30,"value":323},{"type":21,"tag":116,"props":3797,"children":3799},{"className":3798},[171,398],[3800],{"type":30,"value":3727},{"type":30,"value":3802},",具体值看模型规模。)",{"type":21,"tag":1321,"props":3804,"children":3805},{},[3806,3855,3857,3862],{"type":21,"tag":33,"props":3807,"children":3808},{},[3809,3811,3853],{"type":30,"value":3810},"L0 远小于 ",{"type":21,"tag":116,"props":3812,"children":3814},{"className":3813},[119],[3815,3836],{"type":21,"tag":116,"props":3816,"children":3818},{"className":3817},[124],[3819],{"type":21,"tag":127,"props":3820,"children":3821},{"xmlns":129},[3822],{"type":21,"tag":132,"props":3823,"children":3824},{},[3825,3832],{"type":21,"tag":136,"props":3826,"children":3827},{},[3828],{"type":21,"tag":140,"props":3829,"children":3830},{},[3831],{"type":30,"value":144},{"type":21,"tag":146,"props":3833,"children":3834},{"encoding":148},[3835],{"type":30,"value":144},{"type":21,"tag":116,"props":3837,"children":3839},{"className":3838,"ariaHidden":155},[154],[3840],{"type":21,"tag":116,"props":3841,"children":3843},{"className":3842},[160],[3844,3848],{"type":21,"tag":116,"props":3845,"children":3847},{"className":3846,"style":166},[165],[],{"type":21,"tag":116,"props":3849,"children":3851},{"className":3850},[171,172],[3852],{"type":30,"value":144},{"type":30,"value":3854},",但方差解释率(FVE)很高。",{"type":30,"value":3856}," 这是最漂亮的结果:每个 token 的 MLP 激活,只需要",{"type":21,"tag":33,"props":3858,"children":3859},{},[3860],{"type":30,"value":3861},"几十到几百个特征",{"type":30,"value":3863},"稀疏激活就能重建绝大部分方差。如果神经元真是计算单元,你不可能用这么少的方向重建得这么好——这反过来支持\"特征才是真实单元\"。",{"type":21,"tag":58,"props":3865,"children":3867},{"id":3866},"三特征真的是单语义的吗",[3868],{"type":30,"value":3869},"三、特征真的是单语义的吗",{"type":21,"tag":26,"props":3871,"children":3872},{},[3873,3875,3880],{"type":30,"value":3874},"光重建好不够,得证明每个特征",{"type":21,"tag":33,"props":3876,"children":3877},{},[3878],{"type":30,"value":3879},"确实对应一个可解释的概念",{"type":30,"value":3881},"。他们做了大量 case study,挑几个最能说明问题的:",{"type":21,"tag":3883,"props":3884,"children":3885},"table",{},[3886,3910],{"type":21,"tag":3887,"props":3888,"children":3889},"thead",{},[3890],{"type":21,"tag":3891,"props":3892,"children":3893},"tr",{},[3894,3900,3905],{"type":21,"tag":3895,"props":3896,"children":3897},"th",{},[3898],{"type":30,"value":3899},"特征",{"type":21,"tag":3895,"props":3901,"children":3902},{},[3903],{"type":30,"value":3904},"激活条件",{"type":21,"tag":3895,"props":3906,"children":3907},{},[3908],{"type":30,"value":3909},"为什么重要",{"type":21,"tag":3911,"props":3912,"children":3913},"tbody",{},[3914,3944,3965,3986],{"type":21,"tag":3891,"props":3915,"children":3916},{},[3917,3926,3939],{"type":21,"tag":3918,"props":3919,"children":3920},"td",{},[3921],{"type":21,"tag":33,"props":3922,"children":3923},{},[3924],{"type":30,"value":3925},"DNA 特征",{"type":21,"tag":3918,"props":3927,"children":3928},{},[3929,3931,3937],{"type":30,"value":3930},"输入是 ",{"type":21,"tag":1185,"props":3932,"children":3934},{"className":3933},[],[3935],{"type":30,"value":3936},"ATGC...",{"type":30,"value":3938}," 这样的 DNA 序列",{"type":21,"tag":3918,"props":3940,"children":3941},{},[3942],{"type":30,"value":3943},"跨 token、跨上下文都稳定,甚至能拿来给文本\"是否含 DNA\"打标",{"type":21,"tag":3891,"props":3945,"children":3946},{},[3947,3955,3960],{"type":21,"tag":3918,"props":3948,"children":3949},{},[3950],{"type":21,"tag":33,"props":3951,"children":3952},{},[3953],{"type":30,"value":3954},"阿拉伯文特征",{"type":21,"tag":3918,"props":3956,"children":3957},{},[3958],{"type":30,"value":3959},"文本里出现阿拉伯字符",{"type":21,"tag":3918,"props":3961,"children":3962},{},[3963],{"type":30,"value":3964},"与主题无关,纯粹认\"书写系统\"这个抽象",{"type":21,"tag":3891,"props":3966,"children":3967},{},[3968,3976,3981],{"type":21,"tag":3918,"props":3969,"children":3970},{},[3971],{"type":21,"tag":33,"props":3972,"children":3973},{},[3974],{"type":30,"value":3975},"专有名词 \u002F 缩写特征",{"type":21,"tag":3918,"props":3977,"children":3978},{},[3979],{"type":30,"value":3980},"首字母大写的人名、全大写缩写",{"type":21,"tag":3918,"props":3982,"children":3983},{},[3984],{"type":30,"value":3985},"语法-词性层面的抽象",{"type":21,"tag":3891,"props":3987,"children":3988},{},[3989,3997,4002],{"type":21,"tag":3918,"props":3990,"children":3991},{},[3992],{"type":21,"tag":33,"props":3993,"children":3994},{},[3995],{"type":30,"value":3996},"无用 token 特征",{"type":21,"tag":3918,"props":3998,"children":3999},{},[4000],{"type":30,"value":4001},"模型词表里那些训练时几乎从不出现的\"垃圾\" token",{"type":21,"tag":3918,"props":4003,"children":4004},{},[4005],{"type":30,"value":4006},"关键对照:这种 token 上特征的激活模式异常,说明特征不是无脑触发",{"type":21,"tag":26,"props":4008,"children":4009},{},[4010,4012,4017],{"type":30,"value":4011},"最有说服力的是 ",{"type":21,"tag":33,"props":4013,"children":4014},{},[4015],{"type":30,"value":4016},"无用 token(unuseful tokens)",{"type":30,"value":4018}," 实验:Anthropic 在词表里故意塞了一批训练数据里几乎不出现的 token。如果特征只是字典学习的数学产物,它对这些 token 应该也\"随便\"激活;但实际观察到的激活模式是有结构的、能和\"这个 token 从没被真正学过\"对上。这是对\"特征是真实单元、不是字典 artifact\"的一个反证辩护。",{"type":21,"tag":26,"props":4020,"children":4021},{},[4022,4024,4029,4031,4036],{"type":30,"value":4023},"合起来,论文给出的画像:每一个 SAE 特征,在一个",{"type":21,"tag":33,"props":4025,"children":4026},{},[4027],{"type":30,"value":4028},"很窄但很一致",{"type":30,"value":4030},"的语义条件下激活——这就是 ",{"type":21,"tag":33,"props":4032,"children":4033},{},[4034],{"type":30,"value":4035},"monosemantic(单语义)",{"type":30,"value":4037},"。和原始神经元的 polysemantic 形成鲜明对比。",{"type":21,"tag":58,"props":4039,"children":4041},{"id":4040},"四质疑特征会不会只是字典的产物",[4042],{"type":30,"value":4043},"四、质疑:特征会不会只是字典的产物",{"type":21,"tag":26,"props":4045,"children":4046},{},[4047],{"type":30,"value":4048},"这一节是我觉得最该细读的部分,也是最容易被科普文章跳过的。",{"type":21,"tag":26,"props":4050,"children":4051},{},[4052,4054,4059],{"type":30,"value":4053},"最自然的反对意见是:",{"type":21,"tag":33,"props":4055,"children":4056},{},[4057],{"type":30,"value":4058},"你开一个过完备字典 + L1,当然能把任何信号拆成\"稀疏的零件\",但这些零件是模型在用的东西,还是你强加的基?",{"type":30,"value":4060},"(basis dependence \u002F 字典依赖)",{"type":21,"tag":26,"props":4062,"children":4063},{},[4064],{"type":30,"value":4065},"他们的回应分两层:",{"type":21,"tag":3448,"props":4067,"children":4068},{},[4069,4084],{"type":21,"tag":1321,"props":4070,"children":4071},{},[4072,4077,4079],{"type":21,"tag":33,"props":4073,"children":4074},{},[4075],{"type":30,"value":4076},"特征分裂(feature splitting)是良性的。",{"type":30,"value":4078}," 字典开得越大,一个粗特征会\"分裂\"成几个更细的特征(比如\"阿拉伯文\" → \"阿拉伯文-宗教文本\"\"阿拉伯文-代码注释\"……)。这看起来像过拟合,但分裂后每个子特征依然单义、依然可解释——只是粒度更细。",{"type":21,"tag":33,"props":4080,"children":4081},{},[4082],{"type":30,"value":4083},"所以字典大小控制的是\"放大镜的倍率\",不是凭空造概念。",{"type":21,"tag":1321,"props":4085,"children":4086},{},[4087,4092,4094,4099,4101],{"type":21,"tag":33,"props":4088,"children":4089},{},[4090],{"type":30,"value":4091},"行为层面的因果验证。",{"type":30,"value":4093}," 光说\"可解释\"是旁观证据,真正站住脚的是:能不能拿特征去",{"type":21,"tag":33,"props":4095,"children":4096},{},[4097],{"type":30,"value":4098},"干预",{"type":30,"value":4100},"模型行为。把某个特征在推理时强行激活或抑制(clamp \u002F ablation),输出会按预期改变。",{"type":21,"tag":4102,"props":4103,"children":4104},"em",{},[4105],{"type":30,"value":4106},"(注:大规模 steering 实验——包括那个有名的\"毒性特征\"案例——主要在 2024 年的续作 Scaling Monosemanticity 里,本篇规模较小,但因果验证的思路已立住。)",{"type":21,"tag":26,"props":4108,"children":4109},{},[4110,4112,4117],{"type":30,"value":4111},"我的看法:这两点合起来基本回应了 basis dependence,但没完全消解。",{"type":21,"tag":33,"props":4113,"children":4114},{},[4115],{"type":30,"value":4116},"特征是\"字典相关的\"这件事是事实",{"type":30,"value":4118},",只是\"字典相关\"不等于\"任意\"——好的字典会让特征和模型的真实计算对齐。这有点像量子力学里的表象问题:换基会变,但物理不变;SAE 找的是那个让特征尽量\"自然\"的基。",{"type":21,"tag":58,"props":4120,"children":4122},{"id":4121},"五延伸思考",[4123],{"type":30,"value":4124},"五、延伸思考",{"type":21,"tag":26,"props":4126,"children":4127},{},[4128],{"type":30,"value":4129},"总的来说，SAEs为Transformer的可解释性提供了可能性。我们朴素直觉(神经元=概念)被一个更准确结构(在神经元中被叠加某一方向=概念)取代。可解释性的基本单元从 neuron 让位给了 feature direction。",{"type":21,"tag":26,"props":4131,"children":4132},{},[4133,4135,4140],{"type":30,"value":4134},"不过，SAE 只是\"放大镜\"。它给的是一个",{"type":21,"tag":33,"props":4136,"children":4137},{},[4138],{"type":30,"value":4139},"可调粒度",{"type":30,"value":4141},"的视图(字典大小=倍率)。模型的特征不是一个有确定数目的东西,而是依观察尺度展开的——这跟物理里\"尺度决定你看到什么\"是一回事。别把某一次 SAE 的特征数当成模型\"真正的概念数\"。SAE只是把多语义的拆分成更细的特征，便于我们解释，以及在不修改参数的情况下进行操作。",{"type":21,"tag":4143,"props":4144,"children":4145},"hr",{},[],{"type":21,"tag":22,"props":4147,"children":4148},{},[4149],{"type":21,"tag":26,"props":4150,"children":4151},{},[4152],{"type":21,"tag":33,"props":4153,"children":4154},{},[4155],{"type":30,"value":4156},"模型把比神经元多得多的概念稀疏地压进激活空间,所以神经元是多义的;稀疏自编码器通过\"过完备字典 + L1 稀疏\"把这个叠加解混,得到的特征在很大概率上才是模型真正在用的、单义的计算单元——而\"是不是真在用\",最终只能靠因果干预来回答。",{"type":21,"tag":4158,"props":4159,"children":4160},"style",{},[4161],{"type":30,"value":4162},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":8,"searchDepth":1200,"depth":1210,"links":4164},[4165,4166,4167,4168,4169],{"id":60,"depth":1200,"text":63},{"id":1348,"depth":1200,"text":1351},{"id":3866,"depth":1200,"text":3869},{"id":4040,"depth":1200,"text":4043},{"id":4121,"depth":1200,"text":4124},"markdown","content:posts:towards-monosemanticity.md","content","posts\u002Ftowards-monosemanticity.md","posts\u002Ftowards-monosemanticity","md",{"_path":4177,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":4178,"description":8,"date":4179,"categories":12,"tags":4180,"draft":7,"body":4184,"_type":4170,"_id":7278,"_source":4172,"_file":7279,"_stem":7280,"_extension":4175},"\u002Fposts\u002Fclaude-code-settings","Claude Code 配置分享","2026-06-23 14:22:12",[14,4181,4182,4183],"AI Agent","Agent","Claude Code",{"type":18,"children":4185,"toc":7250},[4186,4230,4235,4247,4260,4309,4360,4381,4439,4444,4483,4488,4501,4507,4568,4573,4578,4629,4635,4640,4762,4775,4812,4824,4897,4902,4914,4926,4939,5072,5100,5130,5142,5154,5212,5248,5279,5291,5303,5450,5525,5545,5572,5577,5801,5812,5851,5856,6019,6037,6133,6138,6143,6148,7224,7227,7246],{"type":21,"tag":26,"props":4187,"children":4188},{},[4189,4191,4197,4199,4205,4207,4213,4215,4221,4222,4228],{"type":30,"value":4190},"Claude Code 用户级的配置文件在 ",{"type":21,"tag":1185,"props":4192,"children":4194},{"className":4193},[],[4195],{"type":30,"value":4196},"~\u002F.claude\u002Fsettings.json",{"type":30,"value":4198},"，环境变量通过 ",{"type":21,"tag":1185,"props":4200,"children":4202},{"className":4201},[],[4203],{"type":30,"value":4204},"env",{"type":30,"value":4206}," 键值对来设置。除此之外常用的键还有 ",{"type":21,"tag":1185,"props":4208,"children":4210},{"className":4209},[],[4211],{"type":30,"value":4212},"permissions",{"type":30,"value":4214},"、",{"type":21,"tag":1185,"props":4216,"children":4218},{"className":4217},[],[4219],{"type":30,"value":4220},"hooks",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4223,"children":4225},{"className":4224},[],[4226],{"type":30,"value":4227},"enabledPlugins",{"type":30,"value":4229}," 等。",{"type":21,"tag":58,"props":4231,"children":4233},{"id":4232},"为什么要花心思配它",[4234],{"type":30,"value":4232},{"type":21,"tag":26,"props":4236,"children":4237},{},[4238,4245],{"type":21,"tag":75,"props":4239,"children":4242},{"href":4240,"rel":4241},"https:\u002F\u002Fwww.theregister.com\u002Fsoftware\u002F2026\u002F04\u002F01\u002Fclaude-codes-source-reveals-extent-of-system-access\u002F5222658",[79],[4243],{"type":30,"value":4244},"The Register 2026 年 4 月那篇 Claude Code 源码分析",{"type":30,"value":4246}," 出来之后，我把自己的 settings 又调整了一些。几个让我在意的点：",{"type":21,"tag":26,"props":4248,"children":4249},{},[4250,4252,4258],{"type":30,"value":4251},"遥测默认开启。CC 每次启动会上报 user ID、session ID、组织 UUID、邮箱、平台、终端类型、当前的 feature gates；网络不通就先落盘到 ",{"type":21,"tag":1185,"props":4253,"children":4255},{"className":4254},[],[4256],{"type":30,"value":4257},"~\u002F.claude\u002Ftelemetry\u002F",{"type":30,"value":4259}," 等下次再发送。只有走 Bedrock \u002F Vertex \u002F Foundry 时才默认关闭。错误上报那条路也类似，CC 抛异常时把 cwd 和路径片段一起传上去。目录名本身也是信息，算半个泄露。",{"type":21,"tag":26,"props":4261,"children":4262},{},[4263,4265,4271,4272,4278,4279,4285,4286,4292,4294,4300,4302,4307],{"type":30,"value":4264},"更值得注意的是本地留底。每一次 ",{"type":21,"tag":1185,"props":4266,"children":4268},{"className":4267},[],[4269],{"type":30,"value":4270},"Read",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4273,"children":4275},{"className":4274},[],[4276],{"type":30,"value":4277},"Bash",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4280,"children":4282},{"className":4281},[],[4283],{"type":30,"value":4284},"Grep",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4287,"children":4289},{"className":4288},[],[4290],{"type":30,"value":4291},"Edit\u002FWrite",{"type":30,"value":4293}," 的输入输出都以明文 JSONL 写进会话归档。还没正式发布的 autoDream 会去 grep 这堆归档，把摘要写进 ",{"type":21,"tag":1185,"props":4295,"children":4297},{"className":4296},[],[4298],{"type":30,"value":4299},"MEMORY.md",{"type":30,"value":4301},"，然后 ",{"type":21,"tag":1185,"props":4303,"children":4305},{"className":4304},[],[4306],{"type":30,"value":4299},{"type":30,"value":4308}," 又会注入下一轮 system prompt。这流程走完，模型看过的文件最终就进了 API 的。",{"type":21,"tag":26,"props":4310,"children":4311},{},[4312,4314,4320,4322,4328,4329,4335,4336,4342,4344,4350,4352,4358],{"type":30,"value":4313},"企业部署还多一层 ",{"type":21,"tag":1185,"props":4315,"children":4317},{"className":4316},[],[4318],{"type":30,"value":4319},"policySettings",{"type":30,"value":4321},"，每小时拉一次，可以热更新 ",{"type":21,"tag":1185,"props":4323,"children":4325},{"className":4324},[],[4326],{"type":30,"value":4327},".env",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4330,"children":4332},{"className":4331},[],[4333],{"type":30,"value":4334},"PATH",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4337,"children":4339},{"className":4338},[],[4340],{"type":30,"value":4341},"LD_PRELOAD",{"type":30,"value":4343},"、permissions 和 feature flag。个人用户用不到，但知道这个通道存在比较好。自动更新走 Statsig \u002F GrowthBook，Anthropic 想禁用某个版本一句话的事，所以保守做法是关闭自动更新、自己锁版本。我自己是 brew 安装的，不 ",{"type":21,"tag":1185,"props":4345,"children":4347},{"className":4346},[],[4348],{"type":30,"value":4349},"upgrade",{"type":30,"value":4351}," 就停在当前版本上，但只要 ",{"type":21,"tag":1185,"props":4353,"children":4355},{"className":4354},[],[4356],{"type":30,"value":4357},"brew upgrade",{"type":30,"value":4359}," 一下就直接跳到最新——如果想严格锁版本，还是得用 npm 指定具体版本号安装。",{"type":21,"tag":26,"props":4361,"children":4362},{},[4363,4365,4371,4373,4379],{"type":30,"value":4364},"本文后面那些环境变量和 ",{"type":21,"tag":1185,"props":4366,"children":4368},{"className":4367},[],[4369],{"type":30,"value":4370},"permissions.deny",{"type":30,"value":4372},"、空 ",{"type":21,"tag":1185,"props":4374,"children":4376},{"className":4375},[],[4377],{"type":30,"value":4378},"attribution",{"type":30,"value":4380},"，本质就是在缩减这个 CC 暴露的信息：",{"type":21,"tag":1317,"props":4382,"children":4383},{},[4384,4395,4420],{"type":21,"tag":1321,"props":4385,"children":4386},{},[4387,4393],{"type":21,"tag":1185,"props":4388,"children":4390},{"className":4389},[],[4391],{"type":30,"value":4392},"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",{"type":30,"value":4394}," 把 telemetry、错误上报、自动更新和其他后台请求一并关闭，相当于把上面前两条 + 版本远控一起断掉。",{"type":21,"tag":1321,"props":4396,"children":4397},{},[4398,4403,4405,4411,4412,4418],{"type":21,"tag":1185,"props":4399,"children":4401},{"className":4400},[],[4402],{"type":30,"value":4370},{"type":30,"value":4404}," 把 ",{"type":21,"tag":1185,"props":4406,"children":4408},{"className":4407},[],[4409],{"type":30,"value":4410},"~\u002F.ssh\u002F",{"type":30,"value":4214},{"type":21,"tag":1185,"props":4413,"children":4415},{"className":4414},[],[4416],{"type":30,"value":4417},".\u002Fsecrets\u002F",{"type":30,"value":4419}," 封掉，就算 autoDream 哪天默认开启去扫归档，这些路径它也读不进来。",{"type":21,"tag":1321,"props":4421,"children":4422},{},[4423,4429,4431,4437],{"type":21,"tag":1185,"props":4424,"children":4426},{"className":4425},[],[4427],{"type":30,"value":4428},"attribution.commit\u002Fpr",{"type":30,"value":4430}," 留空，不在 git history 里留 AI 痕迹。顺带一提，源码里有个 ",{"type":21,"tag":1185,"props":4432,"children":4434},{"className":4433},[],[4435],{"type":30,"value":4436},"undercover.ts",{"type":30,"value":4438},"，在仓库被识别成\"明确拒绝 AI 贡献的开源项目\"时会主动让 Claude 隐藏作者身份 —— 这个态度本身就挺微妙的。",{"type":21,"tag":26,"props":4440,"children":4441},{},[4442],{"type":30,"value":4443},"文章里还提到两个设置，我没用，但还是记一下：",{"type":21,"tag":1317,"props":4445,"children":4446},{},[4447,4461],{"type":21,"tag":1321,"props":4448,"children":4449},{},[4450,4459],{"type":21,"tag":33,"props":4451,"children":4452},{},[4453],{"type":21,"tag":1185,"props":4454,"children":4456},{"className":4455},[],[4457],{"type":30,"value":4458},"CLAUDE_CODE_DISABLE_AUTO_MEMORY=1",{"type":30,"value":4460},"：关闭所有 memory \u002F telemetry 写入。",{"type":21,"tag":1321,"props":4462,"children":4463},{},[4464,4473,4475,4481],{"type":21,"tag":33,"props":4465,"children":4466},{},[4467],{"type":21,"tag":1185,"props":4468,"children":4470},{"className":4469},[],[4471],{"type":30,"value":4472},"CLAUDE_CODE_SIMPLE",{"type":30,"value":4474},"（",{"type":21,"tag":1185,"props":4476,"children":4478},{"className":4477},[],[4479],{"type":30,"value":4480},"--bare",{"type":30,"value":4482}," 模式）：直接关闭 memory 和 autoDream。",{"type":21,"tag":26,"props":4484,"children":4485},{},[4486],{"type":30,"value":4487},"下面进入正题。",{"type":21,"tag":58,"props":4489,"children":4491},{"id":4490},"环境变量env",[4492,4494,4499],{"type":30,"value":4493},"环境变量（",{"type":21,"tag":1185,"props":4495,"children":4497},{"className":4496},[],[4498],{"type":30,"value":4204},{"type":30,"value":4500},"）",{"type":21,"tag":4502,"props":4503,"children":4505},"h3",{"id":4504},"行为控制",[4506],{"type":30,"value":4504},{"type":21,"tag":1317,"props":4508,"children":4509},{},[4510,4532,4546],{"type":21,"tag":1321,"props":4511,"children":4512},{},[4513,4522,4524,4530],{"type":21,"tag":33,"props":4514,"children":4515},{},[4516],{"type":21,"tag":1185,"props":4517,"children":4519},{"className":4518},[],[4520],{"type":30,"value":4521},"CLAUDE_CODE_EFFORT_LEVEL",{"type":30,"value":4523},"：执行任务的努力程度，",{"type":21,"tag":1185,"props":4525,"children":4527},{"className":4526},[],[4528],{"type":30,"value":4529},"max",{"type":30,"value":4531}," 表示最充分的分析和规划。",{"type":21,"tag":1321,"props":4533,"children":4534},{},[4535,4544],{"type":21,"tag":33,"props":4536,"children":4537},{},[4538],{"type":21,"tag":1185,"props":4539,"children":4541},{"className":4540},[],[4542],{"type":30,"value":4543},"DISABLE_AUTOUPDATER",{"type":30,"value":4545},"：关闭自动更新检查，避免在国内网络环境下卡住启动。",{"type":21,"tag":1321,"props":4547,"children":4548},{},[4549,4558,4560,4566],{"type":21,"tag":33,"props":4550,"children":4551},{},[4552],{"type":21,"tag":1185,"props":4553,"children":4555},{"className":4554},[],[4556],{"type":30,"value":4557},"ENABLE_TOOL_SEARCH",{"type":30,"value":4559},"：启用工具搜索，让 Claude 通过 ",{"type":21,"tag":1185,"props":4561,"children":4563},{"className":4562},[],[4564],{"type":30,"value":4565},"ToolSearch",{"type":30,"value":4567}," 动态发现和加载工具的 schema，节省启动时的 context。",{"type":21,"tag":4502,"props":4569,"children":4571},{"id":4570},"隐私与流量控制",[4572],{"type":30,"value":4570},{"type":21,"tag":26,"props":4574,"children":4575},{},[4576],{"type":30,"value":4577},"三个相关的环境变量，避免暴露隐私：",{"type":21,"tag":1317,"props":4579,"children":4580},{},[4581,4595,4609],{"type":21,"tag":1321,"props":4582,"children":4583},{},[4584,4593],{"type":21,"tag":33,"props":4585,"children":4586},{},[4587],{"type":21,"tag":1185,"props":4588,"children":4590},{"className":4589},[],[4591],{"type":30,"value":4592},"DISABLE_TELEMETRY",{"type":30,"value":4594},"：关闭遥测数据上报，不上传使用统计。",{"type":21,"tag":1321,"props":4596,"children":4597},{},[4598,4607],{"type":21,"tag":33,"props":4599,"children":4600},{},[4601],{"type":21,"tag":1185,"props":4602,"children":4604},{"className":4603},[],[4605],{"type":30,"value":4606},"DISABLE_ERROR_REPORTING",{"type":30,"value":4608},"：关闭错误报告，崩溃或异常时不会自动向 Anthropic 发送错误信息。",{"type":21,"tag":1321,"props":4610,"children":4611},{},[4612,4620,4622,4627],{"type":21,"tag":33,"props":4613,"children":4614},{},[4615],{"type":21,"tag":1185,"props":4616,"children":4618},{"className":4617},[],[4619],{"type":30,"value":4392},{"type":30,"value":4621},"：一键关闭所有非必要网络流量，",{"type":21,"tag":33,"props":4623,"children":4624},{},[4625],{"type":30,"value":4626},"包含了前两者的功能（以及关闭了自动更新）",{"type":30,"value":4628},"，同时还会禁用更新检查等其他后台请求。如果只想保留纯 API 调用，设这一个就够了。",{"type":21,"tag":4502,"props":4630,"children":4632},{"id":4631},"其他常用变量按需开启",[4633],{"type":30,"value":4634},"其他常用变量（按需开启）",{"type":21,"tag":26,"props":4636,"children":4637},{},[4638],{"type":30,"value":4639},"这些没出现在配置里，但切换 API 提供商时常用：",{"type":21,"tag":1317,"props":4641,"children":4642},{},[4643,4657,4671,4740],{"type":21,"tag":1321,"props":4644,"children":4645},{},[4646,4655],{"type":21,"tag":33,"props":4647,"children":4648},{},[4649],{"type":21,"tag":1185,"props":4650,"children":4652},{"className":4651},[],[4653],{"type":30,"value":4654},"ANTHROPIC_AUTH_TOKEN",{"type":30,"value":4656},"：API 密钥。使用第三方 API 代理（如火山引擎）时填代理提供的 key。",{"type":21,"tag":1321,"props":4658,"children":4659},{},[4660,4669],{"type":21,"tag":33,"props":4661,"children":4662},{},[4663],{"type":21,"tag":1185,"props":4664,"children":4666},{"className":4665},[],[4667],{"type":30,"value":4668},"ANTHROPIC_BASE_URL",{"type":30,"value":4670},"：API 端点地址，切换模型提供商时改这里。",{"type":21,"tag":1321,"props":4672,"children":4673},{},[4674,4683,4685,4694,4695,4704,4705,4714,4716,4722,4724,4730,4732,4738],{"type":21,"tag":33,"props":4675,"children":4676},{},[4677],{"type":21,"tag":1185,"props":4678,"children":4680},{"className":4679},[],[4681],{"type":30,"value":4682},"ANTHROPIC_MODEL",{"type":30,"value":4684}," \u002F ",{"type":21,"tag":33,"props":4686,"children":4687},{},[4688],{"type":21,"tag":1185,"props":4689,"children":4691},{"className":4690},[],[4692],{"type":30,"value":4693},"ANTHROPIC_DEFAULT_OPUS_MODEL",{"type":30,"value":4684},{"type":21,"tag":33,"props":4696,"children":4697},{},[4698],{"type":21,"tag":1185,"props":4699,"children":4701},{"className":4700},[],[4702],{"type":30,"value":4703},"ANTHROPIC_DEFAULT_SONNET_MODEL",{"type":30,"value":4684},{"type":21,"tag":33,"props":4706,"children":4707},{},[4708],{"type":21,"tag":1185,"props":4709,"children":4711},{"className":4710},[],[4712],{"type":30,"value":4713},"ANTHROPIC_DEFAULT_HAIKU_MODEL",{"type":30,"value":4715},"：指定各级别对应的实际模型名。当你用 ",{"type":21,"tag":1185,"props":4717,"children":4719},{"className":4718},[],[4720],{"type":30,"value":4721},"--model opus",{"type":30,"value":4723}," 这类参数时，CLI 会读对应环境变量。值可以带后缀，比如 ",{"type":21,"tag":1185,"props":4725,"children":4727},{"className":4726},[],[4728],{"type":30,"value":4729},"glm-5.2[1m]",{"type":30,"value":4731},"，",{"type":21,"tag":1185,"props":4733,"children":4735},{"className":4734},[],[4736],{"type":30,"value":4737},"[1m]",{"type":30,"value":4739}," 表示 1M 上下文窗口。",{"type":21,"tag":1321,"props":4741,"children":4742},{},[4743,4752,4754,4760],{"type":21,"tag":33,"props":4744,"children":4745},{},[4746],{"type":21,"tag":1185,"props":4747,"children":4749},{"className":4748},[],[4750],{"type":30,"value":4751},"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE",{"type":30,"value":4753},"：控制自动压缩（compact）的触发阈值。默认约 0.9（90%），调高（如 ",{"type":21,"tag":1185,"props":4755,"children":4757},{"className":4756},[],[4758],{"type":30,"value":4759},"0.95",{"type":30,"value":4761},"）可以减少压缩频率、保留更多对话细节，调低则更早触发压缩、节省 token。",{"type":21,"tag":58,"props":4763,"children":4765},{"id":4764},"模型model",[4766,4768,4774],{"type":30,"value":4767},"模型（",{"type":21,"tag":1185,"props":4769,"children":4771},{"className":4770},[],[4772],{"type":30,"value":4773},"model",{"type":30,"value":4500},{"type":21,"tag":1317,"props":4776,"children":4777},{},[4778,4792],{"type":21,"tag":1321,"props":4779,"children":4780},{},[4781,4790],{"type":21,"tag":33,"props":4782,"children":4783},{},[4784],{"type":21,"tag":1185,"props":4785,"children":4787},{"className":4786},[],[4788],{"type":30,"value":4789},"opus[1m]",{"type":30,"value":4791},"：CLI 启动时默认使用的模型等级，表示用 Opus 级模型加 1M 上下文。",{"type":21,"tag":1321,"props":4793,"children":4794},{},[4795,4797,4802,4804,4810],{"type":30,"value":4796},"切换模型或 API 提供商时，推荐用 ",{"type":21,"tag":33,"props":4798,"children":4799},{},[4800],{"type":30,"value":4801},"CC-Switch",{"type":30,"value":4803}," 工具，可以在多套配置之间快速切换，省得手动改 ",{"type":21,"tag":1185,"props":4805,"children":4807},{"className":4806},[],[4808],{"type":30,"value":4809},"settings.json",{"type":30,"value":4811},"。",{"type":21,"tag":58,"props":4813,"children":4815},{"id":4814},"提交署名attribution",[4816,4818,4823],{"type":30,"value":4817},"提交署名（",{"type":21,"tag":1185,"props":4819,"children":4821},{"className":4820},[],[4822],{"type":30,"value":4378},{"type":30,"value":4500},{"type":21,"tag":1178,"props":4825,"children":4829},{"className":4826,"code":4827,"language":4828,"meta":8,"style":8},"language-json shiki shiki-themes github-light github-dark","\"attribution\": {\n  \"commit\": \"\",\n  \"pr\": \"\"\n}\n","json",[4830],{"type":21,"tag":1185,"props":4831,"children":4832},{"__ignoreMap":8},[4833,4848,4872,4889],{"type":21,"tag":116,"props":4834,"children":4835},{"class":1190,"line":1191},[4836,4842],{"type":21,"tag":116,"props":4837,"children":4839},{"style":4838},"--shiki-default:#032F62;--shiki-dark:#9ECBFF",[4840],{"type":30,"value":4841},"\"attribution\"",{"type":21,"tag":116,"props":4843,"children":4845},{"style":4844},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[4846],{"type":30,"value":4847},": {\n",{"type":21,"tag":116,"props":4849,"children":4850},{"class":1190,"line":1200},[4851,4857,4862,4867],{"type":21,"tag":116,"props":4852,"children":4854},{"style":4853},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[4855],{"type":30,"value":4856},"  \"commit\"",{"type":21,"tag":116,"props":4858,"children":4859},{"style":4844},[4860],{"type":30,"value":4861},": ",{"type":21,"tag":116,"props":4863,"children":4864},{"style":4838},[4865],{"type":30,"value":4866},"\"\"",{"type":21,"tag":116,"props":4868,"children":4869},{"style":4844},[4870],{"type":30,"value":4871},",\n",{"type":21,"tag":116,"props":4873,"children":4874},{"class":1190,"line":1210},[4875,4880,4884],{"type":21,"tag":116,"props":4876,"children":4877},{"style":4853},[4878],{"type":30,"value":4879},"  \"pr\"",{"type":21,"tag":116,"props":4881,"children":4882},{"style":4844},[4883],{"type":30,"value":4861},{"type":21,"tag":116,"props":4885,"children":4886},{"style":4838},[4887],{"type":30,"value":4888},"\"\"\n",{"type":21,"tag":116,"props":4890,"children":4891},{"class":1190,"line":1219},[4892],{"type":21,"tag":116,"props":4893,"children":4894},{"style":4844},[4895],{"type":30,"value":4896},"}\n",{"type":21,"tag":26,"props":4898,"children":4899},{},[4900],{"type":30,"value":4901},"控制 Claude 在生成 commit message 和 PR 描述时附带的署名后缀（默认会加 \"Generated with Claude Code\" 之类的尾巴）。两个字段都置空，等于关掉署名 —— 提交历史干净，看不出哪些是 AI 写的。",{"type":21,"tag":58,"props":4903,"children":4905},{"id":4904},"权限permissions",[4906,4908,4913],{"type":30,"value":4907},"权限（",{"type":21,"tag":1185,"props":4909,"children":4911},{"className":4910},[],[4912],{"type":30,"value":4212},{"type":30,"value":4500},{"type":21,"tag":4502,"props":4915,"children":4917},{"id":4916},"allow预授权",[4918,4924],{"type":21,"tag":1185,"props":4919,"children":4921},{"className":4920},[],[4922],{"type":30,"value":4923},"allow",{"type":30,"value":4925},"：预授权",{"type":21,"tag":26,"props":4927,"children":4928},{},[4929,4931,4937],{"type":30,"value":4930},"放行后无需弹确认框。常见的是放行特定域名的 ",{"type":21,"tag":1185,"props":4932,"children":4934},{"className":4933},[],[4935],{"type":30,"value":4936},"WebFetch",{"type":30,"value":4938},"：",{"type":21,"tag":1178,"props":4940,"children":4942},{"className":4826,"code":4941,"language":4828,"meta":8,"style":8},"\"allow\": [\n  \"WebFetch(domain:deepseek.com)\",\n  \"WebFetch(domain:moonshot.cn)\",\n  \"WebFetch(domain:qwen.ai)\",\n  \"WebFetch(domain:google.com)\",\n  \"WebFetch(domain:anthropic.com)\",\n  \"WebFetch(domain:openai.com)\",\n  \"WebFetch(domain:arxiv.org)\",\n  \"WebFetch(domain:*.edu)\",\n  \"WebFetch(domain:*.ac.cn)\"\n]\n",[4943],{"type":21,"tag":1185,"props":4944,"children":4945},{"__ignoreMap":8},[4946,4959,4971,4983,4995,5007,5019,5031,5043,5055,5063],{"type":21,"tag":116,"props":4947,"children":4948},{"class":1190,"line":1191},[4949,4954],{"type":21,"tag":116,"props":4950,"children":4951},{"style":4838},[4952],{"type":30,"value":4953},"\"allow\"",{"type":21,"tag":116,"props":4955,"children":4956},{"style":4844},[4957],{"type":30,"value":4958},": [\n",{"type":21,"tag":116,"props":4960,"children":4961},{"class":1190,"line":1200},[4962,4967],{"type":21,"tag":116,"props":4963,"children":4964},{"style":4838},[4965],{"type":30,"value":4966},"  \"WebFetch(domain:deepseek.com)\"",{"type":21,"tag":116,"props":4968,"children":4969},{"style":4844},[4970],{"type":30,"value":4871},{"type":21,"tag":116,"props":4972,"children":4973},{"class":1190,"line":1210},[4974,4979],{"type":21,"tag":116,"props":4975,"children":4976},{"style":4838},[4977],{"type":30,"value":4978},"  \"WebFetch(domain:moonshot.cn)\"",{"type":21,"tag":116,"props":4980,"children":4981},{"style":4844},[4982],{"type":30,"value":4871},{"type":21,"tag":116,"props":4984,"children":4985},{"class":1190,"line":1219},[4986,4991],{"type":21,"tag":116,"props":4987,"children":4988},{"style":4838},[4989],{"type":30,"value":4990},"  \"WebFetch(domain:qwen.ai)\"",{"type":21,"tag":116,"props":4992,"children":4993},{"style":4844},[4994],{"type":30,"value":4871},{"type":21,"tag":116,"props":4996,"children":4997},{"class":1190,"line":1228},[4998,5003],{"type":21,"tag":116,"props":4999,"children":5000},{"style":4838},[5001],{"type":30,"value":5002},"  \"WebFetch(domain:google.com)\"",{"type":21,"tag":116,"props":5004,"children":5005},{"style":4844},[5006],{"type":30,"value":4871},{"type":21,"tag":116,"props":5008,"children":5009},{"class":1190,"line":1237},[5010,5015],{"type":21,"tag":116,"props":5011,"children":5012},{"style":4838},[5013],{"type":30,"value":5014},"  \"WebFetch(domain:anthropic.com)\"",{"type":21,"tag":116,"props":5016,"children":5017},{"style":4844},[5018],{"type":30,"value":4871},{"type":21,"tag":116,"props":5020,"children":5021},{"class":1190,"line":1246},[5022,5027],{"type":21,"tag":116,"props":5023,"children":5024},{"style":4838},[5025],{"type":30,"value":5026},"  \"WebFetch(domain:openai.com)\"",{"type":21,"tag":116,"props":5028,"children":5029},{"style":4844},[5030],{"type":30,"value":4871},{"type":21,"tag":116,"props":5032,"children":5033},{"class":1190,"line":1255},[5034,5039],{"type":21,"tag":116,"props":5035,"children":5036},{"style":4838},[5037],{"type":30,"value":5038},"  \"WebFetch(domain:arxiv.org)\"",{"type":21,"tag":116,"props":5040,"children":5041},{"style":4844},[5042],{"type":30,"value":4871},{"type":21,"tag":116,"props":5044,"children":5045},{"class":1190,"line":1264},[5046,5051],{"type":21,"tag":116,"props":5047,"children":5048},{"style":4838},[5049],{"type":30,"value":5050},"  \"WebFetch(domain:*.edu)\"",{"type":21,"tag":116,"props":5052,"children":5053},{"style":4844},[5054],{"type":30,"value":4871},{"type":21,"tag":116,"props":5056,"children":5057},{"class":1190,"line":1273},[5058],{"type":21,"tag":116,"props":5059,"children":5060},{"style":4838},[5061],{"type":30,"value":5062},"  \"WebFetch(domain:*.ac.cn)\"\n",{"type":21,"tag":116,"props":5064,"children":5066},{"class":1190,"line":5065},11,[5067],{"type":21,"tag":116,"props":5068,"children":5069},{"style":4844},[5070],{"type":30,"value":5071},"]\n",{"type":21,"tag":26,"props":5073,"children":5074},{},[5075,5077,5083,5085,5091,5093,5099],{"type":30,"value":5076},"域名覆盖建议：主流 AI 厂商（DeepSeek、Moonshot、Qwen、Anthropic、OpenAI），搜索引擎（Google），学术站点（arxiv、各大学 ",{"type":21,"tag":1185,"props":5078,"children":5080},{"className":5079},[],[5081],{"type":30,"value":5082},".edu",{"type":30,"value":5084}," 及中科院 ",{"type":21,"tag":1185,"props":5086,"children":5088},{"className":5087},[],[5089],{"type":30,"value":5090},".ac.cn",{"type":30,"value":5092},"）。支持通配符 ",{"type":21,"tag":1185,"props":5094,"children":5096},{"className":5095},[],[5097],{"type":30,"value":5098},"*.edu",{"type":30,"value":4811},{"type":21,"tag":26,"props":5101,"children":5102},{},[5103,5105,5114,5116,5121,5123,5128],{"type":30,"value":5104},"如果你使用的是非 Claude 官方的供应商，需要把的 ",{"type":21,"tag":33,"props":5106,"children":5107},{},[5108],{"type":21,"tag":1185,"props":5109,"children":5111},{"className":5110},[],[5112],{"type":30,"value":5113},"skipWebFetchPreflight: true",{"type":30,"value":5115}," 一起打开，来启用 ",{"type":21,"tag":1185,"props":5117,"children":5119},{"className":5118},[],[5120],{"type":30,"value":4936},{"type":30,"value":5122}," 工具。另外，",{"type":21,"tag":1185,"props":5124,"children":5126},{"className":5125},[],[5127],{"type":30,"value":4936},{"type":30,"value":5129}," 默认会先发一次预检请求探测域名可达性，再发真正的 GET。对于已经 allow 的可信域名，这一轮纯属浪费 —— 跳过预检后每次抓网页少一轮 RTT。",{"type":21,"tag":4502,"props":5131,"children":5133},{"id":5132},"deny硬性拒绝",[5134,5140],{"type":21,"tag":1185,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":30,"value":5139},"deny",{"type":30,"value":5141},"：硬性拒绝",{"type":21,"tag":26,"props":5143,"children":5144},{},[5145,5147,5152],{"type":30,"value":5146},"无论怎么 prompt 都不会执行的兜底护栏，比 ",{"type":21,"tag":1185,"props":5148,"children":5150},{"className":5149},[],[5151],{"type":30,"value":4923},{"type":30,"value":5153}," 优先级更高：",{"type":21,"tag":1178,"props":5155,"children":5157},{"className":4826,"code":5156,"language":4828,"meta":8,"style":8},"\"deny\": [\n  \"Read(**\u002F.ssh\u002F**)\",\n  \"Read(.\u002Fsecrets\u002F**)\",\n  \"Bash(rm -rf *)\"\n]\n",[5158],{"type":21,"tag":1185,"props":5159,"children":5160},{"__ignoreMap":8},[5161,5173,5185,5197,5205],{"type":21,"tag":116,"props":5162,"children":5163},{"class":1190,"line":1191},[5164,5169],{"type":21,"tag":116,"props":5165,"children":5166},{"style":4838},[5167],{"type":30,"value":5168},"\"deny\"",{"type":21,"tag":116,"props":5170,"children":5171},{"style":4844},[5172],{"type":30,"value":4958},{"type":21,"tag":116,"props":5174,"children":5175},{"class":1190,"line":1200},[5176,5181],{"type":21,"tag":116,"props":5177,"children":5178},{"style":4838},[5179],{"type":30,"value":5180},"  \"Read(**\u002F.ssh\u002F**)\"",{"type":21,"tag":116,"props":5182,"children":5183},{"style":4844},[5184],{"type":30,"value":4871},{"type":21,"tag":116,"props":5186,"children":5187},{"class":1190,"line":1210},[5188,5193],{"type":21,"tag":116,"props":5189,"children":5190},{"style":4838},[5191],{"type":30,"value":5192},"  \"Read(.\u002Fsecrets\u002F**)\"",{"type":21,"tag":116,"props":5194,"children":5195},{"style":4844},[5196],{"type":30,"value":4871},{"type":21,"tag":116,"props":5198,"children":5199},{"class":1190,"line":1219},[5200],{"type":21,"tag":116,"props":5201,"children":5202},{"style":4838},[5203],{"type":30,"value":5204},"  \"Bash(rm -rf *)\"\n",{"type":21,"tag":116,"props":5206,"children":5207},{"class":1190,"line":1228},[5208],{"type":21,"tag":116,"props":5209,"children":5210},{"style":4844},[5211],{"type":30,"value":5071},{"type":21,"tag":1317,"props":5213,"children":5214},{},[5215,5226,5237],{"type":21,"tag":1321,"props":5216,"children":5217},{},[5218,5224],{"type":21,"tag":1185,"props":5219,"children":5221},{"className":5220},[],[5222],{"type":30,"value":5223},"Read(**\u002F.ssh\u002F**)",{"type":30,"value":5225},"：防止 Claude 读到 SSH 私钥。",{"type":21,"tag":1321,"props":5227,"children":5228},{},[5229,5235],{"type":21,"tag":1185,"props":5230,"children":5232},{"className":5231},[],[5233],{"type":30,"value":5234},"Read(.\u002Fsecrets\u002F**)",{"type":30,"value":5236},"：项目本地的密钥目录。",{"type":21,"tag":1321,"props":5238,"children":5239},{},[5240,5246],{"type":21,"tag":1185,"props":5241,"children":5243},{"className":5242},[],[5244],{"type":30,"value":5245},"Bash(rm -rf *)",{"type":30,"value":5247},"：防止递归删除。",{"type":21,"tag":26,"props":5249,"children":5250},{},[5251,5253,5262,5264,5270,5272,5277],{"type":30,"value":5252},"划好这几条红线之后，可以放心打开顶层的 ",{"type":21,"tag":33,"props":5254,"children":5255},{},[5256],{"type":21,"tag":1185,"props":5257,"children":5259},{"className":5258},[],[5260],{"type":30,"value":5261},"skipDangerousModePermissionPrompt: true",{"type":30,"value":5263}," —— 用 ",{"type":21,"tag":1185,"props":5265,"children":5267},{"className":5266},[],[5268],{"type":30,"value":5269},"claude --dangerously-skip-permissions",{"type":30,"value":5271},"（YOLO 模式）启动时，CLI 默认会弹一个红色确认框让你回车确认，这个开关跳过那一步。前提就是 ",{"type":21,"tag":1185,"props":5273,"children":5275},{"className":5274},[],[5276],{"type":30,"value":5139},{"type":30,"value":5278}," 已经把后路封住，否则跳过确认就毫无防护了。",{"type":21,"tag":58,"props":5280,"children":5282},{"id":5281},"钩子hooks",[5283,5285,5290],{"type":30,"value":5284},"钩子（",{"type":21,"tag":1185,"props":5286,"children":5288},{"className":5287},[],[5289],{"type":30,"value":4220},{"type":30,"value":4500},{"type":21,"tag":26,"props":5292,"children":5293},{},[5294,5296,5301],{"type":30,"value":5295},"工具调用前后触发本地命令，可以做日志、改写、拦截、统计等。下面这条把所有 ",{"type":21,"tag":1185,"props":5297,"children":5299},{"className":5298},[],[5300],{"type":30,"value":4277},{"type":30,"value":5302}," 工具的调用接入 RTK（Rust Token Killer）代理，用更短的输出来省 token：",{"type":21,"tag":1178,"props":5304,"children":5306},{"className":4826,"code":5305,"language":4828,"meta":8,"style":8},"\"hooks\": {\n  \"PreToolUse\": [\n    {\n      \"matcher\": \"Bash\",\n      \"hooks\": [\n        {\"type\": \"command\", \"command\": \"rtk hook claude\"}\n      ]\n    }\n  ]\n}\n",[5307],{"type":21,"tag":1185,"props":5308,"children":5309},{"__ignoreMap":8},[5310,5322,5334,5342,5363,5375,5419,5427,5435,5443],{"type":21,"tag":116,"props":5311,"children":5312},{"class":1190,"line":1191},[5313,5318],{"type":21,"tag":116,"props":5314,"children":5315},{"style":4838},[5316],{"type":30,"value":5317},"\"hooks\"",{"type":21,"tag":116,"props":5319,"children":5320},{"style":4844},[5321],{"type":30,"value":4847},{"type":21,"tag":116,"props":5323,"children":5324},{"class":1190,"line":1200},[5325,5330],{"type":21,"tag":116,"props":5326,"children":5327},{"style":4853},[5328],{"type":30,"value":5329},"  \"PreToolUse\"",{"type":21,"tag":116,"props":5331,"children":5332},{"style":4844},[5333],{"type":30,"value":4958},{"type":21,"tag":116,"props":5335,"children":5336},{"class":1190,"line":1210},[5337],{"type":21,"tag":116,"props":5338,"children":5339},{"style":4844},[5340],{"type":30,"value":5341},"    {\n",{"type":21,"tag":116,"props":5343,"children":5344},{"class":1190,"line":1219},[5345,5350,5354,5359],{"type":21,"tag":116,"props":5346,"children":5347},{"style":4853},[5348],{"type":30,"value":5349},"      \"matcher\"",{"type":21,"tag":116,"props":5351,"children":5352},{"style":4844},[5353],{"type":30,"value":4861},{"type":21,"tag":116,"props":5355,"children":5356},{"style":4838},[5357],{"type":30,"value":5358},"\"Bash\"",{"type":21,"tag":116,"props":5360,"children":5361},{"style":4844},[5362],{"type":30,"value":4871},{"type":21,"tag":116,"props":5364,"children":5365},{"class":1190,"line":1228},[5366,5371],{"type":21,"tag":116,"props":5367,"children":5368},{"style":4853},[5369],{"type":30,"value":5370},"      \"hooks\"",{"type":21,"tag":116,"props":5372,"children":5373},{"style":4844},[5374],{"type":30,"value":4958},{"type":21,"tag":116,"props":5376,"children":5377},{"class":1190,"line":1237},[5378,5383,5388,5392,5397,5402,5406,5410,5415],{"type":21,"tag":116,"props":5379,"children":5380},{"style":4844},[5381],{"type":30,"value":5382},"        {",{"type":21,"tag":116,"props":5384,"children":5385},{"style":4853},[5386],{"type":30,"value":5387},"\"type\"",{"type":21,"tag":116,"props":5389,"children":5390},{"style":4844},[5391],{"type":30,"value":4861},{"type":21,"tag":116,"props":5393,"children":5394},{"style":4838},[5395],{"type":30,"value":5396},"\"command\"",{"type":21,"tag":116,"props":5398,"children":5399},{"style":4844},[5400],{"type":30,"value":5401},", ",{"type":21,"tag":116,"props":5403,"children":5404},{"style":4853},[5405],{"type":30,"value":5396},{"type":21,"tag":116,"props":5407,"children":5408},{"style":4844},[5409],{"type":30,"value":4861},{"type":21,"tag":116,"props":5411,"children":5412},{"style":4838},[5413],{"type":30,"value":5414},"\"rtk hook claude\"",{"type":21,"tag":116,"props":5416,"children":5417},{"style":4844},[5418],{"type":30,"value":4896},{"type":21,"tag":116,"props":5420,"children":5421},{"class":1190,"line":1246},[5422],{"type":21,"tag":116,"props":5423,"children":5424},{"style":4844},[5425],{"type":30,"value":5426},"      ]\n",{"type":21,"tag":116,"props":5428,"children":5429},{"class":1190,"line":1255},[5430],{"type":21,"tag":116,"props":5431,"children":5432},{"style":4844},[5433],{"type":30,"value":5434},"    }\n",{"type":21,"tag":116,"props":5436,"children":5437},{"class":1190,"line":1264},[5438],{"type":21,"tag":116,"props":5439,"children":5440},{"style":4844},[5441],{"type":30,"value":5442},"  ]\n",{"type":21,"tag":116,"props":5444,"children":5445},{"class":1190,"line":1273},[5446],{"type":21,"tag":116,"props":5447,"children":5448},{"style":4844},[5449],{"type":30,"value":4896},{"type":21,"tag":26,"props":5451,"children":5452},{},[5453,5459,5461,5466,5467,5472,5473,5479,5480,5486,5488,5494,5496,5502,5503,5509,5510,5516,5517,5523],{"type":21,"tag":1185,"props":5454,"children":5456},{"className":5455},[],[5457],{"type":30,"value":5458},"matcher",{"type":30,"value":5460}," 支持按工具名匹配（",{"type":21,"tag":1185,"props":5462,"children":5464},{"className":5463},[],[5465],{"type":30,"value":4277},{"type":30,"value":4684},{"type":21,"tag":1185,"props":5468,"children":5470},{"className":5469},[],[5471],{"type":30,"value":4270},{"type":30,"value":4684},{"type":21,"tag":1185,"props":5474,"children":5476},{"className":5475},[],[5477],{"type":30,"value":5478},"Edit",{"type":30,"value":4684},{"type":21,"tag":1185,"props":5481,"children":5483},{"className":5482},[],[5484],{"type":30,"value":5485},"Write",{"type":30,"value":5487}," 等），",{"type":21,"tag":1185,"props":5489,"children":5491},{"className":5490},[],[5492],{"type":30,"value":5493},"PreToolUse",{"type":30,"value":5495}," 在工具执行前触发，对应的还有 ",{"type":21,"tag":1185,"props":5497,"children":5499},{"className":5498},[],[5500],{"type":30,"value":5501},"PostToolUse",{"type":30,"value":4214},{"type":21,"tag":1185,"props":5504,"children":5506},{"className":5505},[],[5507],{"type":30,"value":5508},"UserPromptSubmit",{"type":30,"value":4214},{"type":21,"tag":1185,"props":5511,"children":5513},{"className":5512},[],[5514],{"type":30,"value":5515},"SessionStart",{"type":30,"value":4214},{"type":21,"tag":1185,"props":5518,"children":5520},{"className":5519},[],[5521],{"type":30,"value":5522},"Stop",{"type":30,"value":5524}," 等事件。",{"type":21,"tag":58,"props":5526,"children":5528},{"id":5527},"插件推荐enabledplugins-extraknownmarketplaces",[5529,5531,5536,5538,5544],{"type":30,"value":5530},"插件推荐（",{"type":21,"tag":1185,"props":5532,"children":5534},{"className":5533},[],[5535],{"type":30,"value":4227},{"type":30,"value":5537}," + ",{"type":21,"tag":1185,"props":5539,"children":5541},{"className":5540},[],[5542],{"type":30,"value":5543},"extraKnownMarketplaces",{"type":30,"value":4500},{"type":21,"tag":26,"props":5546,"children":5547},{},[5548,5550,5555,5557,5562,5564,5570],{"type":30,"value":5549},"Claude Code 的插件机制由两部分组成：先在 ",{"type":21,"tag":1185,"props":5551,"children":5553},{"className":5552},[],[5554],{"type":30,"value":5543},{"type":30,"value":5556}," 注册插件仓库，再在 ",{"type":21,"tag":1185,"props":5558,"children":5560},{"className":5559},[],[5561],{"type":30,"value":4227},{"type":30,"value":5563}," 中按 ",{"type":21,"tag":1185,"props":5565,"children":5567},{"className":5566},[],[5568],{"type":30,"value":5569},"插件名@市场名",{"type":30,"value":5571}," 启用。",{"type":21,"tag":4502,"props":5573,"children":5575},{"id":5574},"注册插件市场",[5576],{"type":30,"value":5574},{"type":21,"tag":1178,"props":5578,"children":5580},{"className":4826,"code":5579,"language":4828,"meta":8,"style":8},"\"extraKnownMarketplaces\": {\n  \"wakatime\": {\n    \"source\": {\"source\": \"git\", \"url\": \"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"}\n  },\n  \"ponytail\": {\n    \"source\": {\"source\": \"github\", \"repo\": \"DietrichGebert\u002Fponytail\"}\n  },\n  \"claude-hud\": {\n    \"source\": {\"source\": \"github\", \"repo\": \"jarrodwatts\u002Fclaude-hud\"}\n  }\n}\n",[5581],{"type":21,"tag":1185,"props":5582,"children":5583},{"__ignoreMap":8},[5584,5596,5608,5657,5665,5677,5723,5730,5742,5786,5794],{"type":21,"tag":116,"props":5585,"children":5586},{"class":1190,"line":1191},[5587,5592],{"type":21,"tag":116,"props":5588,"children":5589},{"style":4838},[5590],{"type":30,"value":5591},"\"extraKnownMarketplaces\"",{"type":21,"tag":116,"props":5593,"children":5594},{"style":4844},[5595],{"type":30,"value":4847},{"type":21,"tag":116,"props":5597,"children":5598},{"class":1190,"line":1200},[5599,5604],{"type":21,"tag":116,"props":5600,"children":5601},{"style":4853},[5602],{"type":30,"value":5603},"  \"wakatime\"",{"type":21,"tag":116,"props":5605,"children":5606},{"style":4844},[5607],{"type":30,"value":4847},{"type":21,"tag":116,"props":5609,"children":5610},{"class":1190,"line":1210},[5611,5616,5621,5626,5630,5635,5639,5644,5648,5653],{"type":21,"tag":116,"props":5612,"children":5613},{"style":4853},[5614],{"type":30,"value":5615},"    \"source\"",{"type":21,"tag":116,"props":5617,"children":5618},{"style":4844},[5619],{"type":30,"value":5620},": {",{"type":21,"tag":116,"props":5622,"children":5623},{"style":4853},[5624],{"type":30,"value":5625},"\"source\"",{"type":21,"tag":116,"props":5627,"children":5628},{"style":4844},[5629],{"type":30,"value":4861},{"type":21,"tag":116,"props":5631,"children":5632},{"style":4838},[5633],{"type":30,"value":5634},"\"git\"",{"type":21,"tag":116,"props":5636,"children":5637},{"style":4844},[5638],{"type":30,"value":5401},{"type":21,"tag":116,"props":5640,"children":5641},{"style":4853},[5642],{"type":30,"value":5643},"\"url\"",{"type":21,"tag":116,"props":5645,"children":5646},{"style":4844},[5647],{"type":30,"value":4861},{"type":21,"tag":116,"props":5649,"children":5650},{"style":4838},[5651],{"type":30,"value":5652},"\"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"",{"type":21,"tag":116,"props":5654,"children":5655},{"style":4844},[5656],{"type":30,"value":4896},{"type":21,"tag":116,"props":5658,"children":5659},{"class":1190,"line":1219},[5660],{"type":21,"tag":116,"props":5661,"children":5662},{"style":4844},[5663],{"type":30,"value":5664},"  },\n",{"type":21,"tag":116,"props":5666,"children":5667},{"class":1190,"line":1228},[5668,5673],{"type":21,"tag":116,"props":5669,"children":5670},{"style":4853},[5671],{"type":30,"value":5672},"  \"ponytail\"",{"type":21,"tag":116,"props":5674,"children":5675},{"style":4844},[5676],{"type":30,"value":4847},{"type":21,"tag":116,"props":5678,"children":5679},{"class":1190,"line":1237},[5680,5684,5688,5692,5696,5701,5705,5710,5714,5719],{"type":21,"tag":116,"props":5681,"children":5682},{"style":4853},[5683],{"type":30,"value":5615},{"type":21,"tag":116,"props":5685,"children":5686},{"style":4844},[5687],{"type":30,"value":5620},{"type":21,"tag":116,"props":5689,"children":5690},{"style":4853},[5691],{"type":30,"value":5625},{"type":21,"tag":116,"props":5693,"children":5694},{"style":4844},[5695],{"type":30,"value":4861},{"type":21,"tag":116,"props":5697,"children":5698},{"style":4838},[5699],{"type":30,"value":5700},"\"github\"",{"type":21,"tag":116,"props":5702,"children":5703},{"style":4844},[5704],{"type":30,"value":5401},{"type":21,"tag":116,"props":5706,"children":5707},{"style":4853},[5708],{"type":30,"value":5709},"\"repo\"",{"type":21,"tag":116,"props":5711,"children":5712},{"style":4844},[5713],{"type":30,"value":4861},{"type":21,"tag":116,"props":5715,"children":5716},{"style":4838},[5717],{"type":30,"value":5718},"\"DietrichGebert\u002Fponytail\"",{"type":21,"tag":116,"props":5720,"children":5721},{"style":4844},[5722],{"type":30,"value":4896},{"type":21,"tag":116,"props":5724,"children":5725},{"class":1190,"line":1246},[5726],{"type":21,"tag":116,"props":5727,"children":5728},{"style":4844},[5729],{"type":30,"value":5664},{"type":21,"tag":116,"props":5731,"children":5732},{"class":1190,"line":1255},[5733,5738],{"type":21,"tag":116,"props":5734,"children":5735},{"style":4853},[5736],{"type":30,"value":5737},"  \"claude-hud\"",{"type":21,"tag":116,"props":5739,"children":5740},{"style":4844},[5741],{"type":30,"value":4847},{"type":21,"tag":116,"props":5743,"children":5744},{"class":1190,"line":1264},[5745,5749,5753,5757,5761,5765,5769,5773,5777,5782],{"type":21,"tag":116,"props":5746,"children":5747},{"style":4853},[5748],{"type":30,"value":5615},{"type":21,"tag":116,"props":5750,"children":5751},{"style":4844},[5752],{"type":30,"value":5620},{"type":21,"tag":116,"props":5754,"children":5755},{"style":4853},[5756],{"type":30,"value":5625},{"type":21,"tag":116,"props":5758,"children":5759},{"style":4844},[5760],{"type":30,"value":4861},{"type":21,"tag":116,"props":5762,"children":5763},{"style":4838},[5764],{"type":30,"value":5700},{"type":21,"tag":116,"props":5766,"children":5767},{"style":4844},[5768],{"type":30,"value":5401},{"type":21,"tag":116,"props":5770,"children":5771},{"style":4853},[5772],{"type":30,"value":5709},{"type":21,"tag":116,"props":5774,"children":5775},{"style":4844},[5776],{"type":30,"value":4861},{"type":21,"tag":116,"props":5778,"children":5779},{"style":4838},[5780],{"type":30,"value":5781},"\"jarrodwatts\u002Fclaude-hud\"",{"type":21,"tag":116,"props":5783,"children":5784},{"style":4844},[5785],{"type":30,"value":4896},{"type":21,"tag":116,"props":5787,"children":5788},{"class":1190,"line":1273},[5789],{"type":21,"tag":116,"props":5790,"children":5791},{"style":4844},[5792],{"type":30,"value":5793},"  }\n",{"type":21,"tag":116,"props":5795,"children":5796},{"class":1190,"line":5065},[5797],{"type":21,"tag":116,"props":5798,"children":5799},{"style":4844},[5800],{"type":30,"value":4896},{"type":21,"tag":26,"props":5802,"children":5803},{},[5804,5810],{"type":21,"tag":1185,"props":5805,"children":5807},{"className":5806},[],[5808],{"type":30,"value":5809},"source",{"type":30,"value":5811}," 类型有两种：",{"type":21,"tag":1317,"props":5813,"children":5814},{},[5815,5833],{"type":21,"tag":1321,"props":5816,"children":5817},{},[5818,5824,5825,5831],{"type":21,"tag":1185,"props":5819,"children":5821},{"className":5820},[],[5822],{"type":30,"value":5823},"\"source\": \"github\"",{"type":30,"value":5537},{"type":21,"tag":1185,"props":5826,"children":5828},{"className":5827},[],[5829],{"type":30,"value":5830},"repo",{"type":30,"value":5832},"：GitHub 仓库的简写。",{"type":21,"tag":1321,"props":5834,"children":5835},{},[5836,5842,5843,5849],{"type":21,"tag":1185,"props":5837,"children":5839},{"className":5838},[],[5840],{"type":30,"value":5841},"\"source\": \"git\"",{"type":30,"value":5537},{"type":21,"tag":1185,"props":5844,"children":5846},{"className":5845},[],[5847],{"type":30,"value":5848},"url",{"type":30,"value":5850},"：任意 Git URL，包括自建 Gitea \u002F GitLab。",{"type":21,"tag":4502,"props":5852,"children":5854},{"id":5853},"启用具体插件",[5855],{"type":30,"value":5853},{"type":21,"tag":1178,"props":5857,"children":5859},{"className":4826,"code":5858,"language":4828,"meta":8,"style":8},"\"enabledPlugins\": {\n  \"claude-code-wakatime@wakatime\": true,\n  \"ponytail@ponytail\": true,\n  \"skill-creator@claude-plugins-official\": true,\n  \"claude-md-management@claude-plugins-official\": true,\n  \"superpowers@claude-plugins-official\": true,\n  \"code-simplifier@claude-plugins-official\": true,\n  \"claude-hud@claude-hud\": true\n}\n",[5860],{"type":21,"tag":1185,"props":5861,"children":5862},{"__ignoreMap":8},[5863,5875,5895,5915,5935,5955,5975,5995,6012],{"type":21,"tag":116,"props":5864,"children":5865},{"class":1190,"line":1191},[5866,5871],{"type":21,"tag":116,"props":5867,"children":5868},{"style":4838},[5869],{"type":30,"value":5870},"\"enabledPlugins\"",{"type":21,"tag":116,"props":5872,"children":5873},{"style":4844},[5874],{"type":30,"value":4847},{"type":21,"tag":116,"props":5876,"children":5877},{"class":1190,"line":1200},[5878,5883,5887,5891],{"type":21,"tag":116,"props":5879,"children":5880},{"style":4853},[5881],{"type":30,"value":5882},"  \"claude-code-wakatime@wakatime\"",{"type":21,"tag":116,"props":5884,"children":5885},{"style":4844},[5886],{"type":30,"value":4861},{"type":21,"tag":116,"props":5888,"children":5889},{"style":4853},[5890],{"type":30,"value":155},{"type":21,"tag":116,"props":5892,"children":5893},{"style":4844},[5894],{"type":30,"value":4871},{"type":21,"tag":116,"props":5896,"children":5897},{"class":1190,"line":1210},[5898,5903,5907,5911],{"type":21,"tag":116,"props":5899,"children":5900},{"style":4853},[5901],{"type":30,"value":5902},"  \"ponytail@ponytail\"",{"type":21,"tag":116,"props":5904,"children":5905},{"style":4844},[5906],{"type":30,"value":4861},{"type":21,"tag":116,"props":5908,"children":5909},{"style":4853},[5910],{"type":30,"value":155},{"type":21,"tag":116,"props":5912,"children":5913},{"style":4844},[5914],{"type":30,"value":4871},{"type":21,"tag":116,"props":5916,"children":5917},{"class":1190,"line":1219},[5918,5923,5927,5931],{"type":21,"tag":116,"props":5919,"children":5920},{"style":4853},[5921],{"type":30,"value":5922},"  \"skill-creator@claude-plugins-official\"",{"type":21,"tag":116,"props":5924,"children":5925},{"style":4844},[5926],{"type":30,"value":4861},{"type":21,"tag":116,"props":5928,"children":5929},{"style":4853},[5930],{"type":30,"value":155},{"type":21,"tag":116,"props":5932,"children":5933},{"style":4844},[5934],{"type":30,"value":4871},{"type":21,"tag":116,"props":5936,"children":5937},{"class":1190,"line":1228},[5938,5943,5947,5951],{"type":21,"tag":116,"props":5939,"children":5940},{"style":4853},[5941],{"type":30,"value":5942},"  \"claude-md-management@claude-plugins-official\"",{"type":21,"tag":116,"props":5944,"children":5945},{"style":4844},[5946],{"type":30,"value":4861},{"type":21,"tag":116,"props":5948,"children":5949},{"style":4853},[5950],{"type":30,"value":155},{"type":21,"tag":116,"props":5952,"children":5953},{"style":4844},[5954],{"type":30,"value":4871},{"type":21,"tag":116,"props":5956,"children":5957},{"class":1190,"line":1237},[5958,5963,5967,5971],{"type":21,"tag":116,"props":5959,"children":5960},{"style":4853},[5961],{"type":30,"value":5962},"  \"superpowers@claude-plugins-official\"",{"type":21,"tag":116,"props":5964,"children":5965},{"style":4844},[5966],{"type":30,"value":4861},{"type":21,"tag":116,"props":5968,"children":5969},{"style":4853},[5970],{"type":30,"value":155},{"type":21,"tag":116,"props":5972,"children":5973},{"style":4844},[5974],{"type":30,"value":4871},{"type":21,"tag":116,"props":5976,"children":5977},{"class":1190,"line":1246},[5978,5983,5987,5991],{"type":21,"tag":116,"props":5979,"children":5980},{"style":4853},[5981],{"type":30,"value":5982},"  \"code-simplifier@claude-plugins-official\"",{"type":21,"tag":116,"props":5984,"children":5985},{"style":4844},[5986],{"type":30,"value":4861},{"type":21,"tag":116,"props":5988,"children":5989},{"style":4853},[5990],{"type":30,"value":155},{"type":21,"tag":116,"props":5992,"children":5993},{"style":4844},[5994],{"type":30,"value":4871},{"type":21,"tag":116,"props":5996,"children":5997},{"class":1190,"line":1255},[5998,6003,6007],{"type":21,"tag":116,"props":5999,"children":6000},{"style":4853},[6001],{"type":30,"value":6002},"  \"claude-hud@claude-hud\"",{"type":21,"tag":116,"props":6004,"children":6005},{"style":4844},[6006],{"type":30,"value":4861},{"type":21,"tag":116,"props":6008,"children":6009},{"style":4853},[6010],{"type":30,"value":6011},"true\n",{"type":21,"tag":116,"props":6013,"children":6014},{"class":1190,"line":1264},[6015],{"type":21,"tag":116,"props":6016,"children":6017},{"style":4844},[6018],{"type":30,"value":4896},{"type":21,"tag":26,"props":6020,"children":6021},{},[6022,6028,6030,6035],{"type":21,"tag":1185,"props":6023,"children":6025},{"className":6024},[],[6026],{"type":30,"value":6027},"claude-plugins-official",{"type":30,"value":6029}," 是内置的官方市场，不用在 ",{"type":21,"tag":1185,"props":6031,"children":6033},{"className":6032},[],[6034],{"type":30,"value":5543},{"type":30,"value":6036}," 里注册。这套配置里启用的几个插件：",{"type":21,"tag":1317,"props":6038,"children":6039},{},[6040,6050,6060,6070,6087,6097,6107],{"type":21,"tag":1321,"props":6041,"children":6042},{},[6043,6048],{"type":21,"tag":33,"props":6044,"children":6045},{},[6046],{"type":30,"value":6047},"claude-code-wakatime",{"type":30,"value":6049},"：把编码时长记录到 WakaTime。",{"type":21,"tag":1321,"props":6051,"children":6052},{},[6053,6058],{"type":21,"tag":33,"props":6054,"children":6055},{},[6056],{"type":30,"value":6057},"ponytail",{"type":30,"value":6059},"：强制\"懒人最简解\"风格，避免过度工程。",{"type":21,"tag":1321,"props":6061,"children":6062},{},[6063,6068],{"type":21,"tag":33,"props":6064,"children":6065},{},[6066],{"type":30,"value":6067},"skill-creator",{"type":30,"value":6069},"：创建、修改、衡量 skill。",{"type":21,"tag":1321,"props":6071,"children":6072},{},[6073,6078,6080,6086],{"type":21,"tag":33,"props":6074,"children":6075},{},[6076],{"type":30,"value":6077},"claude-md-management",{"type":30,"value":6079},"：管理 ",{"type":21,"tag":1185,"props":6081,"children":6083},{"className":6082},[],[6084],{"type":30,"value":6085},"CLAUDE.md",{"type":30,"value":4811},{"type":21,"tag":1321,"props":6088,"children":6089},{},[6090,6095],{"type":21,"tag":33,"props":6091,"children":6092},{},[6093],{"type":30,"value":6094},"superpowers",{"type":30,"value":6096},"：一组通用工作流 skill（TDD、调试、code review、计划撰写等）。",{"type":21,"tag":1321,"props":6098,"children":6099},{},[6100,6105],{"type":21,"tag":33,"props":6101,"children":6102},{},[6103],{"type":30,"value":6104},"code-simplifier",{"type":30,"value":6106},"：在保持功能不变的前提下精简最近改动的代码。",{"type":21,"tag":1321,"props":6108,"children":6109},{},[6110,6115,6117,6123,6125,6131],{"type":21,"tag":33,"props":6111,"children":6112},{},[6113],{"type":30,"value":6114},"claude-hud",{"type":30,"value":6116},"：状态栏 HUD，需要 ",{"type":21,"tag":1185,"props":6118,"children":6120},{"className":6119},[],[6121],{"type":30,"value":6122},"\u002Fclaude-hub:setup",{"type":30,"value":6124}," 初始化，其实和官方提供的 ",{"type":21,"tag":1185,"props":6126,"children":6128},{"className":6127},[],[6129],{"type":30,"value":6130},"\u002Fstatusline \u003Cprompt>",{"type":30,"value":6132}," 没区别。",{"type":21,"tag":26,"props":6134,"children":6135},{},[6136],{"type":30,"value":6137},"这些是通用的插件，而且都没有 MCP，只是 skills，挺轻量的，我就默认一直启用了。其他特定功能的插件根据项目按需开启。",{"type":21,"tag":58,"props":6139,"children":6141},{"id":6140},"我的配置分享",[6142],{"type":30,"value":6140},{"type":21,"tag":26,"props":6144,"children":6145},{},[6146],{"type":30,"value":6147},"下面是我在CC-Switch里的通用配置：",{"type":21,"tag":1178,"props":6149,"children":6151},{"className":4826,"code":6150,"language":4828,"meta":8,"style":8},"{\n  \"env\": {\n    \"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC\": \"true\",\n    \"CLAUDE_CODE_EFFORT_LEVEL\": \"max\",\n    \"DISABLE_AUTOUPDATER\": \"1\",\n    \"DISABLE_ERROR_REPORTING\": \"true\",\n    \"DISABLE_TELEMETRY\": \"true\",\n    \"ENABLE_TOOL_SEARCH\": \"true\"\n  },\n  \"attribution\": {\n    \"commit\": \"\",\n    \"pr\": \"\"\n  },\n  \"model\": \"opus[1m]\",\n  \"permissions\": {\n    \"allow\": [\n      \"WebFetch(domain:deepseek.com)\",\n      \"WebFetch(domain:moonshot.cn)\",\n      \"WebFetch(domain:qwen.ai)\",\n      \"WebFetch(domain:google.com)\",\n      \"WebFetch(domain:anthropic.com)\",\n      \"WebFetch(domain:openai.com)\",\n      \"WebFetch(domain:arxiv.org)\",\n      \"WebFetch(domain:*.edu)\",\n      \"WebFetch(domain:*.ac.cn)\"\n    ],\n    \"deny\": [\n      \"Read(**\u002F.ssh\u002F**)\",\n      \"Read(.\u002Fsecrets\u002F**)\",\n      \"Bash(rm -rf *)\"\n    ]\n  },\n  \"hooks\": {\n    \"PreToolUse\": [\n      {\n        \"matcher\": \"Bash\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"rtk hook claude\"\n          }\n        ]\n      }\n    ]\n  },\n  \"enabledPlugins\": {\n    \"claude-code-wakatime@wakatime\": true,\n    \"ponytail@ponytail\": true,\n    \"skill-creator@claude-plugins-official\": true,\n    \"claude-md-management@claude-plugins-official\": true,\n    \"superpowers@claude-plugins-official\": true,\n    \"code-simplifier@claude-plugins-official\": true,\n    \"claude-hud@claude-hud\": true\n  },\n  \"extraKnownMarketplaces\": {\n    \"wakatime\": {\n      \"source\": {\n        \"source\": \"git\",\n        \"url\": \"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"\n      }\n    },\n    \"ponytail\": {\n      \"source\": {\n        \"source\": \"github\",\n        \"repo\": \"DietrichGebert\u002Fponytail\"\n      }\n    },\n    \"claude-hud\": {\n      \"source\": {\n        \"source\": \"github\",\n        \"repo\": \"jarrodwatts\u002Fclaude-hud\"\n      }\n    }\n  },\n  \"skipDangerousModePermissionPrompt\": true,\n  \"skipWebFetchPreflight\": true\n}\n",[6152],{"type":21,"tag":1185,"props":6153,"children":6154},{"__ignoreMap":8},[6155,6163,6175,6196,6217,6238,6258,6278,6295,6302,6314,6334,6351,6359,6381,6394,6407,6420,6433,6446,6459,6472,6485,6498,6511,6520,6529,6542,6555,6568,6577,6586,6594,6607,6620,6629,6650,6663,6672,6693,6711,6720,6729,6738,6746,6754,6767,6788,6809,6830,6851,6872,6893,6910,6918,6931,6944,6957,6978,6996,7004,7013,7026,7038,7058,7076,7084,7092,7105,7117,7137,7154,7162,7170,7178,7199,7216],{"type":21,"tag":116,"props":6156,"children":6157},{"class":1190,"line":1191},[6158],{"type":21,"tag":116,"props":6159,"children":6160},{"style":4844},[6161],{"type":30,"value":6162},"{\n",{"type":21,"tag":116,"props":6164,"children":6165},{"class":1190,"line":1200},[6166,6171],{"type":21,"tag":116,"props":6167,"children":6168},{"style":4853},[6169],{"type":30,"value":6170},"  \"env\"",{"type":21,"tag":116,"props":6172,"children":6173},{"style":4844},[6174],{"type":30,"value":4847},{"type":21,"tag":116,"props":6176,"children":6177},{"class":1190,"line":1210},[6178,6183,6187,6192],{"type":21,"tag":116,"props":6179,"children":6180},{"style":4853},[6181],{"type":30,"value":6182},"    \"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC\"",{"type":21,"tag":116,"props":6184,"children":6185},{"style":4844},[6186],{"type":30,"value":4861},{"type":21,"tag":116,"props":6188,"children":6189},{"style":4838},[6190],{"type":30,"value":6191},"\"true\"",{"type":21,"tag":116,"props":6193,"children":6194},{"style":4844},[6195],{"type":30,"value":4871},{"type":21,"tag":116,"props":6197,"children":6198},{"class":1190,"line":1219},[6199,6204,6208,6213],{"type":21,"tag":116,"props":6200,"children":6201},{"style":4853},[6202],{"type":30,"value":6203},"    \"CLAUDE_CODE_EFFORT_LEVEL\"",{"type":21,"tag":116,"props":6205,"children":6206},{"style":4844},[6207],{"type":30,"value":4861},{"type":21,"tag":116,"props":6209,"children":6210},{"style":4838},[6211],{"type":30,"value":6212},"\"max\"",{"type":21,"tag":116,"props":6214,"children":6215},{"style":4844},[6216],{"type":30,"value":4871},{"type":21,"tag":116,"props":6218,"children":6219},{"class":1190,"line":1228},[6220,6225,6229,6234],{"type":21,"tag":116,"props":6221,"children":6222},{"style":4853},[6223],{"type":30,"value":6224},"    \"DISABLE_AUTOUPDATER\"",{"type":21,"tag":116,"props":6226,"children":6227},{"style":4844},[6228],{"type":30,"value":4861},{"type":21,"tag":116,"props":6230,"children":6231},{"style":4838},[6232],{"type":30,"value":6233},"\"1\"",{"type":21,"tag":116,"props":6235,"children":6236},{"style":4844},[6237],{"type":30,"value":4871},{"type":21,"tag":116,"props":6239,"children":6240},{"class":1190,"line":1237},[6241,6246,6250,6254],{"type":21,"tag":116,"props":6242,"children":6243},{"style":4853},[6244],{"type":30,"value":6245},"    \"DISABLE_ERROR_REPORTING\"",{"type":21,"tag":116,"props":6247,"children":6248},{"style":4844},[6249],{"type":30,"value":4861},{"type":21,"tag":116,"props":6251,"children":6252},{"style":4838},[6253],{"type":30,"value":6191},{"type":21,"tag":116,"props":6255,"children":6256},{"style":4844},[6257],{"type":30,"value":4871},{"type":21,"tag":116,"props":6259,"children":6260},{"class":1190,"line":1246},[6261,6266,6270,6274],{"type":21,"tag":116,"props":6262,"children":6263},{"style":4853},[6264],{"type":30,"value":6265},"    \"DISABLE_TELEMETRY\"",{"type":21,"tag":116,"props":6267,"children":6268},{"style":4844},[6269],{"type":30,"value":4861},{"type":21,"tag":116,"props":6271,"children":6272},{"style":4838},[6273],{"type":30,"value":6191},{"type":21,"tag":116,"props":6275,"children":6276},{"style":4844},[6277],{"type":30,"value":4871},{"type":21,"tag":116,"props":6279,"children":6280},{"class":1190,"line":1255},[6281,6286,6290],{"type":21,"tag":116,"props":6282,"children":6283},{"style":4853},[6284],{"type":30,"value":6285},"    \"ENABLE_TOOL_SEARCH\"",{"type":21,"tag":116,"props":6287,"children":6288},{"style":4844},[6289],{"type":30,"value":4861},{"type":21,"tag":116,"props":6291,"children":6292},{"style":4838},[6293],{"type":30,"value":6294},"\"true\"\n",{"type":21,"tag":116,"props":6296,"children":6297},{"class":1190,"line":1264},[6298],{"type":21,"tag":116,"props":6299,"children":6300},{"style":4844},[6301],{"type":30,"value":5664},{"type":21,"tag":116,"props":6303,"children":6304},{"class":1190,"line":1273},[6305,6310],{"type":21,"tag":116,"props":6306,"children":6307},{"style":4853},[6308],{"type":30,"value":6309},"  \"attribution\"",{"type":21,"tag":116,"props":6311,"children":6312},{"style":4844},[6313],{"type":30,"value":4847},{"type":21,"tag":116,"props":6315,"children":6316},{"class":1190,"line":5065},[6317,6322,6326,6330],{"type":21,"tag":116,"props":6318,"children":6319},{"style":4853},[6320],{"type":30,"value":6321},"    \"commit\"",{"type":21,"tag":116,"props":6323,"children":6324},{"style":4844},[6325],{"type":30,"value":4861},{"type":21,"tag":116,"props":6327,"children":6328},{"style":4838},[6329],{"type":30,"value":4866},{"type":21,"tag":116,"props":6331,"children":6332},{"style":4844},[6333],{"type":30,"value":4871},{"type":21,"tag":116,"props":6335,"children":6337},{"class":1190,"line":6336},12,[6338,6343,6347],{"type":21,"tag":116,"props":6339,"children":6340},{"style":4853},[6341],{"type":30,"value":6342},"    \"pr\"",{"type":21,"tag":116,"props":6344,"children":6345},{"style":4844},[6346],{"type":30,"value":4861},{"type":21,"tag":116,"props":6348,"children":6349},{"style":4838},[6350],{"type":30,"value":4888},{"type":21,"tag":116,"props":6352,"children":6354},{"class":1190,"line":6353},13,[6355],{"type":21,"tag":116,"props":6356,"children":6357},{"style":4844},[6358],{"type":30,"value":5664},{"type":21,"tag":116,"props":6360,"children":6362},{"class":1190,"line":6361},14,[6363,6368,6372,6377],{"type":21,"tag":116,"props":6364,"children":6365},{"style":4853},[6366],{"type":30,"value":6367},"  \"model\"",{"type":21,"tag":116,"props":6369,"children":6370},{"style":4844},[6371],{"type":30,"value":4861},{"type":21,"tag":116,"props":6373,"children":6374},{"style":4838},[6375],{"type":30,"value":6376},"\"opus[1m]\"",{"type":21,"tag":116,"props":6378,"children":6379},{"style":4844},[6380],{"type":30,"value":4871},{"type":21,"tag":116,"props":6382,"children":6384},{"class":1190,"line":6383},15,[6385,6390],{"type":21,"tag":116,"props":6386,"children":6387},{"style":4853},[6388],{"type":30,"value":6389},"  \"permissions\"",{"type":21,"tag":116,"props":6391,"children":6392},{"style":4844},[6393],{"type":30,"value":4847},{"type":21,"tag":116,"props":6395,"children":6397},{"class":1190,"line":6396},16,[6398,6403],{"type":21,"tag":116,"props":6399,"children":6400},{"style":4853},[6401],{"type":30,"value":6402},"    \"allow\"",{"type":21,"tag":116,"props":6404,"children":6405},{"style":4844},[6406],{"type":30,"value":4958},{"type":21,"tag":116,"props":6408,"children":6410},{"class":1190,"line":6409},17,[6411,6416],{"type":21,"tag":116,"props":6412,"children":6413},{"style":4838},[6414],{"type":30,"value":6415},"      \"WebFetch(domain:deepseek.com)\"",{"type":21,"tag":116,"props":6417,"children":6418},{"style":4844},[6419],{"type":30,"value":4871},{"type":21,"tag":116,"props":6421,"children":6423},{"class":1190,"line":6422},18,[6424,6429],{"type":21,"tag":116,"props":6425,"children":6426},{"style":4838},[6427],{"type":30,"value":6428},"      \"WebFetch(domain:moonshot.cn)\"",{"type":21,"tag":116,"props":6430,"children":6431},{"style":4844},[6432],{"type":30,"value":4871},{"type":21,"tag":116,"props":6434,"children":6436},{"class":1190,"line":6435},19,[6437,6442],{"type":21,"tag":116,"props":6438,"children":6439},{"style":4838},[6440],{"type":30,"value":6441},"      \"WebFetch(domain:qwen.ai)\"",{"type":21,"tag":116,"props":6443,"children":6444},{"style":4844},[6445],{"type":30,"value":4871},{"type":21,"tag":116,"props":6447,"children":6449},{"class":1190,"line":6448},20,[6450,6455],{"type":21,"tag":116,"props":6451,"children":6452},{"style":4838},[6453],{"type":30,"value":6454},"      \"WebFetch(domain:google.com)\"",{"type":21,"tag":116,"props":6456,"children":6457},{"style":4844},[6458],{"type":30,"value":4871},{"type":21,"tag":116,"props":6460,"children":6462},{"class":1190,"line":6461},21,[6463,6468],{"type":21,"tag":116,"props":6464,"children":6465},{"style":4838},[6466],{"type":30,"value":6467},"      \"WebFetch(domain:anthropic.com)\"",{"type":21,"tag":116,"props":6469,"children":6470},{"style":4844},[6471],{"type":30,"value":4871},{"type":21,"tag":116,"props":6473,"children":6475},{"class":1190,"line":6474},22,[6476,6481],{"type":21,"tag":116,"props":6477,"children":6478},{"style":4838},[6479],{"type":30,"value":6480},"      \"WebFetch(domain:openai.com)\"",{"type":21,"tag":116,"props":6482,"children":6483},{"style":4844},[6484],{"type":30,"value":4871},{"type":21,"tag":116,"props":6486,"children":6488},{"class":1190,"line":6487},23,[6489,6494],{"type":21,"tag":116,"props":6490,"children":6491},{"style":4838},[6492],{"type":30,"value":6493},"      \"WebFetch(domain:arxiv.org)\"",{"type":21,"tag":116,"props":6495,"children":6496},{"style":4844},[6497],{"type":30,"value":4871},{"type":21,"tag":116,"props":6499,"children":6501},{"class":1190,"line":6500},24,[6502,6507],{"type":21,"tag":116,"props":6503,"children":6504},{"style":4838},[6505],{"type":30,"value":6506},"      \"WebFetch(domain:*.edu)\"",{"type":21,"tag":116,"props":6508,"children":6509},{"style":4844},[6510],{"type":30,"value":4871},{"type":21,"tag":116,"props":6512,"children":6514},{"class":1190,"line":6513},25,[6515],{"type":21,"tag":116,"props":6516,"children":6517},{"style":4838},[6518],{"type":30,"value":6519},"      \"WebFetch(domain:*.ac.cn)\"\n",{"type":21,"tag":116,"props":6521,"children":6523},{"class":1190,"line":6522},26,[6524],{"type":21,"tag":116,"props":6525,"children":6526},{"style":4844},[6527],{"type":30,"value":6528},"    ],\n",{"type":21,"tag":116,"props":6530,"children":6532},{"class":1190,"line":6531},27,[6533,6538],{"type":21,"tag":116,"props":6534,"children":6535},{"style":4853},[6536],{"type":30,"value":6537},"    \"deny\"",{"type":21,"tag":116,"props":6539,"children":6540},{"style":4844},[6541],{"type":30,"value":4958},{"type":21,"tag":116,"props":6543,"children":6545},{"class":1190,"line":6544},28,[6546,6551],{"type":21,"tag":116,"props":6547,"children":6548},{"style":4838},[6549],{"type":30,"value":6550},"      \"Read(**\u002F.ssh\u002F**)\"",{"type":21,"tag":116,"props":6552,"children":6553},{"style":4844},[6554],{"type":30,"value":4871},{"type":21,"tag":116,"props":6556,"children":6558},{"class":1190,"line":6557},29,[6559,6564],{"type":21,"tag":116,"props":6560,"children":6561},{"style":4838},[6562],{"type":30,"value":6563},"      \"Read(.\u002Fsecrets\u002F**)\"",{"type":21,"tag":116,"props":6565,"children":6566},{"style":4844},[6567],{"type":30,"value":4871},{"type":21,"tag":116,"props":6569,"children":6571},{"class":1190,"line":6570},30,[6572],{"type":21,"tag":116,"props":6573,"children":6574},{"style":4838},[6575],{"type":30,"value":6576},"      \"Bash(rm -rf *)\"\n",{"type":21,"tag":116,"props":6578,"children":6580},{"class":1190,"line":6579},31,[6581],{"type":21,"tag":116,"props":6582,"children":6583},{"style":4844},[6584],{"type":30,"value":6585},"    ]\n",{"type":21,"tag":116,"props":6587,"children":6589},{"class":1190,"line":6588},32,[6590],{"type":21,"tag":116,"props":6591,"children":6592},{"style":4844},[6593],{"type":30,"value":5664},{"type":21,"tag":116,"props":6595,"children":6597},{"class":1190,"line":6596},33,[6598,6603],{"type":21,"tag":116,"props":6599,"children":6600},{"style":4853},[6601],{"type":30,"value":6602},"  \"hooks\"",{"type":21,"tag":116,"props":6604,"children":6605},{"style":4844},[6606],{"type":30,"value":4847},{"type":21,"tag":116,"props":6608,"children":6610},{"class":1190,"line":6609},34,[6611,6616],{"type":21,"tag":116,"props":6612,"children":6613},{"style":4853},[6614],{"type":30,"value":6615},"    \"PreToolUse\"",{"type":21,"tag":116,"props":6617,"children":6618},{"style":4844},[6619],{"type":30,"value":4958},{"type":21,"tag":116,"props":6621,"children":6623},{"class":1190,"line":6622},35,[6624],{"type":21,"tag":116,"props":6625,"children":6626},{"style":4844},[6627],{"type":30,"value":6628},"      {\n",{"type":21,"tag":116,"props":6630,"children":6632},{"class":1190,"line":6631},36,[6633,6638,6642,6646],{"type":21,"tag":116,"props":6634,"children":6635},{"style":4853},[6636],{"type":30,"value":6637},"        \"matcher\"",{"type":21,"tag":116,"props":6639,"children":6640},{"style":4844},[6641],{"type":30,"value":4861},{"type":21,"tag":116,"props":6643,"children":6644},{"style":4838},[6645],{"type":30,"value":5358},{"type":21,"tag":116,"props":6647,"children":6648},{"style":4844},[6649],{"type":30,"value":4871},{"type":21,"tag":116,"props":6651,"children":6653},{"class":1190,"line":6652},37,[6654,6659],{"type":21,"tag":116,"props":6655,"children":6656},{"style":4853},[6657],{"type":30,"value":6658},"        \"hooks\"",{"type":21,"tag":116,"props":6660,"children":6661},{"style":4844},[6662],{"type":30,"value":4958},{"type":21,"tag":116,"props":6664,"children":6666},{"class":1190,"line":6665},38,[6667],{"type":21,"tag":116,"props":6668,"children":6669},{"style":4844},[6670],{"type":30,"value":6671},"          {\n",{"type":21,"tag":116,"props":6673,"children":6675},{"class":1190,"line":6674},39,[6676,6681,6685,6689],{"type":21,"tag":116,"props":6677,"children":6678},{"style":4853},[6679],{"type":30,"value":6680},"            \"type\"",{"type":21,"tag":116,"props":6682,"children":6683},{"style":4844},[6684],{"type":30,"value":4861},{"type":21,"tag":116,"props":6686,"children":6687},{"style":4838},[6688],{"type":30,"value":5396},{"type":21,"tag":116,"props":6690,"children":6691},{"style":4844},[6692],{"type":30,"value":4871},{"type":21,"tag":116,"props":6694,"children":6696},{"class":1190,"line":6695},40,[6697,6702,6706],{"type":21,"tag":116,"props":6698,"children":6699},{"style":4853},[6700],{"type":30,"value":6701},"            \"command\"",{"type":21,"tag":116,"props":6703,"children":6704},{"style":4844},[6705],{"type":30,"value":4861},{"type":21,"tag":116,"props":6707,"children":6708},{"style":4838},[6709],{"type":30,"value":6710},"\"rtk hook claude\"\n",{"type":21,"tag":116,"props":6712,"children":6714},{"class":1190,"line":6713},41,[6715],{"type":21,"tag":116,"props":6716,"children":6717},{"style":4844},[6718],{"type":30,"value":6719},"          }\n",{"type":21,"tag":116,"props":6721,"children":6723},{"class":1190,"line":6722},42,[6724],{"type":21,"tag":116,"props":6725,"children":6726},{"style":4844},[6727],{"type":30,"value":6728},"        ]\n",{"type":21,"tag":116,"props":6730,"children":6732},{"class":1190,"line":6731},43,[6733],{"type":21,"tag":116,"props":6734,"children":6735},{"style":4844},[6736],{"type":30,"value":6737},"      }\n",{"type":21,"tag":116,"props":6739,"children":6741},{"class":1190,"line":6740},44,[6742],{"type":21,"tag":116,"props":6743,"children":6744},{"style":4844},[6745],{"type":30,"value":6585},{"type":21,"tag":116,"props":6747,"children":6749},{"class":1190,"line":6748},45,[6750],{"type":21,"tag":116,"props":6751,"children":6752},{"style":4844},[6753],{"type":30,"value":5664},{"type":21,"tag":116,"props":6755,"children":6757},{"class":1190,"line":6756},46,[6758,6763],{"type":21,"tag":116,"props":6759,"children":6760},{"style":4853},[6761],{"type":30,"value":6762},"  \"enabledPlugins\"",{"type":21,"tag":116,"props":6764,"children":6765},{"style":4844},[6766],{"type":30,"value":4847},{"type":21,"tag":116,"props":6768,"children":6770},{"class":1190,"line":6769},47,[6771,6776,6780,6784],{"type":21,"tag":116,"props":6772,"children":6773},{"style":4853},[6774],{"type":30,"value":6775},"    \"claude-code-wakatime@wakatime\"",{"type":21,"tag":116,"props":6777,"children":6778},{"style":4844},[6779],{"type":30,"value":4861},{"type":21,"tag":116,"props":6781,"children":6782},{"style":4853},[6783],{"type":30,"value":155},{"type":21,"tag":116,"props":6785,"children":6786},{"style":4844},[6787],{"type":30,"value":4871},{"type":21,"tag":116,"props":6789,"children":6791},{"class":1190,"line":6790},48,[6792,6797,6801,6805],{"type":21,"tag":116,"props":6793,"children":6794},{"style":4853},[6795],{"type":30,"value":6796},"    \"ponytail@ponytail\"",{"type":21,"tag":116,"props":6798,"children":6799},{"style":4844},[6800],{"type":30,"value":4861},{"type":21,"tag":116,"props":6802,"children":6803},{"style":4853},[6804],{"type":30,"value":155},{"type":21,"tag":116,"props":6806,"children":6807},{"style":4844},[6808],{"type":30,"value":4871},{"type":21,"tag":116,"props":6810,"children":6812},{"class":1190,"line":6811},49,[6813,6818,6822,6826],{"type":21,"tag":116,"props":6814,"children":6815},{"style":4853},[6816],{"type":30,"value":6817},"    \"skill-creator@claude-plugins-official\"",{"type":21,"tag":116,"props":6819,"children":6820},{"style":4844},[6821],{"type":30,"value":4861},{"type":21,"tag":116,"props":6823,"children":6824},{"style":4853},[6825],{"type":30,"value":155},{"type":21,"tag":116,"props":6827,"children":6828},{"style":4844},[6829],{"type":30,"value":4871},{"type":21,"tag":116,"props":6831,"children":6833},{"class":1190,"line":6832},50,[6834,6839,6843,6847],{"type":21,"tag":116,"props":6835,"children":6836},{"style":4853},[6837],{"type":30,"value":6838},"    \"claude-md-management@claude-plugins-official\"",{"type":21,"tag":116,"props":6840,"children":6841},{"style":4844},[6842],{"type":30,"value":4861},{"type":21,"tag":116,"props":6844,"children":6845},{"style":4853},[6846],{"type":30,"value":155},{"type":21,"tag":116,"props":6848,"children":6849},{"style":4844},[6850],{"type":30,"value":4871},{"type":21,"tag":116,"props":6852,"children":6854},{"class":1190,"line":6853},51,[6855,6860,6864,6868],{"type":21,"tag":116,"props":6856,"children":6857},{"style":4853},[6858],{"type":30,"value":6859},"    \"superpowers@claude-plugins-official\"",{"type":21,"tag":116,"props":6861,"children":6862},{"style":4844},[6863],{"type":30,"value":4861},{"type":21,"tag":116,"props":6865,"children":6866},{"style":4853},[6867],{"type":30,"value":155},{"type":21,"tag":116,"props":6869,"children":6870},{"style":4844},[6871],{"type":30,"value":4871},{"type":21,"tag":116,"props":6873,"children":6875},{"class":1190,"line":6874},52,[6876,6881,6885,6889],{"type":21,"tag":116,"props":6877,"children":6878},{"style":4853},[6879],{"type":30,"value":6880},"    \"code-simplifier@claude-plugins-official\"",{"type":21,"tag":116,"props":6882,"children":6883},{"style":4844},[6884],{"type":30,"value":4861},{"type":21,"tag":116,"props":6886,"children":6887},{"style":4853},[6888],{"type":30,"value":155},{"type":21,"tag":116,"props":6890,"children":6891},{"style":4844},[6892],{"type":30,"value":4871},{"type":21,"tag":116,"props":6894,"children":6896},{"class":1190,"line":6895},53,[6897,6902,6906],{"type":21,"tag":116,"props":6898,"children":6899},{"style":4853},[6900],{"type":30,"value":6901},"    \"claude-hud@claude-hud\"",{"type":21,"tag":116,"props":6903,"children":6904},{"style":4844},[6905],{"type":30,"value":4861},{"type":21,"tag":116,"props":6907,"children":6908},{"style":4853},[6909],{"type":30,"value":6011},{"type":21,"tag":116,"props":6911,"children":6913},{"class":1190,"line":6912},54,[6914],{"type":21,"tag":116,"props":6915,"children":6916},{"style":4844},[6917],{"type":30,"value":5664},{"type":21,"tag":116,"props":6919,"children":6921},{"class":1190,"line":6920},55,[6922,6927],{"type":21,"tag":116,"props":6923,"children":6924},{"style":4853},[6925],{"type":30,"value":6926},"  \"extraKnownMarketplaces\"",{"type":21,"tag":116,"props":6928,"children":6929},{"style":4844},[6930],{"type":30,"value":4847},{"type":21,"tag":116,"props":6932,"children":6934},{"class":1190,"line":6933},56,[6935,6940],{"type":21,"tag":116,"props":6936,"children":6937},{"style":4853},[6938],{"type":30,"value":6939},"    \"wakatime\"",{"type":21,"tag":116,"props":6941,"children":6942},{"style":4844},[6943],{"type":30,"value":4847},{"type":21,"tag":116,"props":6945,"children":6947},{"class":1190,"line":6946},57,[6948,6953],{"type":21,"tag":116,"props":6949,"children":6950},{"style":4853},[6951],{"type":30,"value":6952},"      \"source\"",{"type":21,"tag":116,"props":6954,"children":6955},{"style":4844},[6956],{"type":30,"value":4847},{"type":21,"tag":116,"props":6958,"children":6960},{"class":1190,"line":6959},58,[6961,6966,6970,6974],{"type":21,"tag":116,"props":6962,"children":6963},{"style":4853},[6964],{"type":30,"value":6965},"        \"source\"",{"type":21,"tag":116,"props":6967,"children":6968},{"style":4844},[6969],{"type":30,"value":4861},{"type":21,"tag":116,"props":6971,"children":6972},{"style":4838},[6973],{"type":30,"value":5634},{"type":21,"tag":116,"props":6975,"children":6976},{"style":4844},[6977],{"type":30,"value":4871},{"type":21,"tag":116,"props":6979,"children":6981},{"class":1190,"line":6980},59,[6982,6987,6991],{"type":21,"tag":116,"props":6983,"children":6984},{"style":4853},[6985],{"type":30,"value":6986},"        \"url\"",{"type":21,"tag":116,"props":6988,"children":6989},{"style":4844},[6990],{"type":30,"value":4861},{"type":21,"tag":116,"props":6992,"children":6993},{"style":4838},[6994],{"type":30,"value":6995},"\"https:\u002F\u002Fgithub.com\u002Fwakatime\u002Fclaude-code-wakatime.git\"\n",{"type":21,"tag":116,"props":6997,"children":6999},{"class":1190,"line":6998},60,[7000],{"type":21,"tag":116,"props":7001,"children":7002},{"style":4844},[7003],{"type":30,"value":6737},{"type":21,"tag":116,"props":7005,"children":7007},{"class":1190,"line":7006},61,[7008],{"type":21,"tag":116,"props":7009,"children":7010},{"style":4844},[7011],{"type":30,"value":7012},"    },\n",{"type":21,"tag":116,"props":7014,"children":7016},{"class":1190,"line":7015},62,[7017,7022],{"type":21,"tag":116,"props":7018,"children":7019},{"style":4853},[7020],{"type":30,"value":7021},"    \"ponytail\"",{"type":21,"tag":116,"props":7023,"children":7024},{"style":4844},[7025],{"type":30,"value":4847},{"type":21,"tag":116,"props":7027,"children":7029},{"class":1190,"line":7028},63,[7030,7034],{"type":21,"tag":116,"props":7031,"children":7032},{"style":4853},[7033],{"type":30,"value":6952},{"type":21,"tag":116,"props":7035,"children":7036},{"style":4844},[7037],{"type":30,"value":4847},{"type":21,"tag":116,"props":7039,"children":7041},{"class":1190,"line":7040},64,[7042,7046,7050,7054],{"type":21,"tag":116,"props":7043,"children":7044},{"style":4853},[7045],{"type":30,"value":6965},{"type":21,"tag":116,"props":7047,"children":7048},{"style":4844},[7049],{"type":30,"value":4861},{"type":21,"tag":116,"props":7051,"children":7052},{"style":4838},[7053],{"type":30,"value":5700},{"type":21,"tag":116,"props":7055,"children":7056},{"style":4844},[7057],{"type":30,"value":4871},{"type":21,"tag":116,"props":7059,"children":7061},{"class":1190,"line":7060},65,[7062,7067,7071],{"type":21,"tag":116,"props":7063,"children":7064},{"style":4853},[7065],{"type":30,"value":7066},"        \"repo\"",{"type":21,"tag":116,"props":7068,"children":7069},{"style":4844},[7070],{"type":30,"value":4861},{"type":21,"tag":116,"props":7072,"children":7073},{"style":4838},[7074],{"type":30,"value":7075},"\"DietrichGebert\u002Fponytail\"\n",{"type":21,"tag":116,"props":7077,"children":7079},{"class":1190,"line":7078},66,[7080],{"type":21,"tag":116,"props":7081,"children":7082},{"style":4844},[7083],{"type":30,"value":6737},{"type":21,"tag":116,"props":7085,"children":7087},{"class":1190,"line":7086},67,[7088],{"type":21,"tag":116,"props":7089,"children":7090},{"style":4844},[7091],{"type":30,"value":7012},{"type":21,"tag":116,"props":7093,"children":7095},{"class":1190,"line":7094},68,[7096,7101],{"type":21,"tag":116,"props":7097,"children":7098},{"style":4853},[7099],{"type":30,"value":7100},"    \"claude-hud\"",{"type":21,"tag":116,"props":7102,"children":7103},{"style":4844},[7104],{"type":30,"value":4847},{"type":21,"tag":116,"props":7106,"children":7108},{"class":1190,"line":7107},69,[7109,7113],{"type":21,"tag":116,"props":7110,"children":7111},{"style":4853},[7112],{"type":30,"value":6952},{"type":21,"tag":116,"props":7114,"children":7115},{"style":4844},[7116],{"type":30,"value":4847},{"type":21,"tag":116,"props":7118,"children":7120},{"class":1190,"line":7119},70,[7121,7125,7129,7133],{"type":21,"tag":116,"props":7122,"children":7123},{"style":4853},[7124],{"type":30,"value":6965},{"type":21,"tag":116,"props":7126,"children":7127},{"style":4844},[7128],{"type":30,"value":4861},{"type":21,"tag":116,"props":7130,"children":7131},{"style":4838},[7132],{"type":30,"value":5700},{"type":21,"tag":116,"props":7134,"children":7135},{"style":4844},[7136],{"type":30,"value":4871},{"type":21,"tag":116,"props":7138,"children":7140},{"class":1190,"line":7139},71,[7141,7145,7149],{"type":21,"tag":116,"props":7142,"children":7143},{"style":4853},[7144],{"type":30,"value":7066},{"type":21,"tag":116,"props":7146,"children":7147},{"style":4844},[7148],{"type":30,"value":4861},{"type":21,"tag":116,"props":7150,"children":7151},{"style":4838},[7152],{"type":30,"value":7153},"\"jarrodwatts\u002Fclaude-hud\"\n",{"type":21,"tag":116,"props":7155,"children":7157},{"class":1190,"line":7156},72,[7158],{"type":21,"tag":116,"props":7159,"children":7160},{"style":4844},[7161],{"type":30,"value":6737},{"type":21,"tag":116,"props":7163,"children":7165},{"class":1190,"line":7164},73,[7166],{"type":21,"tag":116,"props":7167,"children":7168},{"style":4844},[7169],{"type":30,"value":5434},{"type":21,"tag":116,"props":7171,"children":7173},{"class":1190,"line":7172},74,[7174],{"type":21,"tag":116,"props":7175,"children":7176},{"style":4844},[7177],{"type":30,"value":5664},{"type":21,"tag":116,"props":7179,"children":7181},{"class":1190,"line":7180},75,[7182,7187,7191,7195],{"type":21,"tag":116,"props":7183,"children":7184},{"style":4853},[7185],{"type":30,"value":7186},"  \"skipDangerousModePermissionPrompt\"",{"type":21,"tag":116,"props":7188,"children":7189},{"style":4844},[7190],{"type":30,"value":4861},{"type":21,"tag":116,"props":7192,"children":7193},{"style":4853},[7194],{"type":30,"value":155},{"type":21,"tag":116,"props":7196,"children":7197},{"style":4844},[7198],{"type":30,"value":4871},{"type":21,"tag":116,"props":7200,"children":7202},{"class":1190,"line":7201},76,[7203,7208,7212],{"type":21,"tag":116,"props":7204,"children":7205},{"style":4853},[7206],{"type":30,"value":7207},"  \"skipWebFetchPreflight\"",{"type":21,"tag":116,"props":7209,"children":7210},{"style":4844},[7211],{"type":30,"value":4861},{"type":21,"tag":116,"props":7213,"children":7214},{"style":4853},[7215],{"type":30,"value":6011},{"type":21,"tag":116,"props":7217,"children":7219},{"class":1190,"line":7218},77,[7220],{"type":21,"tag":116,"props":7221,"children":7222},{"style":4844},[7223],{"type":30,"value":4896},{"type":21,"tag":4143,"props":7225,"children":7226},{},[],{"type":21,"tag":26,"props":7228,"children":7229},{},[7230,7232,7237,7238,7244],{"type":30,"value":7231},"日常用下来，",{"type":21,"tag":1185,"props":7233,"children":7235},{"className":7234},[],[7236],{"type":30,"value":4392},{"type":30,"value":5537},{"type":21,"tag":1185,"props":7239,"children":7241},{"className":7240},[],[7242],{"type":30,"value":7243},"permissions.allow\u002Fdeny",{"type":30,"value":7245}," + 几个 skill 插件，基本就能覆盖 90% 的需求。",{"type":21,"tag":4158,"props":7247,"children":7248},{},[7249],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":7251},[7252,7253,7259,7261,7263,7270,7272,7277],{"id":4232,"depth":1200,"text":4232},{"id":4490,"depth":1200,"text":7254,"children":7255},"环境变量（env）",[7256,7257,7258],{"id":4504,"depth":1210,"text":4504},{"id":4570,"depth":1210,"text":4570},{"id":4631,"depth":1210,"text":4634},{"id":4764,"depth":1200,"text":7260},"模型（model）",{"id":4814,"depth":1200,"text":7262},"提交署名（attribution）",{"id":4904,"depth":1200,"text":7264,"children":7265},"权限（permissions）",[7266,7268],{"id":4916,"depth":1210,"text":7267},"allow：预授权",{"id":5132,"depth":1210,"text":7269},"deny：硬性拒绝",{"id":5281,"depth":1200,"text":7271},"钩子（hooks）",{"id":5527,"depth":1200,"text":7273,"children":7274},"插件推荐（enabledPlugins + extraKnownMarketplaces）",[7275,7276],{"id":5574,"depth":1210,"text":5574},{"id":5853,"depth":1210,"text":5853},{"id":6140,"depth":1200,"text":6140},"content:posts:claude-code-settings.md","posts\u002Fclaude-code-settings.md","posts\u002Fclaude-code-settings",{"_path":7282,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7283,"description":7284,"date":7285,"categories":7286,"tags":7287,"draft":7,"body":7288,"_type":4170,"_id":7469,"_source":4172,"_file":7470,"_stem":7471,"_extension":4175},"\u002Fposts\u002Fmy-thoughts-on-the-ai-industry","简单聊聊对 AI Agent 行业的理解","写这篇文章的初衷，是我发觉逐渐忘了前两个月的 AI\u002FLLMs 是什么样的能力和情况了。意识中似乎某些在突然加速，但理性和直觉告诉我这不对，作为行内人，我知道这是一个渐进的、累积的过程。我想自己回忆一下，Agent的发展。","2026-06-20 13:14:25","色伏集",[14,4181,4182],{"type":18,"children":7289,"toc":7464},[7290,7295,7300,7305,7310,7315,7320,7325,7339,7344,7349,7354,7359,7364,7369,7374,7379,7384,7390,7395,7405,7410,7420,7430,7442,7454,7459],{"type":21,"tag":26,"props":7291,"children":7292},{},[7293],{"type":30,"value":7294},"我印象里 AI Agent 的概念在 2024 年的时候就逐步走向成熟了。凭我模糊的回忆说一下（不保证正确）。",{"type":21,"tag":26,"props":7296,"children":7297},{},[7298],{"type":30,"value":7299},"一开始 22 年 ChatGPT 就以 ChatBot 的形式爆火。那个时候还称不上现在的 Agent，充其量就是浓缩了大量世界知识的 ChatBot。23年24年开始有了\"Agent\"应用，一开始的那个忘了叫什么名字了（Logo长得像个骆驼的），是 AI 写小说的。我是看见一个学长研究生毕业做的，这个我印象很深。从这里开始，我们不仅仅只是用一个集人类精华的存在去 Chat，而是通过一种组织的形式，发挥它的知识和能力，开始有意识根据模型本身的能力设计一个系统，让模型在这个系统中完成任务，这可以说是早期的 harness 了。",{"type":21,"tag":26,"props":7301,"children":7302},{},[7303],{"type":30,"value":7304},"而 tool-calling 之类的能力，也是在这种系统性地使用模型能力的时候的自发实践。就像很早的 GPT-Academic，就是自己实现 function，配合 prompt 完成对 paper 的拆解。这份能力太过广泛和基础，下游的使用促使上游模型训练端让模型 tool-calling 的能力进一步加强，成为 ReasoningLLM 的标准能力。后面则是对这份 tool-calling 能力的扩展，从原本的工具调用会出错，到单次工具调用成功，再到多次工具调用——模型在工具使用上已经成了专家。",{"type":21,"tag":26,"props":7306,"children":7307},{},[7308],{"type":30,"value":7309},"而能够使用工具，就是 Agentic 能力的一个关键点。在此之前的所谓 Agent，不过是 prompt APPs 罢了。",{"type":21,"tag":58,"props":7311,"children":7313},{"id":7312},"节奏",[7314],{"type":30,"value":7312},{"type":21,"tag":26,"props":7316,"children":7317},{},[7318],{"type":30,"value":7319},"我在24年暑假关注到了 AstrBot 这个项目，那个时候 LLMs 的能力刚好够到能进行工具调用的程度，但鲜少有 QQBot 的项目把 tool-call LLM 作为一等公民接入 QQ，AstrBot做了。比较早期的就跟进了 MCP，沙箱执行，工具调用。我当时顺手给 AstrBot 提了个 typo fix，修了下启动时的 logo，哈哈。但我后续在使用 AstrBot 的时候感到了厌倦——我没有感受到它带给了我什么。让 Bot 更像人？和人交互？我根本用不上。",{"type":21,"tag":26,"props":7321,"children":7322},{},[7323],{"type":30,"value":7324},"2024年有些 PaaS Agent APP 平台，比如 Dify、Coze 等等。RAG的概念也是作为增强模型能力的一个方法为人所熟知，一个是可以解决 AI 幻觉问题，一个是解决 AI 上下文不够长的问题。",{"type":21,"tag":26,"props":7326,"children":7327},{},[7328,7330,7337],{"type":30,"value":7329},"而这个时候，token 的消耗量并没有那么大, dsr1 context length 128k，单次对话就调用一个工具。但是仅仅在 2025 年 Q2，Agentic AI的概念就提出来了（与此同时是大量的 agentic 框架，这是25Q2有人列举的",{"type":21,"tag":75,"props":7331,"children":7334},{"href":7332,"rel":7333},"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1B37VxTBuGLeTSPVWtz7UMsCdtXrqV5hCjWkbHN8tfAo\u002Fedit?ref=blog.langchain.dev&pli=1&gid=0#gid=0",[79],[7335],{"type":30,"value":7336},"不同agent框架之间的对比",{"type":30,"value":7338},"），并且就是我们现在常谈论的 agent，而非之前的改改 system prompt 的 'agent'。那个时候还有很多 agent 框架，不管是非常早就出来的 LangChain、还是算比较新的 autogen、LangGraph 这些都是很方便去构建 workflow 式的 agent的平台，开发 agent 的门槛变得很低。但这个时候业界反应还没有那么大（2025Q2）——相应的就是机会非常多，因为绝大多数人都没有做过 agent。而今一年过去了，体感上各种培训班已经满天飞了。",{"type":21,"tag":26,"props":7340,"children":7341},{},[7342],{"type":30,"value":7343},"另外一个，token消耗量在模型长上下文普及和长程任务能力越来越强的现在激增。我一天开发一个项目最高能烧掉1B的token，这换在ChatBot时代是无法想象的。而海量的token就代表着海量的数据，而且还是之前现实世界没有的，agentic的long horizon任务执行的轨迹数据，这是新一轮的数据飞轮。随着 Transformer 架构的不断升级，现在 dsv4 解决了 KV Cache 算力、显存消耗太大的问题（之前只是解决Attn上的算力和显存问题，而长上下文中KV Cache带来的问题没有解决），能够在 128k的上下文做预训练，这是以前不敢想的。人类产生数据的速度也在激增。这有点像烧着能源，让大模型有了左脚踩右脚的能力，当然中间少不了人类做 pilot 和 steer，以保证模型和人类 align。",{"type":21,"tag":26,"props":7345,"children":7346},{},[7347],{"type":30,"value":7348},"2025年 vibe coding 的概念就已经深入人心。25五一的时候，有同学问我课程项目（前端后端数据库）能不能全用 vibe coding，我说试试，应该能。他最后全 vibe coding 成功了。那个时候就有所谓'前端已死'的论调，并在 Gemini 3（2025Q4）的时候极为强烈。",{"type":21,"tag":26,"props":7350,"children":7351},{},[7352],{"type":30,"value":7353},"之后出现的 AI 产品五花八门。AI 陪伴类的一直都有（酒馆、MiniMax的星野 etc.），这种情感类的反馈周期长，算法的 reward 太多太广太复杂，很难有好的确切的标准做 SFT，并且需要长周期的反馈，很难直接 eval 效果。还有 AI Researcher，印象里这个 OpenAI 先做的，然后 Kimi 似乎是跟进的不错的那个。Kimi Research，记得当时他们的模型做到了一次对话能够调用上百个工具，出了个产品 OK Computer，来做单次请求的长程解决，这个时候（2025Q3）似乎各家就能做到单次30分钟以上的持续执行了。2025Q4 的 skills 概念的提出让 Agentic AI 的易用性进一步降低，（skills这个概念真神了）skills，可以说是 LLM Infra 中的 FlashAttention。将修改模型上下文的权利下放（而这是 agentic 系统中至关重要的），通过 skills 可以直接给模型传输经验、方法、流程、领域知识、思路，等等等等。直接让通用模型的能力轻松落地。而且通过三步渐进暴露的方式做了漂亮的 context engineering，是 Agent在C端变得高可用的一个至关重要的概念。",{"type":21,"tag":26,"props":7355,"children":7356},{},[7357],{"type":30,"value":7358},"写到这里，我发现模型变动的速度太快了。两个月甚至一个月模型厂商就能把新一代的post-training的模型端上来。模型能力的提升从上游往下游不断传播，影响巨大。",{"type":21,"tag":26,"props":7360,"children":7361},{},[7362],{"type":30,"value":7363},"一个类似玩笑的说法是，这个月你用 AI Coding 感到棘手的项目，你大可放置一段时间，等新一代模型发布的时候，过去的难题可能就迎刃而解了。这反应在行业里面很残酷——就像做垂直领域的一些 AI Agent 产品，现在正在被通用的 Codex 吃掉市场份额一样。",{"type":21,"tag":26,"props":7365,"children":7366},{},[7367],{"type":30,"value":7368},"其实也告诉了我们时间很重要。这个月是这样，下个月情况可能就会反转，像 Fable 5 这样的事情，之前已经发生过，未来一定还会发生。但是这个具体的变动谁也不清楚，不身处在水中，怎么能摸到第一线的变化？",{"type":21,"tag":58,"props":7370,"children":7372},{"id":7371},"破圈",[7373],{"type":30,"value":7371},{"type":21,"tag":26,"props":7375,"children":7376},{},[7377],{"type":30,"value":7378},"2026Q1 Opus 4.6 发布之后，我第一次感觉到 Agentic AI 真正意义上的破圈了，好像 AI 真的突破了某种能力的上限，而那种上限格外诱人，各个行业和领域的人都开始为之疯狂。当然这种FOMO并非2026才发生的，更早就有了。",{"type":21,"tag":26,"props":7380,"children":7381},{},[7382],{"type":30,"value":7383},"另一个破圈的是 OpenClaw（ClawBot），这玩意我记得在 Dev 中有过一次传播，但似乎大家没有这么在意。隔了一两个月在 Q1 和 Q2 之间的时候，OpenClaw突然破圈了，引起了一波 Claw 潮。我其实到现在也没有想明白是为什么？难道是真的发现了 AI Agent 的能力已经足够在生产生活中起到作用了吗？但是资本似乎从此刻就开始狂欢。智谱、MiniMax接连港股上市，而今估值快万亿。",{"type":21,"tag":58,"props":7385,"children":7387},{"id":7386},"agent-到底在做什么",[7388],{"type":30,"value":7389},"Agent 到底在做什么",{"type":21,"tag":26,"props":7391,"children":7392},{},[7393],{"type":30,"value":7394},"上面啰嗦了这么多，其实真正想聊的是这个：抛开产品和概念，Agent 到底是什么，以及它现在到底能做什么。",{"type":21,"tag":26,"props":7396,"children":7397},{},[7398,7400],{"type":30,"value":7399},"只说 agent 类型的话，可以分作 workflow 和 agent 两种，以及两者之间的东西。但我觉得这个二分法本身没那么重要——更重要的是想清楚一个问题：",{"type":21,"tag":33,"props":7401,"children":7402},{},[7403],{"type":30,"value":7404},"你的业务里，哪些环节需要 agentic，需要到什么程度？",{"type":21,"tag":26,"props":7406,"children":7407},{},[7408],{"type":30,"value":7409},"这个问题比选框架重要得多。不是因为框架不重要，而是因为大多数场景下，你根本不需要一个完全自主的 agent。",{"type":21,"tag":26,"props":7411,"children":7412},{},[7413,7418],{"type":21,"tag":33,"props":7414,"children":7415},{},[7416],{"type":30,"value":7417},"业务流程清晰、规律、稳定、门槛不高",{"type":30,"value":7419},"——这些场景用 workflow 就够了。workflow 的优势不是能力，是可控。每一步的输入输出是确定的，出问题你能定位到具体环节。而一个完全自主的 agent，它做对了你不知道为什么对，做错了你也不知道在哪一步开始偏的。对于大多数企业场景，可控性比智能程度更值钱。",{"type":21,"tag":26,"props":7421,"children":7422},{},[7423,7428],{"type":21,"tag":33,"props":7424,"children":7425},{},[7426],{"type":30,"value":7427},"垂直领域",{"type":30,"value":7429},"就是另一回事了。通用模型 + skills 在垂直领域的效果往往不好，而且可预计的未来通用模型在这些领域的数据都比较稀缺。这时候要么训练\u002F微调，要么结合领域知识的 RAG。如果做不到微调模型，就只能用 workflow 去逼近效果。这不是最好的方案，但是是可行的方案。",{"type":21,"tag":26,"props":7431,"children":7432},{},[7433,7435,7440],{"type":30,"value":7434},"这中间有一个我反复想到的问题：",{"type":21,"tag":33,"props":7436,"children":7437},{},[7438],{"type":30,"value":7439},"上下文。",{"type":30,"value":7441}," 不管是 workflow 还是 agent，让模型接收到正确的、充足的、合适的上下文，决定了整个系统的上限。上下文给少了模型瞎猜，给多了模型被噪声淹没，给错了方向整个就偏了。这件事说起来简单，实际上极其依赖对业务的理解——你得知道什么信息对决策是关键的，什么信息是噪音。这不是技术问题，是领域知识问题。",{"type":21,"tag":26,"props":7443,"children":7444},{},[7445,7447,7452],{"type":30,"value":7446},"另一个同样关键但更难的事情是",{"type":21,"tag":33,"props":7448,"children":7449},{},[7450],{"type":30,"value":7451},"评估",{"type":30,"value":7453},"。怎么知道你的 agent 系统在变好还是变坏？模型一更新，prompt 一改，工具一换，行为就可能变了。如果没有一套评估手段，你就是在盲飞。但评估 agent 比评估模型难得多——因为 agent 的输出不是单点的，是多步的、有状态的、和环境交互的。单次工具调用对不对？连续调用的顺序对不对？最终结果对不对？三个维度的评估，目前行业里也没有很好的统一方案。",{"type":21,"tag":26,"props":7455,"children":7456},{},[7457],{"type":30,"value":7458},"这也是为什么我说 OpenClaw 的破圈让我困惑。如果 agent 系统的基础设施——上下文工程、评估体系——都还处在这种\"大家各做各的\"阶段，那它真的准备好进入生产生活了吗？还是说我们又一次高估了短期，而低估了长期？",{"type":21,"tag":26,"props":7460,"children":7461},{},[7462],{"type":30,"value":7463},"后记：写这篇文章的初衷，是我发觉逐渐忘了前两个月的 AI\u002FLLMs 是什么样的能力和情况了。行业的节奏快到你来不及消化今天的东西，明天又变了。我想把现在的理解写下来，是为了过几个月回头再看的时候，能看到自己当时站在哪里，看到了什么，又看漏了什么。人的记忆真的忘的太快了。",{"title":8,"searchDepth":1200,"depth":1210,"links":7465},[7466,7467,7468],{"id":7312,"depth":1200,"text":7312},{"id":7371,"depth":1200,"text":7371},{"id":7386,"depth":1200,"text":7389},"content:posts:my-thoughts-on-the-AI-industry.md","posts\u002Fmy-thoughts-on-the-AI-industry.md","posts\u002Fmy-thoughts-on-the-AI-industry",{"_path":7473,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7474,"description":8,"date":7475,"categories":12,"tags":7476,"draft":7,"body":7478,"_type":4170,"_id":7507,"_source":4172,"_file":7508,"_stem":7509,"_extension":4175},"\u002Fposts\u002Frotational-positional-encoding","RoPE","2026-06-17 18:31:40",[14,7477,7474],"Transformer",{"type":18,"children":7479,"toc":7505},[7480,7485,7490,7495,7500],{"type":21,"tag":26,"props":7481,"children":7482},{},[7483],{"type":30,"value":7484},"Attn 本身不表示位置，不包含时序信息。在进入 Attn Block 之前，需要将文本的位置信息编码进 Embedding vector 里。",{"type":21,"tag":26,"props":7486,"children":7487},{},[7488],{"type":30,"value":7489},"早期如 BERT 使用的是绝对位置编码，用一个Embedding去表示位置，无法外推，并且还需要额外存储位置信息。相对位置编码，用两个token之间的相对距离去编码解决了外推的问题，但实现很麻烦。",{"type":21,"tag":26,"props":7491,"children":7492},{},[7493],{"type":30,"value":7494},"我们知道 Attn 本身就是抽象出 Query、Key、Value，计算QK相关性找V这个过程，这里用了矩阵乘法。对于矩阵我们有很多trick。同时旋转 Q、K 两个矩阵，他们矩阵点乘的结果就能实现相对位置编码，而旋转过程中频率的衰减自然展现出了绝对位置的信息。",{"type":21,"tag":26,"props":7496,"children":7497},{},[7498],{"type":30,"value":7499},"RoPE 利用了矩阵的数学特性，漂亮地做好了位置编码这件事。只需要做旋转就可以。空间复杂度O(1)，算法复杂度都降了很多。把大的QK矩阵分块改成一对一对的到二维空间做旋转，这些维度对从高到低不同频率衰减包含在其中。高频负责近距离，中频平衡精度和范围，低频确定远距离位置。外推能力强，没有引入额外的复杂度，非常美丽。",{"type":21,"tag":26,"props":7501,"children":7502},{},[7503],{"type":30,"value":7504},"如果位置信息能从off到其他模块，RoPE这块还能减负。比如使用Linear Attn，如Gated DeltaNet，自带很强的位置理解。Attn就可以把长程的位置理解off掉，用Partial RoPE保留高频部分，只理解近邻的位置信息即可。",{"title":8,"searchDepth":1200,"depth":1210,"links":7506},[],"content:posts:rotational-positional-encoding.md","posts\u002Frotational-positional-encoding.md","posts\u002Frotational-positional-encoding",{"_path":7511,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7512,"description":8,"date":7513,"categories":12,"tags":7514,"draft":7,"body":7515,"_type":4170,"_id":7792,"_source":4172,"_file":7793,"_stem":7794,"_extension":4175},"\u002Fposts\u002Fintroduction-to-large-language-model","大语言模型入门基础","2026-06-16 22:36:11",[7477,14],{"type":18,"children":7516,"toc":7785},[7517,7522,7528,7533,7538,7543,7548,7553,7559,7564,7569,7574,7579,7584,7639,7644,7649,7749,7755,7760,7765,7771,7776,7781],{"type":21,"tag":26,"props":7518,"children":7519},{},[7520],{"type":30,"value":7521},"本文介绍大语言模型(LLM)的基础内容。",{"type":21,"tag":58,"props":7523,"children":7525},{"id":7524},"insight",[7526],{"type":30,"value":7527},"Insight",{"type":21,"tag":26,"props":7529,"children":7530},{},[7531],{"type":30,"value":7532},"对于推理时的 LLMs 来说，它只做一件事：预测下一个 token。这听起来是一件非常简单的一件事。为什么 LLMs 却在文本模态上表现的如此全能呢？",{"type":21,"tag":26,"props":7534,"children":7535},{},[7536],{"type":30,"value":7537},"力大砖飞？道法自然？或许都对。LLMs 在海量数据上做了 pretrain。截止到2026年4月份，国内开源的几家模型公司在预训练阶段训练的token数量大约都在30T-35TB之间。模型每个参数预训练消耗的token都远大于20了。并且我相信这个数据使用量会在 DeepSeek V4 分享他们新的稀疏方法后，继续增长。另外，qwen 小模型的实践告诉了我们：预训练时，随着数据量的增多，即使是小模型，其能力也在稳步提升。",{"type":21,"tag":58,"props":7539,"children":7541},{"id":7540},"数据飞轮",[7542],{"type":30,"value":7540},{"type":21,"tag":26,"props":7544,"children":7545},{},[7546],{"type":30,"value":7547},"在模型的长上下文突破(RoPE、YaRN), 基座模型 Agentic 能力提升， LLM Infra(vLLM、SGLang etc.) Day0级跟进支持等等突破之后，一批全新的、过去没有的长上下文 Agent 任务的数据在飞速产生。这个时候谁拥有更多数据（并且能聪明地运用），那么他们下一代的模型就会更强，这是个正反馈的过程，也被称为数据飞轮。",{"type":21,"tag":26,"props":7549,"children":7550},{},[7551],{"type":30,"value":7552},"数据飞轮正在拉大不同模型厂商之间的差距。",{"type":21,"tag":58,"props":7554,"children":7556},{"id":7555},"看到新的-token-产生的时候发生了什么",[7557],{"type":30,"value":7558},"看到新的 Token 产生的时候，发生了什么？",{"type":21,"tag":26,"props":7560,"children":7561},{},[7562],{"type":30,"value":7563},"使用 LLM 时，输入的是人类的文本，输出的是人类的文本，这个过程中模型到底做了什么呢？",{"type":21,"tag":26,"props":7565,"children":7566},{},[7567],{"type":30,"value":7568},"在看到文本的前一步，token是经过采样后得到的next token ID，根据ID一做 detokenizer 就得到看见的文本了。",{"type":21,"tag":26,"props":7570,"children":7571},{},[7572],{"type":30,"value":7573},"得到 token id 的前一步，是经过 Softmax 计算出的一个概率矩阵，根据不同的解码策略（贪婪解码：取概率最大的； 投机解码：需要 MTP 模块； 或者按概率采样等等），选择next token id。再上一步就是 logits。我们平常说的 Temperature（对 logits 矩阵做除法）、Top-K（只在概率最大的K个Token中选）、Top-P（只在累积概率P以内的Token中选）都是在这步做的。",{"type":21,"tag":26,"props":7575,"children":7576},{},[7577],{"type":30,"value":7578},"logits 输出前是 LM Head（Linear 层），它将 hidden Linear 的特征数扩大到词表的大小。在此之前是文本经过 Embedding 向量化和 PE（Positional Encode）后进入若干个 Transformer Block 后又过了一遍 RMSNorm。",{"type":21,"tag":26,"props":7580,"children":7581},{},[7582],{"type":30,"value":7583},"Transformer Block很简单。就是 Attn 机制加上前馈网络（FFN）罢了。",{"type":21,"tag":1178,"props":7585,"children":7587},{"className":1180,"code":7586,"language":1182,"meta":8,"style":8},"# Input: x\n# Transformer Block\ndef forward(self, x):\n    x = x + Attn(RMSNorm(x))  # 简单的残差\n    x = x + FFN(RMSNorm(x))\n    return x\n",[7588],{"type":21,"tag":1185,"props":7589,"children":7590},{"__ignoreMap":8},[7591,7599,7607,7615,7623,7631],{"type":21,"tag":116,"props":7592,"children":7593},{"class":1190,"line":1191},[7594],{"type":21,"tag":116,"props":7595,"children":7596},{},[7597],{"type":30,"value":7598},"# Input: x\n",{"type":21,"tag":116,"props":7600,"children":7601},{"class":1190,"line":1200},[7602],{"type":21,"tag":116,"props":7603,"children":7604},{},[7605],{"type":30,"value":7606},"# Transformer Block\n",{"type":21,"tag":116,"props":7608,"children":7609},{"class":1190,"line":1210},[7610],{"type":21,"tag":116,"props":7611,"children":7612},{},[7613],{"type":30,"value":7614},"def forward(self, x):\n",{"type":21,"tag":116,"props":7616,"children":7617},{"class":1190,"line":1219},[7618],{"type":21,"tag":116,"props":7619,"children":7620},{},[7621],{"type":30,"value":7622},"    x = x + Attn(RMSNorm(x))  # 简单的残差\n",{"type":21,"tag":116,"props":7624,"children":7625},{"class":1190,"line":1228},[7626],{"type":21,"tag":116,"props":7627,"children":7628},{},[7629],{"type":30,"value":7630},"    x = x + FFN(RMSNorm(x))\n",{"type":21,"tag":116,"props":7632,"children":7633},{"class":1190,"line":1237},[7634],{"type":21,"tag":116,"props":7635,"children":7636},{},[7637],{"type":30,"value":7638},"    return x\n",{"type":21,"tag":26,"props":7640,"children":7641},{},[7642],{"type":30,"value":7643},"Attn 机制的话，现在有DSA、MLA等等。不过未来的趋势还是掌管稀疏的神——DeepSeek的新Attention的时代，这成本降的太夸张了。",{"type":21,"tag":26,"props":7645,"children":7646},{},[7647],{"type":30,"value":7648},"干了什么？混合注意力（CSA：压缩稀疏注意力， HCA：高度压缩注意力）。不仅仅是上一代注意力的稀疏性，还直接对 Attn 进行压缩。表明了一个潜在的观点，对于长上下文（百万级），即使利用其稀疏性能够将 Attn 的算法复杂度降到 O(L)级。但是面对长上下文存储的 KV Cache还是无能为力。V4 直接对 Attn 进行压缩，减少 KV Cache数量。（Tips: KV Cache可以近似看成 Context 的物理实体）",{"type":21,"tag":1178,"props":7650,"children":7652},{"className":1180,"code":7651,"language":1182,"meta":8,"style":8},"def forward(self, x):\n    # 计算多头注意力 -> xq, xk, xv\n    xq, xk = RMSNorm(xq), RMSNorm(xk) # qk-norm\n    \n    xq, xk = apply_RoPE(xq, xk, cos, sin) # 加入相对位置编码\n    #... 存 KV Cache。  \n    # KV Cache 一般存显存。但是现在有存在SSD上的，比如DeepSeek，使得缓存命中成本惊人的低，是未来降低推理成本的一个方向\n\n    output = F.scaled_dot_product_attention(xq, xk, xk, is_casual=True) # FlashAttention\n    output = output.transpose(1, 2).reshape(bsz, seq_lean, -1)\n\n    return output, past_kv\n",[7653],{"type":21,"tag":1185,"props":7654,"children":7655},{"__ignoreMap":8},[7656,7663,7671,7679,7687,7695,7703,7711,7718,7726,7734,7741],{"type":21,"tag":116,"props":7657,"children":7658},{"class":1190,"line":1191},[7659],{"type":21,"tag":116,"props":7660,"children":7661},{},[7662],{"type":30,"value":7614},{"type":21,"tag":116,"props":7664,"children":7665},{"class":1190,"line":1200},[7666],{"type":21,"tag":116,"props":7667,"children":7668},{},[7669],{"type":30,"value":7670},"    # 计算多头注意力 -> xq, xk, xv\n",{"type":21,"tag":116,"props":7672,"children":7673},{"class":1190,"line":1210},[7674],{"type":21,"tag":116,"props":7675,"children":7676},{},[7677],{"type":30,"value":7678},"    xq, xk = RMSNorm(xq), RMSNorm(xk) # qk-norm\n",{"type":21,"tag":116,"props":7680,"children":7681},{"class":1190,"line":1219},[7682],{"type":21,"tag":116,"props":7683,"children":7684},{},[7685],{"type":30,"value":7686},"    \n",{"type":21,"tag":116,"props":7688,"children":7689},{"class":1190,"line":1228},[7690],{"type":21,"tag":116,"props":7691,"children":7692},{},[7693],{"type":30,"value":7694},"    xq, xk = apply_RoPE(xq, xk, cos, sin) # 加入相对位置编码\n",{"type":21,"tag":116,"props":7696,"children":7697},{"class":1190,"line":1237},[7698],{"type":21,"tag":116,"props":7699,"children":7700},{},[7701],{"type":30,"value":7702},"    #... 存 KV Cache。  \n",{"type":21,"tag":116,"props":7704,"children":7705},{"class":1190,"line":1246},[7706],{"type":21,"tag":116,"props":7707,"children":7708},{},[7709],{"type":30,"value":7710},"    # KV Cache 一般存显存。但是现在有存在SSD上的，比如DeepSeek，使得缓存命中成本惊人的低，是未来降低推理成本的一个方向\n",{"type":21,"tag":116,"props":7712,"children":7713},{"class":1190,"line":1255},[7714],{"type":21,"tag":116,"props":7715,"children":7716},{"emptyLinePlaceholder":1204},[7717],{"type":30,"value":1207},{"type":21,"tag":116,"props":7719,"children":7720},{"class":1190,"line":1264},[7721],{"type":21,"tag":116,"props":7722,"children":7723},{},[7724],{"type":30,"value":7725},"    output = F.scaled_dot_product_attention(xq, xk, xk, is_casual=True) # FlashAttention\n",{"type":21,"tag":116,"props":7727,"children":7728},{"class":1190,"line":1273},[7729],{"type":21,"tag":116,"props":7730,"children":7731},{},[7732],{"type":30,"value":7733},"    output = output.transpose(1, 2).reshape(bsz, seq_lean, -1)\n",{"type":21,"tag":116,"props":7735,"children":7736},{"class":1190,"line":5065},[7737],{"type":21,"tag":116,"props":7738,"children":7739},{"emptyLinePlaceholder":1204},[7740],{"type":30,"value":1207},{"type":21,"tag":116,"props":7742,"children":7743},{"class":1190,"line":6336},[7744],{"type":21,"tag":116,"props":7745,"children":7746},{},[7747],{"type":30,"value":7748},"    return output, past_kv\n",{"type":21,"tag":58,"props":7750,"children":7752},{"id":7751},"optimizer",[7753],{"type":30,"value":7754},"Optimizer",{"type":21,"tag":26,"props":7756,"children":7757},{},[7758],{"type":30,"value":7759},"除了 Embeding 模型和 LM Head Linear层以及其余Linear层、Bias用 AdamW 优化器，其余矩阵用 Muon(dim>=2)。Muon 能够保证矩阵正交性，可以加速收敛，Loss下降更稳定。但是 Muon 较新，一些后端实现的性能不好（比如 PyTorch 2.12 的 mps 后端， 替换 AdamW 之后训练速度变慢了）。",{"type":21,"tag":26,"props":7761,"children":7762},{},[7763],{"type":30,"value":7764},"不过使用 Muon 是趋势，相比 AdamW 能够减少一半optim的参数使用，训练也更稳定。",{"type":21,"tag":58,"props":7766,"children":7768},{"id":7767},"mtp-多-token-预测",[7769],{"type":30,"value":7770},"MTP 多 Token 预测",{"type":21,"tag":26,"props":7772,"children":7773},{},[7774],{"type":30,"value":7775},"一次推理输出多个 Token。",{"type":21,"tag":26,"props":7777,"children":7778},{},[7779],{"type":30,"value":7780},"如何实现？加上一个 MTP 模块（可以当只有一块注意力块的LLM）：输入是模型预测出的t+1，经过类似的步骤但是Transformer Block只有一块（减少计算量以及显存开销），得到t+2。嵌套调用后可以一次推理得到多个token。和主模型的 logits 一对比后，结果一样的就保留，不一样的就重新预测。因为序列相近，语义大概率类似，因此成功率很高，一般可以实现2-3倍的加速比。",{"type":21,"tag":4158,"props":7782,"children":7783},{},[7784],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":7786},[7787,7788,7789,7790,7791],{"id":7524,"depth":1200,"text":7527},{"id":7540,"depth":1200,"text":7540},{"id":7555,"depth":1200,"text":7558},{"id":7751,"depth":1200,"text":7754},{"id":7767,"depth":1200,"text":7770},"content:posts:introduction-to-large-language-model.md","posts\u002Fintroduction-to-large-language-model.md","posts\u002Fintroduction-to-large-language-model",{"_path":7796,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7797,"description":8,"date":7798,"categories":7286,"tags":7799,"draft":7,"body":7800,"_type":4170,"_id":7824,"_source":4172,"_file":7825,"_stem":7826,"_extension":4175},"\u002Fposts\u002Fthought-about-coding-agent","关于 Coding Agent 使用的遐思","2026-06-03 17:54:20",[4182],{"type":18,"children":7801,"toc":7822},[7802,7807,7812,7817],{"type":21,"tag":26,"props":7803,"children":7804},{},[7805],{"type":30,"value":7806},"10年代以后，GitHub激起来的开源浪潮改变了软件工业；全球的 contributor 通过 GitHub 贡献代码，为开源社区做出贡献。\n这公开的代码库，自然成为 AI 训练的素材。另外 DeepWiki 之类通过 AI 解释代码，帮助开发者快速理解代码。\n人们使用 AI 编写文档、注释、行内补全，能力越发强大，DeepWiki 这样直接分析整个代码仓库给出文档的软件大大降低了开发者\n了解某一特性实现的成本。",{"type":21,"tag":26,"props":7808,"children":7809},{},[7810],{"type":30,"value":7811},"如果想复刻某一特性，完全可以在 DeepWiki 上询问相关实现细节，减少了开发者理解代码的难度，同时大大减短了开发者理解的时间。",{"type":21,"tag":26,"props":7813,"children":7814},{},[7815],{"type":30,"value":7816},"在 Research 领域，alphaxiv.com 等产品也对传统的检索、查阅文献的流程进行了挑战。对于这样生产力密集的事情，AI 能够极大提升人的效率。",{"type":21,"tag":26,"props":7818,"children":7819},{},[7820],{"type":30,"value":7821},"但是我一直在日常生活中思考，AI能帮我做到些什么吗？我追问过自己很多遍，最终答案是日常生活用 AI 赋能的 RoI 对一个普通人来说并不高，并不是特别值得做的事情（从能够做成的\u002F需要花费的成本来说）。",{"title":8,"searchDepth":1200,"depth":1210,"links":7823},[],"content:posts:thought-about-coding-agent.md","posts\u002Fthought-about-coding-agent.md","posts\u002Fthought-about-coding-agent",{"_path":7828,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":7829,"description":7830,"date":7831,"categories":12,"tags":7832,"body":7834,"_type":4170,"_id":8892,"_source":4172,"_file":8893,"_stem":8894,"_extension":4175},"\u002Fposts\u002Fabout-ssh-usage","关于SSH的使用——客户端篇","介绍SSH客户端的用法。","2025-06-17 02:44:57",[7833],"工具",{"type":18,"children":7835,"toc":8879},[7836,7841,7854,7859,7872,8030,8035,8102,8147,8168,8268,8274,8279,8285,8290,8295,8332,8345,8350,8355,8360,8393,8398,8403,8408,8417,8422,8427,8432,8535,8540,8577,8672,8685,8698,8703,8732,8769,8774,8780,8785,8790,8795,8848,8853,8864,8875],{"type":21,"tag":26,"props":7837,"children":7838},{},[7839],{"type":30,"value":7840},"本文正在编写中...",{"type":21,"tag":26,"props":7842,"children":7843},{},[7844,7846,7852],{"type":30,"value":7845},"参见 ",{"type":21,"tag":75,"props":7847,"children":7849},{"href":7848},"#reference",[7850],{"type":30,"value":7851},"Reference",{"type":30,"value":7853}," 部分。",{"type":21,"tag":26,"props":7855,"children":7856},{},[7857],{"type":30,"value":7858},"TL;DR",{"type":21,"tag":26,"props":7860,"children":7861},{},[7862,7864,7870],{"type":30,"value":7863},"Secure Shell is a protocol used to securely log onto remote systems.\nIt can be used for logging or executing commands on a remote server.\nMore information: ",{"type":21,"tag":75,"props":7865,"children":7868},{"href":7866,"rel":7867},"https:\u002F\u002Fman.openbsd.org\u002Fssh",[79],[7869],{"type":30,"value":7866},{"type":30,"value":7871},".",{"type":21,"tag":1317,"props":7873,"children":7874},{},[7875,7891,7906,7945,7956,7981,8014,8025],{"type":21,"tag":1321,"props":7876,"children":7877},{},[7878,7883,7885],{"type":21,"tag":33,"props":7879,"children":7880},{},[7881],{"type":30,"value":7882},"Connect to a remote server",{"type":30,"value":7884},":\n",{"type":21,"tag":1185,"props":7886,"children":7888},{"className":7887},[],[7889],{"type":30,"value":7890},"ssh username@remote_host",{"type":21,"tag":1321,"props":7892,"children":7893},{},[7894,7899,7900],{"type":21,"tag":33,"props":7895,"children":7896},{},[7897],{"type":30,"value":7898},"Connect to a remote server with a specific identity (private key)",{"type":30,"value":7884},{"type":21,"tag":1185,"props":7901,"children":7903},{"className":7902},[],[7904],{"type":30,"value":7905},"ssh -i path\u002Fto\u002Fkey_file username@remote_host",{"type":21,"tag":1321,"props":7907,"children":7908},{},[7909,7922,7924,7929,7931,7937,7939],{"type":21,"tag":33,"props":7910,"children":7911},{},[7912,7914,7920],{"type":30,"value":7913},"Connect to a remote server with IP ",{"type":21,"tag":1185,"props":7915,"children":7917},{"className":7916},[],[7918],{"type":30,"value":7919},"10.0.0.1",{"type":30,"value":7921}," and using a specific [p]ort",{"type":30,"value":7923},"(Note: ",{"type":21,"tag":1185,"props":7925,"children":7927},{"className":7926},[],[7928],{"type":30,"value":7919},{"type":30,"value":7930}," can be shortened to ",{"type":21,"tag":1185,"props":7932,"children":7934},{"className":7933},[],[7935],{"type":30,"value":7936},"10.1",{"type":30,"value":7938},"):\n",{"type":21,"tag":1185,"props":7940,"children":7942},{"className":7941},[],[7943],{"type":30,"value":7944},"ssh username@10.0.0.1 -p 2222",{"type":21,"tag":1321,"props":7946,"children":7947},{},[7948,7950],{"type":30,"value":7949},"Run a command on a remote server with a [t]ty allocation allowing interaction with the remote command:\n",{"type":21,"tag":1185,"props":7951,"children":7953},{"className":7952},[],[7954],{"type":30,"value":7955},"ssh username@remote_host -t command command_arguments",{"type":21,"tag":1321,"props":7957,"children":7958},{},[7959,7961,7966,7968,7974,7975],{"type":30,"value":7960},"SSH tunneling: ",{"type":21,"tag":33,"props":7962,"children":7963},{},[7964],{"type":30,"value":7965},"[D]ynamic port forwarding",{"type":30,"value":7967}," (SOCKS proxy on ",{"type":21,"tag":1185,"props":7969,"children":7971},{"className":7970},[],[7972],{"type":30,"value":7973},"localhost:1080",{"type":30,"value":7938},{"type":21,"tag":1185,"props":7976,"children":7978},{"className":7977},[],[7979],{"type":30,"value":7980},"ssh -D 1080 username@remote_host",{"type":21,"tag":1321,"props":7982,"children":7983},{},[7984,7985,7990,7992,7998,8000,8006,8008],{"type":30,"value":7960},{"type":21,"tag":33,"props":7986,"children":7987},{},[7988],{"type":30,"value":7989},"Forward a specific port",{"type":30,"value":7991}," (",{"type":21,"tag":1185,"props":7993,"children":7995},{"className":7994},[],[7996],{"type":30,"value":7997},"localhost:9999",{"type":30,"value":7999}," to ",{"type":21,"tag":1185,"props":8001,"children":8003},{"className":8002},[],[8004],{"type":30,"value":8005},"example.org:80",{"type":30,"value":8007},") along with disabling pseudo-[T]ty allocation and executio[N] of remote commands:\n",{"type":21,"tag":1185,"props":8009,"children":8011},{"className":8010},[],[8012],{"type":30,"value":8013},"ssh -L 9999:example.org:80 -N -T username@remote_host",{"type":21,"tag":1321,"props":8015,"children":8016},{},[8017,8019],{"type":30,"value":8018},"SSH [J]umping: Connect through a jumphost to a remote server (Multiple jump hops may be specified separated by comma characters):\n",{"type":21,"tag":1185,"props":8020,"children":8022},{"className":8021},[],[8023],{"type":30,"value":8024},"ssh -J username@jump_host username@remote_host",{"type":21,"tag":1321,"props":8026,"children":8027},{},[8028],{"type":30,"value":8029},"Close a hanged session:\n\u003CEnter>\u003C~>\u003C.>",{"type":21,"tag":58,"props":8031,"children":8033},{"id":8032},"公钥认证",[8034],{"type":30,"value":8032},{"type":21,"tag":26,"props":8036,"children":8037},{},[8038,8040,8046,8048,8054,8056,8062,8063,8069,8070,8076,8078,8084,8086,8092,8094,8100],{"type":30,"value":8039},"默认情况下，SSH 会寻找 ",{"type":21,"tag":1185,"props":8041,"children":8043},{"className":8042},[],[8044],{"type":30,"value":8045},"~\u002F.ssh\u002Fid_*",{"type":30,"value":8047}," 作为私钥，其中 ",{"type":21,"tag":1185,"props":8049,"children":8051},{"className":8050},[],[8052],{"type":30,"value":8053},"*",{"type":30,"value":8055}," 部分可以是 ",{"type":21,"tag":1185,"props":8057,"children":8059},{"className":8058},[],[8060],{"type":30,"value":8061},"rsa",{"type":30,"value":4214},{"type":21,"tag":1185,"props":8064,"children":8066},{"className":8065},[],[8067],{"type":30,"value":8068},"ecdsa",{"type":30,"value":4214},{"type":21,"tag":1185,"props":8071,"children":8073},{"className":8072},[],[8074],{"type":30,"value":8075},"ed25519",{"type":30,"value":8077}," 等，也可以通过 ",{"type":21,"tag":1185,"props":8079,"children":8081},{"className":8080},[],[8082],{"type":30,"value":8083},"-i",{"type":30,"value":8085}," 参数指定私钥文件。私钥的文件名加上 ",{"type":21,"tag":1185,"props":8087,"children":8089},{"className":8088},[],[8090],{"type":30,"value":8091},".pub",{"type":30,"value":8093}," 后缀就是公钥文件，暂时没有方法指定公钥文件的路径。如果要在配置文件中指定一个或多个私钥，可以使用 ",{"type":21,"tag":1185,"props":8095,"children":8097},{"className":8096},[],[8098],{"type":30,"value":8099},"IdentityFile",{"type":30,"value":8101}," 选项，例如：",{"type":21,"tag":1178,"props":8103,"children":8107},{"className":8104,"code":8105,"language":8106,"meta":8,"style":8},"language-shell shiki shiki-themes github-light github-dark","Host example\n  IdentityFile ~\u002F.ssh\u002Fid_rsa\n  #CertificateFile ~\u002F.ssh\u002Fid_rsa-cert.pub\n","shell",[8108],{"type":21,"tag":1185,"props":8109,"children":8110},{"__ignoreMap":8},[8111,8125,8138],{"type":21,"tag":116,"props":8112,"children":8113},{"class":1190,"line":1191},[8114,8120],{"type":21,"tag":116,"props":8115,"children":8117},{"style":8116},"--shiki-default:#6F42C1;--shiki-dark:#B392F0",[8118],{"type":30,"value":8119},"Host",{"type":21,"tag":116,"props":8121,"children":8122},{"style":4838},[8123],{"type":30,"value":8124}," example\n",{"type":21,"tag":116,"props":8126,"children":8127},{"class":1190,"line":1200},[8128,8133],{"type":21,"tag":116,"props":8129,"children":8130},{"style":8116},[8131],{"type":30,"value":8132},"  IdentityFile",{"type":21,"tag":116,"props":8134,"children":8135},{"style":4838},[8136],{"type":30,"value":8137}," ~\u002F.ssh\u002Fid_rsa\n",{"type":21,"tag":116,"props":8139,"children":8140},{"class":1190,"line":1210},[8141],{"type":21,"tag":116,"props":8142,"children":8144},{"style":8143},"--shiki-default:#6A737D;--shiki-dark:#6A737D",[8145],{"type":30,"value":8146},"  #CertificateFile ~\u002F.ssh\u002Fid_rsa-cert.pub\n",{"type":21,"tag":26,"props":8148,"children":8149},{},[8150,8152,8158,8160,8166],{"type":30,"value":8151},"一般来说，除非为了兼容一些非常古老（如 10 年前的）或非常简单的（如嵌入式）系统而不得不使用较短的 RSA 密钥对的时候，我们推荐使用 Ed25519 密钥对，或者 ECDSA 密钥对。这两种基于椭圆曲线的密码学算法比 RSA 更安全，而且性能也更好。如果不得不使用 RSA 的话，请尽可能使用 3072 位或更长的密钥长度。密钥长度可以在使用 ",{"type":21,"tag":1185,"props":8153,"children":8155},{"className":8154},[],[8156],{"type":30,"value":8157},"ssh-keygen",{"type":30,"value":8159}," 生成密钥对时指定（",{"type":21,"tag":1185,"props":8161,"children":8163},{"className":8162},[],[8164],{"type":30,"value":8165},"-b",{"type":30,"value":8167},"），其中不同算法支持与推荐的长度也是不同的：",{"type":21,"tag":3883,"props":8169,"children":8170},{},[8171,8198],{"type":21,"tag":3887,"props":8172,"children":8173},{},[8174],{"type":21,"tag":3891,"props":8175,"children":8176},{},[8177,8183,8188,8193],{"type":21,"tag":3895,"props":8178,"children":8180},{"align":8179},"center",[8181],{"type":30,"value":8182},"算法",{"type":21,"tag":3895,"props":8184,"children":8185},{"align":8179},[8186],{"type":30,"value":8187},"支持长度",{"type":21,"tag":3895,"props":8189,"children":8190},{"align":8179},[8191],{"type":30,"value":8192},"推荐长度",{"type":21,"tag":3895,"props":8194,"children":8195},{},[8196],{"type":30,"value":8197},"说明",{"type":21,"tag":3911,"props":8199,"children":8200},{},[8201,8224,8246],{"type":21,"tag":3891,"props":8202,"children":8203},{},[8204,8209,8214,8219],{"type":21,"tag":3918,"props":8205,"children":8206},{"align":8179},[8207],{"type":30,"value":8208},"RSA",{"type":21,"tag":3918,"props":8210,"children":8211},{"align":8179},[8212],{"type":30,"value":8213},"1024-4096",{"type":21,"tag":3918,"props":8215,"children":8216},{"align":8179},[8217],{"type":30,"value":8218},"3072 或以上",{"type":21,"tag":3918,"props":8220,"children":8221},{},[8222],{"type":30,"value":8223},"曾经的推荐长度是 2048 位，但 2020 年以后认为这个长度已不够安全",{"type":21,"tag":3891,"props":8225,"children":8226},{},[8227,8232,8237,8241],{"type":21,"tag":3918,"props":8228,"children":8229},{"align":8179},[8230],{"type":30,"value":8231},"ECDSA",{"type":21,"tag":3918,"props":8233,"children":8234},{"align":8179},[8235],{"type":30,"value":8236},"256 \u002F 384 \u002F 521",{"type":21,"tag":3918,"props":8238,"children":8239},{"align":8179},[8240],{"type":30,"value":8236},{"type":21,"tag":3918,"props":8242,"children":8243},{},[8244],{"type":30,"value":8245},"由于椭圆曲线参数选择的特殊性，只有这三种长度可选。注意最后一个选项是 521，不是 512",{"type":21,"tag":3891,"props":8247,"children":8248},{},[8249,8254,8259,8263],{"type":21,"tag":3918,"props":8250,"children":8251},{"align":8179},[8252],{"type":30,"value":8253},"Ed25519",{"type":21,"tag":3918,"props":8255,"children":8256},{"align":8179},[8257],{"type":30,"value":8258},"-",{"type":21,"tag":3918,"props":8260,"children":8261},{"align":8179},[8262],{"type":30,"value":8258},{"type":21,"tag":3918,"props":8264,"children":8265},{},[8266],{"type":30,"value":8267},"Ed25519 是基于 Edwards 曲线的算法，没有“长度”这种参数",{"type":21,"tag":58,"props":8269,"children":8271},{"id":8270},"端口转发port-transportings",[8272],{"type":30,"value":8273},"端口转发（Port Transportings）",{"type":21,"tag":26,"props":8275,"children":8276},{},[8277],{"type":30,"value":8278},"SSH 配置 TCP 端口转发的格式为 [bind_address:]port:host:hostport，SSH 支持三种端口转发：",{"type":21,"tag":4502,"props":8280,"children":8282},{"id":8281},"动态端口转发dynamic-port-forwarding",[8283],{"type":30,"value":8284},"动态端口转发（Dynamic port forwarding）",{"type":21,"tag":26,"props":8286,"children":8287},{},[8288],{"type":30,"value":8289},"在本地监听一个端口用作 SOCKS5 代理。",{"type":21,"tag":26,"props":8291,"children":8292},{},[8293],{"type":30,"value":8294},"例1 SOCKS服务器",{"type":21,"tag":1178,"props":8296,"children":8300},{"className":8297,"code":8298,"language":8299,"meta":8,"style":8},"language-bash shiki shiki-themes github-light github-dark","ssh -D 1080 vps -N\n","bash",[8301],{"type":21,"tag":1185,"props":8302,"children":8303},{"__ignoreMap":8},[8304],{"type":21,"tag":116,"props":8305,"children":8306},{"class":1190,"line":1191},[8307,8312,8317,8322,8327],{"type":21,"tag":116,"props":8308,"children":8309},{"style":8116},[8310],{"type":30,"value":8311},"ssh",{"type":21,"tag":116,"props":8313,"children":8314},{"style":4853},[8315],{"type":30,"value":8316}," -D",{"type":21,"tag":116,"props":8318,"children":8319},{"style":4853},[8320],{"type":30,"value":8321}," 1080",{"type":21,"tag":116,"props":8323,"children":8324},{"style":4838},[8325],{"type":30,"value":8326}," vps",{"type":21,"tag":116,"props":8328,"children":8329},{"style":4853},[8330],{"type":30,"value":8331}," -N\n",{"type":21,"tag":26,"props":8333,"children":8334},{},[8335,8337,8343],{"type":30,"value":8336},"此时可将远程主机 vps 作为 SOCKS 服务器使用，比如 ",{"type":21,"tag":1185,"props":8338,"children":8340},{"className":8339},[],[8341],{"type":30,"value":8342},"curl -x socks5:\u002F\u002Flocalhost:1080 google.com",{"type":30,"value":8344},"。可以代理绝大多数软件：浏览器，社交媒体，开发工具（如 Git）等。",{"type":21,"tag":26,"props":8346,"children":8347},{},[8348],{"type":30,"value":8349},"另外，对于大学生来说，SSH 动态端口转发结合 OpenVPN 使用可以突破学校上网设备限制。",{"type":21,"tag":4502,"props":8351,"children":8353},{"id":8352},"本地端口转发",[8354],{"type":30,"value":8352},{"type":21,"tag":26,"props":8356,"children":8357},{},[8358],{"type":30,"value":8359},"也叫 Single port forward TCP tunnels。",{"type":21,"tag":1178,"props":8361,"children":8363},{"className":8297,"code":8362,"language":8299,"meta":8,"style":8},"ssh -L 0.0.0.0:8000:localhost:8000 host -N\n",[8364],{"type":21,"tag":1185,"props":8365,"children":8366},{"__ignoreMap":8},[8367],{"type":21,"tag":116,"props":8368,"children":8369},{"class":1190,"line":1191},[8370,8374,8379,8384,8389],{"type":21,"tag":116,"props":8371,"children":8372},{"style":8116},[8373],{"type":30,"value":8311},{"type":21,"tag":116,"props":8375,"children":8376},{"style":4853},[8377],{"type":30,"value":8378}," -L",{"type":21,"tag":116,"props":8380,"children":8381},{"style":4838},[8382],{"type":30,"value":8383}," 0.0.0.0:8000:localhost:8000",{"type":21,"tag":116,"props":8385,"children":8386},{"style":4838},[8387],{"type":30,"value":8388}," host",{"type":21,"tag":116,"props":8390,"children":8391},{"style":4853},[8392],{"type":30,"value":8331},{"type":21,"tag":4502,"props":8394,"children":8396},{"id":8395},"远程端口转发",[8397],{"type":30,"value":8395},{"type":21,"tag":26,"props":8399,"children":8400},{},[8401],{"type":30,"value":8402},"也叫 Reverse TCP Tunnels。",{"type":21,"tag":26,"props":8404,"children":8405},{},[8406],{"type":30,"value":8407},"本地端口转发和远程端口转发的工作模式可以结合由 Ivan Velichko 绘制的图片来理解：",{"type":21,"tag":26,"props":8409,"children":8410},{},[8411],{"type":21,"tag":8412,"props":8413,"children":8416},"img",{"alt":8414,"src":8415},"ssh-tunnels","https:\u002F\u002F201.ustclug.org\u002Fimages\u002Fiximiuz-ssh-tunnels-2000-opt.png",[],{"type":21,"tag":26,"props":8418,"children":8419},{},[8420],{"type":30,"value":8421},"结合端口转发与代理的例子",{"type":21,"tag":26,"props":8423,"children":8424},{},[8425],{"type":30,"value":8426},"让服务器使用本机的SSH密钥和网络环境。",{"type":21,"tag":26,"props":8428,"children":8429},{},[8430],{"type":30,"value":8431},"一行命令。",{"type":21,"tag":1178,"props":8433,"children":8435},{"className":8104,"code":8434,"language":8106,"meta":8,"style":8},"ssh -A -D 1134 localhost -t ssh -A -R 1220:localhost:1134 [user]@remote_server -t http_proxy=socks5h:\u002F\u002F127.0.0.1:1220 https_proxy=socks5h:\u002F\u002F127.0.0.1:1220 all_proxy=socks5h:\u002F\u002F127.0.0.1:1220 bash\n",[8436],{"type":21,"tag":1185,"props":8437,"children":8438},{"__ignoreMap":8},[8439],{"type":21,"tag":116,"props":8440,"children":8441},{"class":1190,"line":1191},[8442,8446,8451,8455,8460,8465,8470,8475,8479,8484,8489,8494,8499,8504,8509,8513,8517,8522,8526,8530],{"type":21,"tag":116,"props":8443,"children":8444},{"style":8116},[8445],{"type":30,"value":8311},{"type":21,"tag":116,"props":8447,"children":8448},{"style":4853},[8449],{"type":30,"value":8450}," -A",{"type":21,"tag":116,"props":8452,"children":8453},{"style":4853},[8454],{"type":30,"value":8316},{"type":21,"tag":116,"props":8456,"children":8457},{"style":4853},[8458],{"type":30,"value":8459}," 1134",{"type":21,"tag":116,"props":8461,"children":8462},{"style":4838},[8463],{"type":30,"value":8464}," localhost",{"type":21,"tag":116,"props":8466,"children":8467},{"style":4853},[8468],{"type":30,"value":8469}," -t",{"type":21,"tag":116,"props":8471,"children":8472},{"style":4838},[8473],{"type":30,"value":8474}," ssh",{"type":21,"tag":116,"props":8476,"children":8477},{"style":4853},[8478],{"type":30,"value":8450},{"type":21,"tag":116,"props":8480,"children":8481},{"style":4853},[8482],{"type":30,"value":8483}," -R",{"type":21,"tag":116,"props":8485,"children":8486},{"style":4838},[8487],{"type":30,"value":8488}," 1220:localhost:1134",{"type":21,"tag":116,"props":8490,"children":8491},{"style":4844},[8492],{"type":30,"value":8493}," [user]@remote_server -t http_proxy",{"type":21,"tag":116,"props":8495,"children":8497},{"style":8496},"--shiki-default:#D73A49;--shiki-dark:#F97583",[8498],{"type":30,"value":753},{"type":21,"tag":116,"props":8500,"children":8501},{"style":4838},[8502],{"type":30,"value":8503},"socks5h:\u002F\u002F127.0.0.1:1220",{"type":21,"tag":116,"props":8505,"children":8506},{"style":4844},[8507],{"type":30,"value":8508}," https_proxy",{"type":21,"tag":116,"props":8510,"children":8511},{"style":8496},[8512],{"type":30,"value":753},{"type":21,"tag":116,"props":8514,"children":8515},{"style":4838},[8516],{"type":30,"value":8503},{"type":21,"tag":116,"props":8518,"children":8519},{"style":4844},[8520],{"type":30,"value":8521}," all_proxy",{"type":21,"tag":116,"props":8523,"children":8524},{"style":8496},[8525],{"type":30,"value":753},{"type":21,"tag":116,"props":8527,"children":8528},{"style":4838},[8529],{"type":30,"value":8503},{"type":21,"tag":116,"props":8531,"children":8532},{"style":8116},[8533],{"type":30,"value":8534}," bash\n",{"type":21,"tag":26,"props":8536,"children":8537},{},[8538],{"type":30,"value":8539},"这里使用了嵌套式的 SSH 命令连接远程主机。首先在本地使用动态端口转发启动一个 SOCKS 服务器，然后通过远程端口转发把本地 SOCKS 服务器端口转发到远程服务器，并且直接设置好代理的环境变量，这里设置了 SOCKS5H 协议，让远程服务器也使用本机的 DNS 解析。这样实现了让远程服务器使用本地的 SSH 密钥和网络环境的功能。",{"type":21,"tag":26,"props":8541,"children":8542},{},[8543,8545,8551,8553,8559,8561,8567,8569,8575],{"type":30,"value":8544},"其中 ",{"type":21,"tag":1185,"props":8546,"children":8548},{"className":8547},[],[8549],{"type":30,"value":8550},"-A",{"type":30,"value":8552}," 开启 SSH Agent 转发，用于转发添加到 SSH Agent 的密钥到远程服务器，",{"type":21,"tag":1185,"props":8554,"children":8556},{"className":8555},[],[8557],{"type":30,"value":8558},"-D 1134 localhost",{"type":30,"value":8560}," 在本地开启一个端口在 ",{"type":21,"tag":1185,"props":8562,"children":8564},{"className":8563},[],[8565],{"type":30,"value":8566},"1134",{"type":30,"value":8568}," 的服务器，",{"type":21,"tag":1185,"props":8570,"children":8572},{"className":8571},[],[8573],{"type":30,"value":8574},"-t",{"type":30,"value":8576}," 强制 tty 分配，用于命令执行。",{"type":21,"tag":1178,"props":8578,"children":8580},{"className":8104,"code":8579,"language":8106,"meta":8,"style":8},"ssh -A -D 1134 localhost -t ssh -A -R 1220:localhost:1134 [user]@remote-server\nexport http_proxy=socks5h:\u002F\u002F127.0.0.1:1220 https_proxy=socks5h:\u002F\u002F127.0.0.1:1220 all_proxy=socks5h:\u002F\u002F127.0.0.1:1220\n",[8581],{"type":21,"tag":1185,"props":8582,"children":8583},{"__ignoreMap":8},[8584,8632],{"type":21,"tag":116,"props":8585,"children":8586},{"class":1190,"line":1191},[8587,8591,8595,8599,8603,8607,8611,8615,8619,8623,8627],{"type":21,"tag":116,"props":8588,"children":8589},{"style":8116},[8590],{"type":30,"value":8311},{"type":21,"tag":116,"props":8592,"children":8593},{"style":4853},[8594],{"type":30,"value":8450},{"type":21,"tag":116,"props":8596,"children":8597},{"style":4853},[8598],{"type":30,"value":8316},{"type":21,"tag":116,"props":8600,"children":8601},{"style":4853},[8602],{"type":30,"value":8459},{"type":21,"tag":116,"props":8604,"children":8605},{"style":4838},[8606],{"type":30,"value":8464},{"type":21,"tag":116,"props":8608,"children":8609},{"style":4853},[8610],{"type":30,"value":8469},{"type":21,"tag":116,"props":8612,"children":8613},{"style":4838},[8614],{"type":30,"value":8474},{"type":21,"tag":116,"props":8616,"children":8617},{"style":4853},[8618],{"type":30,"value":8450},{"type":21,"tag":116,"props":8620,"children":8621},{"style":4853},[8622],{"type":30,"value":8483},{"type":21,"tag":116,"props":8624,"children":8625},{"style":4838},[8626],{"type":30,"value":8488},{"type":21,"tag":116,"props":8628,"children":8629},{"style":4844},[8630],{"type":30,"value":8631}," [user]@remote-server\n",{"type":21,"tag":116,"props":8633,"children":8634},{"class":1190,"line":1200},[8635,8640,8645,8649,8654,8658,8663,8667],{"type":21,"tag":116,"props":8636,"children":8637},{"style":8496},[8638],{"type":30,"value":8639},"export",{"type":21,"tag":116,"props":8641,"children":8642},{"style":4844},[8643],{"type":30,"value":8644}," http_proxy",{"type":21,"tag":116,"props":8646,"children":8647},{"style":8496},[8648],{"type":30,"value":753},{"type":21,"tag":116,"props":8650,"children":8651},{"style":4844},[8652],{"type":30,"value":8653},"socks5h:\u002F\u002F127.0.0.1:1220 https_proxy",{"type":21,"tag":116,"props":8655,"children":8656},{"style":8496},[8657],{"type":30,"value":753},{"type":21,"tag":116,"props":8659,"children":8660},{"style":4844},[8661],{"type":30,"value":8662},"socks5h:\u002F\u002F127.0.0.1:1220 all_proxy",{"type":21,"tag":116,"props":8664,"children":8665},{"style":8496},[8666],{"type":30,"value":753},{"type":21,"tag":116,"props":8668,"children":8669},{"style":4844},[8670],{"type":30,"value":8671},"socks5h:\u002F\u002F127.0.0.1:1220\n",{"type":21,"tag":26,"props":8673,"children":8674},{},[8675,8677,8683],{"type":30,"value":8676},"可以使用 ",{"type":21,"tag":1185,"props":8678,"children":8680},{"className":8679},[],[8681],{"type":30,"value":8682},"ssh -v \u003CURL>",{"type":30,"value":8684},"，查看日志来观察是否远程服务器使用了本机的密钥。",{"type":21,"tag":26,"props":8686,"children":8687},{},[8688,8690,8696],{"type":30,"value":8689},"使用 ",{"type":21,"tag":1185,"props":8691,"children":8693},{"className":8692},[],[8694],{"type":30,"value":8695},"curl -4 ip.sb",{"type":30,"value":8697},"，查看远程服务器是否使用了本机作为代理，若成功你应该看到的是本机的IPv4。",{"type":21,"tag":58,"props":8699,"children":8701},{"id":8700},"跳板",[8702],{"type":30,"value":8700},{"type":21,"tag":1178,"props":8704,"children":8706},{"className":8297,"code":8705,"language":8299,"meta":8,"style":8},"ssh -J jumpuser1@jumphost1,jumpuser2@jumphost2,...,jumpuserN@jumphostN user@host\n",[8707],{"type":21,"tag":1185,"props":8708,"children":8709},{"__ignoreMap":8},[8710],{"type":21,"tag":116,"props":8711,"children":8712},{"class":1190,"line":1191},[8713,8717,8722,8727],{"type":21,"tag":116,"props":8714,"children":8715},{"style":8116},[8716],{"type":30,"value":8311},{"type":21,"tag":116,"props":8718,"children":8719},{"style":4853},[8720],{"type":30,"value":8721}," -J",{"type":21,"tag":116,"props":8723,"children":8724},{"style":4838},[8725],{"type":30,"value":8726}," jumpuser1@jumphost1,jumpuser2@jumphost2,...,jumpuserN@jumphostN",{"type":21,"tag":116,"props":8728,"children":8729},{"style":4838},[8730],{"type":30,"value":8731}," user@host\n",{"type":21,"tag":26,"props":8733,"children":8734},{},[8735,8737,8743,8745,8751,8753,8759,8761,8767],{"type":30,"value":8736},"登陆到 ",{"type":21,"tag":1185,"props":8738,"children":8740},{"className":8739},[],[8741],{"type":30,"value":8742},"—J",{"type":30,"value":8744}," 指定的 ",{"type":21,"tag":1185,"props":8746,"children":8748},{"className":8747},[],[8749],{"type":30,"value":8750},"jumpuser1@jumphost1",{"type":30,"value":8752},"，再从 ",{"type":21,"tag":1185,"props":8754,"children":8756},{"className":8755},[],[8757],{"type":30,"value":8758},"jumphost1",{"type":30,"value":8760}," 登陆到 ",{"type":21,"tag":1185,"props":8762,"children":8764},{"className":8763},[],[8765],{"type":30,"value":8766},"jumpuser2@jumphost2",{"type":30,"value":8768},"，以此类推来登陆到目标远程主机。在网络环境直接与目标主机隔离的时候有用，比如可以将 AWS 海外服务器作为跳板登陆其他海外的服务器。",{"type":21,"tag":58,"props":8770,"children":8772},{"id":8771},"连接复用",[8773],{"type":30,"value":8771},{"type":21,"tag":58,"props":8775,"children":8777},{"id":8776},"x11转发",[8778],{"type":30,"value":8779},"X11转发",{"type":21,"tag":58,"props":8781,"children":8783},{"id":8782},"配置文件",[8784],{"type":30,"value":8782},{"type":21,"tag":26,"props":8786,"children":8787},{},[8788],{"type":30,"value":8789},"SSH可以在配置文件中使用任意的命令行参数。",{"type":21,"tag":58,"props":8791,"children":8793},{"id":8792},"reference",[8794],{"type":30,"value":7851},{"type":21,"tag":3448,"props":8796,"children":8797},{},[8798,8808,8818,8828,8838],{"type":21,"tag":1321,"props":8799,"children":8800},{},[8801],{"type":21,"tag":75,"props":8802,"children":8805},{"href":8803,"rel":8804},"https:\u002F\u002Ftldr.inbrowser.app\u002Fpages\u002Fcommon\u002Fssh",[79],[8806],{"type":30,"value":8807},"ssh - tldr pages",{"type":21,"tag":1321,"props":8809,"children":8810},{},[8811],{"type":21,"tag":75,"props":8812,"children":8815},{"href":8813,"rel":8814},"https:\u002F\u002Fwww.ruanyifeng.com\u002Fblog\u002F2011\u002F12\u002Fssh_port_forwarding.html",[79],[8816],{"type":30,"value":8817},"SSH 原理与运用（二）：远程操作与端口转发",{"type":21,"tag":1321,"props":8819,"children":8820},{},[8821],{"type":21,"tag":75,"props":8822,"children":8825},{"href":8823,"rel":8824},"https:\u002F\u002F201.ustclug.org\u002Fdev\u002Fssh\u002F",[79],[8826],{"type":30,"value":8827},"SSH 使用技巧 - Linux 201 by USTC LUG",{"type":21,"tag":1321,"props":8829,"children":8830},{},[8831],{"type":21,"tag":75,"props":8832,"children":8835},{"href":8833,"rel":8834},"https:\u002F\u002Fsuperuser.com\u002Fquestions\u002F96489\u002Fan-ssh-tunnel-via-multiple-hops",[79],[8836],{"type":30,"value":8837},"An SSH tunnel via multiple hops - superuser.com",{"type":21,"tag":1321,"props":8839,"children":8840},{},[8841],{"type":21,"tag":75,"props":8842,"children":8845},{"href":8843,"rel":8844},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fauthentication\u002Fconnecting-to-github-with-ssh\u002Fusing-ssh-agent-forwarding",[79],[8846],{"type":30,"value":8847},"Using SSH agent forwarding - GitHub Docs",{"type":21,"tag":26,"props":8849,"children":8850},{},[8851],{"type":30,"value":8852},"还在看的资料",{"type":21,"tag":26,"props":8854,"children":8855},{},[8856,8862],{"type":21,"tag":75,"props":8857,"children":8860},{"href":8858,"rel":8859},"https:\u002F\u002Fwww.baeldung.com\u002Flinux\u002Fssh-tunneling-and-proxying",[79],[8861],{"type":30,"value":8858},{"type":30,"value":8863}," 讲了更多关于 SSH Tunnel 和代理的。",{"type":21,"tag":26,"props":8865,"children":8866},{},[8867,8873],{"type":21,"tag":75,"props":8868,"children":8871},{"href":8869,"rel":8870},"https:\u002F\u002Fplantegg.github.io\u002F2019\u002F06\u002F02\u002F%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89\u002F",[79],[8872],{"type":30,"value":8869},{"type":30,"value":8874}," 讲了很多琐碎的东西，但似乎看起来写的不好，太过冗杂了，解释的也不清楚。",{"type":21,"tag":4158,"props":8876,"children":8877},{},[8878],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":8880},[8881,8882,8887,8888,8889,8890,8891],{"id":8032,"depth":1200,"text":8032},{"id":8270,"depth":1200,"text":8273,"children":8883},[8884,8885,8886],{"id":8281,"depth":1210,"text":8284},{"id":8352,"depth":1210,"text":8352},{"id":8395,"depth":1210,"text":8395},{"id":8700,"depth":1200,"text":8700},{"id":8771,"depth":1200,"text":8771},{"id":8776,"depth":1200,"text":8779},{"id":8782,"depth":1200,"text":8782},{"id":8792,"depth":1200,"text":7851},"content:posts:about-ssh-usage.md","posts\u002Fabout-ssh-usage.md","posts\u002Fabout-ssh-usage",{"_path":8896,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":8897,"description":8898,"date":8899,"categories":12,"tags":8900,"body":8902,"_type":4170,"_id":9192,"_source":4172,"_file":9193,"_stem":9194,"_extension":4175},"\u002Fposts\u002Fopensourcesoftwarestarttutorial","如何开始一个开源项目？","浅谈我对开源项目的认知。","2025-04-17 18:00:00",[8901],"开源",{"type":18,"children":8903,"toc":9174},[8904,8909,8914,8919,8924,8987,8992,8997,9020,9025,9030,9035,9041,9046,9052,9064,9070,9075,9081,9086,9092,9097,9102,9110,9115,9121,9164,9169],{"type":21,"tag":26,"props":8905,"children":8906},{},[8907],{"type":30,"value":8908},"接触开源零零散散也快有三年了，虽然听上去时间很长，但是我实际参与的开源项目寥寥无几，只是描述我的见闻而已。",{"type":21,"tag":26,"props":8910,"children":8911},{},[8912],{"type":30,"value":8913},"最基础的就是些开源相关的常识，比如开源协议，开源使用的工具等等，如果有意学习我相信大多数人很快就能掌握。我也就大致列了一些在下面。当然，最快速的方法是寻找一些新兴的正在开发的开源项目，观察其规范、行为乃至参与其中，这样的学习效率是最高的。",{"type":21,"tag":58,"props":8915,"children":8917},{"id":8916},"开源协议",[8918],{"type":30,"value":8916},{"type":21,"tag":4502,"props":8920,"children":8922},{"id":8921},"常见的开源协议",[8923],{"type":30,"value":8921},{"type":21,"tag":1317,"props":8925,"children":8926},{},[8927,8937,8947,8957,8967,8977],{"type":21,"tag":1321,"props":8928,"children":8929},{},[8930,8935],{"type":21,"tag":33,"props":8931,"children":8932},{},[8933],{"type":30,"value":8934},"MIT License",{"type":30,"value":8936},"：这是一个非常宽松的协议，允许任何人几乎无限制地使用、复制、修改和分发代码。",{"type":21,"tag":1321,"props":8938,"children":8939},{},[8940,8945],{"type":21,"tag":33,"props":8941,"children":8942},{},[8943],{"type":30,"value":8944},"Apache License 2.0",{"type":30,"value":8946},"：与MIT类似，但它增加了专利授权条款，并要求保留原始版权声明。",{"type":21,"tag":1321,"props":8948,"children":8949},{},[8950,8955],{"type":21,"tag":33,"props":8951,"children":8952},{},[8953],{"type":30,"value":8954},"GPL（GNU General Public License）",{"type":30,"value":8956},"：强制衍生作品必须以相同的许可证发布，确保开源精神得以延续。",{"type":21,"tag":1321,"props":8958,"children":8959},{},[8960,8965],{"type":21,"tag":33,"props":8961,"children":8962},{},[8963],{"type":30,"value":8964},"LGPL（GNU Lesser General Public License）",{"type":30,"value":8966},"：适用于库，它允许专有软件链接到该库而不需要开放其源码。",{"type":21,"tag":1321,"props":8968,"children":8969},{},[8970,8975],{"type":21,"tag":33,"props":8971,"children":8972},{},[8973],{"type":30,"value":8974},"BSD Licenses",{"type":30,"value":8976},"：提供了两种版本，新BSD协议包含了禁止使用贡献者名字进行推广的条款。",{"type":21,"tag":1321,"props":8978,"children":8979},{},[8980,8985],{"type":21,"tag":33,"props":8981,"children":8982},{},[8983],{"type":30,"value":8984},"AGPLv3（GNU Affero General Public License version 3）",{"type":30,"value":8986},":扩展了GPLv3（GNU General Public License version 3）的条款，特别针对通过网络提供服务的应用程序。",{"type":21,"tag":58,"props":8988,"children":8990},{"id":8989},"开源的平台",[8991],{"type":30,"value":8989},{"type":21,"tag":4502,"props":8993,"children":8995},{"id":8994},"常用的开源平台",[8996],{"type":30,"value":8994},{"type":21,"tag":1317,"props":8998,"children":8999},{},[9000,9010],{"type":21,"tag":1321,"props":9001,"children":9002},{},[9003,9008],{"type":21,"tag":33,"props":9004,"children":9005},{},[9006],{"type":30,"value":9007},"GitHub",{"type":30,"value":9009},"：最流行的代码托管平台之一，支持Git版本控制。",{"type":21,"tag":1321,"props":9011,"children":9012},{},[9013,9018],{"type":21,"tag":33,"props":9014,"children":9015},{},[9016],{"type":30,"value":9017},"GitLab",{"type":30,"value":9019},"：提供更多的CI\u002FCD集成选项，并且可以自托管。",{"type":21,"tag":58,"props":9021,"children":9023},{"id":9022},"开源使用的工具",[9024],{"type":30,"value":9022},{"type":21,"tag":4502,"props":9026,"children":9028},{"id":9027},"版本控制",[9029],{"type":30,"value":9027},{"type":21,"tag":26,"props":9031,"children":9032},{},[9033],{"type":30,"value":9034},"使用Git进行版本控制, 跟踪代码更改历史, 多人合作.",{"type":21,"tag":4502,"props":9036,"children":9038},{"id":9037},"git-hook",[9039],{"type":30,"value":9040},"Git Hook",{"type":21,"tag":26,"props":9042,"children":9043},{},[9044],{"type":30,"value":9045},"Hook 脚本可以在特定时间发生时自动运行, 顾名思义 Hook(钩子)就是在某事发生必然发生的事, 用途比如提交前检查代码风格或者提交后部署代码.",{"type":21,"tag":4502,"props":9047,"children":9049},{"id":9048},"git-ignore",[9050],{"type":30,"value":9051},"Git Ignore",{"type":21,"tag":26,"props":9053,"children":9054},{},[9055,9056,9062],{"type":30,"value":8689},{"type":21,"tag":1185,"props":9057,"children":9059},{"className":9058},[],[9060],{"type":30,"value":9061},".gitignore",{"type":30,"value":9063}," 文件列出不应被 Git 追踪的文件, 例如编译产物或IDE配置文件.",{"type":21,"tag":4502,"props":9065,"children":9067},{"id":9066},"issue-模板",[9068],{"type":30,"value":9069},"Issue 模板",{"type":21,"tag":26,"props":9071,"children":9072},{},[9073],{"type":30,"value":9074},"创建 issue 模版可以帮助开源社区贡献者清晰描述问题, 包括复现步骤和期望行为. 规范的 issue 不仅可以帮助提问者快速的解决问题, 节省维护者了解问题的精力, 还节省了后续查询相关 issues 的用户的时间. 遇到过不少不规范 issue 的项目, 去查 issue 查个半天会发现一些提问者描述的既不清晰, 而且在没有给出解决方案(不管可行不可行)的情况下就把 issue 关闭了.",{"type":21,"tag":4502,"props":9076,"children":9078},{"id":9077},"pull-request模板",[9079],{"type":30,"value":9080},"Pull Request模板",{"type":21,"tag":26,"props":9082,"children":9083},{},[9084],{"type":30,"value":9085},"PR模板有助于确保所有必要的信息都被包含在内，如变更描述、测试结果等。可以方便审查代码.",{"type":21,"tag":4502,"props":9087,"children":9089},{"id":9088},"cicd",[9090],{"type":30,"value":9091},"CI\u002FCD",{"type":21,"tag":26,"props":9093,"children":9094},{},[9095],{"type":30,"value":9096},"持续集成和持续部署工具，如GitHub Actions、GitLab CI、Jenkins等，可以自动化测试和部署流程。比如自动编译 Release, 自动部署, 自动打包 Docker 镜像等等.",{"type":21,"tag":58,"props":9098,"children":9100},{"id":9099},"宣传",[9101],{"type":30,"value":9099},{"type":21,"tag":22,"props":9103,"children":9104},{},[9105],{"type":21,"tag":26,"props":9106,"children":9107},{},[9108],{"type":30,"value":9109},"东亚文化是一种集体主义，社会鼓吹的是踏实、谦虚、低调，不要突出自己。所以很多人喜欢在集体中默默无闻的奉献，这是最经典的一种驯化。长期演变下来，你会发现，身边很多人是不擅长或者说不屑于展示自我的，因为我们的文化里常常将\"Selling yourself\"等同于一种负面的道德品格。\n当你做完一件事情其实还不够，你得\"Show your work\"，把它\"贩卖\"出去。",{"type":21,"tag":26,"props":9111,"children":9112},{},[9113],{"type":30,"value":9114},"我亲眼目睹了一个开源项目在宣传前后star数的井喷，在那个项目的开发者还没有下场宣传的时候，它不到一千的star，但是在宣传之后，那个项目的star在短短两天之内就到了五千star。\"酒香也怕巷子深\"，因此好的宣传也是做好一个开源项目必要的。",{"type":21,"tag":58,"props":9116,"children":9118},{"id":9117},"开源软件如何进行宣传",[9119],{"type":30,"value":9120},"开源软件如何进行宣传？",{"type":21,"tag":1317,"props":9122,"children":9123},{},[9124,9134,9144,9154],{"type":21,"tag":1321,"props":9125,"children":9126},{},[9127,9132],{"type":21,"tag":33,"props":9128,"children":9129},{},[9130],{"type":30,"value":9131},"社交媒体",{"type":30,"value":9133},"：国内利用Bilibili、知乎、小红书, 国外利用Twitter、LinkedIn等社交网络分享项目进展。",{"type":21,"tag":1321,"props":9135,"children":9136},{},[9137,9142],{"type":21,"tag":33,"props":9138,"children":9139},{},[9140],{"type":30,"value":9141},"技术博客",{"type":30,"value":9143},"：撰写关于项目的博客文章，解释其用途和技术细节。",{"type":21,"tag":1321,"props":9145,"children":9146},{},[9147,9152],{"type":21,"tag":33,"props":9148,"children":9149},{},[9150],{"type":30,"value":9151},"SEO优化",{"type":30,"value":9153},"：确保项目页面针对搜索引擎进行了优化，以便更容易被发现。",{"type":21,"tag":1321,"props":9155,"children":9156},{},[9157,9162],{"type":21,"tag":33,"props":9158,"children":9159},{},[9160],{"type":30,"value":9161},"多交朋友",{"type":30,"value":9163},"：与其他相关的开源项目或公司建立合作关系扩大影响力。",{"type":21,"tag":26,"props":9165,"children":9166},{},[9167],{"type":30,"value":9168},"当然开源项目是经过众人不断用实践检验的。清晰的文档，用户友好的指引，会有助于新人的到来。规范的代码实践和沟通机制，会使得贡献者和维护者更有效的发展项目（对于正在不断开发的项目）。",{"type":21,"tag":26,"props":9170,"children":9171},{},[9172],{"type":30,"value":9173},"按照国内的环境，对于个人来说，开源是一项要求极高，且和做慈善没有区别的事。这种情况估计还会持续下去。",{"title":8,"searchDepth":1200,"depth":1210,"links":9175},[9176,9179,9182,9190,9191],{"id":8916,"depth":1200,"text":8916,"children":9177},[9178],{"id":8921,"depth":1210,"text":8921},{"id":8989,"depth":1200,"text":8989,"children":9180},[9181],{"id":8994,"depth":1210,"text":8994},{"id":9022,"depth":1200,"text":9022,"children":9183},[9184,9185,9186,9187,9188,9189],{"id":9027,"depth":1210,"text":9027},{"id":9037,"depth":1210,"text":9040},{"id":9048,"depth":1210,"text":9051},{"id":9066,"depth":1210,"text":9069},{"id":9077,"depth":1210,"text":9080},{"id":9088,"depth":1210,"text":9091},{"id":9099,"depth":1200,"text":9099},{"id":9117,"depth":1200,"text":9120},"content:posts:OpenSourceSoftwareStartTutorial.md","posts\u002FOpenSourceSoftwareStartTutorial.md","posts\u002FOpenSourceSoftwareStartTutorial",{"_path":9196,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9197,"description":9198,"date":9199,"categories":7286,"tags":9200,"body":9202,"_type":4170,"_id":9243,"_source":4172,"_file":9244,"_stem":9245,"_extension":4175},"\u002Fposts\u002Fmotivation","渴求动力","有意识的生活并主动地行动会使得生活更美好。","2025-03-05 00:44:57",[9201],"随笔",{"type":18,"children":9203,"toc":9241},[9204,9209,9214,9219,9231,9236],{"type":21,"tag":26,"props":9205,"children":9206},{},[9207],{"type":30,"value":9208},"今天下午阴天，考完智能控制，和朋友去山明三楼吃面。朋友时不时会问出奇怪的问题，他说：如果我回到大二刚开始的时候，会选择先和他们宿舍的谁先接触，再从这个点扩散到整个面，去联系上其他人。我按下心头对问题来源的疑惑，回应道：不知道。心中苦涩居多，或是某种不明的感受，我说不出来，但是总是不愿意那么回忆和假设的。“我是不会主动去认识人的， 大二。”，我拒绝了这个问题的回答。另外把先前按耐住的疑惑问了出来，为什么你会突然问这个。",{"type":21,"tag":26,"props":9210,"children":9211},{},[9212],{"type":30,"value":9213},"他回答，因为经常有人来他宿舍找他，但却不是找他，而是找其他人，只是找其他人之前会去和他打招呼聊两句天说两句傻逼话而已。他觉得自己成了“公交车”。我没回应。说起了我大二的事情。",{"type":21,"tag":26,"props":9215,"children":9216},{},[9217],{"type":30,"value":9218},"简短地说，就是大一大部分社交的场所，被突然破坏了（以我当时认知的判断）。我事后回忆下来，感觉就像一个人逃离灾难，我逃离了我大一耕耘的地方。我被远离了，不，我觉得我被远离了，我害怕了，于是我先主动远离了。是的，来到大二的我失去了很多。",{"type":21,"tag":26,"props":9220,"children":9221},{},[9222,9224,9229],{"type":30,"value":9223},"我在这种失去中怅然，并没有去寻找新的方向和维护好自己要做的事情。",{"type":21,"tag":33,"props":9225,"children":9226},{},[9227],{"type":30,"value":9228},"我对自己的生活并没有主动性",{"type":30,"value":9230},"，我只是等待着不可避免的那日到来，在眼前不可避免地看到了到来后，我才会慢悠悠地反应过来，好像睡了个觉，才来对付那来临的一切。但这我是被我预见到的，连我自己也是被我预见到了的。",{"type":21,"tag":26,"props":9232,"children":9233},{},[9234],{"type":30,"value":9235},"或是这种主动性缺失，致使我这几年自我效能感不高，垂头丧气。一边是自己拿刀子捅自己，逼迫自己前进；另一边是躺在地上，等着外界给自己捅刀子的时候吓的逃跑。毫无疑问，我在这种断续地无意识状态选择了后者，我逃避了有意识的思考与解决方案。而是选择将权力交给他者。我死不足惜。",{"type":21,"tag":26,"props":9237,"children":9238},{},[9239],{"type":30,"value":9240},"这种深沉的自我惩罚，也是我与外界对立和恐惧的一种表现。我不期待哪天我突然有改变，只是想把今日的我写下，或许某日的我翻看后又会尴尬的不行呢？",{"title":8,"searchDepth":1200,"depth":1210,"links":9242},[],"content:posts:Motivation.md","posts\u002FMotivation.md","posts\u002FMotivation",{"_path":9247,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9248,"description":9249,"date":9250,"categories":7286,"tags":9251,"body":9252,"_type":4170,"_id":9307,"_source":4172,"_file":9308,"_stem":9309,"_extension":4175},"\u002Fposts\u002F2024summary","2024年终总结","啊，痛彻的时光；啊，悲怆的人！","2025-01-01 01:00:00",[9201],{"type":18,"children":9253,"toc":9305},[9254,9262,9267],{"type":21,"tag":22,"props":9255,"children":9256},{},[9257],{"type":21,"tag":26,"props":9258,"children":9259},{},[9260],{"type":30,"value":9261},"我最后还是写了年终总结，即使数字已经转到了下一年。",{"type":21,"tag":26,"props":9263,"children":9264},{},[9265],{"type":30,"value":9266},"年终总结：",{"type":21,"tag":3448,"props":9268,"children":9269},{},[9270,9275,9280,9285,9290,9295,9300],{"type":21,"tag":1321,"props":9271,"children":9272},{},[9273],{"type":30,"value":9274},"比赛中的人际没有处理好，痛苦地拖延和解决；",{"type":21,"tag":1321,"props":9276,"children":9277},{},[9278],{"type":30,"value":9279},"漂浮感；",{"type":21,"tag":1321,"props":9281,"children":9282},{},[9283],{"type":30,"value":9284},"尝试感受经济的紧迫，勤工俭学；",{"type":21,"tag":1321,"props":9286,"children":9287},{},[9288],{"type":30,"value":9289},"看了很多 live，买了一些 CD；",{"type":21,"tag":1321,"props":9291,"children":9292},{},[9293],{"type":30,"value":9294},"家教、实习，接近社会；",{"type":21,"tag":1321,"props":9296,"children":9297},{},[9298],{"type":30,"value":9299},"还是模糊的不知道自己的方位；",{"type":21,"tag":1321,"props":9301,"children":9302},{},[9303],{"type":30,"value":9304},"买了自己的琴；",{"title":8,"searchDepth":1200,"depth":1210,"links":9306},[],"content:posts:2024summary.md","posts\u002F2024summary.md","posts\u002F2024summary",{"_path":9311,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9312,"description":9313,"date":9314,"categories":12,"tags":9315,"body":9317,"_type":4170,"_id":9664,"_source":4172,"_file":9665,"_stem":9666,"_extension":4175},"\u002Fposts\u002Fvps-crash-startup","快速搭建个人VPS","如何快速搭建个人VPS。","2024-12-31 19:00:00",[9316],"VPS",{"type":18,"children":9318,"toc":9653},[9319,9350,9355,9360,9366,9379,9452,9457,9468,9473,9479,9492,9498,9511,9516,9522,9527,9533,9545,9550,9555,9560,9568,9573,9577,9649],{"type":21,"tag":26,"props":9320,"children":9321},{},[9322,9323,9327,9329,9334,9335,9341,9342,9348],{"type":30,"value":7845},{"type":21,"tag":75,"props":9324,"children":9325},{"href":7848},[9326],{"type":30,"value":7851},{"type":30,"value":9328}," 部分，根据以下教程，并结合 ",{"type":21,"tag":1185,"props":9330,"children":9332},{"className":9331},[],[9333],{"type":30,"value":9316},{"type":30,"value":4214},{"type":21,"tag":1185,"props":9336,"children":9338},{"className":9337},[],[9339],{"type":30,"value":9340},"optimize",{"type":30,"value":4214},{"type":21,"tag":1185,"props":9343,"children":9345},{"className":9344},[],[9346],{"type":30,"value":9347},"订阅聚合",{"type":30,"value":9349},"等关键词，可以检索出 VPS 搭建的相应教程。",{"type":21,"tag":58,"props":9351,"children":9353},{"id":9352},"拥有一台非大陆的服务器",[9354],{"type":30,"value":9352},{"type":21,"tag":26,"props":9356,"children":9357},{},[9358],{"type":30,"value":9359},"VPS(Virtual Private Server)，顾名思义你需要拥有至少一台非大陆的服务器，推荐的操作系统是 Debian12(RAM>=1GB)。后面的步骤有配置 SSH 免密访问，禁止密码登录，乃至修改默认 sshd 端口。这部分操作是出于远程连接的安全性考虑的，我在此不赘述，感兴趣的读者自行检索即可找到相应教程（亦可参考引用部分的文章）。",{"type":21,"tag":58,"props":9361,"children":9363},{"id":9362},"通过脚本一键搭建-v2ray",[9364],{"type":30,"value":9365},"通过脚本一键搭建 V2Ray",{"type":21,"tag":26,"props":9367,"children":9368},{},[9369,9371,9377],{"type":30,"value":9370},"233Boy 提供了完整的脚本用于创建 V2Ray 节点。代码以 GPL-3.0 协议",{"type":21,"tag":75,"props":9372,"children":9375},{"href":9373,"rel":9374},"https:\u002F\u002Fgithub.com\u002F233boy\u002Fv2ray",[79],[9376],{"type":30,"value":8901},{"type":30,"value":9378},"在 Github 上。",{"type":21,"tag":1178,"props":9380,"children":9382},{"className":8297,"code":9381,"language":8299,"meta":8,"style":8},"# 下载并运行 233Boy 提供的 V2Ray 安装脚本（会默认生成使用 Vmess-TCP 的链接）\nbash \u003C(wget -qO- -o- https:\u002F\u002Fgit.io\u002Fv2ray.sh)\n# 添加新节点\nv2ray add Vmess-TCP-dynamic-port\n",[9383],{"type":21,"tag":1185,"props":9384,"children":9385},{"__ignoreMap":8},[9386,9394,9426,9434],{"type":21,"tag":116,"props":9387,"children":9388},{"class":1190,"line":1191},[9389],{"type":21,"tag":116,"props":9390,"children":9391},{"style":8143},[9392],{"type":30,"value":9393},"# 下载并运行 233Boy 提供的 V2Ray 安装脚本（会默认生成使用 Vmess-TCP 的链接）\n",{"type":21,"tag":116,"props":9395,"children":9396},{"class":1190,"line":1200},[9397,9401,9406,9411,9416,9421],{"type":21,"tag":116,"props":9398,"children":9399},{"style":8116},[9400],{"type":30,"value":8299},{"type":21,"tag":116,"props":9402,"children":9403},{"style":4838},[9404],{"type":30,"value":9405}," \u003C(",{"type":21,"tag":116,"props":9407,"children":9408},{"style":8116},[9409],{"type":30,"value":9410},"wget",{"type":21,"tag":116,"props":9412,"children":9413},{"style":4853},[9414],{"type":30,"value":9415}," -qO-",{"type":21,"tag":116,"props":9417,"children":9418},{"style":4853},[9419],{"type":30,"value":9420}," -o-",{"type":21,"tag":116,"props":9422,"children":9423},{"style":4838},[9424],{"type":30,"value":9425}," https:\u002F\u002Fgit.io\u002Fv2ray.sh)\n",{"type":21,"tag":116,"props":9427,"children":9428},{"class":1190,"line":1210},[9429],{"type":21,"tag":116,"props":9430,"children":9431},{"style":8143},[9432],{"type":30,"value":9433},"# 添加新节点\n",{"type":21,"tag":116,"props":9435,"children":9436},{"class":1190,"line":1219},[9437,9442,9447],{"type":21,"tag":116,"props":9438,"children":9439},{"style":8116},[9440],{"type":30,"value":9441},"v2ray",{"type":21,"tag":116,"props":9443,"children":9444},{"style":4838},[9445],{"type":30,"value":9446}," add",{"type":21,"tag":116,"props":9448,"children":9449},{"style":4838},[9450],{"type":30,"value":9451}," Vmess-TCP-dynamic-port\n",{"type":21,"tag":26,"props":9453,"children":9454},{},[9455],{"type":30,"value":9456},"此时会得到我们新生成的链接，对于 V2RayN 用户，此时复制粘贴进 V2RayN 即可使用（支持ShadowRocket、V2RayN）。但是对于其他 VPN 客户端，比如 Clash系列来说，并不一定能直接支持，此时需要部署订阅转换服务。",{"type":21,"tag":22,"props":9458,"children":9459},{},[9460],{"type":21,"tag":26,"props":9461,"children":9462},{},[9463],{"type":21,"tag":33,"props":9464,"children":9465},{},[9466],{"type":30,"value":9467},"为什么需要自己搭建自己的订阅转换服务而不是使用其他人的？",{"type":21,"tag":26,"props":9469,"children":9470},{},[9471],{"type":30,"value":9472},"我也在思量这个问题。",{"type":21,"tag":58,"props":9474,"children":9476},{"id":9475},"vps-性能调优",[9477],{"type":30,"value":9478},"VPS 性能调优",{"type":21,"tag":26,"props":9480,"children":9481},{},[9482,9483,9490],{"type":30,"value":7845},{"type":21,"tag":75,"props":9484,"children":9487},{"href":9485,"rel":9486},"https:\u002F\u002Fwww.taurusxin.com\u002Flinux-network-optimize\u002F",[79],[9488],{"type":30,"value":9489},"Linux 网络优化",{"type":30,"value":9491},"，运行脚本前请先下载 speedtest 进行测速，对比优化前后速度，避免错误的优化。",{"type":21,"tag":58,"props":9493,"children":9495},{"id":9494},"使用-cloudflare-扩展-vps-网络出口",[9496],{"type":30,"value":9497},"使用 CloudFlare 扩展 VPS 网络出口",{"type":21,"tag":26,"props":9499,"children":9500},{},[9501,9502,9509],{"type":30,"value":7845},{"type":21,"tag":75,"props":9503,"children":9506},{"href":9504,"rel":9505},"https:\u002F\u002Fp3terx.com\u002Farchives\u002Fuse-cloudflare-warp-to-add-extra-ipv4-or-ipv6-network-support-to-vps-servers-for-free.html",[79],[9507],{"type":30,"value":9508},"Cloudflare WARP 教程：给 VPS 额外添加“原生” IPv4\u002FIPv6 双栈网络出口",{"type":30,"value":9510},"。一般而言所购买的服务器只有 IPv4。我们可以通过 warp 添加 IPv6 并调整 v4\u002Fv6 的使用优先级，将默认的出站 IP转成 warp 的 IP。",{"type":21,"tag":26,"props":9512,"children":9513},{},[9514],{"type":30,"value":9515},"我的建议是给 IPv4 only 的服务器只添加 IPv6 warp, 并且 IPv6优先于 IPv4（如何确认上述文章有提及）。",{"type":21,"tag":58,"props":9517,"children":9519},{"id":9518},"部署订阅转换服务可选",[9520],{"type":30,"value":9521},"部署订阅转换服务（可选）",{"type":21,"tag":26,"props":9523,"children":9524},{},[9525],{"type":30,"value":9526},"最好拥有自己的域名，国内外的域名供应商皆可。",{"type":21,"tag":58,"props":9528,"children":9530},{"id":9529},"使用-cloudflare-pages-部署订阅链接",[9531],{"type":30,"value":9532},"使用 CloudFlare Pages 部署订阅链接",{"type":21,"tag":26,"props":9534,"children":9535},{},[9536,9538],{"type":30,"value":9537},"最好拥有自己的域名，一般购买很方便且可以很便宜。教程参见 ",{"type":21,"tag":75,"props":9539,"children":9542},{"href":9540,"rel":9541},"https:\u002F\u002Fgithub.com\u002Fcmliu\u002FCF-Workers-SUB?tab=readme-ov-file#pages-%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95-%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B",[79],[9543],{"type":30,"value":9544},"Pages 部署方法",{"type":21,"tag":58,"props":9546,"children":9548},{"id":9547},"总结",[9549],{"type":30,"value":9547},{"type":21,"tag":26,"props":9551,"children":9552},{},[9553],{"type":30,"value":9554},"按照如上步骤，可以得到个人使用的性能良好的 VPS，从而可以更好地浏览和使用互联网上的资源。",{"type":21,"tag":58,"props":9556,"children":9558},{"id":9557},"额外的问题",[9559],{"type":30,"value":9557},{"type":21,"tag":22,"props":9561,"children":9562},{},[9563],{"type":21,"tag":26,"props":9564,"children":9565},{},[9566],{"type":30,"value":9567},"无法访问引用的网页（比如 GitHub、个人博客）怎么办？",{"type":21,"tag":26,"props":9569,"children":9570},{},[9571],{"type":30,"value":9572},"考虑安装 Watt Toolkit，其提供 GitHub 网络加速(通过修改 Hosts 的方式)。",{"type":21,"tag":58,"props":9574,"children":9575},{"id":8792},[9576],{"type":30,"value":7851},{"type":21,"tag":3448,"props":9578,"children":9579},{},[9580,9590,9600,9609,9621,9631,9639],{"type":21,"tag":1321,"props":9581,"children":9582},{},[9583],{"type":21,"tag":75,"props":9584,"children":9587},{"href":9585,"rel":9586},"https:\u002F\u002F233boy.com\u002Fv2ray\u002Fv2ray-server\u002F",[79],[9588],{"type":30,"value":9589},"V2Ray 一键搭建详细图文教程（小白试用）-233Boy",{"type":21,"tag":1321,"props":9591,"children":9592},{},[9593],{"type":21,"tag":75,"props":9594,"children":9597},{"href":9595,"rel":9596},"https:\u002F\u002Fgithub.com\u002F233boy\u002Fv2ray\u002Fwiki\u002FV2Ray%E6%90%AD%E5%BB%BA%E8%AF%A6%E7%BB%86%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B",[79],[9598],{"type":30,"value":9599},"V2Ray搭建详细图文教程 - 233Boy",{"type":21,"tag":1321,"props":9601,"children":9602},{},[9603],{"type":21,"tag":75,"props":9604,"children":9606},{"href":9485,"rel":9605},[79],[9607],{"type":30,"value":9608},"VPS 网速优化",{"type":21,"tag":1321,"props":9610,"children":9611},{},[9612,9614],{"type":30,"value":9613},"订阅链接汇聚 ",{"type":21,"tag":75,"props":9615,"children":9618},{"href":9616,"rel":9617},"https:\u002F\u002Fgithub.com\u002Fcmliu\u002FCF-Workers-SUB",[79],[9619],{"type":30,"value":9620},"cmliu\u002FCF-Workers-SUB",{"type":21,"tag":1321,"props":9622,"children":9623},{},[9624],{"type":21,"tag":75,"props":9625,"children":9628},{"href":9626,"rel":9627},"https:\u002F\u002Fwww.animmouse.com\u002Fp\u002Fsetup-cloudflare-warp-on-ipv6-only-vps\u002F",[79],[9629],{"type":30,"value":9630},"Setup Cloudflare WARP on IPv6 Only VPS",{"type":21,"tag":1321,"props":9632,"children":9633},{},[9634],{"type":21,"tag":75,"props":9635,"children":9637},{"href":9504,"rel":9636},[79],[9638],{"type":30,"value":9508},{"type":21,"tag":1321,"props":9640,"children":9641},{},[9642],{"type":21,"tag":75,"props":9643,"children":9646},{"href":9644,"rel":9645},"https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F160305",[79],[9647],{"type":30,"value":9648},"【配置优化】我拿到VPS服务器必做的那些事",{"type":21,"tag":4158,"props":9650,"children":9651},{},[9652],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":9654},[9655,9656,9657,9658,9659,9660,9661,9662,9663],{"id":9352,"depth":1200,"text":9352},{"id":9362,"depth":1200,"text":9365},{"id":9475,"depth":1200,"text":9478},{"id":9494,"depth":1200,"text":9497},{"id":9518,"depth":1200,"text":9521},{"id":9529,"depth":1200,"text":9532},{"id":9547,"depth":1200,"text":9547},{"id":9557,"depth":1200,"text":9557},{"id":8792,"depth":1200,"text":7851},"content:posts:VPS-crash-startup.md","posts\u002FVPS-crash-startup.md","posts\u002FVPS-crash-startup",{"_path":9668,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9669,"description":9670,"date":9671,"categories":12,"tags":9672,"body":9675,"_type":4170,"_id":9870,"_source":4172,"_file":9871,"_stem":9872,"_extension":4175},"\u002Fposts\u002Fdata-label-software","AI数据（自动）标注软件概述","对市面上目前的AI数据（自动）标注软件进行调研。","2024-12-20 14:00:00",[9673,9674],"数据标注","深度学习",{"type":18,"children":9676,"toc":9868},[9677,9682,9687,9692,9697,9705,9727,9732,9816,9821,9836],{"type":21,"tag":26,"props":9678,"children":9679},{},[9680],{"type":30,"value":9681},"数据驱动的深度学习已经成为了计算机科学解决现实问题的一大强有力的解决方案。而对于深度学习数据是重中之重。以我浅薄的经验来看，对于现实世界中的大多数任务，所使用数据质量的高低甚至比模型的工作更为重要。一个好的数据就是成功的一半。",{"type":21,"tag":26,"props":9683,"children":9684},{},[9685],{"type":30,"value":9686},"涉及有监督的学习需要数据标注。而人工数据标注作为苦力活一直为人所诟病，认为这并不值得去学习。我认为，其中的关键并不在如何标注数据，而是怎样的数据标注是好的，或者说数据应当标注成什么样。这些问题其实在实践中已经积累下了不少的答案，我们已经有了“最佳实践”。",{"type":21,"tag":26,"props":9688,"children":9689},{},[9690],{"type":30,"value":9691},"不同的数据领域划分了不同的任务。而一些任务存在了令人满意的通解，比如视觉上的 SAM、NLP上的 Transformer 系，Audio上的解决方案也很成熟。如何从一个成熟的解决方案中让自己的项目更自动化的受益？这就是数据自动标注所做的事。",{"type":21,"tag":26,"props":9693,"children":9694},{},[9695],{"type":30,"value":9696},"举例，对于小的细分的尚且没有人做的领域任务，且使用深度学习的方法是可行的（而可行性多半决定于数据的质量和数量）。这时使用通用的领域模型对新任务自动的进行标注（乃至交互式标注），可以大大省去新任务的数据处理时间（甚至获得更高质量的数据）。这就是从成熟解决方案更自动化地受益的所指。",{"type":21,"tag":22,"props":9698,"children":9699},{},[9700],{"type":21,"tag":26,"props":9701,"children":9702},{},[9703],{"type":30,"value":9704},"当我们在浏览器上搜索某样东西时，其实我们是假定使用浏览器的某人遇到了同样（相似）的问题并且有了解决方案。类似的，当我们有了一个想法的时候，你需要审查一下世界上有没有其他人早已经提出了类似的想法。",{"type":21,"tag":26,"props":9706,"children":9707},{},[9708,9710,9717,9719,9726],{"type":30,"value":9709},"AI4S，这是很自然的想法，将AI用于数据标注，并且现实中已经存在实践。考虑到数据安全性问题以及我所能接触到的调研对象有限，下面仅列举无数据安全问题的开源项目。首先简单分类为领域特定的数据标注和通用类的数据标注。更详细的可以参见 ",{"type":21,"tag":75,"props":9711,"children":9714},{"href":9712,"rel":9713},"https:\u002F\u002Fgithub.com\u002Fhumansignal\u002Fawesome-data-labeling",[79],[9715],{"type":30,"value":9716},"awesome-data-labeling",{"type":30,"value":9718}," 和 ",{"type":21,"tag":75,"props":9720,"children":9723},{"href":9721,"rel":9722},"https:\u002F\u002Fgithub.com\u002Fmingx9527\u002FData_Label_Tools",[79],[9724],{"type":30,"value":9725},"Data_Label_Tools",{"type":30,"value":7871},{"type":21,"tag":26,"props":9728,"children":9729},{},[9730],{"type":30,"value":9731},"领域特定：",{"type":21,"tag":1317,"props":9733,"children":9734},{},[9735,9740,9758,9776,9794,9799],{"type":21,"tag":1321,"props":9736,"children":9737},{},[9738],{"type":30,"value":9739},"CV：",{"type":21,"tag":1321,"props":9741,"children":9742},{},[9743],{"type":21,"tag":1317,"props":9744,"children":9745},{},[9746],{"type":21,"tag":1321,"props":9747,"children":9748},{},[9749,9756],{"type":21,"tag":75,"props":9750,"children":9753},{"href":9751,"rel":9752},"https:\u002F\u002Fwww.labelme.io\u002F",[79],[9754],{"type":30,"value":9755},"label-me",{"type":30,"value":9757}," FOSS",{"type":21,"tag":1321,"props":9759,"children":9760},{},[9761],{"type":21,"tag":1317,"props":9762,"children":9763},{},[9764],{"type":21,"tag":1321,"props":9765,"children":9766},{},[9767,9774],{"type":21,"tag":75,"props":9768,"children":9771},{"href":9769,"rel":9770},"https:\u002F\u002Fgithub.com\u002FCVHub520\u002FX-AnyLabeling",[79],[9772],{"type":30,"value":9773},"X-AnyLabeling",{"type":30,"value":9775}," GPL-3.0",{"type":21,"tag":1321,"props":9777,"children":9778},{},[9779],{"type":21,"tag":1317,"props":9780,"children":9781},{},[9782],{"type":21,"tag":1321,"props":9783,"children":9784},{},[9785,9792],{"type":21,"tag":75,"props":9786,"children":9789},{"href":9787,"rel":9788},"https:\u002F\u002Fgithub.com\u002FHumanSignal\u002FlabelImg",[79],[9790],{"type":30,"value":9791},"label-img",{"type":30,"value":9793}," MIT(且已经 Archive, 被并入 label-studio)",{"type":21,"tag":1321,"props":9795,"children":9796},{},[9797],{"type":30,"value":9798},"NLP:",{"type":21,"tag":1321,"props":9800,"children":9801},{},[9802],{"type":21,"tag":1317,"props":9803,"children":9804},{},[9805],{"type":21,"tag":1321,"props":9806,"children":9807},{},[9808,9815],{"type":21,"tag":75,"props":9809,"children":9812},{"href":9810,"rel":9811},"https:\u002F\u002Fgithub.com\u002Frisesoft-y9\u002FData-Labeling",[79],[9813],{"type":30,"value":9814},"data-labeling",{"type":30,"value":9775},{"type":21,"tag":26,"props":9817,"children":9818},{},[9819],{"type":30,"value":9820},"通用类：",{"type":21,"tag":1317,"props":9822,"children":9823},{},[9824],{"type":21,"tag":1321,"props":9825,"children":9826},{},[9827,9834],{"type":21,"tag":75,"props":9828,"children":9831},{"href":9829,"rel":9830},"https:\u002F\u002Fgithub.com\u002FHumanSignal\u002Flabel-studio\u002F",[79],[9832],{"type":30,"value":9833},"label-studio",{"type":30,"value":9835}," Apache-2.0",{"type":21,"tag":26,"props":9837,"children":9838},{},[9839,9841,9848,9850,9857,9859,9866],{"type":30,"value":9840},"按企业整理的话。国外有 ",{"type":21,"tag":75,"props":9842,"children":9845},{"href":9843,"rel":9844},"https:\u002F\u002Fhumansignal.com\u002F",[79],[9846],{"type":30,"value":9847},"HumanSignal",{"type":30,"value":9849},"。国内有",{"type":21,"tag":75,"props":9851,"children":9854},{"href":9852,"rel":9853},"https:\u002F\u002Fstardust.ai\u002F",[79],[9855],{"type":30,"value":9856},"星尘",{"type":30,"value":9858}," 、",{"type":21,"tag":75,"props":9860,"children":9863},{"href":9861,"rel":9862},"https:\u002F\u002Fwww.risesoft.net\u002F",[79],[9864],{"type":30,"value":9865},"有生",{"type":30,"value":9867},"。HumanSignal 和 星尘是较早开始进入数据标注领域的。有生是今年才开始进入数据标注软件，并在 ToG 业务上有了进展。",{"title":8,"searchDepth":1200,"depth":1210,"links":9869},[],"content:posts:data-label-software.md","posts\u002Fdata-label-software.md","posts\u002Fdata-label-software",{"_path":9874,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9875,"description":9876,"date":9877,"categories":7286,"tags":9878,"body":9879,"_type":4170,"_id":9908,"_source":4172,"_file":9909,"_stem":9910,"_extension":4175},"\u002Fposts\u002Fself-destruction","生活的崩坏与自我毁灭","是什么在牵引着我？我的行为，我的思想？我的感受？我所处的地方？它们在何处？","2024-12-19 12:00:00",[9201],{"type":18,"children":9880,"toc":9906},[9881,9886,9891,9901],{"type":21,"tag":26,"props":9882,"children":9883},{},[9884],{"type":30,"value":9885},"今天是单周，我按计划翘掉了不签到的早八，但是睡过了签到的早十。一觉起来翻看手机，发现室友在签到的时候问我，“你上课又没来吗”，我回答是。",{"type":21,"tag":26,"props":9887,"children":9888},{},[9889],{"type":30,"value":9890},"如果只是归咎原因，那么可以归于我的毫不在意和单双周的难记忆。但我，在感到有必要要去做的事情的时候，是会早早醒来的。我应当是感到了那样的生活是在消耗我，起码是消耗现在的我。",{"type":21,"tag":26,"props":9892,"children":9893},{},[9894,9899],{"type":21,"tag":33,"props":9895,"children":9896},{},[9897],{"type":30,"value":9898},"我对我将临的事情，并无期待，反而是反抗",{"type":30,"value":9900},"。而反抗，这种消极的反抗，造成的是：我生活的崩塌从 regular 到 irregular，从主流的道路到谁也不确定的道路。我生发了一种对生活、乃至“世界”的背叛感。我很难不去追问，到底是怎么了，为什么我会这样做呢。",{"type":21,"tag":26,"props":9902,"children":9903},{},[9904],{"type":30,"value":9905},"当我询问我自己这样的问题时，我内心其实已经有了答案和想法。当一个人生发出一种行为的时候，尚若他追问自己的言行，是一定能够归咎出原因的，即使脑海中假想推演出来的原因和对过去的模拟非常有可能是错误且偏离现实的。",{"title":8,"searchDepth":1200,"depth":1210,"links":9907},[],"content:posts:self-destruction.md","posts\u002Fself-destruction.md","posts\u002Fself-destruction",{"_path":9912,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9913,"description":9914,"date":9915,"categories":12,"tags":9916,"body":9917,"_type":4170,"_id":10416,"_source":4172,"_file":10417,"_stem":10418,"_extension":4175},"\u002Fposts\u002Fcs194-196_llmagents","LLM Agents 课程笔记","UCB CS294\u002F194-196 Large Language Model Agents 的课程笔记。","2024-11-30 20:00:00",[4182],{"type":18,"children":9918,"toc":10396},[9919,9927,9932,9938,9943,9951,9956,9961,9968,9980,9992,9998,10003,10015,10027,10032,10043,10048,10061,10066,10074,10079,10084,10107,10112,10118,10126,10138,10143,10148,10156,10161,10174,10180,10193,10198,10203,10209,10214,10235,10243,10248,10254,10262,10267,10275,10280,10286,10291,10297,10302,10307,10312,10318,10323,10328,10336,10341,10347,10352,10356],{"type":21,"tag":22,"props":9920,"children":9921},{},[9922],{"type":21,"tag":26,"props":9923,"children":9924},{},[9925],{"type":30,"value":9926},"鉴定为水课，尽量挑感兴趣的有用的部分看。",{"type":21,"tag":26,"props":9928,"children":9929},{},[9930],{"type":30,"value":9931},"最近工作内容涉猎了大模型的应用，想更深入的了解一些，便打算试试这门课。笔记更新进度对应学习进度。",{"type":21,"tag":58,"props":9933,"children":9935},{"id":9934},"llm-reasoning",[9936],{"type":30,"value":9937},"LLM Reasoning",{"type":21,"tag":26,"props":9939,"children":9940},{},[9941],{"type":30,"value":9942},"提问：What do you expect for AI?",{"type":21,"tag":22,"props":9944,"children":9945},{},[9946],{"type":21,"tag":26,"props":9947,"children":9948},{},[9949],{"type":30,"value":9950},"What do you expect for AI?",{"type":21,"tag":26,"props":9952,"children":9953},{},[9954],{"type":30,"value":9955},"AI 是人类创造出来的更自动化的工具。若从控制的观点来说，AI 就是控制器的控制器，能够担负人类的现实任务。在理想的应用情况可以承担大部分社会物质精神运转的负荷。",{"type":21,"tag":26,"props":9957,"children":9958},{},[9959],{"type":30,"value":9960},"教授的回答:",{"type":21,"tag":22,"props":9962,"children":9963},{},[9964],{"type":21,"tag":26,"props":9965,"children":9966},{},[9967],{"type":30,"value":9950},{"type":21,"tag":26,"props":9969,"children":9970},{},[9971,9973,9978],{"type":30,"value":9972},"AI should be able to ",{"type":21,"tag":33,"props":9974,"children":9975},{},[9976],{"type":30,"value":9977},"learn from a few examples",{"type":30,"value":9979},", like what humans usually do",{"type":21,"tag":26,"props":9981,"children":9982},{},[9983,9985,9990],{"type":30,"value":9984},"而以往的机器学习达到了这个期望吗？并没有。机器学习缺乏归因能力——需要大样本学习。而”Humans can learn from just a few examples ",{"type":21,"tag":33,"props":9986,"children":9987},{},[9988],{"type":30,"value":9989},"because humans can reason",{"type":30,"value":9991},"“。因此其暗指大模型拥有 reason 能力。",{"type":21,"tag":4502,"props":9993,"children":9995},{"id":9994},"key-ideas",[9996],{"type":30,"value":9997},"Key Ideas",{"type":21,"tag":26,"props":9999,"children":10000},{},[10001],{"type":30,"value":10002},"我们慢慢引出一系列关键的想法来提升大模型的效果。",{"type":21,"tag":10004,"props":10005,"children":10007},"h4",{"id":10006},"derive-the-final-answer-through-intermedia-steps",[10008,10010],{"type":30,"value":10009},"Derive the Final Answer through ",{"type":21,"tag":33,"props":10011,"children":10012},{},[10013],{"type":30,"value":10014},"Intermedia Steps",{"type":21,"tag":26,"props":10016,"children":10017},{},[10018,10020,10025],{"type":30,"value":10019},"Also called ",{"type":21,"tag":33,"props":10021,"children":10022},{},[10023],{"type":30,"value":10024},"Chain-of-Thought",{"type":30,"value":10026},"(CoT).",{"type":21,"tag":26,"props":10028,"children":10029},{},[10030],{"type":30,"value":10031},"可以简单导出一种应用——CoT Prompting。最经典的一个例子——”Let's think step by step“，这个 Prompting 达成了零样本的 CoT。",{"type":21,"tag":10004,"props":10033,"children":10035},{"id":10034},"least-to-most-prompting-enable-easy-to-hard-generalization-by-decomposition",[10036,10038],{"type":30,"value":10037},"Least-to-Most Prompting ",{"type":21,"tag":4102,"props":10039,"children":10040},{},[10041],{"type":30,"value":10042},"Enable easy-to-hard generalization by decomposition",{"type":21,"tag":26,"props":10044,"children":10045},{},[10046],{"type":30,"value":10047},"《How to Solve It》一文中提到。",{"type":21,"tag":22,"props":10049,"children":10050},{},[10051],{"type":21,"tag":26,"props":10052,"children":10053},{},[10054,10059],{"type":21,"tag":33,"props":10055,"children":10056},{},[10057],{"type":30,"value":10058},"Decomposing and recombing",{"type":30,"value":10060}," are important operations fo the mind.\nYou decompose the whole into its parts, and you recombine the parts into a more or less different whole.\nIf you go into detail you may lose yourself in details.",{"type":21,"tag":26,"props":10062,"children":10063},{},[10064],{"type":30,"value":10065},"其实理念和计算机科学中一直倡导的缩小问题规模有共通之处？Map-Reduce，缩小问题规模不可避免地就要分解问题。",{"type":21,"tag":22,"props":10067,"children":10068},{},[10069],{"type":21,"tag":26,"props":10070,"children":10071},{},[10072],{"type":30,"value":10073},"Using just 0.1% demonstration examples achieves perfect generalization.",{"type":21,"tag":26,"props":10075,"children":10076},{},[10077],{"type":30,"value":10078},"这里不知道是指预训练时加入一定量地分解问题的数据，还是指对话时加入分解问题的例子。",{"type":21,"tag":26,"props":10080,"children":10081},{},[10082],{"type":30,"value":10083},"以上两种方法其实都是中间步骤。为什么中间步骤可以有如此大的效果呢？",{"type":21,"tag":1317,"props":10085,"children":10086},{},[10087,10097],{"type":21,"tag":1321,"props":10088,"children":10089},{},[10090,10095],{"type":21,"tag":33,"props":10091,"children":10092},{},[10093],{"type":30,"value":10094},"Constant-depth transformers",{"type":30,"value":10096}," can solve any inherently serial problem as long as it generates sufficiently long intermediate reasoning steps",{"type":21,"tag":1321,"props":10098,"children":10099},{},[10100,10105],{"type":21,"tag":33,"props":10101,"children":10102},{},[10103],{"type":30,"value":10104},"Transformers which directly generate final answers",{"type":30,"value":10106}," either requires a huge depth to solve or cannot solve at all",{"type":21,"tag":26,"props":10108,"children":10109},{},[10110],{"type":30,"value":10111},"也就是说，没有中间步骤要么注意力强大到能直接解决问题，要么得到错乱的解。而加入中间步骤，解决序列问题中的每一个简单问题，从而可以解决任何能够分解为序列问题的问题。",{"type":21,"tag":10004,"props":10113,"children":10115},{"id":10114},"llms-as-analogical-reasoners",[10116],{"type":30,"value":10117},"LLMs as Analogical Reasoners",{"type":21,"tag":22,"props":10119,"children":10120},{},[10121],{"type":21,"tag":26,"props":10122,"children":10123},{},[10124],{"type":30,"value":10125},"Do you know a related problem? In fact, when solving a problem, we always profit from previously solved problems, using their result, or their method, or the experience we acquired solving them.",{"type":21,"tag":26,"props":10127,"children":10128},{},[10129,10131,10137],{"type":30,"value":10130},"出于这种思想，可以导出提示词——Recall a related problem, and then solve this one. （回忆一个相关问题，然后解决这个问题）。这种方法又叫 ",{"type":21,"tag":1185,"props":10132,"children":10134},{"className":10133},[],[10135],{"type":30,"value":10136},"Self-generated Examples",{"type":30,"value":4811},{"type":21,"tag":26,"props":10139,"children":10140},{},[10141],{"type":30,"value":10142},"不过提示词的角度太过于简陋，从我个人的角度来说，提示词其实很不安全，而且让我很不安。完全把命运交给多出来的词向量真的太怪了。有没有不使用 Prompting 就可以触发 CoT 的方法？",{"type":21,"tag":26,"props":10144,"children":10145},{},[10146],{"type":30,"value":10147},"有的。从 Decode 下手，以往 GPT 输出的时候是选择 Top-k 中概率最高的词输出，也就是简单的贪心选择。如果让其对 Top-k 中的词继续做生成，在根据置信度选择答案，这就是 CoT-decoding 方法。",{"type":21,"tag":26,"props":10149,"children":10150},{},[10151],{"type":21,"tag":8412,"props":10152,"children":10155},{"alt":10153,"src":10154},"Illustration of CoT-decoding","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2402.10200v2\u002Fx1.png",[],{"type":21,"tag":26,"props":10157,"children":10158},{},[10159],{"type":30,"value":10160},"Key takeaways",{"type":21,"tag":3448,"props":10162,"children":10163},{},[10164,10169],{"type":21,"tag":1321,"props":10165,"children":10166},{},[10167],{"type":30,"value":10168},"Pre-trained LLMs, without further finetuning, has been ready for step-by-step reasoning, but we need a non-greedy decoding strategy to elicit it.",{"type":21,"tag":1321,"props":10170,"children":10171},{},[10172],{"type":30,"value":10173},"When a step-by-step reasoning path is present, KKMs have much higher confidence in decoding the final answer than direct-answer decoding.",{"type":21,"tag":10004,"props":10175,"children":10177},{"id":10176},"limits-of-intermediate-steps",[10178],{"type":30,"value":10179},"Limits of Intermediate Steps",{"type":21,"tag":22,"props":10181,"children":10182},{},[10183],{"type":21,"tag":26,"props":10184,"children":10185},{},[10186,10188],{"type":30,"value":10187},"Always keep in mind that LLMs are probabilistic models of generating next tokens. ",{"type":21,"tag":33,"props":10189,"children":10190},{},[10191],{"type":30,"value":10192},"They are not humans.",{"type":21,"tag":26,"props":10194,"children":10195},{},[10196],{"type":30,"value":10197},"我们希望：给出问题的基础上得到最大可能的最终答案。",{"type":21,"tag":26,"props":10199,"children":10200},{},[10201],{"type":30,"value":10202},"LLM CoT-decoding所做：给出问题的基础上，给出最大可能的 reasoning path 以及最大可能的最终答案。",{"type":21,"tag":10004,"props":10204,"children":10206},{"id":10205},"self-consistency",[10207],{"type":30,"value":10208},"Self-Consistency",{"type":21,"tag":26,"props":10210,"children":10211},{},[10212],{"type":30,"value":10213},"More consistent, more likely to be correct",{"type":21,"tag":26,"props":10215,"children":10216},{},[10217,10219,10227,10229,10234],{"type":30,"value":10218},"人性的一个突出方面是人们的思维方式不同。很自然地假设，在需要深思熟虑的任务中，可能有几种方法可以解决问题。我们建议可以通过从语言模型的解码器中采样来在语言模型中模拟这样的过程。例如，如图 ",{"type":21,"tag":75,"props":10220,"children":10224},{"href":10221,"rel":10222,"title":10223},"https:\u002F\u002Far5iv.labs.arxiv.org\u002Fhtml\u002F2203.11171?_immersive_translate_auto_translate=1#S1.F1",[79],"In 1 Introduction ‣ Self-Consistency Improves Chain of Thought Reasoning in Language Models",[10225],{"type":30,"value":10226},"1 所示",{"type":30,"value":10228}," ，一个模型可以对数学问题生成多个合理的回答，这些回答都得出相同的正确答案（输出 1 和 3）。由于语言模型不是完美的推理器，因此模型也可能产生不正确的推理路径或在其中一个推理步骤中出错（例如，在输出 2 中），但此类解决方案不太可能得出相同的答案。也就是说，我们",{"type":21,"tag":33,"props":10230,"children":10231},{},[10232],{"type":30,"value":10233},"假设正确的推理过程，即使它们是多种多样的，也往往比不正确的过程在最终答案中具有更大的一致性",{"type":30,"value":4811},{"type":21,"tag":26,"props":10236,"children":10237},{},[10238],{"type":21,"tag":8412,"props":10239,"children":10242},{"alt":10240,"src":10241},"Self-Consistency method contains three steps","https:\u002F\u002Far5iv.labs.arxiv.org\u002Fhtml\u002F2203.11171\u002Fassets\u002Fx1.png",[],{"type":21,"tag":26,"props":10244,"children":10245},{},[10246],{"type":30,"value":10247},"Self-Consistency 利用了复杂的推理任务通常允许多条推理路径到达正确答案的直觉。一个问题越需要深思熟虑的思考和分析 ，可以得到答案的推理路径就越多样化。",{"type":21,"tag":10004,"props":10249,"children":10251},{"id":10250},"quiz",[10252],{"type":30,"value":10253},"Quiz",{"type":21,"tag":22,"props":10255,"children":10256},{},[10257],{"type":21,"tag":26,"props":10258,"children":10259},{},[10260],{"type":30,"value":10261},"Q1. When the LLM outputs a direct answer without intermediate steps, will you still sample several times, and then choose the most common answer?",{"type":21,"tag":26,"props":10263,"children":10264},{},[10265],{"type":30,"value":10266},"我不会，我倾向于它不能够解决这个问题，而重新换种问法。",{"type":21,"tag":22,"props":10268,"children":10269},{},[10270],{"type":21,"tag":26,"props":10271,"children":10272},{},[10273],{"type":30,"value":10274},"Q2. Change self-consistency by letting LLM generate multiple responses, instead of sampling multiple times, and then choosing the most common answer. Does this make sense?",{"type":21,"tag":26,"props":10276,"children":10277},{},[10278],{"type":30,"value":10279},"我认为这其实并不能解决问题。首先模型必须能够得出正确答案，假设其起作用的前提是，采样到的答案中正确的答案占大多数。这只能让复杂但不困难的任务表现的更好，而对于简单任务和复杂困难任务没有帮助。",{"type":21,"tag":4502,"props":10281,"children":10283},{"id":10282},"limitations",[10284],{"type":30,"value":10285},"Limitations",{"type":21,"tag":26,"props":10287,"children":10288},{},[10289],{"type":30,"value":10290},"大模型存在什么限制呢？了解限制可以让我们更好的发挥它的作用。",{"type":21,"tag":10004,"props":10292,"children":10294},{"id":10293},"llms-can-be-easily-distracted-by-irrelevant-context",[10295],{"type":30,"value":10296},"LLMs Can Be Easily Distracted by Irrelevant Context",{"type":21,"tag":26,"props":10298,"children":10299},{},[10300],{"type":30,"value":10301},"Psychology studies show that irrelevant information may significantly decrease some children and even adults problem-solving accuracy.",{"type":21,"tag":26,"props":10303,"children":10304},{},[10305],{"type":30,"value":10306},"在大模型上的表现就是——Adding irrelevant contexts to GSM8K leads to 20+ points performance drop.",{"type":21,"tag":26,"props":10308,"children":10309},{},[10310],{"type":30,"value":10311},"知道了如此限制，那么我们可以用提示词去尝试解决——Ignore irrelevant context。这可以挽回一点性能表现。",{"type":21,"tag":10004,"props":10313,"children":10315},{"id":10314},"llms-cannot-self-correct-reasoning-yet",[10316],{"type":30,"value":10317},"LLMs Cannot Self-Correct Reasoning Yet",{"type":21,"tag":26,"props":10319,"children":10320},{},[10321],{"type":30,"value":10322},"While allowing LLMs to review their generated responses can help correct inaccurate answers, it may also risk changing correct answers into incorrect ones.",{"type":21,"tag":26,"props":10324,"children":10325},{},[10326],{"type":30,"value":10327},"尤其是在常识性的问答中，GPT-3.5 Self-Correct 后的表现下降的很厉害。",{"type":21,"tag":22,"props":10329,"children":10330},{},[10331],{"type":21,"tag":26,"props":10332,"children":10333},{},[10334],{"type":30,"value":10335},"Reported improvements need oracle answers.",{"type":21,"tag":26,"props":10337,"children":10338},{},[10339],{"type":30,"value":10340},"Oracle: Let LLMs self correct only when the answer is wrong",{"type":21,"tag":10004,"props":10342,"children":10344},{"id":10343},"premise-order-matters-in-llm-reasoning",[10345],{"type":30,"value":10346},"Premise Order Matters in LLM Reasoning",{"type":21,"tag":26,"props":10348,"children":10349},{},[10350],{"type":30,"value":10351},"前提条件重排序会让 solving rates 下降。",{"type":21,"tag":4502,"props":10353,"children":10354},{"id":9547},[10355],{"type":30,"value":9547},{"type":21,"tag":1317,"props":10357,"children":10358},{},[10359,10364,10375,10386,10391],{"type":21,"tag":1321,"props":10360,"children":10361},{},[10362],{"type":30,"value":10363},"Generating intermediate steps improves LLM performance",{"type":21,"tag":1321,"props":10365,"children":10366},{},[10367],{"type":21,"tag":1317,"props":10368,"children":10369},{},[10370],{"type":21,"tag":1321,"props":10371,"children":10372},{},[10373],{"type":30,"value":10374},"Training\u002Ffine-tuning\u002Fprompting with intermediate steps",{"type":21,"tag":1321,"props":10376,"children":10377},{},[10378],{"type":21,"tag":1317,"props":10379,"children":10380},{},[10381],{"type":21,"tag":1321,"props":10382,"children":10383},{},[10384],{"type":30,"value":10385},"Zero-shot, analogical reasoning, special decoding",{"type":21,"tag":1321,"props":10387,"children":10388},{},[10389],{"type":30,"value":10390},"Self-Consistency greatly improves step-by-step reasoning",{"type":21,"tag":1321,"props":10392,"children":10393},{},[10394],{"type":30,"value":10395},"Limitation: irrelevant context, self-correction, premise order",{"title":8,"searchDepth":1200,"depth":1210,"links":10397},[10398],{"id":9934,"depth":1200,"text":9937,"children":10399},[10400,10410,10415],{"id":9994,"depth":1210,"text":9997,"children":10401},[10402,10404,10406,10407,10408,10409],{"id":10006,"depth":1219,"text":10403},"Derive the Final Answer through Intermedia Steps",{"id":10034,"depth":1219,"text":10405},"Least-to-Most Prompting Enable easy-to-hard generalization by decomposition",{"id":10114,"depth":1219,"text":10117},{"id":10176,"depth":1219,"text":10179},{"id":10205,"depth":1219,"text":10208},{"id":10250,"depth":1219,"text":10253},{"id":10282,"depth":1210,"text":10285,"children":10411},[10412,10413,10414],{"id":10293,"depth":1219,"text":10296},{"id":10314,"depth":1219,"text":10317},{"id":10343,"depth":1219,"text":10346},{"id":9547,"depth":1210,"text":9547},"content:posts:CS194-196_LLMAgents.md","posts\u002FCS194-196_LLMAgents.md","posts\u002FCS194-196_LLMAgents",{"_path":10420,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10421,"description":10422,"date":10423,"categories":7286,"tags":10424,"body":10425,"_type":4170,"_id":10466,"_source":4172,"_file":10467,"_stem":10468,"_extension":4175},"\u002Fposts\u002Fwhatsyourworth","价值、位置","你们的生存究竟有何价值？如果毫无价值，你们究竟为何存在？","2024-11-29 02:00:00",[9201],{"type":18,"children":10426,"toc":10464},[10427,10434,10439,10444,10449,10454,10459],{"type":21,"tag":22,"props":10428,"children":10429},{},[10430],{"type":21,"tag":26,"props":10431,"children":10432},{},[10433],{"type":30,"value":10422},{"type":21,"tag":26,"props":10435,"children":10436},{},[10437],{"type":30,"value":10438},"我们该身处怎样的位置？或者说生活该是怎样的？我不知道。社会主义核心价值观中个人层面的要求提到我们要爱国、敬业、诚信、友善。朗朗上口又空洞的字眼，真的能指引我的生活吗？我否认它。",{"type":21,"tag":26,"props":10440,"children":10441},{},[10442],{"type":30,"value":10443},"对于有些人，这些问题是无需思考的，并非因为短视与无知，而是因为过往的生活经验中存在着经得起质疑的参考，他们信服且可以认定自己的生活方式与存在来源，并以此为生活的指导。另一些人是短视者，或许曾经有挣扎过，但还与社会的规训和解。这不如不做挣扎。我不是其中一员。作为具象的人，我不喜欢被分类，甚至说评价自己。或者换句话说，我讨厌暴露自己，即使现在我就在做着这样的事情。我的自反性强烈地牵引着我来到了一种莫名的境地，在这里我会感受到痛苦，并让我难以理解幸福。",{"type":21,"tag":26,"props":10445,"children":10446},{},[10447],{"type":30,"value":10448},"汲取某一样东西或者深深扎根在一处汲取营养与支持，那是再好不过的事情。我还是犹豫着选择。在上一刻被消灭下一刻不存在的现在，妄图否认一切。是可笑的。专注于某一项东西难免要做出某种选择。这都是胡说八道的谎言。",{"type":21,"tag":26,"props":10450,"children":10451},{},[10452],{"type":30,"value":10453},"事实上是，蜷缩的内心带来长时间不使用而萎靡的声音，惧怕外界的同时在自己内心的系统中不断咀嚼反复。其表象可以归为“微信恐惧症”。",{"type":21,"tag":26,"props":10455,"children":10456},{},[10457],{"type":30,"value":10458},"惧怕否认而自诩，自诩自重而自封。",{"type":21,"tag":26,"props":10460,"children":10461},{},[10462],{"type":30,"value":10463},"在时间的脉络和物质的运动之中，星河翻转的梦境里，时间，时间。不可避免地迈步向前，而由自反诞生的恐惧与疏远仍深深扎根。这一切都是漫长的白夜。我们的生存究竟有何价值？如果毫无价值，我们究竟为何存在？",{"title":8,"searchDepth":1200,"depth":1210,"links":10465},[],"content:posts:WhatsYourWorth.md","posts\u002FWhatsYourWorth.md","posts\u002FWhatsYourWorth",{"_path":10470,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10471,"description":10472,"date":10473,"categories":7286,"tags":10474,"body":10476,"_type":4170,"_id":10554,"_source":4172,"_file":10555,"_stem":10556,"_extension":4175},"\u002Fposts\u002Fblogrelifever2","重启博客v2","忙里偷闲学习前端，还是决定结合想法手搓一个自己的博客。","2024-11-25 00:00:00",[10475],"博客",{"type":18,"children":10477,"toc":10552},[10478,10483,10488,10493,10498,10503,10516,10537,10542,10547],{"type":21,"tag":26,"props":10479,"children":10480},{},[10481],{"type":30,"value":10482},"很遗憾的一件事情——我发现以前的我并没有写出什么值得发表出来的博客，更遗憾的事情，现在的我也没有写出来这样的文字。",{"type":21,"tag":26,"props":10484,"children":10485},{},[10486],{"type":30,"value":10487},"大抵是从初中开始，我就对文字保有偌大的趣味。我认为那是一件值得品味，需要经验积累才能表征出的东西。我想写自己的小说，传达自己的思想。但自我判断后，认为仍需更多的现实经验积累（但其实更重要的是相应的锻炼，比如说写作训练），便将想法设置为遥远的理想，始终铭记，但将其搁置在行动清单外。",{"type":21,"tag":26,"props":10489,"children":10490},{},[10491],{"type":30,"value":10492},"大学刚入学后，学着网上胡乱的言论（还有身边的例子），我也开始写博客。那时候的我，对于博客的写作，其实只是大多停留在复制粘贴的搬运。毕竟经验与感想是需要累计和思考的，没有一定时间的浸润是很难以自己的想法表达出来其他人的想法的。而自我日常的思绪又过于混乱，不花时间做整理，到最后连自己都看不懂。这样记录实在是无趣。",{"type":21,"tag":26,"props":10494,"children":10495},{},[10496],{"type":30,"value":10497},"对于自我的寻找是更关键的。尽管我知道了自我的位置，但是我还是没有以——有足够归属感的、卸下自己防备的方式去接受自我的位置。这很大程度上动摇了我未来决策的基础。",{"type":21,"tag":26,"props":10499,"children":10500},{},[10501],{"type":30,"value":10502},"这实在遗憾。",{"type":21,"tag":26,"props":10504,"children":10505},{},[10506,10508,10514],{"type":30,"value":10507},"好了，谈了不少呓语。下面提一下这次博客的搭建。当然是放弃了 ",{"type":21,"tag":1185,"props":10509,"children":10511},{"className":10510},[],[10512],{"type":30,"value":10513},"Hexo",{"type":30,"value":10515},"，感到厌倦，还是不满意。很多时候就是一个想法出现，决定做不做。过后就会很快的把它丢出“缓存”。",{"type":21,"tag":26,"props":10517,"children":10518},{},[10519,10521,10527,10529,10535],{"type":30,"value":10520},"理想的博客要求是简单、简洁、书写方便。如此，需要 ",{"type":21,"tag":1185,"props":10522,"children":10524},{"className":10523},[],[10525],{"type":30,"value":10526},"Markdown",{"type":30,"value":10528}," 文件支持，也需要一些基本的功能，比如说 ",{"type":21,"tag":1185,"props":10530,"children":10532},{"className":10531},[],[10533],{"type":30,"value":10534},"RSS",{"type":30,"value":10536}," 订阅、评论、分类、标签、日夜模式切换等等。应该会在后续上线。",{"type":21,"tag":26,"props":10538,"children":10539},{},[10540],{"type":30,"value":10541},"技术栈：Nuxt3(+@nuxt\u002Fcontent) + TailwindCSS",{"type":21,"tag":26,"props":10543,"children":10544},{},[10545],{"type":30,"value":10546},"非常简单的技术栈。摸鱼的时候玩的很爽。www",{"type":21,"tag":26,"props":10548,"children":10549},{},[10550],{"type":30,"value":10551},"就是这样，博客还存在一些问题，但边用边解决吧。",{"title":8,"searchDepth":1200,"depth":1210,"links":10553},[],"content:posts:BlogRelifeVer2.md","posts\u002FBlogRelifeVer2.md","posts\u002FBlogRelifeVer2",{"_path":10558,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10559,"description":10560,"date":10561,"categories":7286,"tags":10562,"body":10563,"_type":4170,"_id":10687,"_source":4172,"_file":10688,"_stem":10689,"_extension":4175},"\u002Fposts\u002Fblogrelife","重启博客","在我的表达欲与现实所需(问题解决记录)驱动下，我决定重写博客。","2024-10-21 20:44:57",null,{"type":18,"children":10564,"toc":10685},[10565,10569,10590,10646,10665,10670,10675,10680],{"type":21,"tag":26,"props":10566,"children":10567},{},[10568],{"type":30,"value":10560},{"type":21,"tag":26,"props":10570,"children":10571},{},[10572,10574,10580,10582,10588],{"type":30,"value":10573},"我之前写过博客。但之前的流程过于琐碎。当想要看到我新写内容的效果时，我都需要忍受长达几秒的 ",{"type":21,"tag":1185,"props":10575,"children":10577},{"className":10576},[],[10578],{"type":30,"value":10579},"hexo g && hexo d",{"type":30,"value":10581},"，编辑的过程也不能够实时渲染。另一个使我厌烦的原因是，之前的博客是 Github Pages 部署的。我公开在 ",{"type":21,"tag":1185,"props":10583,"children":10585},{"className":10584},[],[10586],{"type":30,"value":10587},"GitHub Repo",{"type":30,"value":10589}," 上的源代码也很丑陋，实在让我提不起兴趣去写。",{"type":21,"tag":26,"props":10591,"children":10592},{},[10593,10595,10600,10602,10607,10609,10615,10617,10622,10624,10629,10630,10636,10638,10644],{"type":30,"value":10594},"我追求过程的简洁，便想换成渲染 ",{"type":21,"tag":1185,"props":10596,"children":10598},{"className":10597},[],[10599],{"type":30,"value":4170},{"type":30,"value":10601}," 文件的博客 (",{"type":21,"tag":4102,"props":10603,"children":10604},{},[10605],{"type":30,"value":10606},"Hugo",{"type":30,"value":10608}," 可行，但没有去尝试)。自己也尝试用 ",{"type":21,"tag":1185,"props":10610,"children":10612},{"className":10611},[],[10613],{"type":30,"value":10614},"Nuxt3",{"type":30,"value":10616}," 写过一些 ",{"type":21,"tag":1185,"props":10618,"children":10620},{"className":10619},[],[10621],{"type":30,"value":10526},{"type":30,"value":10623}," 的静态渲染网站，实力有限其扩展能力也不强，最后还是用以前的老套路 (",{"type":21,"tag":1185,"props":10625,"children":10627},{"className":10626},[],[10628],{"type":30,"value":10513},{"type":30,"value":5537},{"type":21,"tag":1185,"props":10631,"children":10633},{"className":10632},[],[10634],{"type":30,"value":10635},"Butterfly",{"type":30,"value":10637}," theme)。不过这次决定将构建过程迁移到云端，提交到仓库的源代码就只是源代码了，这样我就只用 ",{"type":21,"tag":1185,"props":10639,"children":10641},{"className":10640},[],[10642],{"type":30,"value":10643},"git add *.md",{"type":30,"value":10645},"了。",{"type":21,"tag":26,"props":10647,"children":10648},{},[10649,10651,10656,10658,10663],{"type":30,"value":10650},"而且更令我惊喜的是，在这个过程中我还认识了 ",{"type":21,"tag":1185,"props":10652,"children":10654},{"className":10653},[],[10655],{"type":30,"value":10534},{"type":30,"value":10657}," 的存在。我可以通过 ",{"type":21,"tag":1185,"props":10659,"children":10661},{"className":10660},[],[10662],{"type":30,"value":10534},{"type":30,"value":10664}," 订阅自己的博客而忽略博客本身，这样可以更专注于写作。",{"type":21,"tag":26,"props":10666,"children":10667},{},[10668],{"type":30,"value":10669},"这次的博客更多是内心表达的冲动一直驱使着我，想要写下什么东西。我也时常怀疑自己——表达的方式真的只有这种吗？因此我也迟疑了很久，没有在网上写博客。而是在其他地方更隐私的地方零零碎碎地写下一些东西。但只是心血来潮写写罢了，三天打鱼两天晒网，其实和没写也没区别。",{"type":21,"tag":26,"props":10671,"children":10672},{},[10673],{"type":30,"value":10674},"不过这次就不一样了。",{"type":21,"tag":26,"props":10676,"children":10677},{},[10678],{"type":30,"value":10679},"哈哈？",{"type":21,"tag":26,"props":10681,"children":10682},{},[10683],{"type":30,"value":10684},"如此吧。",{"title":8,"searchDepth":1200,"depth":1210,"links":10686},[],"content:posts:BlogRelife.md","posts\u002FBlogRelife.md","posts\u002FBlogRelife",{"_path":10691,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":10692,"description":10693,"categories":10694,"mathjax":7,"date":10695,"tags":10696,"body":10699,"_type":4170,"_id":13794,"_source":4172,"_file":13795,"_stem":13796,"_extension":4175},"\u002Fposts\u002Fwindows11","从零配置 Windows11 开发环境","爽快的开发感从这里开始！","他玉集","2023-09-05 10:00:52",[10697,10698],"软件环境","Windows",{"type":18,"children":10700,"toc":13781},[10701,10713,10721,10726,10731,10736,10741,10764,10769,10806,10811,10829,10834,10964,10969,10988,11047,11052,11145,11150,11163,11168,11242,11253,11268,11279,11295,11308,11341,11362,11373,11378,11383,11388,11393,11398,11406,11534,11539,11544,11579,11596,11601,11625,11630,11635,11670,11675,11694,11699,11821,11826,11832,11842,11982,11987,12144,12149,12154,12175,12180,12250,12256,12262,12267,12356,12378,12751,12756,12761,12790,12795,12853,12859,12957,12963,12968,12973,13091,13096,13142,13155,13281,13286,13290,13345,13350,13436,13441,13488,13493,13574,13603,13644,13650,13655,13683,13688,13731,13736,13763,13777],{"type":21,"tag":26,"props":10702,"children":10703},{},[10704,10706],{"type":30,"value":10705},"Fork from: ",{"type":21,"tag":75,"props":10707,"children":10710},{"href":10708,"rel":10709},"https:\u002F\u002Fkirigaya.cn\u002Fblog\u002Farticle?seq=28",[79],[10711],{"type":30,"value":10712},"汇尘轩 - 锦恢的博客 (kirigaya.cn)",{"type":21,"tag":22,"props":10714,"children":10715},{},[10716],{"type":21,"tag":26,"props":10717,"children":10718},{},[10719],{"type":30,"value":10720},"There is no end though there is a start in space. ---Infinity.",{"type":21,"tag":26,"props":10722,"children":10723},{},[10724],{"type":30,"value":10725},"记录一下简单的电脑配置流程。按照这个顺序配置即可。",{"type":21,"tag":58,"props":10727,"children":10729},{"id":10728},"windows",[10730],{"type":30,"value":10698},{"type":21,"tag":26,"props":10732,"children":10733},{},[10734],{"type":30,"value":10735},"必须是Win11，因为我需要这个版本上面的一些特性，或是功能性的，或是装饰性的。",{"type":21,"tag":26,"props":10737,"children":10738},{},[10739],{"type":30,"value":10740},"一、登录微软账号",{"type":21,"tag":3448,"props":10742,"children":10743},{},[10744,10749,10754,10759],{"type":21,"tag":1321,"props":10745,"children":10746},{},[10747],{"type":30,"value":10748},"同步部分OS配置",{"type":21,"tag":1321,"props":10750,"children":10751},{},[10752],{"type":30,"value":10753},"同步edge",{"type":21,"tag":1321,"props":10755,"children":10756},{},[10757],{"type":30,"value":10758},"同步应用商店",{"type":21,"tag":1321,"props":10760,"children":10761},{},[10762],{"type":30,"value":10763},"升级到相应的Win11版本",{"type":21,"tag":26,"props":10765,"children":10766},{},[10767],{"type":30,"value":10768},"二、转移基本的静态文件",{"type":21,"tag":3448,"props":10770,"children":10771},{},[10772,10777,10782,10793],{"type":21,"tag":1321,"props":10773,"children":10774},{},[10775],{"type":30,"value":10776},"所有的图片（壁纸+图标+光标）",{"type":21,"tag":1321,"props":10778,"children":10779},{},[10780],{"type":30,"value":10781},"所有的额外字体文件（Jetbrain+Nerd等宽字体+几款我喜欢的中文字体）",{"type":21,"tag":1321,"props":10783,"children":10784},{},[10785,10791],{"type":21,"tag":1185,"props":10786,"children":10788},{"className":10787},[],[10789],{"type":30,"value":10790},".ssh",{"type":30,"value":10792},"文件夹（用于登录服务器）",{"type":21,"tag":1321,"props":10794,"children":10795},{},[10796,10798,10804],{"type":30,"value":10797},"windows terminal 的配置文件",{"type":21,"tag":1185,"props":10799,"children":10801},{"className":10800},[],[10802],{"type":30,"value":10803},"setting.json",{"type":30,"value":10805},"，并替换本机windows terminal配置文件，将部分的图标路径进行修改。",{"type":21,"tag":26,"props":10807,"children":10808},{},[10809],{"type":30,"value":10810},"三、下载应用软件",{"type":21,"tag":3448,"props":10812,"children":10813},{},[10814,10819,10824],{"type":21,"tag":1321,"props":10815,"children":10816},{},[10817],{"type":30,"value":10818},"微软应用商店：Dolby Access（音效）, ScreenMix（录屏）, Snipaste（截屏）、TranslucentTB（美化任务栏）、Starrea（ePub阅读器）",{"type":21,"tag":1321,"props":10820,"children":10821},{},[10822],{"type":30,"value":10823},"下载前往魔法址获取SSR订阅，下载并配置CFW。",{"type":21,"tag":1321,"props":10825,"children":10826},{},[10827],{"type":30,"value":10828},"网上下载：Google Chrome, FireFox, Tim, 微信, 飞书, 百度网盘, 7z, postman, Office套件, 向日葵, obsidian, OneNote",{"type":21,"tag":26,"props":10830,"children":10831},{},[10832],{"type":30,"value":10833},"四、配置开发环境",{"type":21,"tag":3448,"props":10835,"children":10836},{},[10837,10849],{"type":21,"tag":1321,"props":10838,"children":10839},{},[10840,10842],{"type":30,"value":10841},"下载 PowerShell 7.x 最新版本\n官方文档：",{"type":21,"tag":75,"props":10843,"children":10846},{"href":10844,"rel":10845},"https:\u002F\u002Flearn.microsoft.com\u002Fzh-cn\u002Fpowershell\u002Fscripting\u002Finstall\u002Finstalling-powershell-on-windows?view=powershell-7.3#msi",[79],[10847],{"type":30,"value":10848},"在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn",{"type":21,"tag":1321,"props":10850,"children":10851},{},[10852,10854],{"type":30,"value":10853},"删除和python默认起冲突的可执行文件。使用管理员权限打开powershell，输入：",{"type":21,"tag":1178,"props":10855,"children":10859},{"className":10856,"code":10857,"language":10858,"meta":8,"style":8},"language-sh shiki shiki-themes github-light github-dark","cd C:\\Users\\\u003C用户名>\\AppData\\Local\\Microsoft\\WindowsApps\nrm python*\n","sh",[10860],{"type":21,"tag":1185,"props":10861,"children":10862},{"__ignoreMap":8},[10863,10946],{"type":21,"tag":116,"props":10864,"children":10865},{"class":1190,"line":1191},[10866,10871,10876,10881,10886,10891,10896,10901,10906,10911,10916,10921,10926,10931,10936,10941],{"type":21,"tag":116,"props":10867,"children":10868},{"style":4853},[10869],{"type":30,"value":10870},"cd",{"type":21,"tag":116,"props":10872,"children":10873},{"style":4838},[10874],{"type":30,"value":10875}," C:",{"type":21,"tag":116,"props":10877,"children":10878},{"style":4853},[10879],{"type":30,"value":10880},"\\U",{"type":21,"tag":116,"props":10882,"children":10883},{"style":4838},[10884],{"type":30,"value":10885},"sers",{"type":21,"tag":116,"props":10887,"children":10888},{"style":4853},[10889],{"type":30,"value":10890},"\\\u003C",{"type":21,"tag":116,"props":10892,"children":10893},{"style":4838},[10894],{"type":30,"value":10895},"用户",{"type":21,"tag":116,"props":10897,"children":10898},{"style":4844},[10899],{"type":30,"value":10900},"名",{"type":21,"tag":116,"props":10902,"children":10903},{"style":8496},[10904],{"type":30,"value":10905},">",{"type":21,"tag":116,"props":10907,"children":10908},{"style":4853},[10909],{"type":30,"value":10910},"\\A",{"type":21,"tag":116,"props":10912,"children":10913},{"style":4838},[10914],{"type":30,"value":10915},"ppData",{"type":21,"tag":116,"props":10917,"children":10918},{"style":4853},[10919],{"type":30,"value":10920},"\\L",{"type":21,"tag":116,"props":10922,"children":10923},{"style":4838},[10924],{"type":30,"value":10925},"ocal",{"type":21,"tag":116,"props":10927,"children":10928},{"style":4853},[10929],{"type":30,"value":10930},"\\M",{"type":21,"tag":116,"props":10932,"children":10933},{"style":4838},[10934],{"type":30,"value":10935},"icrosoft",{"type":21,"tag":116,"props":10937,"children":10938},{"style":4853},[10939],{"type":30,"value":10940},"\\W",{"type":21,"tag":116,"props":10942,"children":10943},{"style":4838},[10944],{"type":30,"value":10945},"indowsApps\n",{"type":21,"tag":116,"props":10947,"children":10948},{"class":1190,"line":1200},[10949,10954,10959],{"type":21,"tag":116,"props":10950,"children":10951},{"style":8116},[10952],{"type":30,"value":10953},"rm",{"type":21,"tag":116,"props":10955,"children":10956},{"style":4838},[10957],{"type":30,"value":10958}," python",{"type":21,"tag":116,"props":10960,"children":10961},{"style":4853},[10962],{"type":30,"value":10963},"*\n",{"type":21,"tag":26,"props":10965,"children":10966},{},[10967],{"type":30,"value":10968},"2.下载 Git",{"type":21,"tag":3448,"props":10970,"children":10971},{},[10972,10983],{"type":21,"tag":1321,"props":10973,"children":10974},{},[10975,10977],{"type":30,"value":10976},"前往 ",{"type":21,"tag":75,"props":10978,"children":10981},{"href":10979,"rel":10980},"https:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin",[79],[10982],{"type":30,"value":10979},{"type":21,"tag":1321,"props":10984,"children":10985},{},[10986],{"type":30,"value":10987},"配置信息：",{"type":21,"tag":1178,"props":10989,"children":10991},{"className":10856,"code":10990,"language":10858,"meta":8,"style":8},"git config --global user.email xxx\ngit config --global user.name xxx\n",[10992],{"type":21,"tag":1185,"props":10993,"children":10994},{"__ignoreMap":8},[10995,11023],{"type":21,"tag":116,"props":10996,"children":10997},{"class":1190,"line":1191},[10998,11003,11008,11013,11018],{"type":21,"tag":116,"props":10999,"children":11000},{"style":8116},[11001],{"type":30,"value":11002},"git",{"type":21,"tag":116,"props":11004,"children":11005},{"style":4838},[11006],{"type":30,"value":11007}," config",{"type":21,"tag":116,"props":11009,"children":11010},{"style":4853},[11011],{"type":30,"value":11012}," --global",{"type":21,"tag":116,"props":11014,"children":11015},{"style":4838},[11016],{"type":30,"value":11017}," user.email",{"type":21,"tag":116,"props":11019,"children":11020},{"style":4838},[11021],{"type":30,"value":11022}," xxx\n",{"type":21,"tag":116,"props":11024,"children":11025},{"class":1190,"line":1200},[11026,11030,11034,11038,11043],{"type":21,"tag":116,"props":11027,"children":11028},{"style":8116},[11029],{"type":30,"value":11002},{"type":21,"tag":116,"props":11031,"children":11032},{"style":4838},[11033],{"type":30,"value":11007},{"type":21,"tag":116,"props":11035,"children":11036},{"style":4853},[11037],{"type":30,"value":11012},{"type":21,"tag":116,"props":11039,"children":11040},{"style":4838},[11041],{"type":30,"value":11042}," user.name",{"type":21,"tag":116,"props":11044,"children":11045},{"style":4838},[11046],{"type":30,"value":11022},{"type":21,"tag":26,"props":11048,"children":11049},{},[11050],{"type":30,"value":11051},"3.设置代理：",{"type":21,"tag":1178,"props":11053,"children":11055},{"className":10856,"code":11054,"language":10858,"meta":8,"style":8},"git config --global http.proxy http:\u002F\u002F127.0.0.1:\u003C端口号>\ngit config --global https.proxy https:\u002F\u002F127.0.0.1:\u003C端口号>\n",[11056],{"type":21,"tag":1185,"props":11057,"children":11058},{"__ignoreMap":8},[11059,11104],{"type":21,"tag":116,"props":11060,"children":11061},{"class":1190,"line":1191},[11062,11066,11070,11074,11079,11084,11089,11094,11099],{"type":21,"tag":116,"props":11063,"children":11064},{"style":8116},[11065],{"type":30,"value":11002},{"type":21,"tag":116,"props":11067,"children":11068},{"style":4838},[11069],{"type":30,"value":11007},{"type":21,"tag":116,"props":11071,"children":11072},{"style":4853},[11073],{"type":30,"value":11012},{"type":21,"tag":116,"props":11075,"children":11076},{"style":4838},[11077],{"type":30,"value":11078}," http.proxy",{"type":21,"tag":116,"props":11080,"children":11081},{"style":4838},[11082],{"type":30,"value":11083}," http:\u002F\u002F127.0.0.1:",{"type":21,"tag":116,"props":11085,"children":11086},{"style":8496},[11087],{"type":30,"value":11088},"\u003C",{"type":21,"tag":116,"props":11090,"children":11091},{"style":4838},[11092],{"type":30,"value":11093},"端口",{"type":21,"tag":116,"props":11095,"children":11096},{"style":4844},[11097],{"type":30,"value":11098},"号",{"type":21,"tag":116,"props":11100,"children":11101},{"style":8496},[11102],{"type":30,"value":11103},">\n",{"type":21,"tag":116,"props":11105,"children":11106},{"class":1190,"line":1200},[11107,11111,11115,11119,11124,11129,11133,11137,11141],{"type":21,"tag":116,"props":11108,"children":11109},{"style":8116},[11110],{"type":30,"value":11002},{"type":21,"tag":116,"props":11112,"children":11113},{"style":4838},[11114],{"type":30,"value":11007},{"type":21,"tag":116,"props":11116,"children":11117},{"style":4853},[11118],{"type":30,"value":11012},{"type":21,"tag":116,"props":11120,"children":11121},{"style":4838},[11122],{"type":30,"value":11123}," https.proxy",{"type":21,"tag":116,"props":11125,"children":11126},{"style":4838},[11127],{"type":30,"value":11128}," https:\u002F\u002F127.0.0.1:",{"type":21,"tag":116,"props":11130,"children":11131},{"style":8496},[11132],{"type":30,"value":11088},{"type":21,"tag":116,"props":11134,"children":11135},{"style":4838},[11136],{"type":30,"value":11093},{"type":21,"tag":116,"props":11138,"children":11139},{"style":4844},[11140],{"type":30,"value":11098},{"type":21,"tag":116,"props":11142,"children":11143},{"style":8496},[11144],{"type":30,"value":11103},{"type":21,"tag":26,"props":11146,"children":11147},{},[11148],{"type":30,"value":11149},"3.安装python",{"type":21,"tag":26,"props":11151,"children":11152},{},[11153,11155,11161],{"type":30,"value":11154},"1.去 ",{"type":21,"tag":75,"props":11156,"children":11159},{"href":11157,"rel":11158},"https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Fwindows\u002F",[79],[11160],{"type":30,"value":11157},{"type":30,"value":11162}," 寻找稳定版本的x64可执行文件下载",{"type":21,"tag":26,"props":11164,"children":11165},{},[11166],{"type":30,"value":11167},"2.配置pip源：",{"type":21,"tag":1178,"props":11169,"children":11171},{"className":10856,"code":11170,"language":10858,"meta":8,"style":8},"pip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip config set global.proxy http:\u002F\u002F127.0.0.1:\u003C端口号>\n",[11172],{"type":21,"tag":1185,"props":11173,"children":11174},{"__ignoreMap":8},[11175,11202],{"type":21,"tag":116,"props":11176,"children":11177},{"class":1190,"line":1191},[11178,11183,11187,11192,11197],{"type":21,"tag":116,"props":11179,"children":11180},{"style":8116},[11181],{"type":30,"value":11182},"pip",{"type":21,"tag":116,"props":11184,"children":11185},{"style":4838},[11186],{"type":30,"value":11007},{"type":21,"tag":116,"props":11188,"children":11189},{"style":4838},[11190],{"type":30,"value":11191}," set",{"type":21,"tag":116,"props":11193,"children":11194},{"style":4838},[11195],{"type":30,"value":11196}," global.index-url",{"type":21,"tag":116,"props":11198,"children":11199},{"style":4838},[11200],{"type":30,"value":11201}," https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n",{"type":21,"tag":116,"props":11203,"children":11204},{"class":1190,"line":1200},[11205,11209,11213,11217,11222,11226,11230,11234,11238],{"type":21,"tag":116,"props":11206,"children":11207},{"style":8116},[11208],{"type":30,"value":11182},{"type":21,"tag":116,"props":11210,"children":11211},{"style":4838},[11212],{"type":30,"value":11007},{"type":21,"tag":116,"props":11214,"children":11215},{"style":4838},[11216],{"type":30,"value":11191},{"type":21,"tag":116,"props":11218,"children":11219},{"style":4838},[11220],{"type":30,"value":11221}," global.proxy",{"type":21,"tag":116,"props":11223,"children":11224},{"style":4838},[11225],{"type":30,"value":11083},{"type":21,"tag":116,"props":11227,"children":11228},{"style":8496},[11229],{"type":30,"value":11088},{"type":21,"tag":116,"props":11231,"children":11232},{"style":4838},[11233],{"type":30,"value":11093},{"type":21,"tag":116,"props":11235,"children":11236},{"style":4844},[11237],{"type":30,"value":11098},{"type":21,"tag":116,"props":11239,"children":11240},{"style":8496},[11241],{"type":30,"value":11103},{"type":21,"tag":26,"props":11243,"children":11244},{},[11245,11247],{"type":30,"value":11246},"4.安装MinGW ",{"type":21,"tag":75,"props":11248,"children":11251},{"href":11249,"rel":11250},"https:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fmingw\u002F",[79],[11252],{"type":30,"value":11249},{"type":21,"tag":22,"props":11254,"children":11255},{},[11256],{"type":21,"tag":26,"props":11257,"children":11258},{},[11259,11261],{"type":30,"value":11260},"忘记安装配置怎么选看",{"type":21,"tag":75,"props":11262,"children":11265},{"href":11263,"rel":11264},"https:\u002F\u002Fblog.csdn.net\u002FQuantumYou\u002Farticle\u002Fdetails\u002F119676283",[79],[11266],{"type":30,"value":11267},"这篇博客",{"type":21,"tag":26,"props":11269,"children":11270},{},[11271,11273],{"type":30,"value":11272},"5.安装cmake ",{"type":21,"tag":75,"props":11274,"children":11277},{"href":11275,"rel":11276},"https:\u002F\u002Fcmake.org\u002Fdownload\u002F",[79],[11278],{"type":30,"value":11275},{"type":21,"tag":22,"props":11280,"children":11281},{},[11282],{"type":21,"tag":26,"props":11283,"children":11284},{},[11285,11287,11293],{"type":30,"value":11286},"如果安装了VS，可以查看路径",{"type":21,"tag":1185,"props":11288,"children":11290},{"className":11289},[],[11291],{"type":30,"value":11292},"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin",{"type":30,"value":11294},"，这里面存在VS构建的cmake，上面的cmake可以不用下载。",{"type":21,"tag":26,"props":11296,"children":11297},{},[11298,11300,11306],{"type":30,"value":11299},"6.安装node ",{"type":21,"tag":75,"props":11301,"children":11304},{"href":11302,"rel":11303},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F",[79],[11305],{"type":30,"value":11302},{"type":30,"value":11307},"\nnpm 换源：",{"type":21,"tag":1178,"props":11309,"children":11311},{"className":10856,"code":11310,"language":10858,"meta":8,"style":8},"npm config set registry https:\u002F\u002Fregistry.npm.taobao.org\n",[11312],{"type":21,"tag":1185,"props":11313,"children":11314},{"__ignoreMap":8},[11315],{"type":21,"tag":116,"props":11316,"children":11317},{"class":1190,"line":1191},[11318,11323,11327,11331,11336],{"type":21,"tag":116,"props":11319,"children":11320},{"style":8116},[11321],{"type":30,"value":11322},"npm",{"type":21,"tag":116,"props":11324,"children":11325},{"style":4838},[11326],{"type":30,"value":11007},{"type":21,"tag":116,"props":11328,"children":11329},{"style":4838},[11330],{"type":30,"value":11191},{"type":21,"tag":116,"props":11332,"children":11333},{"style":4838},[11334],{"type":30,"value":11335}," registry",{"type":21,"tag":116,"props":11337,"children":11338},{"style":4838},[11339],{"type":30,"value":11340}," https:\u002F\u002Fregistry.npm.taobao.org\n",{"type":21,"tag":26,"props":11342,"children":11343},{},[11344,11346,11352,11354,11360],{"type":30,"value":11345},"7.安装go\n1. 找到安装 ",{"type":21,"tag":75,"props":11347,"children":11350},{"href":11348,"rel":11349},"https:\u002F\u002Fgolang.google.cn\u002Fdl\u002F",[79],[11351],{"type":30,"value":11348},{"type":30,"value":11353},"\n2. 配置：\n",{"type":21,"tag":1185,"props":11355,"children":11357},{"className":11356},[],[11358],{"type":30,"value":11359},"shell      go env -w GO111MODULE=on      go env -w GOPROXY=https:\u002F\u002Fgoproxy.cn,direct     ",{"type":30,"value":11361},"\n3.如果有必要，设置GOROOT和GOPATH环境变量",{"type":21,"tag":26,"props":11363,"children":11364},{},[11365,11367],{"type":30,"value":11366},"8.安装Java：",{"type":21,"tag":75,"props":11368,"children":11371},{"href":11369,"rel":11370},"https:\u002F\u002Fwww.oracle.com\u002Fhk\u002Fjava\u002Ftechnologies\u002Fdownloads\u002F",[79],[11372],{"type":30,"value":11369},{"type":21,"tag":26,"props":11374,"children":11375},{},[11376],{"type":30,"value":11377},"9.测试以上编译器、解释器能否正常工作。",{"type":21,"tag":26,"props":11379,"children":11380},{},[11381],{"type":30,"value":11382},"10.安装vscode（科学上网），安装后打开并登录GitHub账号进行配置与插件同步（等到左下角的“正在同步”消失后，就可以退出了）",{"type":21,"tag":26,"props":11384,"children":11385},{},[11386],{"type":30,"value":11387},"11.安装VS2022（反正是最新版的就行），安装windows通用开发和C++的。",{"type":21,"tag":26,"props":11389,"children":11390},{},[11391],{"type":30,"value":11392},"五、配置终端",{"type":21,"tag":26,"props":11394,"children":11395},{},[11396],{"type":30,"value":11397},"以管理员权限打开windows terminal，执行下面的指令",{"type":21,"tag":3448,"props":11399,"children":11400},{},[11401],{"type":21,"tag":1321,"props":11402,"children":11403},{},[11404],{"type":30,"value":11405},"配置 powershell，安装powershell插件",{"type":21,"tag":1178,"props":11407,"children":11409},{"className":10856,"code":11408,"language":10858,"meta":8,"style":8},"# 允许运行Install-Module脚本\nset-executionpolicy remotesigned\n\n# 更新最新版本的PSReadLine，为了自动补全\nInstall-Module PSReadLine -Force\n\n# 创建powershell 的初始化脚本，点击确认创建即可\nnotepad $profile\n\n# 安装几个插件\nInstall-Module posh-git\nInstall-Module Terminal-Icons\n",[11410],{"type":21,"tag":1185,"props":11411,"children":11412},{"__ignoreMap":8},[11413,11421,11434,11441,11449,11467,11474,11482,11495,11502,11510,11522],{"type":21,"tag":116,"props":11414,"children":11415},{"class":1190,"line":1191},[11416],{"type":21,"tag":116,"props":11417,"children":11418},{"style":8143},[11419],{"type":30,"value":11420},"# 允许运行Install-Module脚本\n",{"type":21,"tag":116,"props":11422,"children":11423},{"class":1190,"line":1200},[11424,11429],{"type":21,"tag":116,"props":11425,"children":11426},{"style":8116},[11427],{"type":30,"value":11428},"set-executionpolicy",{"type":21,"tag":116,"props":11430,"children":11431},{"style":4838},[11432],{"type":30,"value":11433}," remotesigned\n",{"type":21,"tag":116,"props":11435,"children":11436},{"class":1190,"line":1210},[11437],{"type":21,"tag":116,"props":11438,"children":11439},{"emptyLinePlaceholder":1204},[11440],{"type":30,"value":1207},{"type":21,"tag":116,"props":11442,"children":11443},{"class":1190,"line":1219},[11444],{"type":21,"tag":116,"props":11445,"children":11446},{"style":8143},[11447],{"type":30,"value":11448},"# 更新最新版本的PSReadLine，为了自动补全\n",{"type":21,"tag":116,"props":11450,"children":11451},{"class":1190,"line":1228},[11452,11457,11462],{"type":21,"tag":116,"props":11453,"children":11454},{"style":8116},[11455],{"type":30,"value":11456},"Install-Module",{"type":21,"tag":116,"props":11458,"children":11459},{"style":4838},[11460],{"type":30,"value":11461}," PSReadLine",{"type":21,"tag":116,"props":11463,"children":11464},{"style":4853},[11465],{"type":30,"value":11466}," -Force\n",{"type":21,"tag":116,"props":11468,"children":11469},{"class":1190,"line":1237},[11470],{"type":21,"tag":116,"props":11471,"children":11472},{"emptyLinePlaceholder":1204},[11473],{"type":30,"value":1207},{"type":21,"tag":116,"props":11475,"children":11476},{"class":1190,"line":1246},[11477],{"type":21,"tag":116,"props":11478,"children":11479},{"style":8143},[11480],{"type":30,"value":11481},"# 创建powershell 的初始化脚本，点击确认创建即可\n",{"type":21,"tag":116,"props":11483,"children":11484},{"class":1190,"line":1255},[11485,11490],{"type":21,"tag":116,"props":11486,"children":11487},{"style":8116},[11488],{"type":30,"value":11489},"notepad",{"type":21,"tag":116,"props":11491,"children":11492},{"style":4844},[11493],{"type":30,"value":11494}," $profile\n",{"type":21,"tag":116,"props":11496,"children":11497},{"class":1190,"line":1264},[11498],{"type":21,"tag":116,"props":11499,"children":11500},{"emptyLinePlaceholder":1204},[11501],{"type":30,"value":1207},{"type":21,"tag":116,"props":11503,"children":11504},{"class":1190,"line":1273},[11505],{"type":21,"tag":116,"props":11506,"children":11507},{"style":8143},[11508],{"type":30,"value":11509},"# 安装几个插件\n",{"type":21,"tag":116,"props":11511,"children":11512},{"class":1190,"line":5065},[11513,11517],{"type":21,"tag":116,"props":11514,"children":11515},{"style":8116},[11516],{"type":30,"value":11456},{"type":21,"tag":116,"props":11518,"children":11519},{"style":4838},[11520],{"type":30,"value":11521}," posh-git\n",{"type":21,"tag":116,"props":11523,"children":11524},{"class":1190,"line":6336},[11525,11529],{"type":21,"tag":116,"props":11526,"children":11527},{"style":8116},[11528],{"type":30,"value":11456},{"type":21,"tag":116,"props":11530,"children":11531},{"style":4838},[11532],{"type":30,"value":11533}," Terminal-Icons\n",{"type":21,"tag":26,"props":11535,"children":11536},{},[11537],{"type":30,"value":11538},"2.安装并配置oh-my-posh",{"type":21,"tag":26,"props":11540,"children":11541},{},[11542],{"type":30,"value":11543},"1.安装oh-my-posh",{"type":21,"tag":1178,"props":11545,"children":11547},{"className":10856,"code":11546,"language":10858,"meta":8,"style":8},"winget install JanDeDobbeleer.OhMyPosh -s winget\n",[11548],{"type":21,"tag":1185,"props":11549,"children":11550},{"__ignoreMap":8},[11551],{"type":21,"tag":116,"props":11552,"children":11553},{"class":1190,"line":1191},[11554,11559,11564,11569,11574],{"type":21,"tag":116,"props":11555,"children":11556},{"style":8116},[11557],{"type":30,"value":11558},"winget",{"type":21,"tag":116,"props":11560,"children":11561},{"style":4838},[11562],{"type":30,"value":11563}," install",{"type":21,"tag":116,"props":11565,"children":11566},{"style":4838},[11567],{"type":30,"value":11568}," JanDeDobbeleer.OhMyPosh",{"type":21,"tag":116,"props":11570,"children":11571},{"style":4853},[11572],{"type":30,"value":11573}," -s",{"type":21,"tag":116,"props":11575,"children":11576},{"style":4838},[11577],{"type":30,"value":11578}," winget\n",{"type":21,"tag":22,"props":11580,"children":11581},{},[11582],{"type":21,"tag":26,"props":11583,"children":11584},{},[11585,11587,11594],{"type":30,"value":11586},"如果该方法失效，移步",{"type":21,"tag":75,"props":11588,"children":11591},{"href":11589,"rel":11590},"https:\u002F\u002Fohmyposh.dev\u002Fdocs\u002Finstallation\u002Fwindows",[79],[11592],{"type":30,"value":11593},"oh-my-posh windows set up",{"type":30,"value":11595},"查看最新安装方法",{"type":21,"tag":26,"props":11597,"children":11598},{},[11599],{"type":30,"value":11600},"2.下载oh-my-posh主题",{"type":21,"tag":1178,"props":11602,"children":11604},{"className":10856,"code":11603,"language":10858,"meta":8,"style":8},"git clone https:\u002F\u002Fgithub.com\u002FJanDeDobbeleer\u002Foh-my-posh \n",[11605],{"type":21,"tag":1185,"props":11606,"children":11607},{"__ignoreMap":8},[11608],{"type":21,"tag":116,"props":11609,"children":11610},{"class":1190,"line":1191},[11611,11615,11620],{"type":21,"tag":116,"props":11612,"children":11613},{"style":8116},[11614],{"type":30,"value":11002},{"type":21,"tag":116,"props":11616,"children":11617},{"style":4838},[11618],{"type":30,"value":11619}," clone",{"type":21,"tag":116,"props":11621,"children":11622},{"style":4838},[11623],{"type":30,"value":11624}," https:\u002F\u002Fgithub.com\u002FJanDeDobbeleer\u002Foh-my-posh\n",{"type":21,"tag":26,"props":11626,"children":11627},{},[11628],{"type":30,"value":11629},"将里面的theme文件夹保留即可。",{"type":21,"tag":26,"props":11631,"children":11632},{},[11633],{"type":30,"value":11634},"3.测试",{"type":21,"tag":1178,"props":11636,"children":11638},{"className":10856,"code":11637,"language":10858,"meta":8,"style":8},"oh-my-posh init pwsh | Invoke-Expression\n",[11639],{"type":21,"tag":1185,"props":11640,"children":11641},{"__ignoreMap":8},[11642],{"type":21,"tag":116,"props":11643,"children":11644},{"class":1190,"line":1191},[11645,11650,11655,11660,11665],{"type":21,"tag":116,"props":11646,"children":11647},{"style":8116},[11648],{"type":30,"value":11649},"oh-my-posh",{"type":21,"tag":116,"props":11651,"children":11652},{"style":4838},[11653],{"type":30,"value":11654}," init",{"type":21,"tag":116,"props":11656,"children":11657},{"style":4838},[11658],{"type":30,"value":11659}," pwsh",{"type":21,"tag":116,"props":11661,"children":11662},{"style":8496},[11663],{"type":30,"value":11664}," |",{"type":21,"tag":116,"props":11666,"children":11667},{"style":8116},[11668],{"type":30,"value":11669}," Invoke-Expression\n",{"type":21,"tag":26,"props":11671,"children":11672},{},[11673],{"type":30,"value":11674},"3.配置整体运行文件",{"type":21,"tag":1178,"props":11676,"children":11678},{"className":10856,"code":11677,"language":10858,"meta":8,"style":8},"notepad++ $profile\n",[11679],{"type":21,"tag":1185,"props":11680,"children":11681},{"__ignoreMap":8},[11682],{"type":21,"tag":116,"props":11683,"children":11684},{"class":1190,"line":1191},[11685,11690],{"type":21,"tag":116,"props":11686,"children":11687},{"style":8116},[11688],{"type":30,"value":11689},"notepad++",{"type":21,"tag":116,"props":11691,"children":11692},{"style":4844},[11693],{"type":30,"value":11494},{"type":21,"tag":26,"props":11695,"children":11696},{},[11697],{"type":30,"value":11698},"将以下文本写入其中：",{"type":21,"tag":1178,"props":11700,"children":11702},{"className":10856,"code":11701,"language":10858,"meta":8,"style":8},"oh-my-posh init pwsh --config \u003C主题路径（json文件）> | Invoke-Expression\nImport-Module posh-git\nImport-Module Terminal-Icons\nSet-PSReadLineOption -PredictionSource History\nSet-PSReadlineKeyHandler -Key Tab -Function MenuComplete\n",[11703],{"type":21,"tag":1185,"props":11704,"children":11705},{"__ignoreMap":8},[11706,11752,11764,11775,11793],{"type":21,"tag":116,"props":11707,"children":11708},{"class":1190,"line":1191},[11709,11713,11717,11721,11726,11731,11736,11740,11744,11748],{"type":21,"tag":116,"props":11710,"children":11711},{"style":8116},[11712],{"type":30,"value":11649},{"type":21,"tag":116,"props":11714,"children":11715},{"style":4838},[11716],{"type":30,"value":11654},{"type":21,"tag":116,"props":11718,"children":11719},{"style":4838},[11720],{"type":30,"value":11659},{"type":21,"tag":116,"props":11722,"children":11723},{"style":4853},[11724],{"type":30,"value":11725}," --config",{"type":21,"tag":116,"props":11727,"children":11728},{"style":8496},[11729],{"type":30,"value":11730}," \u003C",{"type":21,"tag":116,"props":11732,"children":11733},{"style":4838},[11734],{"type":30,"value":11735},"主题路径（json文件",{"type":21,"tag":116,"props":11737,"children":11738},{"style":4844},[11739],{"type":30,"value":4500},{"type":21,"tag":116,"props":11741,"children":11742},{"style":8496},[11743],{"type":30,"value":10905},{"type":21,"tag":116,"props":11745,"children":11746},{"style":8496},[11747],{"type":30,"value":11664},{"type":21,"tag":116,"props":11749,"children":11750},{"style":8116},[11751],{"type":30,"value":11669},{"type":21,"tag":116,"props":11753,"children":11754},{"class":1190,"line":1200},[11755,11760],{"type":21,"tag":116,"props":11756,"children":11757},{"style":8116},[11758],{"type":30,"value":11759},"Import-Module",{"type":21,"tag":116,"props":11761,"children":11762},{"style":4838},[11763],{"type":30,"value":11521},{"type":21,"tag":116,"props":11765,"children":11766},{"class":1190,"line":1210},[11767,11771],{"type":21,"tag":116,"props":11768,"children":11769},{"style":8116},[11770],{"type":30,"value":11759},{"type":21,"tag":116,"props":11772,"children":11773},{"style":4838},[11774],{"type":30,"value":11533},{"type":21,"tag":116,"props":11776,"children":11777},{"class":1190,"line":1219},[11778,11783,11788],{"type":21,"tag":116,"props":11779,"children":11780},{"style":8116},[11781],{"type":30,"value":11782},"Set-PSReadLineOption",{"type":21,"tag":116,"props":11784,"children":11785},{"style":4853},[11786],{"type":30,"value":11787}," -PredictionSource",{"type":21,"tag":116,"props":11789,"children":11790},{"style":4838},[11791],{"type":30,"value":11792}," History\n",{"type":21,"tag":116,"props":11794,"children":11795},{"class":1190,"line":1228},[11796,11801,11806,11811,11816],{"type":21,"tag":116,"props":11797,"children":11798},{"style":8116},[11799],{"type":30,"value":11800},"Set-PSReadlineKeyHandler",{"type":21,"tag":116,"props":11802,"children":11803},{"style":4853},[11804],{"type":30,"value":11805}," -Key",{"type":21,"tag":116,"props":11807,"children":11808},{"style":4838},[11809],{"type":30,"value":11810}," Tab",{"type":21,"tag":116,"props":11812,"children":11813},{"style":4853},[11814],{"type":30,"value":11815}," -Function",{"type":21,"tag":116,"props":11817,"children":11818},{"style":4838},[11819],{"type":30,"value":11820}," MenuComplete\n",{"type":21,"tag":26,"props":11822,"children":11823},{},[11824],{"type":30,"value":11825},"重新打开terminal查看安装效果",{"type":21,"tag":58,"props":11827,"children":11829},{"id":11828},"六安装wsl2",[11830],{"type":30,"value":11831},"六、安装WSL2",{"type":21,"tag":26,"props":11833,"children":11834},{},[11835,11840],{"type":21,"tag":33,"props":11836,"children":11837},{},[11838],{"type":30,"value":11839},"以管理员身份",{"type":30,"value":11841},"打开windows terminal",{"type":21,"tag":1178,"props":11843,"children":11845},{"className":8104,"code":11844,"language":8106,"meta":8,"style":8},"# 开启VM组件 开启后需要重启电脑\nEnable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform\n\n# 列出可安装的安装包\nwsl --list --online\n\n# 安装你想要的发行版，我这里是Ubuntu-22.04\nwsl --install -d Ubuntu-22.04\n\n# 设置为wsl2\nwsl --set-default-version 2\n",[11846],{"type":21,"tag":1185,"props":11847,"children":11848},{"__ignoreMap":8},[11849,11857,11880,11887,11895,11913,11920,11928,11950,11957,11965],{"type":21,"tag":116,"props":11850,"children":11851},{"class":1190,"line":1191},[11852],{"type":21,"tag":116,"props":11853,"children":11854},{"style":8143},[11855],{"type":30,"value":11856},"# 开启VM组件 开启后需要重启电脑\n",{"type":21,"tag":116,"props":11858,"children":11859},{"class":1190,"line":1200},[11860,11865,11870,11875],{"type":21,"tag":116,"props":11861,"children":11862},{"style":8116},[11863],{"type":30,"value":11864},"Enable-WindowsOptionalFeature",{"type":21,"tag":116,"props":11866,"children":11867},{"style":4853},[11868],{"type":30,"value":11869}," -Online",{"type":21,"tag":116,"props":11871,"children":11872},{"style":4853},[11873],{"type":30,"value":11874}," -FeatureName",{"type":21,"tag":116,"props":11876,"children":11877},{"style":4838},[11878],{"type":30,"value":11879}," VirtualMachinePlatform\n",{"type":21,"tag":116,"props":11881,"children":11882},{"class":1190,"line":1210},[11883],{"type":21,"tag":116,"props":11884,"children":11885},{"emptyLinePlaceholder":1204},[11886],{"type":30,"value":1207},{"type":21,"tag":116,"props":11888,"children":11889},{"class":1190,"line":1219},[11890],{"type":21,"tag":116,"props":11891,"children":11892},{"style":8143},[11893],{"type":30,"value":11894},"# 列出可安装的安装包\n",{"type":21,"tag":116,"props":11896,"children":11897},{"class":1190,"line":1228},[11898,11903,11908],{"type":21,"tag":116,"props":11899,"children":11900},{"style":8116},[11901],{"type":30,"value":11902},"wsl",{"type":21,"tag":116,"props":11904,"children":11905},{"style":4853},[11906],{"type":30,"value":11907}," --list",{"type":21,"tag":116,"props":11909,"children":11910},{"style":4853},[11911],{"type":30,"value":11912}," --online\n",{"type":21,"tag":116,"props":11914,"children":11915},{"class":1190,"line":1237},[11916],{"type":21,"tag":116,"props":11917,"children":11918},{"emptyLinePlaceholder":1204},[11919],{"type":30,"value":1207},{"type":21,"tag":116,"props":11921,"children":11922},{"class":1190,"line":1246},[11923],{"type":21,"tag":116,"props":11924,"children":11925},{"style":8143},[11926],{"type":30,"value":11927},"# 安装你想要的发行版，我这里是Ubuntu-22.04\n",{"type":21,"tag":116,"props":11929,"children":11930},{"class":1190,"line":1255},[11931,11935,11940,11945],{"type":21,"tag":116,"props":11932,"children":11933},{"style":8116},[11934],{"type":30,"value":11902},{"type":21,"tag":116,"props":11936,"children":11937},{"style":4853},[11938],{"type":30,"value":11939}," --install",{"type":21,"tag":116,"props":11941,"children":11942},{"style":4853},[11943],{"type":30,"value":11944}," -d",{"type":21,"tag":116,"props":11946,"children":11947},{"style":4838},[11948],{"type":30,"value":11949}," Ubuntu-22.04\n",{"type":21,"tag":116,"props":11951,"children":11952},{"class":1190,"line":1264},[11953],{"type":21,"tag":116,"props":11954,"children":11955},{"emptyLinePlaceholder":1204},[11956],{"type":30,"value":1207},{"type":21,"tag":116,"props":11958,"children":11959},{"class":1190,"line":1273},[11960],{"type":21,"tag":116,"props":11961,"children":11962},{"style":8143},[11963],{"type":30,"value":11964},"# 设置为wsl2\n",{"type":21,"tag":116,"props":11966,"children":11967},{"class":1190,"line":5065},[11968,11972,11977],{"type":21,"tag":116,"props":11969,"children":11970},{"style":8116},[11971],{"type":30,"value":11902},{"type":21,"tag":116,"props":11973,"children":11974},{"style":4853},[11975],{"type":30,"value":11976}," --set-default-version",{"type":21,"tag":116,"props":11978,"children":11979},{"style":4853},[11980],{"type":30,"value":11981}," 2\n",{"type":21,"tag":26,"props":11983,"children":11984},{},[11985],{"type":30,"value":11986},"WSL可以简单的创建多个发行版，并进行管理和切换。并且可以对接VS code及Jetbrain(学生可以申请专业版！！快去)等IDE。支持CUDA，docker，并且享受linux命令行的各种工具。掌握使用WSL是重要的。\n现在来举例一些基本的操作。",{"type":21,"tag":1178,"props":11988,"children":11990},{"className":8104,"code":11989,"language":8106,"meta":8,"style":8},"# 列出已安装的Linux发行版\nwsl -l -v\n# 导出\u002F备份\nwsl --export Ubuntu-22.04 Ubuntu-22.04.tar\n# 导入\u002F还原\u002F利用备份创建新的安装\n# wsl --import \u003Cwsl_name> \u003Croute> \u003Csource>\nwsl --import Anaconda C:\\Users\\niina\\root\\var\\wsl\\anaconda\n",[11991],{"type":21,"tag":1185,"props":11992,"children":11993},{"__ignoreMap":8},[11994,12002,12019,12027,12049,12057,12065],{"type":21,"tag":116,"props":11995,"children":11996},{"class":1190,"line":1191},[11997],{"type":21,"tag":116,"props":11998,"children":11999},{"style":8143},[12000],{"type":30,"value":12001},"# 列出已安装的Linux发行版\n",{"type":21,"tag":116,"props":12003,"children":12004},{"class":1190,"line":1200},[12005,12009,12014],{"type":21,"tag":116,"props":12006,"children":12007},{"style":8116},[12008],{"type":30,"value":11902},{"type":21,"tag":116,"props":12010,"children":12011},{"style":4853},[12012],{"type":30,"value":12013}," -l",{"type":21,"tag":116,"props":12015,"children":12016},{"style":4853},[12017],{"type":30,"value":12018}," -v\n",{"type":21,"tag":116,"props":12020,"children":12021},{"class":1190,"line":1210},[12022],{"type":21,"tag":116,"props":12023,"children":12024},{"style":8143},[12025],{"type":30,"value":12026},"# 导出\u002F备份\n",{"type":21,"tag":116,"props":12028,"children":12029},{"class":1190,"line":1219},[12030,12034,12039,12044],{"type":21,"tag":116,"props":12031,"children":12032},{"style":8116},[12033],{"type":30,"value":11902},{"type":21,"tag":116,"props":12035,"children":12036},{"style":4853},[12037],{"type":30,"value":12038}," --export",{"type":21,"tag":116,"props":12040,"children":12041},{"style":4838},[12042],{"type":30,"value":12043}," Ubuntu-22.04",{"type":21,"tag":116,"props":12045,"children":12046},{"style":4838},[12047],{"type":30,"value":12048}," Ubuntu-22.04.tar\n",{"type":21,"tag":116,"props":12050,"children":12051},{"class":1190,"line":1228},[12052],{"type":21,"tag":116,"props":12053,"children":12054},{"style":8143},[12055],{"type":30,"value":12056},"# 导入\u002F还原\u002F利用备份创建新的安装\n",{"type":21,"tag":116,"props":12058,"children":12059},{"class":1190,"line":1237},[12060],{"type":21,"tag":116,"props":12061,"children":12062},{"style":8143},[12063],{"type":30,"value":12064},"# wsl --import \u003Cwsl_name> \u003Croute> \u003Csource>\n",{"type":21,"tag":116,"props":12066,"children":12067},{"class":1190,"line":1246},[12068,12072,12077,12082,12086,12090,12094,12099,12104,12109,12114,12119,12124,12129,12134,12139],{"type":21,"tag":116,"props":12069,"children":12070},{"style":8116},[12071],{"type":30,"value":11902},{"type":21,"tag":116,"props":12073,"children":12074},{"style":4853},[12075],{"type":30,"value":12076}," --import",{"type":21,"tag":116,"props":12078,"children":12079},{"style":4838},[12080],{"type":30,"value":12081}," Anaconda",{"type":21,"tag":116,"props":12083,"children":12084},{"style":4838},[12085],{"type":30,"value":10875},{"type":21,"tag":116,"props":12087,"children":12088},{"style":4853},[12089],{"type":30,"value":10880},{"type":21,"tag":116,"props":12091,"children":12092},{"style":4838},[12093],{"type":30,"value":10885},{"type":21,"tag":116,"props":12095,"children":12096},{"style":4853},[12097],{"type":30,"value":12098},"\\n",{"type":21,"tag":116,"props":12100,"children":12101},{"style":4838},[12102],{"type":30,"value":12103},"iina",{"type":21,"tag":116,"props":12105,"children":12106},{"style":4853},[12107],{"type":30,"value":12108},"\\r",{"type":21,"tag":116,"props":12110,"children":12111},{"style":4838},[12112],{"type":30,"value":12113},"oot",{"type":21,"tag":116,"props":12115,"children":12116},{"style":4853},[12117],{"type":30,"value":12118},"\\v",{"type":21,"tag":116,"props":12120,"children":12121},{"style":4838},[12122],{"type":30,"value":12123},"ar",{"type":21,"tag":116,"props":12125,"children":12126},{"style":4853},[12127],{"type":30,"value":12128},"\\w",{"type":21,"tag":116,"props":12130,"children":12131},{"style":4838},[12132],{"type":30,"value":12133},"sl",{"type":21,"tag":116,"props":12135,"children":12136},{"style":4853},[12137],{"type":30,"value":12138},"\\a",{"type":21,"tag":116,"props":12140,"children":12141},{"style":4838},[12142],{"type":30,"value":12143},"naconda\n",{"type":21,"tag":26,"props":12145,"children":12146},{},[12147],{"type":30,"value":12148},"以上操作完成后，在win+Q(或win)中搜索ubuntu on Windows，打开，完成安装和账号注册（Unix账号必须是开头小写的单词）",{"type":21,"tag":26,"props":12150,"children":12151},{},[12152],{"type":30,"value":12153},"完成后打开windows terminal的下拉菜单，会发现多出了一个Ubuntu的标签页。后面移步Linux的配置。",{"type":21,"tag":26,"props":12155,"children":12156},{},[12157,12159,12166,12168],{"type":30,"value":12158},"WSL学习使用：",{"type":21,"tag":75,"props":12160,"children":12163},{"href":12161,"rel":12162},"https:\u002F\u002Flearn.microsoft.com\u002Fzh-cn\u002Fwindows\u002Fwsl\u002F",[79],[12164],{"type":30,"value":12165},"适用于 Linux 的 Windows 子系统文档 | Microsoft Learn",{"type":30,"value":12167},"\n开源的一个WSL入门手册： ",{"type":21,"tag":75,"props":12169,"children":12172},{"href":12170,"rel":12171},"https:\u002F\u002Fdowww.spencerwoo.com\u002F",[79],[12173],{"type":30,"value":12174},"在Windows上优雅地使用WSL开发",{"type":21,"tag":26,"props":12176,"children":12177},{},[12178],{"type":30,"value":12179},"七、兴趣爱好",{"type":21,"tag":1317,"props":12181,"children":12182},{},[12183,12194,12204,12209,12219,12229,12239],{"type":21,"tag":1321,"props":12184,"children":12185},{},[12186,12188],{"type":30,"value":12187},"cuDNN开发套件（用于开发kernel op和安装编译torch cuda） ",{"type":21,"tag":75,"props":12189,"children":12192},{"href":12190,"rel":12191},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-downloads",[79],[12193],{"type":30,"value":12190},{"type":21,"tag":1321,"props":12195,"children":12196},{},[12197],{"type":21,"tag":75,"props":12198,"children":12201},{"href":12199,"rel":12200},"https:\u002F\u002Fwww.flstudiochina.com\u002Fxiazai.html",[79],[12202],{"type":30,"value":12203},"FL Studio",{"type":21,"tag":1321,"props":12205,"children":12206},{},[12207],{"type":30,"value":12208},"Cubase",{"type":21,"tag":1321,"props":12210,"children":12211},{},[12212],{"type":21,"tag":75,"props":12213,"children":12216},{"href":12214,"rel":12215},"https:\u002F\u002Fwww.reaper.fm\u002Fdownload.php",[79],[12217],{"type":30,"value":12218},"REAPER",{"type":21,"tag":1321,"props":12220,"children":12221},{},[12222],{"type":21,"tag":75,"props":12223,"children":12226},{"href":12224,"rel":12225},"https:\u002F\u002Fdreamtonics.com\u002Fen\u002Fsynthesizerv\u002F",[79],[12227],{"type":30,"value":12228},"Synthesizer V",{"type":21,"tag":1321,"props":12230,"children":12231},{},[12232],{"type":21,"tag":75,"props":12233,"children":12236},{"href":12234,"rel":12235},"https:\u002F\u002Fstore.steampowered.com\u002Fabout\u002F",[79],[12237],{"type":30,"value":12238},"Steam",{"type":21,"tag":1321,"props":12240,"children":12241},{},[12242,12244],{"type":30,"value":12243},"ACE studio  ",{"type":21,"tag":75,"props":12245,"children":12248},{"href":12246,"rel":12247},"https:\u002F\u002Face-studio.timedomain.cn\u002F",[79],[12249],{"type":30,"value":12246},{"type":21,"tag":58,"props":12251,"children":12253},{"id":12252},"linux",[12254],{"type":30,"value":12255},"Linux",{"type":21,"tag":4502,"props":12257,"children":12259},{"id":12258},"一apt换源",[12260],{"type":30,"value":12261},"一、apt换源",{"type":21,"tag":26,"props":12263,"children":12264},{},[12265],{"type":30,"value":12266},"操作如下。",{"type":21,"tag":1178,"props":12268,"children":12270},{"className":10856,"code":12269,"language":10858,"meta":8,"style":8},"cd \u002Fetc\u002Fapt\u002F\n\n# 留个source备份\nsudo cp sources.list sources.list.backup\n\n# 使用源\nsudo vim sources.list\n",[12271],{"type":21,"tag":1185,"props":12272,"children":12273},{"__ignoreMap":8},[12274,12286,12293,12301,12324,12331,12339],{"type":21,"tag":116,"props":12275,"children":12276},{"class":1190,"line":1191},[12277,12281],{"type":21,"tag":116,"props":12278,"children":12279},{"style":4853},[12280],{"type":30,"value":10870},{"type":21,"tag":116,"props":12282,"children":12283},{"style":4838},[12284],{"type":30,"value":12285}," \u002Fetc\u002Fapt\u002F\n",{"type":21,"tag":116,"props":12287,"children":12288},{"class":1190,"line":1200},[12289],{"type":21,"tag":116,"props":12290,"children":12291},{"emptyLinePlaceholder":1204},[12292],{"type":30,"value":1207},{"type":21,"tag":116,"props":12294,"children":12295},{"class":1190,"line":1210},[12296],{"type":21,"tag":116,"props":12297,"children":12298},{"style":8143},[12299],{"type":30,"value":12300},"# 留个source备份\n",{"type":21,"tag":116,"props":12302,"children":12303},{"class":1190,"line":1219},[12304,12309,12314,12319],{"type":21,"tag":116,"props":12305,"children":12306},{"style":8116},[12307],{"type":30,"value":12308},"sudo",{"type":21,"tag":116,"props":12310,"children":12311},{"style":4838},[12312],{"type":30,"value":12313}," cp",{"type":21,"tag":116,"props":12315,"children":12316},{"style":4838},[12317],{"type":30,"value":12318}," sources.list",{"type":21,"tag":116,"props":12320,"children":12321},{"style":4838},[12322],{"type":30,"value":12323}," sources.list.backup\n",{"type":21,"tag":116,"props":12325,"children":12326},{"class":1190,"line":1228},[12327],{"type":21,"tag":116,"props":12328,"children":12329},{"emptyLinePlaceholder":1204},[12330],{"type":30,"value":1207},{"type":21,"tag":116,"props":12332,"children":12333},{"class":1190,"line":1237},[12334],{"type":21,"tag":116,"props":12335,"children":12336},{"style":8143},[12337],{"type":30,"value":12338},"# 使用源\n",{"type":21,"tag":116,"props":12340,"children":12341},{"class":1190,"line":1246},[12342,12346,12351],{"type":21,"tag":116,"props":12343,"children":12344},{"style":8116},[12345],{"type":30,"value":12308},{"type":21,"tag":116,"props":12347,"children":12348},{"style":4838},[12349],{"type":30,"value":12350}," vim",{"type":21,"tag":116,"props":12352,"children":12353},{"style":4838},[12354],{"type":30,"value":12355}," sources.list\n",{"type":21,"tag":26,"props":12357,"children":12358},{},[12359,12361,12367,12369,12376],{"type":30,"value":12360},"写入：(根据ubuntu版本号自己查, ",{"type":21,"tag":1185,"props":12362,"children":12364},{"className":12363},[],[12365],{"type":30,"value":12366},"cat \u002Fetc\u002Fos-release",{"type":30,"value":12368},")\n清华源给出的Ubuntu22.04源的网址 ",{"type":21,"tag":75,"props":12370,"children":12373},{"href":12371,"rel":12372},"https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fhelp\u002Fubuntu\u002F",[79],[12374],{"type":30,"value":12375},"Ubuntu",{"type":30,"value":12377},"\n下面是同版本阿里云的源，复制粘贴进即可。",{"type":21,"tag":1178,"props":12379,"children":12381},{"className":10856,"code":12380,"language":10858,"meta":8,"style":8},"## aliyun mirrors\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-security main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-security main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-updates main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-updates main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-proposed main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-proposed main restricted universe multiverse\n\ndeb http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-backports main restricted universe multiverse\ndeb-src http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F jammy-backports main restricted universe multiverse\n## aliyun mirrors End\n",[12382],{"type":21,"tag":1185,"props":12383,"children":12384},{"__ignoreMap":8},[12385,12393,12431,12463,12470,12502,12533,12540,12572,12603,12610,12642,12673,12680,12712,12743],{"type":21,"tag":116,"props":12386,"children":12387},{"class":1190,"line":1191},[12388],{"type":21,"tag":116,"props":12389,"children":12390},{"style":8143},[12391],{"type":30,"value":12392},"## aliyun mirrors\n",{"type":21,"tag":116,"props":12394,"children":12395},{"class":1190,"line":1200},[12396,12401,12406,12411,12416,12421,12426],{"type":21,"tag":116,"props":12397,"children":12398},{"style":8116},[12399],{"type":30,"value":12400},"deb",{"type":21,"tag":116,"props":12402,"children":12403},{"style":4838},[12404],{"type":30,"value":12405}," http:\u002F\u002Fmirrors.aliyun.com\u002Fubuntu\u002F",{"type":21,"tag":116,"props":12407,"children":12408},{"style":4838},[12409],{"type":30,"value":12410}," jammy",{"type":21,"tag":116,"props":12412,"children":12413},{"style":4838},[12414],{"type":30,"value":12415}," main",{"type":21,"tag":116,"props":12417,"children":12418},{"style":4838},[12419],{"type":30,"value":12420}," restricted",{"type":21,"tag":116,"props":12422,"children":12423},{"style":4838},[12424],{"type":30,"value":12425}," universe",{"type":21,"tag":116,"props":12427,"children":12428},{"style":4838},[12429],{"type":30,"value":12430}," multiverse\n",{"type":21,"tag":116,"props":12432,"children":12433},{"class":1190,"line":1210},[12434,12439,12443,12447,12451,12455,12459],{"type":21,"tag":116,"props":12435,"children":12436},{"style":8116},[12437],{"type":30,"value":12438},"deb-src",{"type":21,"tag":116,"props":12440,"children":12441},{"style":4838},[12442],{"type":30,"value":12405},{"type":21,"tag":116,"props":12444,"children":12445},{"style":4838},[12446],{"type":30,"value":12410},{"type":21,"tag":116,"props":12448,"children":12449},{"style":4838},[12450],{"type":30,"value":12415},{"type":21,"tag":116,"props":12452,"children":12453},{"style":4838},[12454],{"type":30,"value":12420},{"type":21,"tag":116,"props":12456,"children":12457},{"style":4838},[12458],{"type":30,"value":12425},{"type":21,"tag":116,"props":12460,"children":12461},{"style":4838},[12462],{"type":30,"value":12430},{"type":21,"tag":116,"props":12464,"children":12465},{"class":1190,"line":1219},[12466],{"type":21,"tag":116,"props":12467,"children":12468},{"emptyLinePlaceholder":1204},[12469],{"type":30,"value":1207},{"type":21,"tag":116,"props":12471,"children":12472},{"class":1190,"line":1228},[12473,12477,12481,12486,12490,12494,12498],{"type":21,"tag":116,"props":12474,"children":12475},{"style":8116},[12476],{"type":30,"value":12400},{"type":21,"tag":116,"props":12478,"children":12479},{"style":4838},[12480],{"type":30,"value":12405},{"type":21,"tag":116,"props":12482,"children":12483},{"style":4838},[12484],{"type":30,"value":12485}," jammy-security",{"type":21,"tag":116,"props":12487,"children":12488},{"style":4838},[12489],{"type":30,"value":12415},{"type":21,"tag":116,"props":12491,"children":12492},{"style":4838},[12493],{"type":30,"value":12420},{"type":21,"tag":116,"props":12495,"children":12496},{"style":4838},[12497],{"type":30,"value":12425},{"type":21,"tag":116,"props":12499,"children":12500},{"style":4838},[12501],{"type":30,"value":12430},{"type":21,"tag":116,"props":12503,"children":12504},{"class":1190,"line":1237},[12505,12509,12513,12517,12521,12525,12529],{"type":21,"tag":116,"props":12506,"children":12507},{"style":8116},[12508],{"type":30,"value":12438},{"type":21,"tag":116,"props":12510,"children":12511},{"style":4838},[12512],{"type":30,"value":12405},{"type":21,"tag":116,"props":12514,"children":12515},{"style":4838},[12516],{"type":30,"value":12485},{"type":21,"tag":116,"props":12518,"children":12519},{"style":4838},[12520],{"type":30,"value":12415},{"type":21,"tag":116,"props":12522,"children":12523},{"style":4838},[12524],{"type":30,"value":12420},{"type":21,"tag":116,"props":12526,"children":12527},{"style":4838},[12528],{"type":30,"value":12425},{"type":21,"tag":116,"props":12530,"children":12531},{"style":4838},[12532],{"type":30,"value":12430},{"type":21,"tag":116,"props":12534,"children":12535},{"class":1190,"line":1246},[12536],{"type":21,"tag":116,"props":12537,"children":12538},{"emptyLinePlaceholder":1204},[12539],{"type":30,"value":1207},{"type":21,"tag":116,"props":12541,"children":12542},{"class":1190,"line":1255},[12543,12547,12551,12556,12560,12564,12568],{"type":21,"tag":116,"props":12544,"children":12545},{"style":8116},[12546],{"type":30,"value":12400},{"type":21,"tag":116,"props":12548,"children":12549},{"style":4838},[12550],{"type":30,"value":12405},{"type":21,"tag":116,"props":12552,"children":12553},{"style":4838},[12554],{"type":30,"value":12555}," jammy-updates",{"type":21,"tag":116,"props":12557,"children":12558},{"style":4838},[12559],{"type":30,"value":12415},{"type":21,"tag":116,"props":12561,"children":12562},{"style":4838},[12563],{"type":30,"value":12420},{"type":21,"tag":116,"props":12565,"children":12566},{"style":4838},[12567],{"type":30,"value":12425},{"type":21,"tag":116,"props":12569,"children":12570},{"style":4838},[12571],{"type":30,"value":12430},{"type":21,"tag":116,"props":12573,"children":12574},{"class":1190,"line":1264},[12575,12579,12583,12587,12591,12595,12599],{"type":21,"tag":116,"props":12576,"children":12577},{"style":8116},[12578],{"type":30,"value":12438},{"type":21,"tag":116,"props":12580,"children":12581},{"style":4838},[12582],{"type":30,"value":12405},{"type":21,"tag":116,"props":12584,"children":12585},{"style":4838},[12586],{"type":30,"value":12555},{"type":21,"tag":116,"props":12588,"children":12589},{"style":4838},[12590],{"type":30,"value":12415},{"type":21,"tag":116,"props":12592,"children":12593},{"style":4838},[12594],{"type":30,"value":12420},{"type":21,"tag":116,"props":12596,"children":12597},{"style":4838},[12598],{"type":30,"value":12425},{"type":21,"tag":116,"props":12600,"children":12601},{"style":4838},[12602],{"type":30,"value":12430},{"type":21,"tag":116,"props":12604,"children":12605},{"class":1190,"line":1273},[12606],{"type":21,"tag":116,"props":12607,"children":12608},{"emptyLinePlaceholder":1204},[12609],{"type":30,"value":1207},{"type":21,"tag":116,"props":12611,"children":12612},{"class":1190,"line":5065},[12613,12617,12621,12626,12630,12634,12638],{"type":21,"tag":116,"props":12614,"children":12615},{"style":8116},[12616],{"type":30,"value":12400},{"type":21,"tag":116,"props":12618,"children":12619},{"style":4838},[12620],{"type":30,"value":12405},{"type":21,"tag":116,"props":12622,"children":12623},{"style":4838},[12624],{"type":30,"value":12625}," jammy-proposed",{"type":21,"tag":116,"props":12627,"children":12628},{"style":4838},[12629],{"type":30,"value":12415},{"type":21,"tag":116,"props":12631,"children":12632},{"style":4838},[12633],{"type":30,"value":12420},{"type":21,"tag":116,"props":12635,"children":12636},{"style":4838},[12637],{"type":30,"value":12425},{"type":21,"tag":116,"props":12639,"children":12640},{"style":4838},[12641],{"type":30,"value":12430},{"type":21,"tag":116,"props":12643,"children":12644},{"class":1190,"line":6336},[12645,12649,12653,12657,12661,12665,12669],{"type":21,"tag":116,"props":12646,"children":12647},{"style":8116},[12648],{"type":30,"value":12438},{"type":21,"tag":116,"props":12650,"children":12651},{"style":4838},[12652],{"type":30,"value":12405},{"type":21,"tag":116,"props":12654,"children":12655},{"style":4838},[12656],{"type":30,"value":12625},{"type":21,"tag":116,"props":12658,"children":12659},{"style":4838},[12660],{"type":30,"value":12415},{"type":21,"tag":116,"props":12662,"children":12663},{"style":4838},[12664],{"type":30,"value":12420},{"type":21,"tag":116,"props":12666,"children":12667},{"style":4838},[12668],{"type":30,"value":12425},{"type":21,"tag":116,"props":12670,"children":12671},{"style":4838},[12672],{"type":30,"value":12430},{"type":21,"tag":116,"props":12674,"children":12675},{"class":1190,"line":6353},[12676],{"type":21,"tag":116,"props":12677,"children":12678},{"emptyLinePlaceholder":1204},[12679],{"type":30,"value":1207},{"type":21,"tag":116,"props":12681,"children":12682},{"class":1190,"line":6361},[12683,12687,12691,12696,12700,12704,12708],{"type":21,"tag":116,"props":12684,"children":12685},{"style":8116},[12686],{"type":30,"value":12400},{"type":21,"tag":116,"props":12688,"children":12689},{"style":4838},[12690],{"type":30,"value":12405},{"type":21,"tag":116,"props":12692,"children":12693},{"style":4838},[12694],{"type":30,"value":12695}," jammy-backports",{"type":21,"tag":116,"props":12697,"children":12698},{"style":4838},[12699],{"type":30,"value":12415},{"type":21,"tag":116,"props":12701,"children":12702},{"style":4838},[12703],{"type":30,"value":12420},{"type":21,"tag":116,"props":12705,"children":12706},{"style":4838},[12707],{"type":30,"value":12425},{"type":21,"tag":116,"props":12709,"children":12710},{"style":4838},[12711],{"type":30,"value":12430},{"type":21,"tag":116,"props":12713,"children":12714},{"class":1190,"line":6383},[12715,12719,12723,12727,12731,12735,12739],{"type":21,"tag":116,"props":12716,"children":12717},{"style":8116},[12718],{"type":30,"value":12438},{"type":21,"tag":116,"props":12720,"children":12721},{"style":4838},[12722],{"type":30,"value":12405},{"type":21,"tag":116,"props":12724,"children":12725},{"style":4838},[12726],{"type":30,"value":12695},{"type":21,"tag":116,"props":12728,"children":12729},{"style":4838},[12730],{"type":30,"value":12415},{"type":21,"tag":116,"props":12732,"children":12733},{"style":4838},[12734],{"type":30,"value":12420},{"type":21,"tag":116,"props":12736,"children":12737},{"style":4838},[12738],{"type":30,"value":12425},{"type":21,"tag":116,"props":12740,"children":12741},{"style":4838},[12742],{"type":30,"value":12430},{"type":21,"tag":116,"props":12744,"children":12745},{"class":1190,"line":6396},[12746],{"type":21,"tag":116,"props":12747,"children":12748},{"style":8143},[12749],{"type":30,"value":12750},"## aliyun mirrors End\n",{"type":21,"tag":26,"props":12752,"children":12753},{},[12754],{"type":30,"value":12755},"保存退出。",{"type":21,"tag":26,"props":12757,"children":12758},{},[12759],{"type":30,"value":12760},"移除自带的包（因为可能和国内源的软件有冲突）",{"type":21,"tag":1178,"props":12762,"children":12764},{"className":8297,"code":12763,"language":8299,"meta":8,"style":8},"sudo apt remove ubuntu-advantage-tools\n",[12765],{"type":21,"tag":1185,"props":12766,"children":12767},{"__ignoreMap":8},[12768],{"type":21,"tag":116,"props":12769,"children":12770},{"class":1190,"line":1191},[12771,12775,12780,12785],{"type":21,"tag":116,"props":12772,"children":12773},{"style":8116},[12774],{"type":30,"value":12308},{"type":21,"tag":116,"props":12776,"children":12777},{"style":4838},[12778],{"type":30,"value":12779}," apt",{"type":21,"tag":116,"props":12781,"children":12782},{"style":4838},[12783],{"type":30,"value":12784}," remove",{"type":21,"tag":116,"props":12786,"children":12787},{"style":4838},[12788],{"type":30,"value":12789}," ubuntu-advantage-tools\n",{"type":21,"tag":26,"props":12791,"children":12792},{},[12793],{"type":30,"value":12794},"更新包管理器：",{"type":21,"tag":1178,"props":12796,"children":12798},{"className":8104,"code":12797,"language":8106,"meta":8,"style":8},"sudo apt update && sudo apt upgrade\nsudo apt-get update\n",[12799],{"type":21,"tag":1185,"props":12800,"children":12801},{"__ignoreMap":8},[12802,12836],{"type":21,"tag":116,"props":12803,"children":12804},{"class":1190,"line":1191},[12805,12809,12813,12818,12823,12827,12831],{"type":21,"tag":116,"props":12806,"children":12807},{"style":8116},[12808],{"type":30,"value":12308},{"type":21,"tag":116,"props":12810,"children":12811},{"style":4838},[12812],{"type":30,"value":12779},{"type":21,"tag":116,"props":12814,"children":12815},{"style":4838},[12816],{"type":30,"value":12817}," update",{"type":21,"tag":116,"props":12819,"children":12820},{"style":4844},[12821],{"type":30,"value":12822}," && ",{"type":21,"tag":116,"props":12824,"children":12825},{"style":8116},[12826],{"type":30,"value":12308},{"type":21,"tag":116,"props":12828,"children":12829},{"style":4838},[12830],{"type":30,"value":12779},{"type":21,"tag":116,"props":12832,"children":12833},{"style":4838},[12834],{"type":30,"value":12835}," upgrade\n",{"type":21,"tag":116,"props":12837,"children":12838},{"class":1190,"line":1200},[12839,12843,12848],{"type":21,"tag":116,"props":12840,"children":12841},{"style":8116},[12842],{"type":30,"value":12308},{"type":21,"tag":116,"props":12844,"children":12845},{"style":4838},[12846],{"type":30,"value":12847}," apt-get",{"type":21,"tag":116,"props":12849,"children":12850},{"style":4838},[12851],{"type":30,"value":12852}," update\n",{"type":21,"tag":4502,"props":12854,"children":12856},{"id":12855},"二安装基本的开发工具",[12857],{"type":30,"value":12858},"二、安装基本的开发工具",{"type":21,"tag":1178,"props":12860,"children":12862},{"className":8104,"code":12861,"language":8106,"meta":8,"style":8},"# mingw套组\nsudo apt install build-essential cmake\n\n# python3 pip 工具\nsudo apt install python3-pip\npip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n",[12863],{"type":21,"tag":1185,"props":12864,"children":12865},{"__ignoreMap":8},[12866,12874,12899,12906,12914,12934],{"type":21,"tag":116,"props":12867,"children":12868},{"class":1190,"line":1191},[12869],{"type":21,"tag":116,"props":12870,"children":12871},{"style":8143},[12872],{"type":30,"value":12873},"# mingw套组\n",{"type":21,"tag":116,"props":12875,"children":12876},{"class":1190,"line":1200},[12877,12881,12885,12889,12894],{"type":21,"tag":116,"props":12878,"children":12879},{"style":8116},[12880],{"type":30,"value":12308},{"type":21,"tag":116,"props":12882,"children":12883},{"style":4838},[12884],{"type":30,"value":12779},{"type":21,"tag":116,"props":12886,"children":12887},{"style":4838},[12888],{"type":30,"value":11563},{"type":21,"tag":116,"props":12890,"children":12891},{"style":4838},[12892],{"type":30,"value":12893}," build-essential",{"type":21,"tag":116,"props":12895,"children":12896},{"style":4838},[12897],{"type":30,"value":12898}," cmake\n",{"type":21,"tag":116,"props":12900,"children":12901},{"class":1190,"line":1210},[12902],{"type":21,"tag":116,"props":12903,"children":12904},{"emptyLinePlaceholder":1204},[12905],{"type":30,"value":1207},{"type":21,"tag":116,"props":12907,"children":12908},{"class":1190,"line":1219},[12909],{"type":21,"tag":116,"props":12910,"children":12911},{"style":8143},[12912],{"type":30,"value":12913},"# python3 pip 工具\n",{"type":21,"tag":116,"props":12915,"children":12916},{"class":1190,"line":1228},[12917,12921,12925,12929],{"type":21,"tag":116,"props":12918,"children":12919},{"style":8116},[12920],{"type":30,"value":12308},{"type":21,"tag":116,"props":12922,"children":12923},{"style":4838},[12924],{"type":30,"value":12779},{"type":21,"tag":116,"props":12926,"children":12927},{"style":4838},[12928],{"type":30,"value":11563},{"type":21,"tag":116,"props":12930,"children":12931},{"style":4838},[12932],{"type":30,"value":12933}," python3-pip\n",{"type":21,"tag":116,"props":12935,"children":12936},{"class":1190,"line":1237},[12937,12941,12945,12949,12953],{"type":21,"tag":116,"props":12938,"children":12939},{"style":8116},[12940],{"type":30,"value":11182},{"type":21,"tag":116,"props":12942,"children":12943},{"style":4838},[12944],{"type":30,"value":11007},{"type":21,"tag":116,"props":12946,"children":12947},{"style":4838},[12948],{"type":30,"value":11191},{"type":21,"tag":116,"props":12950,"children":12951},{"style":4838},[12952],{"type":30,"value":11196},{"type":21,"tag":116,"props":12954,"children":12955},{"style":4838},[12956],{"type":30,"value":11201},{"type":21,"tag":4502,"props":12958,"children":12960},{"id":12959},"三美化终端",[12961],{"type":30,"value":12962},"三、美化终端",{"type":21,"tag":10004,"props":12964,"children":12966},{"id":12965},"使用fish",[12967],{"type":30,"value":12965},{"type":21,"tag":26,"props":12969,"children":12970},{},[12971],{"type":30,"value":12972},"安装",{"type":21,"tag":1178,"props":12974,"children":12976},{"className":8104,"code":12975,"language":8106,"meta":8,"style":8},"sudo apt install fish\nchsh -s $(which fish)\nexport SHELL=`which fish` && exec \"$SHELL\" -l\n",[12977],{"type":21,"tag":1185,"props":12978,"children":12979},{"__ignoreMap":8},[12980,13000,13032],{"type":21,"tag":116,"props":12981,"children":12982},{"class":1190,"line":1191},[12983,12987,12991,12995],{"type":21,"tag":116,"props":12984,"children":12985},{"style":8116},[12986],{"type":30,"value":12308},{"type":21,"tag":116,"props":12988,"children":12989},{"style":4838},[12990],{"type":30,"value":12779},{"type":21,"tag":116,"props":12992,"children":12993},{"style":4838},[12994],{"type":30,"value":11563},{"type":21,"tag":116,"props":12996,"children":12997},{"style":4838},[12998],{"type":30,"value":12999}," fish\n",{"type":21,"tag":116,"props":13001,"children":13002},{"class":1190,"line":1200},[13003,13008,13012,13017,13022,13027],{"type":21,"tag":116,"props":13004,"children":13005},{"style":8116},[13006],{"type":30,"value":13007},"chsh",{"type":21,"tag":116,"props":13009,"children":13010},{"style":4853},[13011],{"type":30,"value":11573},{"type":21,"tag":116,"props":13013,"children":13014},{"style":4844},[13015],{"type":30,"value":13016}," $(",{"type":21,"tag":116,"props":13018,"children":13019},{"style":4853},[13020],{"type":30,"value":13021},"which",{"type":21,"tag":116,"props":13023,"children":13024},{"style":4838},[13025],{"type":30,"value":13026}," fish",{"type":21,"tag":116,"props":13028,"children":13029},{"style":4844},[13030],{"type":30,"value":13031},")\n",{"type":21,"tag":116,"props":13033,"children":13034},{"class":1190,"line":1210},[13035,13039,13044,13048,13053,13057,13062,13066,13071,13076,13081,13086],{"type":21,"tag":116,"props":13036,"children":13037},{"style":8496},[13038],{"type":30,"value":8639},{"type":21,"tag":116,"props":13040,"children":13041},{"style":4844},[13042],{"type":30,"value":13043}," SHELL",{"type":21,"tag":116,"props":13045,"children":13046},{"style":8496},[13047],{"type":30,"value":753},{"type":21,"tag":116,"props":13049,"children":13050},{"style":4838},[13051],{"type":30,"value":13052},"`",{"type":21,"tag":116,"props":13054,"children":13055},{"style":4853},[13056],{"type":30,"value":13021},{"type":21,"tag":116,"props":13058,"children":13059},{"style":4838},[13060],{"type":30,"value":13061}," fish`",{"type":21,"tag":116,"props":13063,"children":13064},{"style":4844},[13065],{"type":30,"value":12822},{"type":21,"tag":116,"props":13067,"children":13068},{"style":4853},[13069],{"type":30,"value":13070},"exec",{"type":21,"tag":116,"props":13072,"children":13073},{"style":4838},[13074],{"type":30,"value":13075}," \"",{"type":21,"tag":116,"props":13077,"children":13078},{"style":4844},[13079],{"type":30,"value":13080},"$SHELL",{"type":21,"tag":116,"props":13082,"children":13083},{"style":4838},[13084],{"type":30,"value":13085},"\"",{"type":21,"tag":116,"props":13087,"children":13088},{"style":4853},[13089],{"type":30,"value":13090}," -l\n",{"type":21,"tag":26,"props":13092,"children":13093},{},[13094],{"type":30,"value":13095},"修改风格",{"type":21,"tag":1178,"props":13097,"children":13099},{"className":8104,"code":13098,"language":8106,"meta":8,"style":8},"fish_config prompt choose scope\nfish_config prompt save\n",[13100],{"type":21,"tag":1185,"props":13101,"children":13102},{"__ignoreMap":8},[13103,13126],{"type":21,"tag":116,"props":13104,"children":13105},{"class":1190,"line":1191},[13106,13111,13116,13121],{"type":21,"tag":116,"props":13107,"children":13108},{"style":8116},[13109],{"type":30,"value":13110},"fish_config",{"type":21,"tag":116,"props":13112,"children":13113},{"style":4838},[13114],{"type":30,"value":13115}," prompt",{"type":21,"tag":116,"props":13117,"children":13118},{"style":4838},[13119],{"type":30,"value":13120}," choose",{"type":21,"tag":116,"props":13122,"children":13123},{"style":4838},[13124],{"type":30,"value":13125}," scope\n",{"type":21,"tag":116,"props":13127,"children":13128},{"class":1190,"line":1200},[13129,13133,13137],{"type":21,"tag":116,"props":13130,"children":13131},{"style":8116},[13132],{"type":30,"value":13110},{"type":21,"tag":116,"props":13134,"children":13135},{"style":4838},[13136],{"type":30,"value":13115},{"type":21,"tag":116,"props":13138,"children":13139},{"style":4838},[13140],{"type":30,"value":13141}," save\n",{"type":21,"tag":26,"props":13143,"children":13144},{},[13145,13146,13153],{"type":30,"value":12972},{"type":21,"tag":75,"props":13147,"children":13150},{"href":13148,"rel":13149},"https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish",[79],[13151],{"type":30,"value":13152},"oh-my-fish",{"type":30,"value":13154}," 可选",{"type":21,"tag":1178,"props":13156,"children":13158},{"className":8104,"code":13157,"language":8106,"meta":8,"style":8},"# with git\n$ git clone https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish\n$ cd oh-my-fish\n$ bin\u002Finstall --offline\n# with a tarball\n$ curl https:\u002F\u002Fraw.githubusercontent.com\u002Foh-my-fish\u002Foh-my-fish\u002Fmaster\u002Fbin\u002Finstall > install\n$ fish install --offline=omf.tar.gz\n",[13159],{"type":21,"tag":1185,"props":13160,"children":13161},{"__ignoreMap":8},[13162,13170,13192,13209,13226,13234,13261],{"type":21,"tag":116,"props":13163,"children":13164},{"class":1190,"line":1191},[13165],{"type":21,"tag":116,"props":13166,"children":13167},{"style":8143},[13168],{"type":30,"value":13169},"# with git\n",{"type":21,"tag":116,"props":13171,"children":13172},{"class":1190,"line":1200},[13173,13178,13183,13187],{"type":21,"tag":116,"props":13174,"children":13175},{"style":8116},[13176],{"type":30,"value":13177},"$",{"type":21,"tag":116,"props":13179,"children":13180},{"style":4838},[13181],{"type":30,"value":13182}," git",{"type":21,"tag":116,"props":13184,"children":13185},{"style":4838},[13186],{"type":30,"value":11619},{"type":21,"tag":116,"props":13188,"children":13189},{"style":4838},[13190],{"type":30,"value":13191}," https:\u002F\u002Fgithub.com\u002Foh-my-fish\u002Foh-my-fish\n",{"type":21,"tag":116,"props":13193,"children":13194},{"class":1190,"line":1210},[13195,13199,13204],{"type":21,"tag":116,"props":13196,"children":13197},{"style":8116},[13198],{"type":30,"value":13177},{"type":21,"tag":116,"props":13200,"children":13201},{"style":4838},[13202],{"type":30,"value":13203}," cd",{"type":21,"tag":116,"props":13205,"children":13206},{"style":4838},[13207],{"type":30,"value":13208}," oh-my-fish\n",{"type":21,"tag":116,"props":13210,"children":13211},{"class":1190,"line":1219},[13212,13216,13221],{"type":21,"tag":116,"props":13213,"children":13214},{"style":8116},[13215],{"type":30,"value":13177},{"type":21,"tag":116,"props":13217,"children":13218},{"style":4838},[13219],{"type":30,"value":13220}," bin\u002Finstall",{"type":21,"tag":116,"props":13222,"children":13223},{"style":4853},[13224],{"type":30,"value":13225}," --offline\n",{"type":21,"tag":116,"props":13227,"children":13228},{"class":1190,"line":1228},[13229],{"type":21,"tag":116,"props":13230,"children":13231},{"style":8143},[13232],{"type":30,"value":13233},"# with a tarball\n",{"type":21,"tag":116,"props":13235,"children":13236},{"class":1190,"line":1237},[13237,13241,13246,13251,13256],{"type":21,"tag":116,"props":13238,"children":13239},{"style":8116},[13240],{"type":30,"value":13177},{"type":21,"tag":116,"props":13242,"children":13243},{"style":4838},[13244],{"type":30,"value":13245}," curl",{"type":21,"tag":116,"props":13247,"children":13248},{"style":4838},[13249],{"type":30,"value":13250}," https:\u002F\u002Fraw.githubusercontent.com\u002Foh-my-fish\u002Foh-my-fish\u002Fmaster\u002Fbin\u002Finstall",{"type":21,"tag":116,"props":13252,"children":13253},{"style":8496},[13254],{"type":30,"value":13255}," >",{"type":21,"tag":116,"props":13257,"children":13258},{"style":4838},[13259],{"type":30,"value":13260}," install\n",{"type":21,"tag":116,"props":13262,"children":13263},{"class":1190,"line":1246},[13264,13268,13272,13276],{"type":21,"tag":116,"props":13265,"children":13266},{"style":8116},[13267],{"type":30,"value":13177},{"type":21,"tag":116,"props":13269,"children":13270},{"style":4838},[13271],{"type":30,"value":13026},{"type":21,"tag":116,"props":13273,"children":13274},{"style":4838},[13275],{"type":30,"value":11563},{"type":21,"tag":116,"props":13277,"children":13278},{"style":4853},[13279],{"type":30,"value":13280}," --offline=omf.tar.gz\n",{"type":21,"tag":10004,"props":13282,"children":13284},{"id":13283},"使用zsh",[13285],{"type":30,"value":13283},{"type":21,"tag":26,"props":13287,"children":13288},{},[13289],{"type":30,"value":12972},{"type":21,"tag":1178,"props":13291,"children":13293},{"className":8104,"code":13292,"language":8106,"meta":8,"style":8},"sudo apt install zsh\nchsh -s $(which zsh)\n",[13294],{"type":21,"tag":1185,"props":13295,"children":13296},{"__ignoreMap":8},[13297,13317],{"type":21,"tag":116,"props":13298,"children":13299},{"class":1190,"line":1191},[13300,13304,13308,13312],{"type":21,"tag":116,"props":13301,"children":13302},{"style":8116},[13303],{"type":30,"value":12308},{"type":21,"tag":116,"props":13305,"children":13306},{"style":4838},[13307],{"type":30,"value":12779},{"type":21,"tag":116,"props":13309,"children":13310},{"style":4838},[13311],{"type":30,"value":11563},{"type":21,"tag":116,"props":13313,"children":13314},{"style":4838},[13315],{"type":30,"value":13316}," zsh\n",{"type":21,"tag":116,"props":13318,"children":13319},{"class":1190,"line":1200},[13320,13324,13328,13332,13336,13341],{"type":21,"tag":116,"props":13321,"children":13322},{"style":8116},[13323],{"type":30,"value":13007},{"type":21,"tag":116,"props":13325,"children":13326},{"style":4853},[13327],{"type":30,"value":11573},{"type":21,"tag":116,"props":13329,"children":13330},{"style":4844},[13331],{"type":30,"value":13016},{"type":21,"tag":116,"props":13333,"children":13334},{"style":4853},[13335],{"type":30,"value":13021},{"type":21,"tag":116,"props":13337,"children":13338},{"style":4838},[13339],{"type":30,"value":13340}," zsh",{"type":21,"tag":116,"props":13342,"children":13343},{"style":4844},[13344],{"type":30,"value":13031},{"type":21,"tag":26,"props":13346,"children":13347},{},[13348],{"type":30,"value":13349},"在bashrc里面加入",{"type":21,"tag":1178,"props":13351,"children":13353},{"className":8104,"code":13352,"language":8106,"meta":8,"style":8},"export SHELL=`which zsh`\n[ -z \"$ZSH_VERSION\" ] && exec \"$SHELL\" -l\n",[13354],{"type":21,"tag":1185,"props":13355,"children":13356},{"__ignoreMap":8},[13357,13385],{"type":21,"tag":116,"props":13358,"children":13359},{"class":1190,"line":1191},[13360,13364,13368,13372,13376,13380],{"type":21,"tag":116,"props":13361,"children":13362},{"style":8496},[13363],{"type":30,"value":8639},{"type":21,"tag":116,"props":13365,"children":13366},{"style":4844},[13367],{"type":30,"value":13043},{"type":21,"tag":116,"props":13369,"children":13370},{"style":8496},[13371],{"type":30,"value":753},{"type":21,"tag":116,"props":13373,"children":13374},{"style":4838},[13375],{"type":30,"value":13052},{"type":21,"tag":116,"props":13377,"children":13378},{"style":4853},[13379],{"type":30,"value":13021},{"type":21,"tag":116,"props":13381,"children":13382},{"style":4838},[13383],{"type":30,"value":13384}," zsh`\n",{"type":21,"tag":116,"props":13386,"children":13387},{"class":1190,"line":1200},[13388,13393,13398,13402,13407,13411,13416,13420,13424,13428,13432],{"type":21,"tag":116,"props":13389,"children":13390},{"style":4844},[13391],{"type":30,"value":13392},"[ ",{"type":21,"tag":116,"props":13394,"children":13395},{"style":8496},[13396],{"type":30,"value":13397},"-z",{"type":21,"tag":116,"props":13399,"children":13400},{"style":4838},[13401],{"type":30,"value":13075},{"type":21,"tag":116,"props":13403,"children":13404},{"style":4844},[13405],{"type":30,"value":13406},"$ZSH_VERSION",{"type":21,"tag":116,"props":13408,"children":13409},{"style":4838},[13410],{"type":30,"value":13085},{"type":21,"tag":116,"props":13412,"children":13413},{"style":4844},[13414],{"type":30,"value":13415}," ] && ",{"type":21,"tag":116,"props":13417,"children":13418},{"style":4853},[13419],{"type":30,"value":13070},{"type":21,"tag":116,"props":13421,"children":13422},{"style":4838},[13423],{"type":30,"value":13075},{"type":21,"tag":116,"props":13425,"children":13426},{"style":4844},[13427],{"type":30,"value":13080},{"type":21,"tag":116,"props":13429,"children":13430},{"style":4838},[13431],{"type":30,"value":13085},{"type":21,"tag":116,"props":13433,"children":13434},{"style":4853},[13435],{"type":30,"value":13090},{"type":21,"tag":26,"props":13437,"children":13438},{},[13439],{"type":30,"value":13440},"重新打开当前终端，就会进入zsh终端，接着安装oh-my-zsh主题框架。",{"type":21,"tag":1178,"props":13442,"children":13444},{"className":8104,"code":13443,"language":8106,"meta":8,"style":8},"cd ~\ngit clone https:\u002F\u002Fgitee.com\u002Fmirrors\u002Foh-my-zsh\nsh oh-my-zsh\u002Ftools\u002Finstall.sh\n",[13445],{"type":21,"tag":1185,"props":13446,"children":13447},{"__ignoreMap":8},[13448,13460,13476],{"type":21,"tag":116,"props":13449,"children":13450},{"class":1190,"line":1191},[13451,13455],{"type":21,"tag":116,"props":13452,"children":13453},{"style":4853},[13454],{"type":30,"value":10870},{"type":21,"tag":116,"props":13456,"children":13457},{"style":4838},[13458],{"type":30,"value":13459}," ~\n",{"type":21,"tag":116,"props":13461,"children":13462},{"class":1190,"line":1200},[13463,13467,13471],{"type":21,"tag":116,"props":13464,"children":13465},{"style":8116},[13466],{"type":30,"value":11002},{"type":21,"tag":116,"props":13468,"children":13469},{"style":4838},[13470],{"type":30,"value":11619},{"type":21,"tag":116,"props":13472,"children":13473},{"style":4838},[13474],{"type":30,"value":13475}," https:\u002F\u002Fgitee.com\u002Fmirrors\u002Foh-my-zsh\n",{"type":21,"tag":116,"props":13477,"children":13478},{"class":1190,"line":1210},[13479,13483],{"type":21,"tag":116,"props":13480,"children":13481},{"style":8116},[13482],{"type":30,"value":10858},{"type":21,"tag":116,"props":13484,"children":13485},{"style":4838},[13486],{"type":30,"value":13487}," oh-my-zsh\u002Ftools\u002Finstall.sh\n",{"type":21,"tag":26,"props":13489,"children":13490},{},[13491],{"type":30,"value":13492},"安装两个插件",{"type":21,"tag":1178,"props":13494,"children":13496},{"className":8104,"code":13495,"language":8106,"meta":8,"style":8},"cd ~\u002F.oh-my-zsh\u002Fcustom\u002Fplugins\u002F\n\n# 高亮关键词\ngit clone https:\u002F\u002Fgitee.com\u002Fhaohaogood\u002Fzsh-syntax-highlighting\n\n# 自动补全\ngit clone https:\u002F\u002Fgitee.com\u002Fqiushaocloud\u002Fzsh-autosuggestions\n",[13497],{"type":21,"tag":1185,"props":13498,"children":13499},{"__ignoreMap":8},[13500,13512,13519,13527,13543,13550,13558],{"type":21,"tag":116,"props":13501,"children":13502},{"class":1190,"line":1191},[13503,13507],{"type":21,"tag":116,"props":13504,"children":13505},{"style":4853},[13506],{"type":30,"value":10870},{"type":21,"tag":116,"props":13508,"children":13509},{"style":4838},[13510],{"type":30,"value":13511}," ~\u002F.oh-my-zsh\u002Fcustom\u002Fplugins\u002F\n",{"type":21,"tag":116,"props":13513,"children":13514},{"class":1190,"line":1200},[13515],{"type":21,"tag":116,"props":13516,"children":13517},{"emptyLinePlaceholder":1204},[13518],{"type":30,"value":1207},{"type":21,"tag":116,"props":13520,"children":13521},{"class":1190,"line":1210},[13522],{"type":21,"tag":116,"props":13523,"children":13524},{"style":8143},[13525],{"type":30,"value":13526},"# 高亮关键词\n",{"type":21,"tag":116,"props":13528,"children":13529},{"class":1190,"line":1219},[13530,13534,13538],{"type":21,"tag":116,"props":13531,"children":13532},{"style":8116},[13533],{"type":30,"value":11002},{"type":21,"tag":116,"props":13535,"children":13536},{"style":4838},[13537],{"type":30,"value":11619},{"type":21,"tag":116,"props":13539,"children":13540},{"style":4838},[13541],{"type":30,"value":13542}," https:\u002F\u002Fgitee.com\u002Fhaohaogood\u002Fzsh-syntax-highlighting\n",{"type":21,"tag":116,"props":13544,"children":13545},{"class":1190,"line":1228},[13546],{"type":21,"tag":116,"props":13547,"children":13548},{"emptyLinePlaceholder":1204},[13549],{"type":30,"value":1207},{"type":21,"tag":116,"props":13551,"children":13552},{"class":1190,"line":1237},[13553],{"type":21,"tag":116,"props":13554,"children":13555},{"style":8143},[13556],{"type":30,"value":13557},"# 自动补全\n",{"type":21,"tag":116,"props":13559,"children":13560},{"class":1190,"line":1246},[13561,13565,13569],{"type":21,"tag":116,"props":13562,"children":13563},{"style":8116},[13564],{"type":30,"value":11002},{"type":21,"tag":116,"props":13566,"children":13567},{"style":4838},[13568],{"type":30,"value":11619},{"type":21,"tag":116,"props":13570,"children":13571},{"style":4838},[13572],{"type":30,"value":13573}," https:\u002F\u002Fgitee.com\u002Fqiushaocloud\u002Fzsh-autosuggestions\n",{"type":21,"tag":26,"props":13575,"children":13576},{},[13577,13579,13585,13587,13593,13595,13601],{"type":30,"value":13578},"然后进入 ",{"type":21,"tag":1185,"props":13580,"children":13582},{"className":13581},[],[13583],{"type":30,"value":13584},"~\u002F.zshrc",{"type":30,"value":13586}," 在 plugins 参数中添加 ",{"type":21,"tag":1185,"props":13588,"children":13590},{"className":13589},[],[13591],{"type":30,"value":13592},"zsh-syntax-highlighting",{"type":30,"value":13594}," 和",{"type":21,"tag":1185,"props":13596,"children":13598},{"className":13597},[],[13599],{"type":30,"value":13600},"zsh-autosuggestions",{"type":30,"value":13602},"。也就是说你的 .zshrc 中必须要有一行长这样：",{"type":21,"tag":1178,"props":13604,"children":13606},{"className":8104,"code":13605,"language":8106,"meta":8,"style":8},"plugins=(git zsh-syntax-highlighting zsh-autosuggestions)\n",[13607],{"type":21,"tag":1185,"props":13608,"children":13609},{"__ignoreMap":8},[13610],{"type":21,"tag":116,"props":13611,"children":13612},{"class":1190,"line":1191},[13613,13618,13622,13626,13630,13635,13640],{"type":21,"tag":116,"props":13614,"children":13615},{"style":4844},[13616],{"type":30,"value":13617},"plugins",{"type":21,"tag":116,"props":13619,"children":13620},{"style":8496},[13621],{"type":30,"value":753},{"type":21,"tag":116,"props":13623,"children":13624},{"style":4844},[13625],{"type":30,"value":891},{"type":21,"tag":116,"props":13627,"children":13628},{"style":4838},[13629],{"type":30,"value":11002},{"type":21,"tag":116,"props":13631,"children":13632},{"style":4838},[13633],{"type":30,"value":13634}," zsh-syntax-highlighting",{"type":21,"tag":116,"props":13636,"children":13637},{"style":4838},[13638],{"type":30,"value":13639}," zsh-autosuggestions",{"type":21,"tag":116,"props":13641,"children":13642},{"style":4844},[13643],{"type":30,"value":13031},{"type":21,"tag":58,"props":13645,"children":13647},{"id":13646},"四安装部分驱动程序",[13648],{"type":30,"value":13649},"四、安装部分驱动程序",{"type":21,"tag":26,"props":13651,"children":13652},{},[13653],{"type":30,"value":13654},"默认pip 版本较低，升级一下",{"type":21,"tag":1178,"props":13656,"children":13658},{"className":8104,"code":13657,"language":8106,"meta":8,"style":8},"pip install --upgrade pip\n",[13659],{"type":21,"tag":1185,"props":13660,"children":13661},{"__ignoreMap":8},[13662],{"type":21,"tag":116,"props":13663,"children":13664},{"class":1190,"line":1191},[13665,13669,13673,13678],{"type":21,"tag":116,"props":13666,"children":13667},{"style":8116},[13668],{"type":30,"value":11182},{"type":21,"tag":116,"props":13670,"children":13671},{"style":4838},[13672],{"type":30,"value":11563},{"type":21,"tag":116,"props":13674,"children":13675},{"style":4853},[13676],{"type":30,"value":13677}," --upgrade",{"type":21,"tag":116,"props":13679,"children":13680},{"style":4838},[13681],{"type":30,"value":13682}," pip\n",{"type":21,"tag":26,"props":13684,"children":13685},{},[13686],{"type":30,"value":13687},"安装opencv的包",{"type":21,"tag":1178,"props":13689,"children":13691},{"className":8104,"code":13690,"language":8106,"meta":8,"style":8},"sudo apt install libopencv-dev\npip install opencv-python\n",[13692],{"type":21,"tag":1185,"props":13693,"children":13694},{"__ignoreMap":8},[13695,13715],{"type":21,"tag":116,"props":13696,"children":13697},{"class":1190,"line":1191},[13698,13702,13706,13710],{"type":21,"tag":116,"props":13699,"children":13700},{"style":8116},[13701],{"type":30,"value":12308},{"type":21,"tag":116,"props":13703,"children":13704},{"style":4838},[13705],{"type":30,"value":12779},{"type":21,"tag":116,"props":13707,"children":13708},{"style":4838},[13709],{"type":30,"value":11563},{"type":21,"tag":116,"props":13711,"children":13712},{"style":4838},[13713],{"type":30,"value":13714}," libopencv-dev\n",{"type":21,"tag":116,"props":13716,"children":13717},{"class":1190,"line":1200},[13718,13722,13726],{"type":21,"tag":116,"props":13719,"children":13720},{"style":8116},[13721],{"type":30,"value":11182},{"type":21,"tag":116,"props":13723,"children":13724},{"style":4838},[13725],{"type":30,"value":11563},{"type":21,"tag":116,"props":13727,"children":13728},{"style":4838},[13729],{"type":30,"value":13730}," opencv-python\n",{"type":21,"tag":26,"props":13732,"children":13733},{},[13734],{"type":30,"value":13735},"安装torch cuda",{"type":21,"tag":1178,"props":13737,"children":13739},{"className":8104,"code":13738,"language":8106,"meta":8,"style":8},"sudo apt install nvidia-cuda-toolkit\n",[13740],{"type":21,"tag":1185,"props":13741,"children":13742},{"__ignoreMap":8},[13743],{"type":21,"tag":116,"props":13744,"children":13745},{"class":1190,"line":1191},[13746,13750,13754,13758],{"type":21,"tag":116,"props":13747,"children":13748},{"style":8116},[13749],{"type":30,"value":12308},{"type":21,"tag":116,"props":13751,"children":13752},{"style":4838},[13753],{"type":30,"value":12779},{"type":21,"tag":116,"props":13755,"children":13756},{"style":4838},[13757],{"type":30,"value":11563},{"type":21,"tag":116,"props":13759,"children":13760},{"style":4838},[13761],{"type":30,"value":13762}," nvidia-cuda-toolkit\n",{"type":21,"tag":26,"props":13764,"children":13765},{},[13766,13768,13775],{"type":30,"value":13767},"然后去 ",{"type":21,"tag":75,"props":13769,"children":13772},{"href":13770,"rel":13771},"https:\u002F\u002Fpytorch.org\u002F",[79],[13773],{"type":30,"value":13774},"PyTorch",{"type":30,"value":13776}," 找对应的安装指令。自从某个版本之后 Linux 下载 PyTorch GPU 版本可以直接 pip（自动下载对应 CUDA 依赖）。",{"type":21,"tag":4158,"props":13778,"children":13779},{},[13780],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":13782},[13783,13784,13785,13793],{"id":10728,"depth":1200,"text":10698},{"id":11828,"depth":1200,"text":11831},{"id":12252,"depth":1200,"text":12255,"children":13786},[13787,13788,13789],{"id":12258,"depth":1210,"text":12261},{"id":12855,"depth":1210,"text":12858},{"id":12959,"depth":1210,"text":12962,"children":13790},[13791,13792],{"id":12965,"depth":1219,"text":12965},{"id":13283,"depth":1219,"text":13283},{"id":13646,"depth":1200,"text":13649},"content:posts:从零配置Windows11开发环境.md","posts\u002F从零配置Windows11开发环境.md","posts\u002F从零配置Windows11开发环境",{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"date":11,"categories":12,"tags":13798,"draft":7,"body":13799,"_type":4170,"_id":4171,"_source":4172,"_file":4173,"_stem":4174,"_extension":4175},[14,15,16],{"type":18,"children":13800,"toc":17551},[13801,13826,13830,13834,13844,13854,14476,14620,14673,14811,14887,14891,14905,14914,14925,14929,14937,14941,15579,16209,16218,16920,16924,17317,17321,17330,17432,17441,17455,17459,17463,17472,17476,17508,17517,17521,17525,17534,17537,17547],{"type":21,"tag":22,"props":13802,"children":13803},{},[13804,13812],{"type":21,"tag":26,"props":13805,"children":13806},{},[13807,13808],{"type":30,"value":31},{"type":21,"tag":33,"props":13809,"children":13810},{},[13811],{"type":30,"value":37},{"type":21,"tag":26,"props":13813,"children":13814},{},[13815,13816,13820,13821,13825],{"type":30,"value":42},{"type":21,"tag":33,"props":13817,"children":13818},{},[13819],{"type":30,"value":47},{"type":30,"value":49},{"type":21,"tag":33,"props":13822,"children":13823},{},[13824],{"type":30,"value":54},{"type":30,"value":56},{"type":21,"tag":58,"props":13827,"children":13828},{"id":60},[13829],{"type":30,"value":63},{"type":21,"tag":26,"props":13831,"children":13832},{},[13833],{"type":30,"value":68},{"type":21,"tag":26,"props":13835,"children":13836},{},[13837,13838,13843],{"type":30,"value":73},{"type":21,"tag":75,"props":13839,"children":13841},{"href":77,"rel":13840},[79],[13842],{"type":30,"value":82},{"type":30,"value":84},{"type":21,"tag":22,"props":13845,"children":13846},{},[13847],{"type":21,"tag":26,"props":13848,"children":13849},{},[13850],{"type":21,"tag":33,"props":13851,"children":13852},{},[13853],{"type":30,"value":95},{"type":21,"tag":26,"props":13855,"children":13856},{},[13857,13858,13862,13863,13867,13868,13910,13911,13953,13954,13959,13960,14002,14003,14133,14134,14189,14190,14194,14195,14237,14238,14398,14399,14475],{"type":30,"value":100},{"type":21,"tag":33,"props":13859,"children":13860},{},[13861],{"type":30,"value":105},{"type":30,"value":107},{"type":21,"tag":33,"props":13864,"children":13865},{},[13866],{"type":30,"value":112},{"type":30,"value":114},{"type":21,"tag":116,"props":13869,"children":13871},{"className":13870},[119],[13872,13893],{"type":21,"tag":116,"props":13873,"children":13875},{"className":13874},[124],[13876],{"type":21,"tag":127,"props":13877,"children":13878},{"xmlns":129},[13879],{"type":21,"tag":132,"props":13880,"children":13881},{},[13882,13889],{"type":21,"tag":136,"props":13883,"children":13884},{},[13885],{"type":21,"tag":140,"props":13886,"children":13887},{},[13888],{"type":30,"value":144},{"type":21,"tag":146,"props":13890,"children":13891},{"encoding":148},[13892],{"type":30,"value":144},{"type":21,"tag":116,"props":13894,"children":13896},{"className":13895,"ariaHidden":155},[154],[13897],{"type":21,"tag":116,"props":13898,"children":13900},{"className":13899},[160],[13901,13905],{"type":21,"tag":116,"props":13902,"children":13904},{"className":13903,"style":166},[165],[],{"type":21,"tag":116,"props":13906,"children":13908},{"className":13907},[171,172],[13909],{"type":30,"value":144},{"type":30,"value":176},{"type":21,"tag":116,"props":13912,"children":13914},{"className":13913},[119],[13915,13936],{"type":21,"tag":116,"props":13916,"children":13918},{"className":13917},[124],[13919],{"type":21,"tag":127,"props":13920,"children":13921},{"xmlns":129},[13922],{"type":21,"tag":132,"props":13923,"children":13924},{},[13925,13932],{"type":21,"tag":136,"props":13926,"children":13927},{},[13928],{"type":21,"tag":140,"props":13929,"children":13930},{},[13931],{"type":30,"value":144},{"type":21,"tag":146,"props":13933,"children":13934},{"encoding":148},[13935],{"type":30,"value":144},{"type":21,"tag":116,"props":13937,"children":13939},{"className":13938,"ariaHidden":155},[154],[13940],{"type":21,"tag":116,"props":13941,"children":13943},{"className":13942},[160],[13944,13948],{"type":21,"tag":116,"props":13945,"children":13947},{"className":13946,"style":166},[165],[],{"type":21,"tag":116,"props":13949,"children":13951},{"className":13950},[171,172],[13952],{"type":30,"value":144},{"type":30,"value":220},{"type":21,"tag":75,"props":13955,"children":13957},{"href":223,"rel":13956},[79],[13958],{"type":30,"value":227},{"type":30,"value":229},{"type":21,"tag":116,"props":13961,"children":13963},{"className":13962},[119],[13964,13985],{"type":21,"tag":116,"props":13965,"children":13967},{"className":13966},[124],[13968],{"type":21,"tag":127,"props":13969,"children":13970},{"xmlns":129},[13971],{"type":21,"tag":132,"props":13972,"children":13973},{},[13974,13981],{"type":21,"tag":136,"props":13975,"children":13976},{},[13977],{"type":21,"tag":140,"props":13978,"children":13979},{},[13980],{"type":30,"value":251},{"type":21,"tag":146,"props":13982,"children":13983},{"encoding":148},[13984],{"type":30,"value":256},{"type":21,"tag":116,"props":13986,"children":13988},{"className":13987,"ariaHidden":155},[154],[13989],{"type":21,"tag":116,"props":13990,"children":13992},{"className":13991},[160],[13993,13997],{"type":21,"tag":116,"props":13994,"children":13996},{"className":13995,"style":166},[165],[],{"type":21,"tag":116,"props":13998,"children":14000},{"className":13999,"style":272},[171,172],[14001],{"type":30,"value":251},{"type":30,"value":276},{"type":21,"tag":116,"props":14004,"children":14006},{"className":14005},[119],[14007,14057],{"type":21,"tag":116,"props":14008,"children":14010},{"className":14009},[124],[14011],{"type":21,"tag":127,"props":14012,"children":14013},{"xmlns":129},[14014],{"type":21,"tag":132,"props":14015,"children":14016},{},[14017,14053],{"type":21,"tag":136,"props":14018,"children":14019},{},[14020,14049],{"type":21,"tag":295,"props":14021,"children":14022},{},[14023,14034],{"type":21,"tag":136,"props":14024,"children":14025},{},[14026,14030],{"type":21,"tag":140,"props":14027,"children":14028},{},[14029],{"type":30,"value":305},{"type":21,"tag":307,"props":14031,"children":14032},{},[14033],{"type":30,"value":311},{"type":21,"tag":136,"props":14035,"children":14036},{},[14037,14041,14045],{"type":21,"tag":140,"props":14038,"children":14039},{},[14040],{"type":30,"value":144},{"type":21,"tag":307,"props":14042,"children":14043},{},[14044],{"type":30,"value":323},{"type":21,"tag":325,"props":14046,"children":14047},{},[14048],{"type":30,"value":329},{"type":21,"tag":140,"props":14050,"children":14051},{},[14052],{"type":30,"value":251},{"type":21,"tag":146,"props":14054,"children":14055},{"encoding":148},[14056],{"type":30,"value":338},{"type":21,"tag":116,"props":14058,"children":14060},{"className":14059,"ariaHidden":155},[154],[14061],{"type":21,"tag":116,"props":14062,"children":14064},{"className":14063},[160],[14065,14069,14124,14128],{"type":21,"tag":116,"props":14066,"children":14068},{"className":14067,"style":350},[165],[],{"type":21,"tag":116,"props":14070,"children":14072},{"className":14071},[355],[14073,14078],{"type":21,"tag":116,"props":14074,"children":14076},{"className":14075},[355],[14077],{"type":30,"value":305},{"type":21,"tag":116,"props":14079,"children":14081},{"className":14080},[365],[14082],{"type":21,"tag":116,"props":14083,"children":14085},{"className":14084},[370],[14086],{"type":21,"tag":116,"props":14087,"children":14089},{"className":14088},[375],[14090],{"type":21,"tag":116,"props":14091,"children":14093},{"className":14092,"style":350},[380],[14094],{"type":21,"tag":116,"props":14095,"children":14096},{"style":384},[14097,14101],{"type":21,"tag":116,"props":14098,"children":14100},{"className":14099,"style":390},[389],[],{"type":21,"tag":116,"props":14102,"children":14104},{"className":14103},[395,396,397,398],[14105],{"type":21,"tag":116,"props":14106,"children":14108},{"className":14107},[171,398],[14109,14114,14119],{"type":21,"tag":116,"props":14110,"children":14112},{"className":14111},[171,172,398],[14113],{"type":30,"value":144},{"type":21,"tag":116,"props":14115,"children":14117},{"className":14116},[412,398],[14118],{"type":30,"value":323},{"type":21,"tag":116,"props":14120,"children":14122},{"className":14121},[171,398],[14123],{"type":30,"value":329},{"type":21,"tag":116,"props":14125,"children":14127},{"className":14126,"style":424},[423],[],{"type":21,"tag":116,"props":14129,"children":14131},{"className":14130,"style":272},[171,172],[14132],{"type":30,"value":251},{"type":30,"value":432},{"type":21,"tag":116,"props":14135,"children":14137},{"className":14136},[119],[14138,14167],{"type":21,"tag":116,"props":14139,"children":14141},{"className":14140},[124],[14142],{"type":21,"tag":127,"props":14143,"children":14144},{"xmlns":129},[14145],{"type":21,"tag":132,"props":14146,"children":14147},{},[14148,14163],{"type":21,"tag":136,"props":14149,"children":14150},{},[14151,14155,14159],{"type":21,"tag":140,"props":14152,"children":14153},{},[14154],{"type":30,"value":454},{"type":21,"tag":140,"props":14156,"children":14157},{"mathvariant":457},[14158],{"type":30,"value":460},{"type":21,"tag":325,"props":14160,"children":14161},{},[14162],{"type":30,"value":329},{"type":21,"tag":146,"props":14164,"children":14165},{"encoding":148},[14166],{"type":30,"value":469},{"type":21,"tag":116,"props":14168,"children":14170},{"className":14169,"ariaHidden":155},[154],[14171],{"type":21,"tag":116,"props":14172,"children":14174},{"className":14173},[160],[14175,14179,14184],{"type":21,"tag":116,"props":14176,"children":14178},{"className":14177,"style":481},[165],[],{"type":21,"tag":116,"props":14180,"children":14182},{"className":14181,"style":486},[171,172],[14183],{"type":30,"value":454},{"type":21,"tag":116,"props":14185,"children":14187},{"className":14186},[171],[14188],{"type":30,"value":494},{"type":30,"value":496},{"type":21,"tag":33,"props":14191,"children":14192},{},[14193],{"type":30,"value":501},{"type":30,"value":503},{"type":21,"tag":116,"props":14196,"children":14198},{"className":14197},[119],[14199,14220],{"type":21,"tag":116,"props":14200,"children":14202},{"className":14201},[124],[14203],{"type":21,"tag":127,"props":14204,"children":14205},{"xmlns":129},[14206],{"type":21,"tag":132,"props":14207,"children":14208},{},[14209,14216],{"type":21,"tag":136,"props":14210,"children":14211},{},[14212],{"type":21,"tag":140,"props":14213,"children":14214},{},[14215],{"type":30,"value":144},{"type":21,"tag":146,"props":14217,"children":14218},{"encoding":148},[14219],{"type":30,"value":144},{"type":21,"tag":116,"props":14221,"children":14223},{"className":14222,"ariaHidden":155},[154],[14224],{"type":21,"tag":116,"props":14225,"children":14227},{"className":14226},[160],[14228,14232],{"type":21,"tag":116,"props":14229,"children":14231},{"className":14230,"style":166},[165],[],{"type":21,"tag":116,"props":14233,"children":14235},{"className":14234},[171,172],[14236],{"type":30,"value":144},{"type":30,"value":547},{"type":21,"tag":116,"props":14239,"children":14241},{"className":14240},[119],[14242,14281],{"type":21,"tag":116,"props":14243,"children":14245},{"className":14244},[124],[14246],{"type":21,"tag":127,"props":14247,"children":14248},{"xmlns":129},[14249],{"type":21,"tag":132,"props":14250,"children":14251},{},[14252,14277],{"type":21,"tag":136,"props":14253,"children":14254},{},[14255],{"type":21,"tag":566,"props":14256,"children":14257},{},[14258,14262],{"type":21,"tag":325,"props":14259,"children":14260},{},[14261],{"type":30,"value":573},{"type":21,"tag":136,"props":14263,"children":14264},{},[14265,14269,14273],{"type":21,"tag":140,"props":14266,"children":14267},{},[14268],{"type":30,"value":144},{"type":21,"tag":307,"props":14270,"children":14271},{},[14272],{"type":30,"value":323},{"type":21,"tag":325,"props":14274,"children":14275},{},[14276],{"type":30,"value":329},{"type":21,"tag":146,"props":14278,"children":14279},{"encoding":148},[14280],{"type":30,"value":593},{"type":21,"tag":116,"props":14282,"children":14284},{"className":14283,"ariaHidden":155},[154],[14285],{"type":21,"tag":116,"props":14286,"children":14288},{"className":14287},[160],[14289,14293],{"type":21,"tag":116,"props":14290,"children":14292},{"className":14291,"style":605},[165],[],{"type":21,"tag":116,"props":14294,"children":14296},{"className":14295},[171],[14297,14301,14394],{"type":21,"tag":116,"props":14298,"children":14300},{"className":14299},[614,615],[],{"type":21,"tag":116,"props":14302,"children":14304},{"className":14303},[566],[14305],{"type":21,"tag":116,"props":14306,"children":14308},{"className":14307},[370,624],[14309,14383],{"type":21,"tag":116,"props":14310,"children":14312},{"className":14311},[375],[14313,14378],{"type":21,"tag":116,"props":14314,"children":14316},{"className":14315,"style":633},[380],[14317,14347,14358],{"type":21,"tag":116,"props":14318,"children":14319},{"style":637},[14320,14324],{"type":21,"tag":116,"props":14321,"children":14323},{"className":14322,"style":642},[389],[],{"type":21,"tag":116,"props":14325,"children":14327},{"className":14326},[395,396,397,398],[14328],{"type":21,"tag":116,"props":14329,"children":14331},{"className":14330},[171,398],[14332,14337,14342],{"type":21,"tag":116,"props":14333,"children":14335},{"className":14334},[171,172,398],[14336],{"type":30,"value":144},{"type":21,"tag":116,"props":14338,"children":14340},{"className":14339},[412,398],[14341],{"type":30,"value":323},{"type":21,"tag":116,"props":14343,"children":14345},{"className":14344},[171,398],[14346],{"type":30,"value":329},{"type":21,"tag":116,"props":14348,"children":14349},{"style":669},[14350,14354],{"type":21,"tag":116,"props":14351,"children":14353},{"className":14352,"style":642},[389],[],{"type":21,"tag":116,"props":14355,"children":14357},{"className":14356,"style":679},[678],[],{"type":21,"tag":116,"props":14359,"children":14360},{"style":683},[14361,14365],{"type":21,"tag":116,"props":14362,"children":14364},{"className":14363,"style":642},[389],[],{"type":21,"tag":116,"props":14366,"children":14368},{"className":14367},[395,396,397,398],[14369],{"type":21,"tag":116,"props":14370,"children":14372},{"className":14371},[171,398],[14373],{"type":21,"tag":116,"props":14374,"children":14376},{"className":14375},[171,398],[14377],{"type":30,"value":573},{"type":21,"tag":116,"props":14379,"children":14381},{"className":14380},[705],[14382],{"type":30,"value":708},{"type":21,"tag":116,"props":14384,"children":14386},{"className":14385},[375],[14387],{"type":21,"tag":116,"props":14388,"children":14390},{"className":14389,"style":716},[380],[14391],{"type":21,"tag":116,"props":14392,"children":14393},{},[],{"type":21,"tag":116,"props":14395,"children":14397},{"className":14396},[724,615],[],{"type":30,"value":727},{"type":21,"tag":116,"props":14400,"children":14402},{"className":14401},[119],[14403,14432],{"type":21,"tag":116,"props":14404,"children":14406},{"className":14405},[124],[14407],{"type":21,"tag":127,"props":14408,"children":14409},{"xmlns":129},[14410],{"type":21,"tag":132,"props":14411,"children":14412},{},[14413,14428],{"type":21,"tag":136,"props":14414,"children":14415},{},[14416,14420,14424],{"type":21,"tag":140,"props":14417,"children":14418},{},[14419],{"type":30,"value":144},{"type":21,"tag":307,"props":14421,"children":14422},{},[14423],{"type":30,"value":753},{"type":21,"tag":325,"props":14425,"children":14426},{},[14427],{"type":30,"value":758},{"type":21,"tag":146,"props":14429,"children":14430},{"encoding":148},[14431],{"type":30,"value":763},{"type":21,"tag":116,"props":14433,"children":14435},{"className":14434,"ariaHidden":155},[154],[14436,14462],{"type":21,"tag":116,"props":14437,"children":14439},{"className":14438},[160],[14440,14444,14449,14453,14458],{"type":21,"tag":116,"props":14441,"children":14443},{"className":14442,"style":166},[165],[],{"type":21,"tag":116,"props":14445,"children":14447},{"className":14446},[171,172],[14448],{"type":30,"value":144},{"type":21,"tag":116,"props":14450,"children":14452},{"className":14451,"style":784},[423],[],{"type":21,"tag":116,"props":14454,"children":14456},{"className":14455},[789],[14457],{"type":30,"value":753},{"type":21,"tag":116,"props":14459,"children":14461},{"className":14460,"style":784},[423],[],{"type":21,"tag":116,"props":14463,"children":14465},{"className":14464},[160],[14466,14470],{"type":21,"tag":116,"props":14467,"children":14469},{"className":14468,"style":803},[165],[],{"type":21,"tag":116,"props":14471,"children":14473},{"className":14472},[171],[14474],{"type":30,"value":758},{"type":30,"value":811},{"type":21,"tag":26,"props":14477,"children":14478},{},[14479,14480,14522,14523,14619],{"type":30,"value":816},{"type":21,"tag":116,"props":14481,"children":14483},{"className":14482},[119],[14484,14505],{"type":21,"tag":116,"props":14485,"children":14487},{"className":14486},[124],[14488],{"type":21,"tag":127,"props":14489,"children":14490},{"xmlns":129},[14491],{"type":21,"tag":132,"props":14492,"children":14493},{},[14494,14501],{"type":21,"tag":136,"props":14495,"children":14496},{},[14497],{"type":21,"tag":140,"props":14498,"children":14499},{},[14500],{"type":30,"value":838},{"type":21,"tag":146,"props":14502,"children":14503},{"encoding":148},[14504],{"type":30,"value":838},{"type":21,"tag":116,"props":14506,"children":14508},{"className":14507,"ariaHidden":155},[154],[14509],{"type":21,"tag":116,"props":14510,"children":14512},{"className":14511},[160],[14513,14517],{"type":21,"tag":116,"props":14514,"children":14516},{"className":14515,"style":854},[165],[],{"type":21,"tag":116,"props":14518,"children":14520},{"className":14519,"style":859},[171,172],[14521],{"type":30,"value":838},{"type":30,"value":863},{"type":21,"tag":116,"props":14524,"children":14526},{"className":14525},[119],[14527,14572],{"type":21,"tag":116,"props":14528,"children":14530},{"className":14529},[124],[14531],{"type":21,"tag":127,"props":14532,"children":14533},{"xmlns":129},[14534],{"type":21,"tag":132,"props":14535,"children":14536},{},[14537,14568],{"type":21,"tag":136,"props":14538,"children":14539},{},[14540,14544,14548,14552,14556,14560,14564],{"type":21,"tag":140,"props":14541,"children":14542},{},[14543],{"type":30,"value":885},{"type":21,"tag":307,"props":14545,"children":14546},{"stretchy":888},[14547],{"type":30,"value":891},{"type":21,"tag":140,"props":14549,"children":14550},{},[14551],{"type":30,"value":896},{"type":21,"tag":140,"props":14553,"children":14554},{},[14555],{"type":30,"value":901},{"type":21,"tag":140,"props":14557,"children":14558},{},[14559],{"type":30,"value":906},{"type":21,"tag":140,"props":14561,"children":14562},{},[14563],{"type":30,"value":838},{"type":21,"tag":307,"props":14565,"children":14566},{"stretchy":888},[14567],{"type":30,"value":915},{"type":21,"tag":146,"props":14569,"children":14570},{"encoding":148},[14571],{"type":30,"value":920},{"type":21,"tag":116,"props":14573,"children":14575},{"className":14574,"ariaHidden":155},[154],[14576],{"type":21,"tag":116,"props":14577,"children":14579},{"className":14578},[160],[14580,14584,14589,14594,14599,14604,14609,14614],{"type":21,"tag":116,"props":14581,"children":14583},{"className":14582,"style":481},[165],[],{"type":21,"tag":116,"props":14585,"children":14587},{"className":14586,"style":272},[171,172],[14588],{"type":30,"value":885},{"type":21,"tag":116,"props":14590,"children":14592},{"className":14591},[614],[14593],{"type":30,"value":891},{"type":21,"tag":116,"props":14595,"children":14597},{"className":14596,"style":946},[171,172],[14598],{"type":30,"value":896},{"type":21,"tag":116,"props":14600,"children":14602},{"className":14601},[171,172],[14603],{"type":30,"value":901},{"type":21,"tag":116,"props":14605,"children":14607},{"className":14606,"style":486},[171,172],[14608],{"type":30,"value":906},{"type":21,"tag":116,"props":14610,"children":14612},{"className":14611,"style":859},[171,172],[14613],{"type":30,"value":838},{"type":21,"tag":116,"props":14615,"children":14617},{"className":14616},[724],[14618],{"type":30,"value":915},{"type":30,"value":970},{"type":21,"tag":22,"props":14621,"children":14622},{},[14623],{"type":21,"tag":26,"props":14624,"children":14625},{},[14626],{"type":21,"tag":33,"props":14627,"children":14628},{},[14629,14630,14672],{"type":30,"value":981},{"type":21,"tag":116,"props":14631,"children":14633},{"className":14632},[119],[14634,14655],{"type":21,"tag":116,"props":14635,"children":14637},{"className":14636},[124],[14638],{"type":21,"tag":127,"props":14639,"children":14640},{"xmlns":129},[14641],{"type":21,"tag":132,"props":14642,"children":14643},{},[14644,14651],{"type":21,"tag":136,"props":14645,"children":14646},{},[14647],{"type":21,"tag":140,"props":14648,"children":14649},{},[14650],{"type":30,"value":144},{"type":21,"tag":146,"props":14652,"children":14653},{"encoding":148},[14654],{"type":30,"value":144},{"type":21,"tag":116,"props":14656,"children":14658},{"className":14657,"ariaHidden":155},[154],[14659],{"type":21,"tag":116,"props":14660,"children":14662},{"className":14661},[160],[14663,14667],{"type":21,"tag":116,"props":14664,"children":14666},{"className":14665,"style":166},[165],[],{"type":21,"tag":116,"props":14668,"children":14670},{"className":14669},[171,172],[14671],{"type":30,"value":144},{"type":30,"value":1025},{"type":21,"tag":26,"props":14674,"children":14675},{},[14676,14677,14719,14720,14810],{"type":30,"value":1030},{"type":21,"tag":116,"props":14678,"children":14680},{"className":14679},[119],[14681,14702],{"type":21,"tag":116,"props":14682,"children":14684},{"className":14683},[124],[14685],{"type":21,"tag":127,"props":14686,"children":14687},{"xmlns":129},[14688],{"type":21,"tag":132,"props":14689,"children":14690},{},[14691,14698],{"type":21,"tag":136,"props":14692,"children":14693},{},[14694],{"type":21,"tag":140,"props":14695,"children":14696},{},[14697],{"type":30,"value":144},{"type":21,"tag":146,"props":14699,"children":14700},{"encoding":148},[14701],{"type":30,"value":144},{"type":21,"tag":116,"props":14703,"children":14705},{"className":14704,"ariaHidden":155},[154],[14706],{"type":21,"tag":116,"props":14707,"children":14709},{"className":14708},[160],[14710,14714],{"type":21,"tag":116,"props":14711,"children":14713},{"className":14712,"style":166},[165],[],{"type":21,"tag":116,"props":14715,"children":14717},{"className":14716},[171,172],[14718],{"type":30,"value":144},{"type":30,"value":1074},{"type":21,"tag":116,"props":14721,"children":14723},{"className":14722},[119],[14724,14769],{"type":21,"tag":116,"props":14725,"children":14727},{"className":14726},[124],[14728],{"type":21,"tag":127,"props":14729,"children":14730},{"xmlns":129},[14731],{"type":21,"tag":132,"props":14732,"children":14733},{},[14734,14765],{"type":21,"tag":136,"props":14735,"children":14736},{},[14737,14741,14745,14749,14753,14757,14761],{"type":21,"tag":307,"props":14738,"children":14739},{"stretchy":888},[14740],{"type":30,"value":1096},{"type":21,"tag":325,"props":14742,"children":14743},{},[14744],{"type":30,"value":1101},{"type":21,"tag":140,"props":14746,"children":14747},{"mathvariant":457},[14748],{"type":30,"value":1106},{"type":21,"tag":307,"props":14750,"children":14751},{"separator":155},[14752],{"type":30,"value":1111},{"type":21,"tag":325,"props":14754,"children":14755},{},[14756],{"type":30,"value":1116},{"type":21,"tag":140,"props":14758,"children":14759},{"mathvariant":457},[14760],{"type":30,"value":1106},{"type":21,"tag":307,"props":14762,"children":14763},{"stretchy":888},[14764],{"type":30,"value":1125},{"type":21,"tag":146,"props":14766,"children":14767},{"encoding":148},[14768],{"type":30,"value":1130},{"type":21,"tag":116,"props":14770,"children":14772},{"className":14771,"ariaHidden":155},[154],[14773],{"type":21,"tag":116,"props":14774,"children":14776},{"className":14775},[160],[14777,14781,14786,14791,14796,14800,14805],{"type":21,"tag":116,"props":14778,"children":14780},{"className":14779,"style":481},[165],[],{"type":21,"tag":116,"props":14782,"children":14784},{"className":14783},[614],[14785],{"type":30,"value":1096},{"type":21,"tag":116,"props":14787,"children":14789},{"className":14788},[171],[14790],{"type":30,"value":1153},{"type":21,"tag":116,"props":14792,"children":14794},{"className":14793},[1157],[14795],{"type":30,"value":1111},{"type":21,"tag":116,"props":14797,"children":14799},{"className":14798,"style":424},[423],[],{"type":21,"tag":116,"props":14801,"children":14803},{"className":14802},[171],[14804],{"type":30,"value":1169},{"type":21,"tag":116,"props":14806,"children":14808},{"className":14807},[724],[14809],{"type":30,"value":1125},{"type":30,"value":1176},{"type":21,"tag":1178,"props":14812,"children":14813},{"className":1180,"code":1181,"language":1182,"meta":8,"style":8},[14814],{"type":21,"tag":1185,"props":14815,"children":14816},{"__ignoreMap":8},[14817,14824,14831,14838,14845,14852,14859,14866,14873,14880],{"type":21,"tag":116,"props":14818,"children":14819},{"class":1190,"line":1191},[14820],{"type":21,"tag":116,"props":14821,"children":14822},{},[14823],{"type":30,"value":1197},{"type":21,"tag":116,"props":14825,"children":14826},{"class":1190,"line":1200},[14827],{"type":21,"tag":116,"props":14828,"children":14829},{"emptyLinePlaceholder":1204},[14830],{"type":30,"value":1207},{"type":21,"tag":116,"props":14832,"children":14833},{"class":1190,"line":1210},[14834],{"type":21,"tag":116,"props":14835,"children":14836},{},[14837],{"type":30,"value":1216},{"type":21,"tag":116,"props":14839,"children":14840},{"class":1190,"line":1219},[14841],{"type":21,"tag":116,"props":14842,"children":14843},{},[14844],{"type":30,"value":1225},{"type":21,"tag":116,"props":14846,"children":14847},{"class":1190,"line":1228},[14848],{"type":21,"tag":116,"props":14849,"children":14850},{},[14851],{"type":30,"value":1234},{"type":21,"tag":116,"props":14853,"children":14854},{"class":1190,"line":1237},[14855],{"type":21,"tag":116,"props":14856,"children":14857},{},[14858],{"type":30,"value":1243},{"type":21,"tag":116,"props":14860,"children":14861},{"class":1190,"line":1246},[14862],{"type":21,"tag":116,"props":14863,"children":14864},{},[14865],{"type":30,"value":1252},{"type":21,"tag":116,"props":14867,"children":14868},{"class":1190,"line":1255},[14869],{"type":21,"tag":116,"props":14870,"children":14871},{},[14872],{"type":30,"value":1261},{"type":21,"tag":116,"props":14874,"children":14875},{"class":1190,"line":1264},[14876],{"type":21,"tag":116,"props":14877,"children":14878},{},[14879],{"type":30,"value":1270},{"type":21,"tag":116,"props":14881,"children":14882},{"class":1190,"line":1273},[14883],{"type":21,"tag":116,"props":14884,"children":14885},{},[14886],{"type":30,"value":1279},{"type":21,"tag":26,"props":14888,"children":14889},{},[14890],{"type":30,"value":1284},{"type":21,"tag":26,"props":14892,"children":14893},{},[14894,14895,14899,14900,14904],{"type":30,"value":1289},{"type":21,"tag":33,"props":14896,"children":14897},{},[14898],{"type":30,"value":1294},{"type":30,"value":1296},{"type":21,"tag":33,"props":14901,"children":14902},{},[14903],{"type":30,"value":1301},{"type":30,"value":1303},{"type":21,"tag":26,"props":14906,"children":14907},{},[14908,14909,14913],{"type":30,"value":1308},{"type":21,"tag":33,"props":14910,"children":14911},{},[14912],{"type":30,"value":1313},{"type":30,"value":1315},{"type":21,"tag":1317,"props":14915,"children":14916},{},[14917,14921],{"type":21,"tag":1321,"props":14918,"children":14919},{},[14920],{"type":30,"value":1325},{"type":21,"tag":1321,"props":14922,"children":14923},{},[14924],{"type":30,"value":1330},{"type":21,"tag":26,"props":14926,"children":14927},{},[14928],{"type":30,"value":1335},{"type":21,"tag":26,"props":14930,"children":14931},{},[14932,14933],{"type":30,"value":1340},{"type":21,"tag":33,"props":14934,"children":14935},{},[14936],{"type":30,"value":1345},{"type":21,"tag":58,"props":14938,"children":14939},{"id":1348},[14940],{"type":30,"value":1351},{"type":21,"tag":26,"props":14942,"children":14943},{},[14944,14945,15030,15031,15175,15176,15252,15253,15295,15296,15449,15450,15454,15455,15578],{"type":30,"value":1356},{"type":21,"tag":116,"props":14946,"children":14948},{"className":14947},[119],[14949,14982],{"type":21,"tag":116,"props":14950,"children":14952},{"className":14951},[124],[14953],{"type":21,"tag":127,"props":14954,"children":14955},{"xmlns":129},[14956],{"type":21,"tag":132,"props":14957,"children":14958},{},[14959,14978],{"type":21,"tag":136,"props":14960,"children":14961},{},[14962,14966,14970,14974],{"type":21,"tag":140,"props":14963,"children":14964},{},[14965],{"type":30,"value":1378},{"type":21,"tag":307,"props":14967,"children":14968},{},[14969],{"type":30,"value":1383},{"type":21,"tag":140,"props":14971,"children":14972},{},[14973],{"type":30,"value":1388},{"type":21,"tag":140,"props":14975,"children":14976},{},[14977],{"type":30,"value":1393},{"type":21,"tag":146,"props":14979,"children":14980},{"encoding":148},[14981],{"type":30,"value":1398},{"type":21,"tag":116,"props":14983,"children":14985},{"className":14984,"ariaHidden":155},[154],[14986,15012],{"type":21,"tag":116,"props":14987,"children":14989},{"className":14988},[160],[14990,14994,14999,15003,15008],{"type":21,"tag":116,"props":14991,"children":14993},{"className":14992,"style":1410},[165],[],{"type":21,"tag":116,"props":14995,"children":14997},{"className":14996},[171,172],[14998],{"type":30,"value":1378},{"type":21,"tag":116,"props":15000,"children":15002},{"className":15001,"style":784},[423],[],{"type":21,"tag":116,"props":15004,"children":15006},{"className":15005},[789],[15007],{"type":30,"value":1383},{"type":21,"tag":116,"props":15009,"children":15011},{"className":15010,"style":784},[423],[],{"type":21,"tag":116,"props":15013,"children":15015},{"className":15014},[160],[15016,15020,15025],{"type":21,"tag":116,"props":15017,"children":15019},{"className":15018,"style":1437},[165],[],{"type":21,"tag":116,"props":15021,"children":15023},{"className":15022,"style":1442},[171,172],[15024],{"type":30,"value":1388},{"type":21,"tag":116,"props":15026,"children":15028},{"className":15027,"style":1448},[171,172],[15029],{"type":30,"value":1393},{"type":30,"value":1452},{"type":21,"tag":116,"props":15032,"children":15034},{"className":15033},[119],[15035,15082],{"type":21,"tag":116,"props":15036,"children":15038},{"className":15037},[124],[15039],{"type":21,"tag":127,"props":15040,"children":15041},{"xmlns":129},[15042],{"type":21,"tag":132,"props":15043,"children":15044},{},[15045,15078],{"type":21,"tag":136,"props":15046,"children":15047},{},[15048,15052,15056],{"type":21,"tag":140,"props":15049,"children":15050},{},[15051],{"type":30,"value":1388},{"type":21,"tag":307,"props":15053,"children":15054},{},[15055],{"type":30,"value":1478},{"type":21,"tag":295,"props":15057,"children":15058},{},[15059,15063],{"type":21,"tag":140,"props":15060,"children":15061},{"mathvariant":1484},[15062],{"type":30,"value":1487},{"type":21,"tag":136,"props":15064,"children":15065},{},[15066,15070,15074],{"type":21,"tag":140,"props":15067,"children":15068},{},[15069],{"type":30,"value":144},{"type":21,"tag":307,"props":15071,"children":15072},{},[15073],{"type":30,"value":1499},{"type":21,"tag":140,"props":15075,"children":15076},{},[15077],{"type":30,"value":1504},{"type":21,"tag":146,"props":15079,"children":15080},{"encoding":148},[15081],{"type":30,"value":1509},{"type":21,"tag":116,"props":15083,"children":15085},{"className":15084,"ariaHidden":155},[154],[15086,15112],{"type":21,"tag":116,"props":15087,"children":15089},{"className":15088},[160],[15090,15094,15099,15103,15108],{"type":21,"tag":116,"props":15091,"children":15093},{"className":15092,"style":1521},[165],[],{"type":21,"tag":116,"props":15095,"children":15097},{"className":15096,"style":1442},[171,172],[15098],{"type":30,"value":1388},{"type":21,"tag":116,"props":15100,"children":15102},{"className":15101,"style":784},[423],[],{"type":21,"tag":116,"props":15104,"children":15106},{"className":15105},[789],[15107],{"type":30,"value":1478},{"type":21,"tag":116,"props":15109,"children":15111},{"className":15110,"style":784},[423],[],{"type":21,"tag":116,"props":15113,"children":15115},{"className":15114},[160],[15116,15120],{"type":21,"tag":116,"props":15117,"children":15119},{"className":15118,"style":1548},[165],[],{"type":21,"tag":116,"props":15121,"children":15123},{"className":15122},[171],[15124,15129],{"type":21,"tag":116,"props":15125,"children":15127},{"className":15126},[171,1557],[15128],{"type":30,"value":1487},{"type":21,"tag":116,"props":15130,"children":15132},{"className":15131},[365],[15133],{"type":21,"tag":116,"props":15134,"children":15136},{"className":15135},[370],[15137],{"type":21,"tag":116,"props":15138,"children":15140},{"className":15139},[375],[15141],{"type":21,"tag":116,"props":15142,"children":15144},{"className":15143,"style":1548},[380],[15145],{"type":21,"tag":116,"props":15146,"children":15147},{"style":1578},[15148,15152],{"type":21,"tag":116,"props":15149,"children":15151},{"className":15150,"style":390},[389],[],{"type":21,"tag":116,"props":15153,"children":15155},{"className":15154},[395,396,397,398],[15156],{"type":21,"tag":116,"props":15157,"children":15159},{"className":15158},[171,398],[15160,15165,15170],{"type":21,"tag":116,"props":15161,"children":15163},{"className":15162},[171,172,398],[15164],{"type":30,"value":144},{"type":21,"tag":116,"props":15166,"children":15168},{"className":15167},[412,398],[15169],{"type":30,"value":1499},{"type":21,"tag":116,"props":15171,"children":15173},{"className":15172},[171,172,398],[15174],{"type":30,"value":1504},{"type":30,"value":1608},{"type":21,"tag":116,"props":15177,"children":15179},{"className":15178},[119],[15180,15209],{"type":21,"tag":116,"props":15181,"children":15183},{"className":15182},[124],[15184],{"type":21,"tag":127,"props":15185,"children":15186},{"xmlns":129},[15187],{"type":21,"tag":132,"props":15188,"children":15189},{},[15190,15205],{"type":21,"tag":136,"props":15191,"children":15192},{},[15193,15197,15201],{"type":21,"tag":140,"props":15194,"children":15195},{},[15196],{"type":30,"value":1504},{"type":21,"tag":307,"props":15198,"children":15199},{},[15200],{"type":30,"value":1634},{"type":21,"tag":140,"props":15202,"children":15203},{},[15204],{"type":30,"value":144},{"type":21,"tag":146,"props":15206,"children":15207},{"encoding":148},[15208],{"type":30,"value":1643},{"type":21,"tag":116,"props":15210,"children":15212},{"className":15211,"ariaHidden":155},[154],[15213,15239],{"type":21,"tag":116,"props":15214,"children":15216},{"className":15215},[160],[15217,15221,15226,15230,15235],{"type":21,"tag":116,"props":15218,"children":15220},{"className":15219,"style":1655},[165],[],{"type":21,"tag":116,"props":15222,"children":15224},{"className":15223},[171,172],[15225],{"type":30,"value":1504},{"type":21,"tag":116,"props":15227,"children":15229},{"className":15228,"style":784},[423],[],{"type":21,"tag":116,"props":15231,"children":15233},{"className":15232},[789],[15234],{"type":30,"value":1634},{"type":21,"tag":116,"props":15236,"children":15238},{"className":15237,"style":784},[423],[],{"type":21,"tag":116,"props":15240,"children":15242},{"className":15241},[160],[15243,15247],{"type":21,"tag":116,"props":15244,"children":15246},{"className":15245,"style":166},[165],[],{"type":21,"tag":116,"props":15248,"children":15250},{"className":15249},[171,172],[15251],{"type":30,"value":144},{"type":30,"value":1689},{"type":21,"tag":116,"props":15254,"children":15256},{"className":15255},[119],[15257,15278],{"type":21,"tag":116,"props":15258,"children":15260},{"className":15259},[124],[15261],{"type":21,"tag":127,"props":15262,"children":15263},{"xmlns":129},[15264],{"type":21,"tag":132,"props":15265,"children":15266},{},[15267,15274],{"type":21,"tag":136,"props":15268,"children":15269},{},[15270],{"type":21,"tag":140,"props":15271,"children":15272},{},[15273],{"type":30,"value":1393},{"type":21,"tag":146,"props":15275,"children":15276},{"encoding":148},[15277],{"type":30,"value":1393},{"type":21,"tag":116,"props":15279,"children":15281},{"className":15280,"ariaHidden":155},[154],[15282],{"type":21,"tag":116,"props":15283,"children":15285},{"className":15284},[160],[15286,15290],{"type":21,"tag":116,"props":15287,"children":15289},{"className":15288,"style":1437},[165],[],{"type":21,"tag":116,"props":15291,"children":15293},{"className":15292,"style":1448},[171,172],[15294],{"type":30,"value":1393},{"type":30,"value":1733},{"type":21,"tag":116,"props":15297,"children":15299},{"className":15298},[119],[15300,15344],{"type":21,"tag":116,"props":15301,"children":15303},{"className":15302},[124],[15304],{"type":21,"tag":127,"props":15305,"children":15306},{"xmlns":129},[15307],{"type":21,"tag":132,"props":15308,"children":15309},{},[15310,15340],{"type":21,"tag":136,"props":15311,"children":15312},{},[15313,15317,15321,15332,15336],{"type":21,"tag":140,"props":15314,"children":15315},{"mathvariant":457},[15316],{"type":30,"value":1755},{"type":21,"tag":140,"props":15318,"children":15319},{},[15320],{"type":30,"value":1393},{"type":21,"tag":1761,"props":15322,"children":15323},{},[15324,15328],{"type":21,"tag":140,"props":15325,"children":15326},{"mathvariant":457},[15327],{"type":30,"value":1755},{"type":21,"tag":325,"props":15329,"children":15330},{},[15331],{"type":30,"value":1772},{"type":21,"tag":307,"props":15333,"children":15334},{},[15335],{"type":30,"value":1777},{"type":21,"tag":140,"props":15337,"children":15338},{},[15339],{"type":30,"value":1504},{"type":21,"tag":146,"props":15341,"children":15342},{"encoding":148},[15343],{"type":30,"value":1786},{"type":21,"tag":116,"props":15345,"children":15347},{"className":15346,"ariaHidden":155},[154],[15348,15436],{"type":21,"tag":116,"props":15349,"children":15351},{"className":15350},[160],[15352,15356,15361,15366,15423,15427,15432],{"type":21,"tag":116,"props":15353,"children":15355},{"className":15354,"style":481},[165],[],{"type":21,"tag":116,"props":15357,"children":15359},{"className":15358},[171],[15360],{"type":30,"value":1755},{"type":21,"tag":116,"props":15362,"children":15364},{"className":15363,"style":1448},[171,172],[15365],{"type":30,"value":1393},{"type":21,"tag":116,"props":15367,"children":15369},{"className":15368},[171],[15370,15375],{"type":21,"tag":116,"props":15371,"children":15373},{"className":15372},[171],[15374],{"type":30,"value":1755},{"type":21,"tag":116,"props":15376,"children":15378},{"className":15377},[365],[15379],{"type":21,"tag":116,"props":15380,"children":15382},{"className":15381},[370,624],[15383,15412],{"type":21,"tag":116,"props":15384,"children":15386},{"className":15385},[375],[15387,15407],{"type":21,"tag":116,"props":15388,"children":15390},{"className":15389,"style":1833},[380],[15391],{"type":21,"tag":116,"props":15392,"children":15393},{"style":1837},[15394,15398],{"type":21,"tag":116,"props":15395,"children":15397},{"className":15396,"style":390},[389],[],{"type":21,"tag":116,"props":15399,"children":15401},{"className":15400},[395,396,397,398],[15402],{"type":21,"tag":116,"props":15403,"children":15405},{"className":15404},[171,398],[15406],{"type":30,"value":1772},{"type":21,"tag":116,"props":15408,"children":15410},{"className":15409},[705],[15411],{"type":30,"value":708},{"type":21,"tag":116,"props":15413,"children":15415},{"className":15414},[375],[15416],{"type":21,"tag":116,"props":15417,"children":15419},{"className":15418,"style":1864},[380],[15420],{"type":21,"tag":116,"props":15421,"children":15422},{},[],{"type":21,"tag":116,"props":15424,"children":15426},{"className":15425,"style":784},[423],[],{"type":21,"tag":116,"props":15428,"children":15430},{"className":15429},[789],[15431],{"type":30,"value":1777},{"type":21,"tag":116,"props":15433,"children":15435},{"className":15434,"style":784},[423],[],{"type":21,"tag":116,"props":15437,"children":15439},{"className":15438},[160],[15440,15444],{"type":21,"tag":116,"props":15441,"children":15443},{"className":15442,"style":1889},[165],[],{"type":21,"tag":116,"props":15445,"children":15447},{"className":15446},[171,172],[15448],{"type":30,"value":1504},{"type":30,"value":1897},{"type":21,"tag":33,"props":15451,"children":15452},{},[15453],{"type":30,"value":1902},{"type":30,"value":1904},{"type":21,"tag":116,"props":15456,"children":15458},{"className":15457},[119],[15459,15495],{"type":21,"tag":116,"props":15460,"children":15462},{"className":15461},[124],[15463],{"type":21,"tag":127,"props":15464,"children":15465},{"xmlns":129},[15466],{"type":21,"tag":132,"props":15467,"children":15468},{},[15469,15491],{"type":21,"tag":136,"props":15470,"children":15471},{},[15472,15476,15480],{"type":21,"tag":140,"props":15473,"children":15474},{},[15475],{"type":30,"value":1378},{"type":21,"tag":307,"props":15477,"children":15478},{},[15479],{"type":30,"value":1478},{"type":21,"tag":295,"props":15481,"children":15482},{},[15483,15487],{"type":21,"tag":140,"props":15484,"children":15485},{"mathvariant":1484},[15486],{"type":30,"value":1487},{"type":21,"tag":140,"props":15488,"children":15489},{},[15490],{"type":30,"value":144},{"type":21,"tag":146,"props":15492,"children":15493},{"encoding":148},[15494],{"type":30,"value":1945},{"type":21,"tag":116,"props":15496,"children":15498},{"className":15497,"ariaHidden":155},[154],[15499,15525],{"type":21,"tag":116,"props":15500,"children":15502},{"className":15501},[160],[15503,15507,15512,15516,15521],{"type":21,"tag":116,"props":15504,"children":15506},{"className":15505,"style":1655},[165],[],{"type":21,"tag":116,"props":15508,"children":15510},{"className":15509},[171,172],[15511],{"type":30,"value":1378},{"type":21,"tag":116,"props":15513,"children":15515},{"className":15514,"style":784},[423],[],{"type":21,"tag":116,"props":15517,"children":15519},{"className":15518},[789],[15520],{"type":30,"value":1478},{"type":21,"tag":116,"props":15522,"children":15524},{"className":15523,"style":784},[423],[],{"type":21,"tag":116,"props":15526,"children":15528},{"className":15527},[160],[15529,15533],{"type":21,"tag":116,"props":15530,"children":15532},{"className":15531,"style":1548},[165],[],{"type":21,"tag":116,"props":15534,"children":15536},{"className":15535},[171],[15537,15542],{"type":21,"tag":116,"props":15538,"children":15540},{"className":15539},[171,1557],[15541],{"type":30,"value":1487},{"type":21,"tag":116,"props":15543,"children":15545},{"className":15544},[365],[15546],{"type":21,"tag":116,"props":15547,"children":15549},{"className":15548},[370],[15550],{"type":21,"tag":116,"props":15551,"children":15553},{"className":15552},[375],[15554],{"type":21,"tag":116,"props":15555,"children":15557},{"className":15556,"style":1548},[380],[15558],{"type":21,"tag":116,"props":15559,"children":15560},{"style":1578},[15561,15565],{"type":21,"tag":116,"props":15562,"children":15564},{"className":15563,"style":390},[389],[],{"type":21,"tag":116,"props":15566,"children":15568},{"className":15567},[395,396,397,398],[15569],{"type":21,"tag":116,"props":15570,"children":15572},{"className":15571},[171,398],[15573],{"type":21,"tag":116,"props":15574,"children":15576},{"className":15575},[171,172,398],[15577],{"type":30,"value":144},{"type":30,"value":2030},{"type":21,"tag":26,"props":15580,"children":15581},{},[15582],{"type":21,"tag":116,"props":15583,"children":15585},{"className":15584},[119],[15586,15736],{"type":21,"tag":116,"props":15587,"children":15589},{"className":15588},[124],[15590],{"type":21,"tag":127,"props":15591,"children":15592},{"xmlns":129},[15593],{"type":21,"tag":132,"props":15594,"children":15595},{},[15596,15732],{"type":21,"tag":136,"props":15597,"children":15598},{},[15599,15603,15607,15611,15630,15634,15645,15649,15653,15657,15668,15672,15676,15679,15683,15694,15698,15709,15713,15717,15721],{"type":21,"tag":2052,"props":15600,"children":15601},{},[15602],{"type":30,"value":2056},{"type":21,"tag":140,"props":15604,"children":15605},{},[15606],{"type":30,"value":1393},{"type":21,"tag":307,"props":15608,"children":15609},{},[15610],{"type":30,"value":753},{"type":21,"tag":136,"props":15612,"children":15613},{},[15614,15618,15622,15626],{"type":21,"tag":140,"props":15615,"children":15616},{"mathvariant":457},[15617],{"type":30,"value":1487},{"type":21,"tag":140,"props":15619,"children":15620},{"mathvariant":457},[15621],{"type":30,"value":2076},{"type":21,"tag":140,"props":15623,"children":15624},{"mathvariant":457},[15625],{"type":30,"value":2081},{"type":21,"tag":140,"props":15627,"children":15628},{"mathvariant":457},[15629],{"type":30,"value":2086},{"type":21,"tag":307,"props":15631,"children":15632},{"stretchy":888},[15633],{"type":30,"value":891},{"type":21,"tag":1761,"props":15635,"children":15636},{},[15637,15641],{"type":21,"tag":140,"props":15638,"children":15639},{},[15640],{"type":30,"value":1388},{"type":21,"tag":2052,"props":15642,"children":15643},{},[15644],{"type":30,"value":2102},{"type":21,"tag":2052,"props":15646,"children":15647},{},[15648],{"type":30,"value":2107},{"type":21,"tag":140,"props":15650,"children":15651},{},[15652],{"type":30,"value":1378},{"type":21,"tag":307,"props":15654,"children":15655},{},[15656],{"type":30,"value":2116},{"type":21,"tag":1761,"props":15658,"children":15659},{},[15660,15664],{"type":21,"tag":140,"props":15661,"children":15662},{},[15663],{"type":30,"value":2124},{"type":21,"tag":2052,"props":15665,"children":15666},{},[15667],{"type":30,"value":2102},{"type":21,"tag":307,"props":15669,"children":15670},{"stretchy":888},[15671],{"type":30,"value":915},{"type":21,"tag":307,"props":15673,"children":15674},{"separator":155},[15675],{"type":30,"value":1111},{"type":21,"tag":423,"props":15677,"children":15678},{"width":2139},[],{"type":21,"tag":2052,"props":15680,"children":15681},{},[15682],{"type":30,"value":2145},{"type":21,"tag":2147,"props":15684,"children":15685},{"accent":155},[15686,15690],{"type":21,"tag":140,"props":15687,"children":15688},{},[15689],{"type":30,"value":1378},{"type":21,"tag":307,"props":15691,"children":15692},{},[15693],{"type":30,"value":2158},{"type":21,"tag":307,"props":15695,"children":15696},{},[15697],{"type":30,"value":753},{"type":21,"tag":1761,"props":15699,"children":15700},{},[15701,15705],{"type":21,"tag":140,"props":15702,"children":15703},{},[15704],{"type":30,"value":1388},{"type":21,"tag":2052,"props":15706,"children":15707},{},[15708],{"type":30,"value":2174},{"type":21,"tag":2052,"props":15710,"children":15711},{},[15712],{"type":30,"value":2107},{"type":21,"tag":140,"props":15714,"children":15715},{},[15716],{"type":30,"value":1393},{"type":21,"tag":307,"props":15718,"children":15719},{},[15720],{"type":30,"value":2116},{"type":21,"tag":1761,"props":15722,"children":15723},{},[15724,15728],{"type":21,"tag":140,"props":15725,"children":15726},{},[15727],{"type":30,"value":2124},{"type":21,"tag":2052,"props":15729,"children":15730},{},[15731],{"type":30,"value":2174},{"type":21,"tag":146,"props":15733,"children":15734},{"encoding":148},[15735],{"type":30,"value":2202},{"type":21,"tag":116,"props":15737,"children":15739},{"className":15738,"ariaHidden":155},[154],[15740,15775,15884,16041,16136],{"type":21,"tag":116,"props":15741,"children":15743},{"className":15742},[160],[15744,15748,15757,15762,15766,15771],{"type":21,"tag":116,"props":15745,"children":15747},{"className":15746,"style":1437},[165],[],{"type":21,"tag":116,"props":15749,"children":15751},{"className":15750},[171,30],[15752],{"type":21,"tag":116,"props":15753,"children":15755},{"className":15754},[171],[15756],{"type":30,"value":2056},{"type":21,"tag":116,"props":15758,"children":15760},{"className":15759,"style":1448},[171,172],[15761],{"type":30,"value":1393},{"type":21,"tag":116,"props":15763,"children":15765},{"className":15764,"style":784},[423],[],{"type":21,"tag":116,"props":15767,"children":15769},{"className":15768},[789],[15770],{"type":30,"value":753},{"type":21,"tag":116,"props":15772,"children":15774},{"className":15773,"style":784},[423],[],{"type":21,"tag":116,"props":15776,"children":15778},{"className":15777},[160],[15779,15783,15792,15797,15862,15866,15871,15875,15880],{"type":21,"tag":116,"props":15780,"children":15782},{"className":15781,"style":481},[165],[],{"type":21,"tag":116,"props":15784,"children":15786},{"className":15785},[171],[15787],{"type":21,"tag":116,"props":15788,"children":15790},{"className":15789},[171,2257],[15791],{"type":30,"value":2260},{"type":21,"tag":116,"props":15793,"children":15795},{"className":15794},[614],[15796],{"type":30,"value":891},{"type":21,"tag":116,"props":15798,"children":15800},{"className":15799},[171],[15801,15806],{"type":21,"tag":116,"props":15802,"children":15804},{"className":15803,"style":1442},[171,172],[15805],{"type":30,"value":1388},{"type":21,"tag":116,"props":15807,"children":15809},{"className":15808},[365],[15810],{"type":21,"tag":116,"props":15811,"children":15813},{"className":15812},[370,624],[15814,15851],{"type":21,"tag":116,"props":15815,"children":15817},{"className":15816},[375],[15818,15846],{"type":21,"tag":116,"props":15819,"children":15821},{"className":15820,"style":2290},[380],[15822],{"type":21,"tag":116,"props":15823,"children":15824},{"style":2294},[15825,15829],{"type":21,"tag":116,"props":15826,"children":15828},{"className":15827,"style":390},[389],[],{"type":21,"tag":116,"props":15830,"children":15832},{"className":15831},[395,396,397,398],[15833],{"type":21,"tag":116,"props":15834,"children":15836},{"className":15835},[171,398],[15837],{"type":21,"tag":116,"props":15838,"children":15840},{"className":15839},[171,30,398],[15841],{"type":21,"tag":116,"props":15842,"children":15844},{"className":15843},[171,398],[15845],{"type":30,"value":2102},{"type":21,"tag":116,"props":15847,"children":15849},{"className":15848},[705],[15850],{"type":30,"value":708},{"type":21,"tag":116,"props":15852,"children":15854},{"className":15853},[375],[15855],{"type":21,"tag":116,"props":15856,"children":15858},{"className":15857,"style":1864},[380],[15859],{"type":21,"tag":116,"props":15860,"children":15861},{},[],{"type":21,"tag":116,"props":15863,"children":15865},{"className":15864,"style":424},[423],[],{"type":21,"tag":116,"props":15867,"children":15869},{"className":15868},[171,172],[15870],{"type":30,"value":1378},{"type":21,"tag":116,"props":15872,"children":15874},{"className":15873,"style":2345},[423],[],{"type":21,"tag":116,"props":15876,"children":15878},{"className":15877},[412],[15879],{"type":30,"value":2116},{"type":21,"tag":116,"props":15881,"children":15883},{"className":15882,"style":2345},[423],[],{"type":21,"tag":116,"props":15885,"children":15887},{"className":15886},[160],[15888,15892,15957,15962,15967,15971,15975,15984,16028,16032,16037],{"type":21,"tag":116,"props":15889,"children":15891},{"className":15890,"style":481},[165],[],{"type":21,"tag":116,"props":15893,"children":15895},{"className":15894},[171],[15896,15901],{"type":21,"tag":116,"props":15897,"children":15899},{"className":15898},[171,172],[15900],{"type":30,"value":2124},{"type":21,"tag":116,"props":15902,"children":15904},{"className":15903},[365],[15905],{"type":21,"tag":116,"props":15906,"children":15908},{"className":15907},[370,624],[15909,15946],{"type":21,"tag":116,"props":15910,"children":15912},{"className":15911},[375],[15913,15941],{"type":21,"tag":116,"props":15914,"children":15916},{"className":15915,"style":2290},[380],[15917],{"type":21,"tag":116,"props":15918,"children":15919},{"style":1837},[15920,15924],{"type":21,"tag":116,"props":15921,"children":15923},{"className":15922,"style":390},[389],[],{"type":21,"tag":116,"props":15925,"children":15927},{"className":15926},[395,396,397,398],[15928],{"type":21,"tag":116,"props":15929,"children":15931},{"className":15930},[171,398],[15932],{"type":21,"tag":116,"props":15933,"children":15935},{"className":15934},[171,30,398],[15936],{"type":21,"tag":116,"props":15937,"children":15939},{"className":15938},[171,398],[15940],{"type":30,"value":2102},{"type":21,"tag":116,"props":15942,"children":15944},{"className":15943},[705],[15945],{"type":30,"value":708},{"type":21,"tag":116,"props":15947,"children":15949},{"className":15948},[375],[15950],{"type":21,"tag":116,"props":15951,"children":15953},{"className":15952,"style":1864},[380],[15954],{"type":21,"tag":116,"props":15955,"children":15956},{},[],{"type":21,"tag":116,"props":15958,"children":15960},{"className":15959},[724],[15961],{"type":30,"value":915},{"type":21,"tag":116,"props":15963,"children":15965},{"className":15964},[1157],[15966],{"type":30,"value":1111},{"type":21,"tag":116,"props":15968,"children":15970},{"className":15969,"style":2442},[423],[],{"type":21,"tag":116,"props":15972,"children":15974},{"className":15973,"style":424},[423],[],{"type":21,"tag":116,"props":15976,"children":15978},{"className":15977},[171,30],[15979],{"type":21,"tag":116,"props":15980,"children":15982},{"className":15981},[171],[15983],{"type":30,"value":2145},{"type":21,"tag":116,"props":15985,"children":15987},{"className":15986},[171,2460],[15988],{"type":21,"tag":116,"props":15989,"children":15991},{"className":15990},[370],[15992],{"type":21,"tag":116,"props":15993,"children":15995},{"className":15994},[375],[15996],{"type":21,"tag":116,"props":15997,"children":15999},{"className":15998,"style":166},[380],[16000,16012],{"type":21,"tag":116,"props":16001,"children":16002},{"style":2476},[16003,16007],{"type":21,"tag":116,"props":16004,"children":16006},{"className":16005,"style":642},[389],[],{"type":21,"tag":116,"props":16008,"children":16010},{"className":16009},[171,172],[16011],{"type":30,"value":1378},{"type":21,"tag":116,"props":16013,"children":16014},{"style":2476},[16015,16019],{"type":21,"tag":116,"props":16016,"children":16018},{"className":16017,"style":642},[389],[],{"type":21,"tag":116,"props":16020,"children":16022},{"className":16021,"style":2498},[2497],[16023],{"type":21,"tag":116,"props":16024,"children":16026},{"className":16025},[171],[16027],{"type":30,"value":2158},{"type":21,"tag":116,"props":16029,"children":16031},{"className":16030,"style":784},[423],[],{"type":21,"tag":116,"props":16033,"children":16035},{"className":16034},[789],[16036],{"type":30,"value":753},{"type":21,"tag":116,"props":16038,"children":16040},{"className":16039,"style":784},[423],[],{"type":21,"tag":116,"props":16042,"children":16044},{"className":16043},[160],[16045,16049,16114,16118,16123,16127,16132],{"type":21,"tag":116,"props":16046,"children":16048},{"className":16047,"style":1437},[165],[],{"type":21,"tag":116,"props":16050,"children":16052},{"className":16051},[171],[16053,16058],{"type":21,"tag":116,"props":16054,"children":16056},{"className":16055,"style":1442},[171,172],[16057],{"type":30,"value":1388},{"type":21,"tag":116,"props":16059,"children":16061},{"className":16060},[365],[16062],{"type":21,"tag":116,"props":16063,"children":16065},{"className":16064},[370,624],[16066,16103],{"type":21,"tag":116,"props":16067,"children":16069},{"className":16068},[375],[16070,16098],{"type":21,"tag":116,"props":16071,"children":16073},{"className":16072,"style":2550},[380],[16074],{"type":21,"tag":116,"props":16075,"children":16076},{"style":2294},[16077,16081],{"type":21,"tag":116,"props":16078,"children":16080},{"className":16079,"style":390},[389],[],{"type":21,"tag":116,"props":16082,"children":16084},{"className":16083},[395,396,397,398],[16085],{"type":21,"tag":116,"props":16086,"children":16088},{"className":16087},[171,398],[16089],{"type":21,"tag":116,"props":16090,"children":16092},{"className":16091},[171,30,398],[16093],{"type":21,"tag":116,"props":16094,"children":16096},{"className":16095},[171,398],[16097],{"type":30,"value":2174},{"type":21,"tag":116,"props":16099,"children":16101},{"className":16100},[705],[16102],{"type":30,"value":708},{"type":21,"tag":116,"props":16104,"children":16106},{"className":16105},[375],[16107],{"type":21,"tag":116,"props":16108,"children":16110},{"className":16109,"style":1864},[380],[16111],{"type":21,"tag":116,"props":16112,"children":16113},{},[],{"type":21,"tag":116,"props":16115,"children":16117},{"className":16116,"style":424},[423],[],{"type":21,"tag":116,"props":16119,"children":16121},{"className":16120,"style":1448},[171,172],[16122],{"type":30,"value":1393},{"type":21,"tag":116,"props":16124,"children":16126},{"className":16125,"style":2345},[423],[],{"type":21,"tag":116,"props":16128,"children":16130},{"className":16129},[412],[16131],{"type":30,"value":2116},{"type":21,"tag":116,"props":16133,"children":16135},{"className":16134,"style":2345},[423],[],{"type":21,"tag":116,"props":16137,"children":16139},{"className":16138},[160],[16140,16144],{"type":21,"tag":116,"props":16141,"children":16143},{"className":16142,"style":2621},[165],[],{"type":21,"tag":116,"props":16145,"children":16147},{"className":16146},[171],[16148,16153],{"type":21,"tag":116,"props":16149,"children":16151},{"className":16150},[171,172],[16152],{"type":30,"value":2124},{"type":21,"tag":116,"props":16154,"children":16156},{"className":16155},[365],[16157],{"type":21,"tag":116,"props":16158,"children":16160},{"className":16159},[370,624],[16161,16198],{"type":21,"tag":116,"props":16162,"children":16164},{"className":16163},[375],[16165,16193],{"type":21,"tag":116,"props":16166,"children":16168},{"className":16167,"style":2550},[380],[16169],{"type":21,"tag":116,"props":16170,"children":16171},{"style":1837},[16172,16176],{"type":21,"tag":116,"props":16173,"children":16175},{"className":16174,"style":390},[389],[],{"type":21,"tag":116,"props":16177,"children":16179},{"className":16178},[395,396,397,398],[16180],{"type":21,"tag":116,"props":16181,"children":16183},{"className":16182},[171,398],[16184],{"type":21,"tag":116,"props":16185,"children":16187},{"className":16186},[171,30,398],[16188],{"type":21,"tag":116,"props":16189,"children":16191},{"className":16190},[171,398],[16192],{"type":30,"value":2174},{"type":21,"tag":116,"props":16194,"children":16196},{"className":16195},[705],[16197],{"type":30,"value":708},{"type":21,"tag":116,"props":16199,"children":16201},{"className":16200},[375],[16202],{"type":21,"tag":116,"props":16203,"children":16205},{"className":16204,"style":1864},[380],[16206],{"type":21,"tag":116,"props":16207,"children":16208},{},[],{"type":21,"tag":26,"props":16210,"children":16211},{},[16212,16213,16217],{"type":30,"value":2692},{"type":21,"tag":33,"props":16214,"children":16215},{},[16216],{"type":30,"value":2697},{"type":30,"value":2699},{"type":21,"tag":26,"props":16219,"children":16220},{},[16221],{"type":21,"tag":116,"props":16222,"children":16224},{"className":16223},[119],[16225,16349],{"type":21,"tag":116,"props":16226,"children":16228},{"className":16227},[124],[16229],{"type":21,"tag":127,"props":16230,"children":16231},{"xmlns":129},[16232],{"type":21,"tag":132,"props":16233,"children":16234},{},[16235,16345],{"type":21,"tag":136,"props":16236,"children":16237},{},[16238,16242,16246,16301,16305,16309],{"type":21,"tag":140,"props":16239,"children":16240},{"mathvariant":2722},[16241],{"type":30,"value":2081},{"type":21,"tag":307,"props":16243,"children":16244},{},[16245],{"type":30,"value":753},{"type":21,"tag":2730,"props":16247,"children":16248},{},[16249,16297],{"type":21,"tag":2730,"props":16250,"children":16251},{},[16252,16293],{"type":21,"tag":136,"props":16253,"children":16254},{},[16255,16259,16263,16267,16278],{"type":21,"tag":140,"props":16256,"children":16257},{"mathvariant":457},[16258],{"type":30,"value":1755},{"type":21,"tag":140,"props":16260,"children":16261},{},[16262],{"type":30,"value":1378},{"type":21,"tag":307,"props":16264,"children":16265},{},[16266],{"type":30,"value":323},{"type":21,"tag":2147,"props":16268,"children":16269},{"accent":155},[16270,16274],{"type":21,"tag":140,"props":16271,"children":16272},{},[16273],{"type":30,"value":1378},{"type":21,"tag":307,"props":16275,"children":16276},{},[16277],{"type":30,"value":2158},{"type":21,"tag":2763,"props":16279,"children":16280},{},[16281,16285,16289],{"type":21,"tag":140,"props":16282,"children":16283},{"mathvariant":457},[16284],{"type":30,"value":1755},{"type":21,"tag":325,"props":16286,"children":16287},{},[16288],{"type":30,"value":329},{"type":21,"tag":325,"props":16290,"children":16291},{},[16292],{"type":30,"value":329},{"type":21,"tag":307,"props":16294,"children":16295},{"stretchy":155},[16296],{"type":30,"value":2782},{"type":21,"tag":2052,"props":16298,"children":16299},{},[16300],{"type":30,"value":2787},{"type":21,"tag":307,"props":16302,"children":16303},{},[16304],{"type":30,"value":2116},{"type":21,"tag":140,"props":16306,"children":16307},{},[16308],{"type":30,"value":2796},{"type":21,"tag":2730,"props":16310,"children":16311},{},[16312,16341],{"type":21,"tag":2730,"props":16313,"children":16314},{},[16315,16337],{"type":21,"tag":136,"props":16316,"children":16317},{},[16318,16322,16326],{"type":21,"tag":140,"props":16319,"children":16320},{"mathvariant":457},[16321],{"type":30,"value":1755},{"type":21,"tag":140,"props":16323,"children":16324},{},[16325],{"type":30,"value":1393},{"type":21,"tag":1761,"props":16327,"children":16328},{},[16329,16333],{"type":21,"tag":140,"props":16330,"children":16331},{"mathvariant":457},[16332],{"type":30,"value":1755},{"type":21,"tag":325,"props":16334,"children":16335},{},[16336],{"type":30,"value":573},{"type":21,"tag":307,"props":16338,"children":16339},{"stretchy":155},[16340],{"type":30,"value":2782},{"type":21,"tag":2052,"props":16342,"children":16343},{},[16344],{"type":30,"value":1301},{"type":21,"tag":146,"props":16346,"children":16347},{"encoding":148},[16348],{"type":30,"value":2837},{"type":21,"tag":116,"props":16350,"children":16352},{"className":16351,"ariaHidden":155},[154],[16353,16379,16688],{"type":21,"tag":116,"props":16354,"children":16356},{"className":16355},[160],[16357,16361,16366,16370,16375],{"type":21,"tag":116,"props":16358,"children":16360},{"className":16359,"style":854},[165],[],{"type":21,"tag":116,"props":16362,"children":16364},{"className":16363},[171,2853],[16365],{"type":30,"value":2081},{"type":21,"tag":116,"props":16367,"children":16369},{"className":16368,"style":784},[423],[],{"type":21,"tag":116,"props":16371,"children":16373},{"className":16372},[789],[16374],{"type":30,"value":753},{"type":21,"tag":116,"props":16376,"children":16378},{"className":16377,"style":784},[423],[],{"type":21,"tag":116,"props":16380,"children":16382},{"className":16381},[160],[16383,16387,16675,16679,16684],{"type":21,"tag":116,"props":16384,"children":16386},{"className":16385,"style":2876},[165],[],{"type":21,"tag":116,"props":16388,"children":16390},{"className":16389},[2881,2730],[16391],{"type":21,"tag":116,"props":16392,"children":16394},{"className":16393},[370,624],[16395,16664],{"type":21,"tag":116,"props":16396,"children":16398},{"className":16397},[375],[16399,16659],{"type":21,"tag":116,"props":16400,"children":16402},{"className":16401,"style":2894},[380],[16403,16427],{"type":21,"tag":116,"props":16404,"children":16405},{"style":2898},[16406,16410],{"type":21,"tag":116,"props":16407,"children":16409},{"className":16408,"style":642},[389],[],{"type":21,"tag":116,"props":16411,"children":16413},{"className":16412},[395,396,397,398],[16414],{"type":21,"tag":116,"props":16415,"children":16417},{"className":16416},[171,398],[16418],{"type":21,"tag":116,"props":16419,"children":16421},{"className":16420},[171,30,398],[16422],{"type":21,"tag":116,"props":16423,"children":16425},{"className":16424},[171,2919,398],[16426],{"type":30,"value":2787},{"type":21,"tag":116,"props":16428,"children":16429},{"style":2476},[16430,16434],{"type":21,"tag":116,"props":16431,"children":16433},{"className":16432,"style":642},[389],[],{"type":21,"tag":116,"props":16435,"children":16437},{"className":16436},[2881,2730],[16438],{"type":21,"tag":116,"props":16439,"children":16441},{"className":16440},[370,624],[16442,16648],{"type":21,"tag":116,"props":16443,"children":16445},{"className":16444},[375],[16446,16643],{"type":21,"tag":116,"props":16447,"children":16449},{"className":16448,"style":2894},[380],[16450,16492],{"type":21,"tag":116,"props":16451,"children":16453},{"className":16452,"style":2949},[2948],[16454,16458],{"type":21,"tag":116,"props":16455,"children":16457},{"className":16456,"style":642},[389],[],{"type":21,"tag":116,"props":16459,"children":16461},{"className":16460,"style":2959},[2958],[16462,16472,16482],{"type":21,"tag":116,"props":16463,"children":16465},{"className":16464,"style":2965},[2964],[16466],{"type":21,"tag":2968,"props":16467,"children":16468},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2974},[16469],{"type":21,"tag":2977,"props":16470,"children":16471},{"d":2979},[],{"type":21,"tag":116,"props":16473,"children":16475},{"className":16474,"style":2965},[2984],[16476],{"type":21,"tag":2968,"props":16477,"children":16478},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2988},[16479],{"type":21,"tag":2977,"props":16480,"children":16481},{"d":2992},[],{"type":21,"tag":116,"props":16483,"children":16485},{"className":16484,"style":2965},[2997],[16486],{"type":21,"tag":2968,"props":16487,"children":16488},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":3001},[16489],{"type":21,"tag":2977,"props":16490,"children":16491},{"d":3005},[],{"type":21,"tag":116,"props":16493,"children":16494},{"style":2476},[16495,16499],{"type":21,"tag":116,"props":16496,"children":16498},{"className":16497,"style":642},[389],[],{"type":21,"tag":116,"props":16500,"children":16502},{"className":16501},[171],[16503,16508,16513,16517,16522,16526,16570],{"type":21,"tag":116,"props":16504,"children":16506},{"className":16505},[171],[16507],{"type":30,"value":1755},{"type":21,"tag":116,"props":16509,"children":16511},{"className":16510},[171,172],[16512],{"type":30,"value":1378},{"type":21,"tag":116,"props":16514,"children":16516},{"className":16515,"style":2345},[423],[],{"type":21,"tag":116,"props":16518,"children":16520},{"className":16519},[412],[16521],{"type":30,"value":323},{"type":21,"tag":116,"props":16523,"children":16525},{"className":16524,"style":2345},[423],[],{"type":21,"tag":116,"props":16527,"children":16529},{"className":16528},[171,2460],[16530],{"type":21,"tag":116,"props":16531,"children":16533},{"className":16532},[370],[16534],{"type":21,"tag":116,"props":16535,"children":16537},{"className":16536},[375],[16538],{"type":21,"tag":116,"props":16539,"children":16541},{"className":16540,"style":166},[380],[16542,16554],{"type":21,"tag":116,"props":16543,"children":16544},{"style":2476},[16545,16549],{"type":21,"tag":116,"props":16546,"children":16548},{"className":16547,"style":642},[389],[],{"type":21,"tag":116,"props":16550,"children":16552},{"className":16551},[171,172],[16553],{"type":30,"value":1378},{"type":21,"tag":116,"props":16555,"children":16556},{"style":2476},[16557,16561],{"type":21,"tag":116,"props":16558,"children":16560},{"className":16559,"style":642},[389],[],{"type":21,"tag":116,"props":16562,"children":16564},{"className":16563,"style":2498},[2497],[16565],{"type":21,"tag":116,"props":16566,"children":16568},{"className":16567},[171],[16569],{"type":30,"value":2158},{"type":21,"tag":116,"props":16571,"children":16573},{"className":16572},[171],[16574,16579],{"type":21,"tag":116,"props":16575,"children":16577},{"className":16576},[171],[16578],{"type":30,"value":1755},{"type":21,"tag":116,"props":16580,"children":16582},{"className":16581},[365],[16583],{"type":21,"tag":116,"props":16584,"children":16586},{"className":16585},[370,624],[16587,16632],{"type":21,"tag":116,"props":16588,"children":16590},{"className":16589},[375],[16591,16627],{"type":21,"tag":116,"props":16592,"children":16594},{"className":16593,"style":2894},[380],[16595,16611],{"type":21,"tag":116,"props":16596,"children":16597},{"style":3112},[16598,16602],{"type":21,"tag":116,"props":16599,"children":16601},{"className":16600,"style":390},[389],[],{"type":21,"tag":116,"props":16603,"children":16605},{"className":16604},[395,396,397,398],[16606],{"type":21,"tag":116,"props":16607,"children":16609},{"className":16608},[171,398],[16610],{"type":30,"value":329},{"type":21,"tag":116,"props":16612,"children":16613},{"style":3129},[16614,16618],{"type":21,"tag":116,"props":16615,"children":16617},{"className":16616,"style":390},[389],[],{"type":21,"tag":116,"props":16619,"children":16621},{"className":16620},[395,396,397,398],[16622],{"type":21,"tag":116,"props":16623,"children":16625},{"className":16624},[171,398],[16626],{"type":30,"value":329},{"type":21,"tag":116,"props":16628,"children":16630},{"className":16629},[705],[16631],{"type":30,"value":708},{"type":21,"tag":116,"props":16633,"children":16635},{"className":16634},[375],[16636],{"type":21,"tag":116,"props":16637,"children":16639},{"className":16638,"style":3156},[380],[16640],{"type":21,"tag":116,"props":16641,"children":16642},{},[],{"type":21,"tag":116,"props":16644,"children":16646},{"className":16645},[705],[16647],{"type":30,"value":708},{"type":21,"tag":116,"props":16649,"children":16651},{"className":16650},[375],[16652],{"type":21,"tag":116,"props":16653,"children":16655},{"className":16654,"style":3173},[380],[16656],{"type":21,"tag":116,"props":16657,"children":16658},{},[],{"type":21,"tag":116,"props":16660,"children":16662},{"className":16661},[705],[16663],{"type":30,"value":708},{"type":21,"tag":116,"props":16665,"children":16667},{"className":16666},[375],[16668],{"type":21,"tag":116,"props":16669,"children":16671},{"className":16670,"style":3190},[380],[16672],{"type":21,"tag":116,"props":16673,"children":16674},{},[],{"type":21,"tag":116,"props":16676,"children":16678},{"className":16677,"style":2345},[423],[],{"type":21,"tag":116,"props":16680,"children":16682},{"className":16681},[412],[16683],{"type":30,"value":2116},{"type":21,"tag":116,"props":16685,"children":16687},{"className":16686,"style":2345},[423],[],{"type":21,"tag":116,"props":16689,"children":16691},{"className":16690},[160],[16692,16696,16701,16705],{"type":21,"tag":116,"props":16693,"children":16695},{"className":16694,"style":3215},[165],[],{"type":21,"tag":116,"props":16697,"children":16699},{"className":16698},[171,172],[16700],{"type":30,"value":2796},{"type":21,"tag":116,"props":16702,"children":16704},{"className":16703,"style":424},[423],[],{"type":21,"tag":116,"props":16706,"children":16708},{"className":16707},[2881,2730],[16709],{"type":21,"tag":116,"props":16710,"children":16712},{"className":16711},[370,624],[16713,16909],{"type":21,"tag":116,"props":16714,"children":16716},{"className":16715},[375],[16717,16904],{"type":21,"tag":116,"props":16718,"children":16720},{"className":16719,"style":3241},[380],[16721,16745],{"type":21,"tag":116,"props":16722,"children":16723},{"style":2898},[16724,16728],{"type":21,"tag":116,"props":16725,"children":16727},{"className":16726,"style":642},[389],[],{"type":21,"tag":116,"props":16729,"children":16731},{"className":16730},[395,396,397,398],[16732],{"type":21,"tag":116,"props":16733,"children":16735},{"className":16734},[171,398],[16736],{"type":21,"tag":116,"props":16737,"children":16739},{"className":16738},[171,30,398],[16740],{"type":21,"tag":116,"props":16741,"children":16743},{"className":16742},[171,2919,398],[16744],{"type":30,"value":1301},{"type":21,"tag":116,"props":16746,"children":16747},{"style":2476},[16748,16752],{"type":21,"tag":116,"props":16749,"children":16751},{"className":16750,"style":642},[389],[],{"type":21,"tag":116,"props":16753,"children":16755},{"className":16754},[2881,2730],[16756],{"type":21,"tag":116,"props":16757,"children":16759},{"className":16758},[370,624],[16760,16893],{"type":21,"tag":116,"props":16761,"children":16763},{"className":16762},[375],[16764,16888],{"type":21,"tag":116,"props":16765,"children":16767},{"className":16766,"style":3241},[380],[16768,16810],{"type":21,"tag":116,"props":16769,"children":16771},{"className":16770,"style":2949},[2948],[16772,16776],{"type":21,"tag":116,"props":16773,"children":16775},{"className":16774,"style":642},[389],[],{"type":21,"tag":116,"props":16777,"children":16779},{"className":16778,"style":2959},[2958],[16780,16790,16800],{"type":21,"tag":116,"props":16781,"children":16783},{"className":16782,"style":2965},[2964],[16784],{"type":21,"tag":2968,"props":16785,"children":16786},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2974},[16787],{"type":21,"tag":2977,"props":16788,"children":16789},{"d":2979},[],{"type":21,"tag":116,"props":16791,"children":16793},{"className":16792,"style":2965},[2984],[16794],{"type":21,"tag":2968,"props":16795,"children":16796},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":2988},[16797],{"type":21,"tag":2977,"props":16798,"children":16799},{"d":2992},[],{"type":21,"tag":116,"props":16801,"children":16803},{"className":16802,"style":2965},[2997],[16804],{"type":21,"tag":2968,"props":16805,"children":16806},{"xmlns":2970,"width":2971,"height":2972,"viewBox":2973,"preserveAspectRatio":3001},[16807],{"type":21,"tag":2977,"props":16808,"children":16809},{"d":3005},[],{"type":21,"tag":116,"props":16811,"children":16812},{"style":2476},[16813,16817],{"type":21,"tag":116,"props":16814,"children":16816},{"className":16815,"style":642},[389],[],{"type":21,"tag":116,"props":16818,"children":16820},{"className":16819},[171],[16821,16826,16831],{"type":21,"tag":116,"props":16822,"children":16824},{"className":16823},[171],[16825],{"type":30,"value":1755},{"type":21,"tag":116,"props":16827,"children":16829},{"className":16828,"style":1448},[171,172],[16830],{"type":30,"value":1393},{"type":21,"tag":116,"props":16832,"children":16834},{"className":16833},[171],[16835,16840],{"type":21,"tag":116,"props":16836,"children":16838},{"className":16837},[171],[16839],{"type":30,"value":1755},{"type":21,"tag":116,"props":16841,"children":16843},{"className":16842},[365],[16844],{"type":21,"tag":116,"props":16845,"children":16847},{"className":16846},[370,624],[16848,16877],{"type":21,"tag":116,"props":16849,"children":16851},{"className":16850},[375],[16852,16872],{"type":21,"tag":116,"props":16853,"children":16855},{"className":16854,"style":1833},[380],[16856],{"type":21,"tag":116,"props":16857,"children":16858},{"style":1837},[16859,16863],{"type":21,"tag":116,"props":16860,"children":16862},{"className":16861,"style":390},[389],[],{"type":21,"tag":116,"props":16864,"children":16866},{"className":16865},[395,396,397,398],[16867],{"type":21,"tag":116,"props":16868,"children":16870},{"className":16869},[171,398],[16871],{"type":30,"value":573},{"type":21,"tag":116,"props":16873,"children":16875},{"className":16874},[705],[16876],{"type":30,"value":708},{"type":21,"tag":116,"props":16878,"children":16880},{"className":16879},[375],[16881],{"type":21,"tag":116,"props":16882,"children":16884},{"className":16883,"style":1864},[380],[16885],{"type":21,"tag":116,"props":16886,"children":16887},{},[],{"type":21,"tag":116,"props":16889,"children":16891},{"className":16890},[705],[16892],{"type":30,"value":708},{"type":21,"tag":116,"props":16894,"children":16896},{"className":16895},[375],[16897],{"type":21,"tag":116,"props":16898,"children":16900},{"className":16899,"style":3173},[380],[16901],{"type":21,"tag":116,"props":16902,"children":16903},{},[],{"type":21,"tag":116,"props":16905,"children":16907},{"className":16906},[705],[16908],{"type":30,"value":708},{"type":21,"tag":116,"props":16910,"children":16912},{"className":16911},[375],[16913],{"type":21,"tag":116,"props":16914,"children":16916},{"className":16915,"style":3190},[380],[16917],{"type":21,"tag":116,"props":16918,"children":16919},{},[],{"type":21,"tag":26,"props":16921,"children":16922},{},[16923],{"type":30,"value":3446},{"type":21,"tag":3448,"props":16925,"children":16926},{},[16927,17055,17261],{"type":21,"tag":1321,"props":16928,"children":16929},{},[16930,16934,16935,17011,17012,17054],{"type":21,"tag":33,"props":16931,"children":16932},{},[16933],{"type":30,"value":3458},{"type":30,"value":3460},{"type":21,"tag":116,"props":16936,"children":16938},{"className":16937},[119],[16939,16968],{"type":21,"tag":116,"props":16940,"children":16942},{"className":16941},[124],[16943],{"type":21,"tag":127,"props":16944,"children":16945},{"xmlns":129},[16946],{"type":21,"tag":132,"props":16947,"children":16948},{},[16949,16964],{"type":21,"tag":136,"props":16950,"children":16951},{},[16952,16956,16960],{"type":21,"tag":140,"props":16953,"children":16954},{},[16955],{"type":30,"value":144},{"type":21,"tag":307,"props":16957,"children":16958},{},[16959],{"type":30,"value":1383},{"type":21,"tag":325,"props":16961,"children":16962},{},[16963],{"type":30,"value":3490},{"type":21,"tag":146,"props":16965,"children":16966},{"encoding":148},[16967],{"type":30,"value":3495},{"type":21,"tag":116,"props":16969,"children":16971},{"className":16970,"ariaHidden":155},[154],[16972,16998],{"type":21,"tag":116,"props":16973,"children":16975},{"className":16974},[160],[16976,16980,16985,16989,16994],{"type":21,"tag":116,"props":16977,"children":16979},{"className":16978,"style":166},[165],[],{"type":21,"tag":116,"props":16981,"children":16983},{"className":16982},[171,172],[16984],{"type":30,"value":144},{"type":21,"tag":116,"props":16986,"children":16988},{"className":16987,"style":784},[423],[],{"type":21,"tag":116,"props":16990,"children":16992},{"className":16991},[789],[16993],{"type":30,"value":1383},{"type":21,"tag":116,"props":16995,"children":16997},{"className":16996,"style":784},[423],[],{"type":21,"tag":116,"props":16999,"children":17001},{"className":17000},[160],[17002,17006],{"type":21,"tag":116,"props":17003,"children":17005},{"className":17004,"style":803},[165],[],{"type":21,"tag":116,"props":17007,"children":17009},{"className":17008},[171],[17010],{"type":30,"value":3490},{"type":30,"value":3540},{"type":21,"tag":116,"props":17013,"children":17015},{"className":17014},[119],[17016,17037],{"type":21,"tag":116,"props":17017,"children":17019},{"className":17018},[124],[17020],{"type":21,"tag":127,"props":17021,"children":17022},{"xmlns":129},[17023],{"type":21,"tag":132,"props":17024,"children":17025},{},[17026,17033],{"type":21,"tag":136,"props":17027,"children":17028},{},[17029],{"type":21,"tag":140,"props":17030,"children":17031},{},[17032],{"type":30,"value":144},{"type":21,"tag":146,"props":17034,"children":17035},{"encoding":148},[17036],{"type":30,"value":144},{"type":21,"tag":116,"props":17038,"children":17040},{"className":17039,"ariaHidden":155},[154],[17041],{"type":21,"tag":116,"props":17042,"children":17044},{"className":17043},[160],[17045,17049],{"type":21,"tag":116,"props":17046,"children":17048},{"className":17047,"style":166},[165],[],{"type":21,"tag":116,"props":17050,"children":17052},{"className":17051},[171,172],[17053],{"type":30,"value":144},{"type":30,"value":3584},{"type":21,"tag":1321,"props":17056,"children":17057},{},[17058,17062,17063,17105,17106,17110,17111,17153,17154,17260],{"type":21,"tag":33,"props":17059,"children":17060},{},[17061],{"type":30,"value":3592},{"type":30,"value":3594},{"type":21,"tag":116,"props":17064,"children":17066},{"className":17065},[119],[17067,17088],{"type":21,"tag":116,"props":17068,"children":17070},{"className":17069},[124],[17071],{"type":21,"tag":127,"props":17072,"children":17073},{"xmlns":129},[17074],{"type":21,"tag":132,"props":17075,"children":17076},{},[17077,17084],{"type":21,"tag":136,"props":17078,"children":17079},{},[17080],{"type":21,"tag":140,"props":17081,"children":17082},{},[17083],{"type":30,"value":1378},{"type":21,"tag":146,"props":17085,"children":17086},{"encoding":148},[17087],{"type":30,"value":1378},{"type":21,"tag":116,"props":17089,"children":17091},{"className":17090,"ariaHidden":155},[154],[17092],{"type":21,"tag":116,"props":17093,"children":17095},{"className":17094},[160],[17096,17100],{"type":21,"tag":116,"props":17097,"children":17099},{"className":17098,"style":1889},[165],[],{"type":21,"tag":116,"props":17101,"children":17103},{"className":17102},[171,172],[17104],{"type":30,"value":1378},{"type":30,"value":3638},{"type":21,"tag":33,"props":17107,"children":17108},{},[17109],{"type":30,"value":3643},{"type":30,"value":3645},{"type":21,"tag":116,"props":17112,"children":17114},{"className":17113},[119],[17115,17136],{"type":21,"tag":116,"props":17116,"children":17118},{"className":17117},[124],[17119],{"type":21,"tag":127,"props":17120,"children":17121},{"xmlns":129},[17122],{"type":21,"tag":132,"props":17123,"children":17124},{},[17125,17132],{"type":21,"tag":136,"props":17126,"children":17127},{},[17128],{"type":21,"tag":140,"props":17129,"children":17130},{},[17131],{"type":30,"value":2796},{"type":21,"tag":146,"props":17133,"children":17134},{"encoding":148},[17135],{"type":30,"value":3671},{"type":21,"tag":116,"props":17137,"children":17139},{"className":17138,"ariaHidden":155},[154],[17140],{"type":21,"tag":116,"props":17141,"children":17143},{"className":17142},[160],[17144,17148],{"type":21,"tag":116,"props":17145,"children":17147},{"className":17146,"style":166},[165],[],{"type":21,"tag":116,"props":17149,"children":17151},{"className":17150},[171,172],[17152],{"type":30,"value":2796},{"type":30,"value":3690},{"type":21,"tag":116,"props":17155,"children":17157},{"className":17156},[119],[17158,17193],{"type":21,"tag":116,"props":17159,"children":17161},{"className":17160},[124],[17162],{"type":21,"tag":127,"props":17163,"children":17164},{"xmlns":129},[17165],{"type":21,"tag":132,"props":17166,"children":17167},{},[17168,17189],{"type":21,"tag":136,"props":17169,"children":17170},{},[17171],{"type":21,"tag":295,"props":17172,"children":17173},{},[17174,17178],{"type":21,"tag":325,"props":17175,"children":17176},{},[17177],{"type":30,"value":3715},{"type":21,"tag":136,"props":17179,"children":17180},{},[17181,17185],{"type":21,"tag":307,"props":17182,"children":17183},{},[17184],{"type":30,"value":323},{"type":21,"tag":325,"props":17186,"children":17187},{},[17188],{"type":30,"value":3727},{"type":21,"tag":146,"props":17190,"children":17191},{"encoding":148},[17192],{"type":30,"value":3732},{"type":21,"tag":116,"props":17194,"children":17196},{"className":17195,"ariaHidden":155},[154],[17197],{"type":21,"tag":116,"props":17198,"children":17200},{"className":17199},[160],[17201,17205,17210],{"type":21,"tag":116,"props":17202,"children":17204},{"className":17203,"style":3744},[165],[],{"type":21,"tag":116,"props":17206,"children":17208},{"className":17207},[171],[17209],{"type":30,"value":573},{"type":21,"tag":116,"props":17211,"children":17213},{"className":17212},[171],[17214,17219],{"type":21,"tag":116,"props":17215,"children":17217},{"className":17216},[171],[17218],{"type":30,"value":1772},{"type":21,"tag":116,"props":17220,"children":17222},{"className":17221},[365],[17223],{"type":21,"tag":116,"props":17224,"children":17226},{"className":17225},[370],[17227],{"type":21,"tag":116,"props":17228,"children":17230},{"className":17229},[375],[17231],{"type":21,"tag":116,"props":17232,"children":17234},{"className":17233,"style":3744},[380],[17235],{"type":21,"tag":116,"props":17236,"children":17237},{"style":1578},[17238,17242],{"type":21,"tag":116,"props":17239,"children":17241},{"className":17240,"style":390},[389],[],{"type":21,"tag":116,"props":17243,"children":17245},{"className":17244},[395,396,397,398],[17246],{"type":21,"tag":116,"props":17247,"children":17249},{"className":17248},[171,398],[17250,17255],{"type":21,"tag":116,"props":17251,"children":17253},{"className":17252},[171,398],[17254],{"type":30,"value":323},{"type":21,"tag":116,"props":17256,"children":17258},{"className":17257},[171,398],[17259],{"type":30,"value":3727},{"type":30,"value":3802},{"type":21,"tag":1321,"props":17262,"children":17263},{},[17264,17311,17312,17316],{"type":21,"tag":33,"props":17265,"children":17266},{},[17267,17268,17310],{"type":30,"value":3810},{"type":21,"tag":116,"props":17269,"children":17271},{"className":17270},[119],[17272,17293],{"type":21,"tag":116,"props":17273,"children":17275},{"className":17274},[124],[17276],{"type":21,"tag":127,"props":17277,"children":17278},{"xmlns":129},[17279],{"type":21,"tag":132,"props":17280,"children":17281},{},[17282,17289],{"type":21,"tag":136,"props":17283,"children":17284},{},[17285],{"type":21,"tag":140,"props":17286,"children":17287},{},[17288],{"type":30,"value":144},{"type":21,"tag":146,"props":17290,"children":17291},{"encoding":148},[17292],{"type":30,"value":144},{"type":21,"tag":116,"props":17294,"children":17296},{"className":17295,"ariaHidden":155},[154],[17297],{"type":21,"tag":116,"props":17298,"children":17300},{"className":17299},[160],[17301,17305],{"type":21,"tag":116,"props":17302,"children":17304},{"className":17303,"style":166},[165],[],{"type":21,"tag":116,"props":17306,"children":17308},{"className":17307},[171,172],[17309],{"type":30,"value":144},{"type":30,"value":3854},{"type":30,"value":3856},{"type":21,"tag":33,"props":17313,"children":17314},{},[17315],{"type":30,"value":3861},{"type":30,"value":3863},{"type":21,"tag":58,"props":17318,"children":17319},{"id":3866},[17320],{"type":30,"value":3869},{"type":21,"tag":26,"props":17322,"children":17323},{},[17324,17325,17329],{"type":30,"value":3874},{"type":21,"tag":33,"props":17326,"children":17327},{},[17328],{"type":30,"value":3879},{"type":30,"value":3881},{"type":21,"tag":3883,"props":17331,"children":17332},{},[17333,17351],{"type":21,"tag":3887,"props":17334,"children":17335},{},[17336],{"type":21,"tag":3891,"props":17337,"children":17338},{},[17339,17343,17347],{"type":21,"tag":3895,"props":17340,"children":17341},{},[17342],{"type":30,"value":3899},{"type":21,"tag":3895,"props":17344,"children":17345},{},[17346],{"type":30,"value":3904},{"type":21,"tag":3895,"props":17348,"children":17349},{},[17350],{"type":30,"value":3909},{"type":21,"tag":3911,"props":17352,"children":17353},{},[17354,17378,17396,17414],{"type":21,"tag":3891,"props":17355,"children":17356},{},[17357,17364,17374],{"type":21,"tag":3918,"props":17358,"children":17359},{},[17360],{"type":21,"tag":33,"props":17361,"children":17362},{},[17363],{"type":30,"value":3925},{"type":21,"tag":3918,"props":17365,"children":17366},{},[17367,17368,17373],{"type":30,"value":3930},{"type":21,"tag":1185,"props":17369,"children":17371},{"className":17370},[],[17372],{"type":30,"value":3936},{"type":30,"value":3938},{"type":21,"tag":3918,"props":17375,"children":17376},{},[17377],{"type":30,"value":3943},{"type":21,"tag":3891,"props":17379,"children":17380},{},[17381,17388,17392],{"type":21,"tag":3918,"props":17382,"children":17383},{},[17384],{"type":21,"tag":33,"props":17385,"children":17386},{},[17387],{"type":30,"value":3954},{"type":21,"tag":3918,"props":17389,"children":17390},{},[17391],{"type":30,"value":3959},{"type":21,"tag":3918,"props":17393,"children":17394},{},[17395],{"type":30,"value":3964},{"type":21,"tag":3891,"props":17397,"children":17398},{},[17399,17406,17410],{"type":21,"tag":3918,"props":17400,"children":17401},{},[17402],{"type":21,"tag":33,"props":17403,"children":17404},{},[17405],{"type":30,"value":3975},{"type":21,"tag":3918,"props":17407,"children":17408},{},[17409],{"type":30,"value":3980},{"type":21,"tag":3918,"props":17411,"children":17412},{},[17413],{"type":30,"value":3985},{"type":21,"tag":3891,"props":17415,"children":17416},{},[17417,17424,17428],{"type":21,"tag":3918,"props":17418,"children":17419},{},[17420],{"type":21,"tag":33,"props":17421,"children":17422},{},[17423],{"type":30,"value":3996},{"type":21,"tag":3918,"props":17425,"children":17426},{},[17427],{"type":30,"value":4001},{"type":21,"tag":3918,"props":17429,"children":17430},{},[17431],{"type":30,"value":4006},{"type":21,"tag":26,"props":17433,"children":17434},{},[17435,17436,17440],{"type":30,"value":4011},{"type":21,"tag":33,"props":17437,"children":17438},{},[17439],{"type":30,"value":4016},{"type":30,"value":4018},{"type":21,"tag":26,"props":17442,"children":17443},{},[17444,17445,17449,17450,17454],{"type":30,"value":4023},{"type":21,"tag":33,"props":17446,"children":17447},{},[17448],{"type":30,"value":4028},{"type":30,"value":4030},{"type":21,"tag":33,"props":17451,"children":17452},{},[17453],{"type":30,"value":4035},{"type":30,"value":4037},{"type":21,"tag":58,"props":17456,"children":17457},{"id":4040},[17458],{"type":30,"value":4043},{"type":21,"tag":26,"props":17460,"children":17461},{},[17462],{"type":30,"value":4048},{"type":21,"tag":26,"props":17464,"children":17465},{},[17466,17467,17471],{"type":30,"value":4053},{"type":21,"tag":33,"props":17468,"children":17469},{},[17470],{"type":30,"value":4058},{"type":30,"value":4060},{"type":21,"tag":26,"props":17473,"children":17474},{},[17475],{"type":30,"value":4065},{"type":21,"tag":3448,"props":17477,"children":17478},{},[17479,17491],{"type":21,"tag":1321,"props":17480,"children":17481},{},[17482,17486,17487],{"type":21,"tag":33,"props":17483,"children":17484},{},[17485],{"type":30,"value":4076},{"type":30,"value":4078},{"type":21,"tag":33,"props":17488,"children":17489},{},[17490],{"type":30,"value":4083},{"type":21,"tag":1321,"props":17492,"children":17493},{},[17494,17498,17499,17503,17504],{"type":21,"tag":33,"props":17495,"children":17496},{},[17497],{"type":30,"value":4091},{"type":30,"value":4093},{"type":21,"tag":33,"props":17500,"children":17501},{},[17502],{"type":30,"value":4098},{"type":30,"value":4100},{"type":21,"tag":4102,"props":17505,"children":17506},{},[17507],{"type":30,"value":4106},{"type":21,"tag":26,"props":17509,"children":17510},{},[17511,17512,17516],{"type":30,"value":4111},{"type":21,"tag":33,"props":17513,"children":17514},{},[17515],{"type":30,"value":4116},{"type":30,"value":4118},{"type":21,"tag":58,"props":17518,"children":17519},{"id":4121},[17520],{"type":30,"value":4124},{"type":21,"tag":26,"props":17522,"children":17523},{},[17524],{"type":30,"value":4129},{"type":21,"tag":26,"props":17526,"children":17527},{},[17528,17529,17533],{"type":30,"value":4134},{"type":21,"tag":33,"props":17530,"children":17531},{},[17532],{"type":30,"value":4139},{"type":30,"value":4141},{"type":21,"tag":4143,"props":17535,"children":17536},{},[],{"type":21,"tag":22,"props":17538,"children":17539},{},[17540],{"type":21,"tag":26,"props":17541,"children":17542},{},[17543],{"type":21,"tag":33,"props":17544,"children":17545},{},[17546],{"type":30,"value":4156},{"type":21,"tag":4158,"props":17548,"children":17549},{},[17550],{"type":30,"value":4162},{"title":8,"searchDepth":1200,"depth":1210,"links":17552},[17553,17554,17555,17556,17557],{"id":60,"depth":1200,"text":63},{"id":1348,"depth":1200,"text":1351},{"id":3866,"depth":1200,"text":3869},{"id":4040,"depth":1200,"text":4043},{"id":4121,"depth":1200,"text":4124},1784107874047]