[{"data":1,"prerenderedAt":2102},["ShallowReactive",2],{"blog-taxonomies":3,"blog-stats":507,"post-rfc_agentic_project\u002F2026-06-19-rfc-liskin_code_agent":1083},[4,11,16,21,25,29,36,39,44,47,52,58,63,66,71,76,80,84,87,93,96,101,105,110,113,117,122,127,132,136,141,143,146,151,155,157,162,165,169,173,176,179,183,186,190,193,197,200,205,208,211,214,219,222,228,234,237,239,245,249,253,256,260,266,271,276,281,283,287,290,293,298,301,304,306,308,311,314,316,318,321,327,332,337,342,347,352,354,356,358,361,365,367,369,371,374,376,378,381,386,390,393,396,400,404,407,411,413,415,417,421,423,425,428,431,433,435,437,439,441,443,446,448,450,454,456,459,461,463,465,467,469,471,473,477,483,486,488,491,493,495,497,499,501,503,505],{"category":5,"tags":6},"笔记",[7,8,9,10],"QQ","插件","LiteLoader","美化",{"category":12,"tags":13},"其他",[14,15,10],"博客","IP签名",{"category":17,"tags":18},"杂谈",[19,20],"互联网","观点",{"category":5,"tags":22},[14,23,24],"GitHub","数据可视化",{"category":5,"tags":26},[14,27,28],"访问统计","不蒜子",{"category":30,"tags":31},"工具",[32,33,34,35],"Python","爬虫","选课脚本","广州大学",{"category":5,"tags":37},[38,5],"数学分析",{"category":40,"tags":41},"算法",[42,40,43],"数据结构","线性表",{"category":40,"tags":45},[42,46],"复习",{"category":5,"tags":48},[49,50,51],"高等代数","线性代数","知识点",{"category":5,"tags":53},[14,54,55,56,57],"Typora","PicGo","图床","Markdown",{"category":30,"tags":59},[60,61,62],"Jupyter","工具配置","中文",{"category":30,"tags":64},[65,61,10],"VSCode",{"category":30,"tags":67},[68,69,70,35],"路由器","OpenWrt","校园网",{"category":12,"tags":72},[73,74,75],"网络协议","Wireshark","DEVP2P",{"category":5,"tags":77},[73,74,78,79],"Lua","解码器",{"category":5,"tags":81},[82,5,83],"常微分方程","数学",{"category":5,"tags":85},[86,5,83],"概率论",{"category":30,"tags":88},[89,90,91,92],"Docker","WSL","Windows","磁盘清理",{"category":30,"tags":94},[32,33,95,35],"课程表",{"category":5,"tags":97},[14,98,99,100],"Hexo","Gitalk","评论系统",{"category":5,"tags":102},[14,103,98,104],"Obsidian","写作工具",{"category":12,"tags":106},[107,108,109],"课题研究","泊松分布","参数估计",{"category":12,"tags":111},[107,108,109,112],"组会",{"category":12,"tags":114},[109,115,108,116],"IM模型","统计学",{"category":17,"tags":118},[119,120,121],"软考","网络规划","信息系统项目管理",{"category":30,"tags":123},[124,125,126],"Arch Linux","AppImage","Linux",{"category":5,"tags":128},[129,130,131],"编程语言","计算机科学","内存管理",{"category":5,"tags":133},[134,135],"Canvas","前端",{"category":5,"tags":137},[14,138,139,140],"GitHub Actions","Vite","部署",{"category":5,"tags":142},[135],{"category":5,"tags":144},[135,145],"系统设计",{"category":5,"tags":147},[135,148,149,150],"安全","XSS","CSRF",{"category":152,"tags":153},"项目",[134,154],"PixiJS",{"category":152,"tags":156},null,{"category":40,"tags":158},[42,159,160,161],"栈","队列","JavaScript",{"category":40,"tags":163},[42,164,161],"哈希表",{"category":5,"tags":166},[167,161,168],"ES6","Set",{"category":40,"tags":170},[40,171,172],"动态规划","背包问题",{"category":40,"tags":174},[40,175],"滑动窗口",{"category":40,"tags":177},[42,178,161],"链表",{"category":40,"tags":180},[40,181,161,182],"ACM","面试",{"category":40,"tags":184},[40,161,185],"数据类型转换",{"category":40,"tags":187},[42,188,178,189],"顺序表","TypeScript",{"category":5,"tags":191},[135,154,134,192],"渲染",{"category":5,"tags":194},[135,195,134,196],"富文本编辑","wangEditor",{"category":40,"tags":198},[199,40,178],"力扣",{"category":5,"tags":201},[202,203,204,91],"DNS","加密","网络安全",{"category":5,"tags":206},[135,207],"Axios",{"category":5,"tags":209},[135,207,189,210],"接口封装",{"category":5,"tags":212},[135,213,145],"JWT",{"category":152,"tags":215},[134,216,217,154,218],"画布","React","项目开发",{"category":17,"tags":220},[221],"日志",{"category":5,"tags":223},[224,225,226,227],"Neo4j","图数据库","中心度分析","PageRank",{"category":12,"tags":229},[230,231,232,233],"论文","机器学习","随机森林","保险欺诈",{"category":5,"tags":235},[236],"人工智能",{"category":5,"tags":238},[231,40,32],{"category":12,"tags":240},[241,242,243,244],"共识算法","最长链","区块链","算法设计",{"category":5,"tags":246},[161,247,248,135],"闭包","作用域",{"category":5,"tags":250},[14,138,251,252],"RSS","自动化",{"category":30,"tags":254},[89,90,91,255],"安装",{"category":30,"tags":257},[258,91,259],"MSYS2","开发环境",{"category":5,"tags":261},[262,263,264,265],"团队协作","Git","Commit规范","代码审查",{"category":30,"tags":267},[268,269,270],"oh-my-posh","终端美化","CLI",{"category":5,"tags":272},[273,274,275],"上下文工程","Agent","RAG",{"category":5,"tags":277},[278,279,280],"前端工程化","技术选型","工程基建",{"category":5,"tags":282},[275],{"category":5,"tags":284},[285,286],"SDD","规格驱动开发",{"category":5,"tags":288},[289],"neovim",{"category":5,"tags":291},[292],"技术写作",{"category":5,"tags":294},[295,32,296,89,297],"FastAPI","后端","工程实践",{"category":152,"tags":299},[274,300],"Harness Engineering",{"category":5,"tags":302},[303],"RFC",{"category":152,"tags":305},[274,300,275],{"category":152,"tags":307},[274],{"category":40,"tags":309},[199,40,161,310],"两数之和",{"category":40,"tags":312},[199,40,161,313],"双指针",{"category":40,"tags":315},[199,40,161,178],{"category":40,"tags":317},[199,40,161,175],{"category":40,"tags":319},[199,40,161,320],"回溯",{"category":5,"tags":322},[323,324,325,326],"分布式处理与计算","Spark","Scala","RDD",{"category":5,"tags":328},[323,329,330,331],"线性回归","逻辑回归","监督学习",{"category":5,"tags":333},[323,334,335,336],"数值优化","牛顿法","收敛性",{"category":5,"tags":338},[323,339,340,341],"PCA","数据降维","正则化",{"category":5,"tags":343},[323,344,345,346],"聚类","层次聚类","K-Means",{"category":5,"tags":348},[323,349,350,351],"随机模拟","统计推断","EM算法",{"category":5,"tags":353},[24],{"category":5,"tags":355},[24],{"category":5,"tags":357},[24],{"category":40,"tags":359},[42,360],"图论",{"category":40,"tags":362},[42,363,364],"树","二叉树",{"category":40,"tags":366},[42,160],{"category":40,"tags":368},[42],{"category":40,"tags":370},[42,159],{"category":40,"tags":372},[42,40,373],"复杂度分析",{"category":40,"tags":375},[42,43,178],{"category":40,"tags":377},[42,43,188],{"category":40,"tags":379},[42,380],"基础概念",{"category":17,"tags":382},[383,384,385],"随记","照片","高中",{"category":17,"tags":387},[383,388,389],"团建","战地",{"category":17,"tags":391},[383,392],"生活",{"category":17,"tags":394},[383,395],"文学",{"category":17,"tags":397},[383,398,399],"SCP","模因",{"category":17,"tags":401},[383,402,403],"画集","艺术",{"category":17,"tags":405},[14,406,383],"写作",{"category":17,"tags":408},[383,409,410],"音乐","摇滚",{"category":17,"tags":412},[383,392],{"category":17,"tags":414},[383,409],{"category":17,"tags":416},[383,35,392],{"category":17,"tags":418},[383,419,420],"同人","手书",{"category":17,"tags":422},[383,392],{"category":17,"tags":424},[383,392],{"category":17,"tags":426},[383,427],"植物",{"category":17,"tags":429},[383,430],"读书",{"category":17,"tags":432},[383,392],{"category":17,"tags":434},[383,392],{"category":17,"tags":436},[383,392],{"category":17,"tags":438},[383,392],{"category":17,"tags":440},[383,392],{"category":17,"tags":442},[383,392],{"category":17,"tags":444},[14,445,383],"一周年",{"category":17,"tags":447},[383,392],{"category":17,"tags":449},[383,392],{"category":17,"tags":451},[35,452,453],"开源组织","SITE-193",{"category":17,"tags":455},[383,392],{"category":17,"tags":457},[383,458],"年末",{"category":17,"tags":460},[383,392],{"category":17,"tags":462},[383,392],{"category":17,"tags":464},[14,17],{"category":17,"tags":466},[383,392],{"category":17,"tags":468},[383,392],{"category":17,"tags":470},[383,392],{"category":17,"tags":472},[383,392],{"category":17,"tags":474},[383,475,476],"游戏","Control",{"category":30,"tags":478},[479,480,481,482],"Quadim","图像处理","四叉树","Rust",{"category":17,"tags":484},[14,485],"上线纪念",{"category":17,"tags":487},[383,395],{"category":30,"tags":489},[203,490],"测试",{"category":17,"tags":492},[383],{"category":17,"tags":494},[383,392],{"category":17,"tags":496},[383],{"category":5,"tags":498},[40],{"category":5,"tags":500},[40],{"category":5,"tags":502},[40],{"category":5,"tags":504},[40],{"category":5,"tags":506},[40],[508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,579,583,587,590,594,598,602,606,610,614,618,622,626,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,778,782,786,790,794,798,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865,869,873,877,881,885,889,893,897,901,904,907,911,915,919,923,927,930,934,938,942,946,950,954,957,961,965,969,973,977,981,984,988,992,996,1000,1004,1007,1011,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1075,1079],{"path":509,"words":510,"published":511,"date":156},"\u002Fposts\u002F2024\u002F2024-06-25-liteloaderqqnt",1296,"2024-06-25 11:03:08",{"path":513,"words":514,"published":515,"date":156},"\u002Fposts\u002F2024\u002F2024-06-26-ip签名",0,"2024-06-26 22:53:53",{"path":517,"words":518,"published":519,"date":156},"\u002Fposts\u002F2024\u002F2024-06-29-何加盐中文互联网正在加速崩塌",4853,"2024-06-29 00:47:13",{"path":521,"words":522,"published":523,"date":156},"\u002Fposts\u002F2024\u002F2024-07-12-github-chart",270,"2024-07-12 20:02:50",{"path":525,"words":526,"published":527,"date":156},"\u002Fposts\u002F2024\u002F2024-07-14-访客数统计",192,"2024-07-24 01:34:28",{"path":529,"words":530,"published":531,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-广大选课脚本",110,"2024-07-26 01:34:28",{"path":533,"words":534,"published":535,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数学分析笔记其二",14,"2024-07-26 23:54:02",{"path":537,"words":538,"published":539,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习其二",12856,"2024-07-26 02:48:08",{"path":541,"words":542,"published":543,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习相关",32856,"2024-07-26 02:24:14",{"path":545,"words":546,"published":547,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-线性代数与空间解析几何知识点全汇总",6110,"2024-07-26 03:27:55",{"path":549,"words":550,"published":551,"date":156},"\u002Fposts\u002F2024\u002F2024-07-31-typora-picgo-兰空图床打造markdown写作环境",311,"2024-07-31 12:56:23",{"path":553,"words":554,"published":555,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-jupyter配置中文",441,"2024-09-02 23:49:05",{"path":557,"words":558,"published":559,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-自定义vscode背景图片",100,"2024-09-02 23:39:00",{"path":561,"words":562,"published":563,"date":156},"\u002Fposts\u002F2024\u002F2024-09-03-制作gzhu校园网路由器",1423,"2024-09-03 23:43:18",{"path":565,"words":566,"published":567,"date":156},"\u002Fposts\u002F2024\u002F2024-09-26-09-25-2024",136,"2024-09-26 00:49:26",{"path":569,"words":570,"published":571,"date":156},"\u002Fposts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析devp2p协议",1943,"2024-11-04 16:45:19",{"path":573,"words":574,"published":575,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记常微分",16,"2024-12-09 22:51:00",{"path":577,"words":574,"published":578,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记概率论","2025-03-09 22:51:00",{"path":580,"words":581,"published":582,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-windows下释放docker占用的wsl空间",164,"2025-03-01 13:54:15",{"path":584,"words":585,"published":586,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-爬虫实战-爬取广州大学课程表",774,"2025-03-01 14:55:48",{"path":588,"words":530,"published":589,"date":156},"\u002Fposts\u002F2025\u002F2025-04-03-hexo集成gitalk的问题","2025-04-03 14:26:34",{"path":591,"words":592,"published":593,"date":156},"\u002Fposts\u002F2025\u002F2025-09-22-记一次配置obsidian配合hexo写博客",92,"2025-09-22 16:47:52",{"path":595,"words":596,"published":597,"date":156},"\u002Fposts\u002F2025\u002F2025-10-24-10-20课题",204,"2025-10-24 08:15:01",{"path":599,"words":600,"published":601,"date":156},"\u002Fposts\u002F2025\u002F2025-11-02-组会朝花夕拾",501,"2025-11-02 18:56:59",{"path":603,"words":604,"published":605,"date":156},"\u002Fposts\u002F2025\u002F2025-11-05-基于随机加权推断模型im的参数估计算法",481,"2025-11-05 20:51:41",{"path":607,"words":608,"published":609,"date":156},"\u002Fposts\u002F2025\u002F2025-11-09-关于软考高项网规",884,"2025-11-09 19:54:52",{"path":611,"words":612,"published":613,"date":156},"\u002Fposts\u002F2025\u002F2025-11-17-arch-linux运行appimage相关",365,"2025-11-17 09:59:59",{"path":615,"words":616,"published":617,"date":156},"\u002Fposts\u002F2025\u002F2025-11-19-相关概念",2058,"2025-11-19 11:06:20",{"path":619,"words":620,"published":621,"date":156},"\u002Fposts\u002F2025\u002F2025-11-21-web可视化实践canvas",6393,"2025-11-21 14:50:48",{"path":623,"words":624,"published":625,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-使用-github-actions-自动部署基于vite的项目到-github-pages",272,"2025-11-23 01:59:24",{"path":627,"words":628,"published":629,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-关于前端包管理器npmpnpmyarn和bun",4890,"2025-11-22 21:21:15",{"path":631,"words":632,"published":633,"date":156},"\u002Fposts\u002F2025\u002F2025-11-23-undo-redo-机制具体实现",7839,"2025-11-23 19:15:00",{"path":635,"words":636,"published":637,"date":156},"\u002Fposts\u002F2025\u002F2025-11-27-前端安全-关于xss与crsf",1866,"2025-11-28 02:05:25",{"path":639,"words":640,"published":641,"date":156},"\u002Fposts\u002F2025\u002F2025-12-05-现代协同-2d-画布编辑器pixijs-v8",4285,"2025-12-05 02:00:16",{"path":643,"words":644,"published":645,"date":156},"\u002Fposts\u002F2025\u002F2025-12-07-杂谈-课题组系统设计",3710,"2025-12-07 21:09:33",{"path":647,"words":648,"published":649,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-javascript中的数组方法与栈stack和队列queue的实现",474,"2025-11-29 16:58:15",{"path":651,"words":652,"published":653,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript-实现哈希表",189,"2025-11-27 11:31:39",{"path":655,"words":656,"published":657,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript的set方法",332,"2025-12-25 15:26:18",{"path":659,"words":660,"published":661,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于动态规划(背包问题为例)",1238,"2025-11-17 18:24:04",{"path":663,"words":664,"published":665,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于滑动窗口",712,"2025-11-20 15:04:40",{"path":667,"words":668,"published":669,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于链表(javascript)",500,"2025-11-25 13:00:48",{"path":671,"words":672,"published":673,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-面试算法acm模式构建构建输入输出模板",2051,"2025-12-25 23:09:45",{"path":675,"words":676,"published":677,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascript-数字数组字符串的处理",483,"2025-12-26 11:20:25",{"path":679,"words":680,"published":681,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascripttypescript-的顺序表链表实现",446,"2025-12-26 12:16:12",{"path":683,"words":684,"published":685,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-1-实现基础yuan素渲染和状态控制",2136,"2025-12-28 01:23:08",{"path":687,"words":688,"published":689,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-2-实现富文本编辑",1838,"2025-12-28 02:58:47",{"path":691,"words":692,"published":693,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-算法刷题-关于链表操作",2135,"2025-12-27 16:12:42",{"path":695,"words":696,"published":697,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-配置dnscrypt-proxy实现加密dns服务windows",1899,"2025-11-15 01:06:37",{"path":699,"words":700,"published":701,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-关于网络请求xhrajaxfetchaxios",7788,"2025-10-28 15:48:46",{"path":703,"words":704,"published":705,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-接口封装与请求规范axios为例",2373,"2025-12-29 01:01:18",{"path":707,"words":708,"published":709,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-身份验证管理-基于-jwt-token-的实现",2709,"2025-11-23 22:04:41",{"path":711,"words":712,"published":713,"date":156},"\u002Fposts\u002F2025\u002F2025-12-29-记canvas画布项目开发",6254,"2025-12-29 04:52:15",{"path":715,"words":716,"published":717,"date":156},"\u002Fposts\u002F2025\u002Fabout-site",116,"2025-03-31 16:44:24",{"path":719,"words":720,"published":721,"date":156},"\u002Fposts\u002F2025\u002F使用neo4j图数据科学库gds进行中心度分析",143,"2025-04-02 23:37:24",{"path":723,"words":724,"published":725,"date":156},"\u002Fposts\u002F2026\u002F2026-01-03-论文实训草稿",10445,"2026-01-03 14:10:49",{"path":727,"words":728,"published":729,"date":156},"\u002Fposts\u002F2026\u002F2026-01-06-人工智能导论",11461,"2026-01-07 03:25:49",{"path":731,"words":732,"published":733,"date":156},"\u002Fposts\u002F2026\u002F2026-01-07-机器学习相关算法",82,"2026-01-08 02:28:13",{"path":735,"words":736,"published":737,"date":156},"\u002Fposts\u002F2026\u002F2026-01-16-关于低复杂度最长链共识算法设计",4466,"2026-01-16 10:33:23",{"path":739,"words":740,"published":741,"date":156},"\u002Fposts\u002F2026\u002F2026-01-19-杂记2026-01-19",5754,"2026-01-20 01:03:26",{"path":743,"words":744,"published":745,"date":156},"\u002Fposts\u002F2026\u002F2026-01-22-github-action-自动同步博客到-github-主页",1069,"2026-01-22 16:31:47",{"path":747,"words":748,"published":749,"date":156},"\u002Fposts\u002F2026\u002F2026-03-01-windows-wsl安装docker",257,"2026-03-01 20:55:31",{"path":751,"words":752,"published":753,"date":156},"\u002Fposts\u002F2026\u002F2026-03-14-关于-msys2",701,"2026-03-15 03:05:04",{"path":755,"words":756,"published":757,"date":156},"\u002Fposts\u002F2026\u002F2026-03-28-团队项目协作规范随记",2419,"2026-03-29 05:33:50",{"path":759,"words":760,"published":761,"date":156},"\u002Fposts\u002F2026\u002F2026-03-29-oh-my-posh配置分享",104,"2026-03-29 16:34:43",{"path":763,"words":764,"published":765,"date":156},"\u002Fposts\u002F2026\u002F2026-06-13-从上下文工程到-agent-harness-engineering",8840,"2026-06-13 21:06:20",{"path":767,"words":768,"published":769,"date":156},"\u002Fposts\u002F2026\u002F2026-07-13-简谈前端基建质量标准与ai友好建设",3814,"2026-07-13 21:06:20",{"path":771,"words":772,"published":773,"date":156},"\u002Fposts\u002F2026\u002F2026-07-15-agentic-rag-系统实践",13357,"2026-07-15 21:06:20",{"path":775,"words":776,"published":777,"date":156},"\u002Fposts\u002F2026\u002F2026-07-18-简谈sdd规范驱动开发-copy",4476,"2026-07-18 11:06:20",{"path":779,"words":780,"published":781,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-个人neovim配置分享",366,"2026-07-22 13:46:50",{"path":783,"words":784,"published":785,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-关于技术写作-设计文档",6763,"2026-07-20 13:46:50",{"path":787,"words":788,"published":789,"date":156},"\u002Fposts\u002F2026\u002F2026-07-29-fastapi-工程实践随记",3417,"2026-07-29 04:58:34",{"path":791,"words":792,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-06-19-rfc-liskin_code_agent",3563,"2026-06-19 15:18:20",{"path":795,"words":796,"published":797,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-07-25-rfc-glushkov_ogas",13461,"2026-07-28 23:46:50",{"path":799,"words":800,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-08-03-adr-ogas-arkhiv",2698,{"path":802,"words":803,"published":804,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002Frag\u002F2026-08-12-arkhiv_rag-vol-1",4366,"2026-08-12 15:18:20",{"path":806,"words":807,"published":808,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-25-力扣百题速练javascripttypescriptvol-1",3108,"2025-12-25 13:57:08",{"path":810,"words":811,"published":812,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-26-力扣百题速练javascripttypescriptvol-2",3185,"2025-12-26 13:57:08",{"path":814,"words":815,"published":816,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-28-力扣百题速练javascripttypescriptvol-3",2533,"2025-12-29 02:15:44",{"path":818,"words":819,"published":820,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-17-力扣百题速练javascripttypescriptvol-4",3024,"2026-01-17 22:53:01",{"path":822,"words":823,"published":824,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-19-力扣百题速练javascripttypescriptvol-5",293,"2026-01-19 15:15:12",{"path":826,"words":827,"published":828,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算spark系统与scala语言",4320,"2026-07-06 14:10:49",{"path":830,"words":831,"published":832,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算分类与回归分析",2081,"2026-07-07 12:40:29",{"path":834,"words":835,"published":836,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数值优化方法",2182,"2026-07-07 13:50:29",{"path":838,"words":839,"published":840,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数据降维",1583,"2026-07-07 21:50:29",{"path":842,"words":843,"published":844,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算聚类分析",1882,"2026-07-07 16:50:29",{"path":846,"words":847,"published":848,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算随机模拟与统计推断",2433,"2026-07-06 22:40:29",{"path":850,"words":851,"published":852,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-基本图像",10011,"2026-06-14 20:18:20",{"path":854,"words":855,"published":856,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-概论",10030,"2026-06-14 15:18:20",{"path":858,"words":859,"published":860,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-15-数据可视化-可视化库",2032,"2026-06-15 20:18:20",{"path":862,"words":863,"published":864,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-图",5451,"2025-04-15 20:48:06",{"path":866,"words":867,"published":868,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-树",4211,"2025-04-30 02:19:06",{"path":870,"words":871,"published":872,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-队列",921,"2025-04-11 15:30:08",{"path":874,"words":875,"published":876,"date":156},"\u002Fposts\u002F数据结构\u002F关于数据结构的一些想法",456,"2025-04-04 19:13:49",{"path":878,"words":879,"published":880,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-栈",920,"2025-04-18 00:17:37",{"path":882,"words":883,"published":884,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-算法复杂度",2153,"2025-04-05 16:09:55",{"path":886,"words":887,"published":888,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表链表",4572,"2025-04-06 00:24:40",{"path":890,"words":891,"published":892,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表顺序表",4191,"2025-04-05 22:09:59",{"path":894,"words":895,"published":896,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-绪论",2881,"2025-04-05 11:31:22",{"path":898,"words":899,"published":156,"date":900},"\u002Fposts\u002F杂记\u002F2023-12-26-2023年12月26日",7,"2023-12-26 23:51:33",{"path":902,"words":899,"published":156,"date":903},"\u002Fposts\u002F杂记\u002F2024-01-01-2024团建","2024-01-01 01:51:27",{"path":905,"words":581,"published":156,"date":906},"\u002Fposts\u002F杂记\u002F2024-01-09-随记","2024-01-09 20:50:35",{"path":908,"words":909,"published":156,"date":910},"\u002Fposts\u002F杂记\u002F2024-03-12-花名",5275,"2024-03-12 16:04:23",{"path":912,"words":913,"published":156,"date":914},"\u002Fposts\u002F杂记\u002F2024-04-15-逆模因",1353,"2024-04-15 00:26:16",{"path":916,"words":917,"published":156,"date":918},"\u002Fposts\u002F杂记\u002F2024-05-03-艺作",27,"2024-05-03 00:01:00",{"path":920,"words":921,"published":156,"date":922},"\u002Fposts\u002F杂记\u002F2024-05-21-关于博客",1720,"2024-02-21 23:21:11",{"path":924,"words":925,"published":156,"date":926},"\u002Fposts\u002F杂记\u002F2024-06-20-dnvrc维克多崔专访-2023",2036,"2024-06-20 00:28:39",{"path":928,"words":760,"published":156,"date":929},"\u002Fposts\u002F杂记\u002F2024-06-25-6月25日随记","2024-06-25 12:46:36",{"path":931,"words":932,"published":156,"date":933},"\u002Fposts\u002F杂记\u002F2024-06-25-歌名-想見星星",148,"2024-06-25 22:47:59",{"path":935,"words":936,"published":156,"date":937},"\u002Fposts\u002F杂记\u002F2024-07-11-桂花岗",6,"2024-07-11 00:28:17",{"path":939,"words":940,"published":156,"date":941},"\u002Fposts\u002F杂记\u002F2024-07-15-rolling-bocci",9,"2024-07-15 21:25:56",{"path":943,"words":944,"published":156,"date":945},"\u002Fposts\u002F杂记\u002F2024-07-22-七月九日",34,"2024-07-09 17:54:23",{"path":947,"words":948,"published":156,"date":949},"\u002Fposts\u002F杂记\u002F2024-07-22-六月随记",1052,"2024-07-22 01:03:19",{"path":951,"words":952,"published":156,"date":953},"\u002Fposts\u002F杂记\u002F2024-07-22-石菖蒲",41,"2024-07-10 01:26:05",{"path":955,"words":514,"published":156,"date":956},"\u002Fposts\u002F杂记\u002F2024-07-23-新书","2024-07-23 01:05:49",{"path":958,"words":959,"published":156,"date":960},"\u002Fposts\u002F杂记\u002F2024-07-29-年前",74,"2024-07-29 23:59:07",{"path":962,"words":963,"published":156,"date":964},"\u002Fposts\u002F杂记\u002F2024-07-30-周边",138,"2024-07-30 02:03:23",{"path":966,"words":967,"published":156,"date":968},"\u002Fposts\u002F杂记\u002F2024-07-31-2024-7-31日",185,"2024-07-31 01:21:52",{"path":970,"words":971,"published":156,"date":972},"\u002Fposts\u002F杂记\u002F2024-08-02-八月",1710,"2024-08-30 00:31:02",{"path":974,"words":975,"published":156,"date":976},"\u002Fposts\u002F杂记\u002F2024-09-01-九月",1484,"2024-09-26 16:30:15",{"path":978,"words":979,"published":156,"date":980},"\u002Fposts\u002F杂记\u002F2024-09-08-2024年9月8日",97,"2024-09-08 13:59:36",{"path":982,"words":514,"published":156,"date":983},"\u002Fposts\u002F杂记\u002F2024-09-19-博客站的一周年","2024-09-18 23:36:24",{"path":985,"words":986,"published":156,"date":987},"\u002Fposts\u002F杂记\u002F2024-10-03-十月",1028,"2024-10-31 23:54:27",{"path":989,"words":990,"published":156,"date":991},"\u002Fposts\u002F杂记\u002F2024-11-04-十一月",2134,"2024-11-30 00:04:39",{"path":993,"words":994,"published":156,"date":995},"\u002Fposts\u002F杂记\u002F2024-11-10-gzhu-site-193",80,"2024-11-10 19:19:12",{"path":997,"words":998,"published":156,"date":999},"\u002Fposts\u002F杂记\u002F2024-12-01-十二月",455,"2024-12-30 23:13:47",{"path":1001,"words":1002,"published":156,"date":1003},"\u002Fposts\u002F杂记\u002F2024-12-21-年末",23,"2024-12-21 23:21:49",{"path":1005,"words":522,"published":156,"date":1006},"\u002Fposts\u002F杂记\u002F2025-01-30-一月","2025-01-30 23:44:41",{"path":1008,"words":1009,"published":156,"date":1010},"\u002Fposts\u002F杂记\u002F2025-03-01-二月",224,"2025-02-28 00:11:08",{"path":1012,"words":1013,"published":156,"date":1014},"\u002Fposts\u002F杂记\u002F2025-03-01-博客杂谈",344,"2025-03-01 16:03:18",{"path":1016,"words":1017,"published":156,"date":1018},"\u002Fposts\u002F杂记\u002F2025-03-05-三月",2090,"2025-03-05 19:17:28",{"path":1020,"words":1021,"published":156,"date":1022},"\u002Fposts\u002F杂记\u002F2025-07-10-七月",361,"2025-07-10 22:04:32",{"path":1024,"words":1025,"published":156,"date":1026},"\u002Fposts\u002F杂记\u002F2025-09-21-九月",781,"2025-09-21 20:53:37",{"path":1028,"words":1029,"published":156,"date":1030},"\u002Fposts\u002F杂记\u002F2025-10-09-十月",591,"2025-10-09 00:35:07",{"path":1032,"words":1033,"published":156,"date":1034},"\u002Fposts\u002F杂记\u002Fcontrol",13,"2023-09-25 13:03:59",{"path":1036,"words":1037,"published":156,"date":1038},"\u002Fposts\u002F杂记\u002Fquadim四叉树图像处理",1094,"2023-10-21 11:27:06",{"path":1040,"words":1041,"published":156,"date":1042},"\u002Fposts\u002F杂记\u002Fsuccess",24,"2023-09-22 15:59:07",{"path":1044,"words":1045,"published":156,"date":1046},"\u002Fposts\u002F杂记\u002F三光年",295,"2023-11-18 04:18:40",{"path":1048,"words":1049,"published":156,"date":1050},"\u002Fposts\u002F杂记\u002F加密测试",961,"2023-11-21 14:24:01",{"path":1052,"words":1053,"published":156,"date":1054},"\u002Fposts\u002F杂记\u002F啊啊啊啊啊啊啊",54,"2023-09-20 17:29:33",{"path":1056,"words":1057,"published":156,"date":1058},"\u002Fposts\u002F杂记\u002F杂谈",124,"2023-09-25 23:11:32",{"path":1060,"words":1061,"published":156,"date":1062},"\u002Fposts\u002F杂记\u002F艹",25,"2023-10-21 17:40:43",{"path":1064,"words":1065,"published":1066,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习卷积神经网络",3168,"2026-06-07 11:23:08",{"path":1068,"words":1069,"published":1070,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习循环神经网络",2348,"2026-06-07 11:33:08",{"path":1072,"words":1073,"published":1074,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习改进学习方法",3360,"2026-06-07 10:13:08",{"path":1076,"words":1077,"published":1078,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习深度生成模型",2727,"2026-06-07 11:43:08",{"path":1080,"words":1081,"published":1082,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习神经网络基础",3205,"2026-06-07 10:03:08",{"id":1084,"title":1085,"abbrlink":1086,"body":1087,"category":152,"cover":2091,"date":156,"description":2092,"extension":2093,"mathjax":2094,"meta":2095,"navigation":2094,"path":791,"published":793,"readingMinutes":2097,"seo":2098,"stem":2099,"sticky":156,"swiper_index":156,"tags":2100,"updated":156,"words":792,"__hash__":2101},"posts\u002Fposts\u002FRFC_Agentic_project\u002F2026-06-19-[RFC]-Liskin_Code_Agent.md","2026-06-19-[RFC] Liskin_Code_Agent","29484",{"type":1088,"value":1089,"toc":2048},"minimark",[1090,1095,1100,1104,1120,1124,1128,1131,1135,1138,1141,1145,1148,1151,1154,1157,1160,1163,1167,1175,1178,1181,1184,1187,1191,1268,1271,1274,1278,1281,1284,1287,1291,1384,1386,1389,1392,1469,1472,1498,1500,1625,1628,1670,1672,1675,1678,1681,1688,1713,1726,1751,1773,1779,1782,1788,1790,1793,1796,1800,1814,1818,1827,1831,1844,1848,1855,1859,1865,1869,1884,1888,1902,1904,1907,1911,1914,1918,1921,1963,1967,1970,1984,1988,1991,2017,2019,2021,2024,2027,2030,2033,2036,2039,2042,2045],[1091,1092,1094],"h1",{"id":1093},"liskin面向开发者的自主编程-agent","Liskin：面向开发者的自主编程 Agent",[1096,1097,1099],"h2",{"id":1098},"一产品定位与核心问题","一、产品定位与核心问题",[1101,1102,1103],"p",{},"Liskin 是一款专注研发提效的 Coding Agent。产品目前提供 IDE 插件，web和 CLI 多种形态，主要解决的是通用编程 Agent 在大型代码库里反复暴露的几个老问题：",[1105,1106,1107,1111,1114,1117],"ul",{},[1108,1109,1110],"li",{},"看不懂代码库。通用 Agent 对大型工程缺乏全局认知，回答经常跑偏，开发者只能不停追问、手动补约束。",[1108,1112,1113],{},"其次是生成的代码不合规范，常常偏离业务逻辑或 UI 标准，存在幻觉，设计稿还原得也不理想。",[1108,1115,1116],{},"复杂任务接不住——单轮 Agent 既缺上下文也缺工具，跨模块、多步骤的活难以完成。",[1108,1118,1119],{},"质量缺乏反馈，代码写完没有客观评估，开发者对产出好坏没有把握。",[1096,1121,1123],{"id":1122},"二相对业界主流-agent-的技术创新","二、相对业界主流 Agent 的技术创新",[1125,1126,1127],"h3",{"id":1127},"深度代码检索",[1101,1129,1130],{},"Liskin 用 Code RAG 配合基于 LSP AST 的代码索引做跨文件检索，把准确的上下文主动喂给模型，而不是让模型盲猜，也省去了开发者手动粘贴代码片段的环节。这套检索能力后续计划做 MCP 化，作为标准工具服务对外开放。",[1125,1132,1134],{"id":1133},"单-agent-全程上下文与无痕微压缩","单 Agent 全程上下文与无痕微压缩",[1101,1136,1137],{},"主流的多 Agent 编排有一个共性缺陷，Liskin 早期的 Subagent 串联也踩过这个坑：每个子 Agent 各自维护记忆，切换时上下文就断了。",[1101,1139,1140],{},"Liskin 换了思路，借鉴 Claude Skills 的渐进式披露，以及 Manus、Claude Code 的微压缩机制，让单个 Agent 在一次任务里全程保持完整上下文，只在阶段之间做无痕微压缩。这样既压住了上下文膨胀，又保住了对话的连续性。实测显示，引入渐进式加载后 Token 消耗下降约 50%，平均任务完成时间缩短约 50%，指令遵循度提升约 7%。这条路线与 Cursor、Trae 的多 Agent 编排有明显区别。",[1125,1142,1144],{"id":1143},"双模式-auto-智能路由","双模式 + Auto 智能路由",[1101,1146,1147],{},"业界产品大多用一个 Agent 应对所有任务，比如 Cursor 的单 Agent、Windsurf 的 Cascade 全自动流。Liskin 走的是另一条路：把深度规划和快速执行拆成两个独立的执行模式，二者在 LLM 选型、Prompt 策略、工具集和上下文管理上完全分开，而每个模式内部仍由单个 Agent 全程持有上下文。",[1101,1149,1150],{},"上层的 Auto 路由会根据任务复杂度和需求明确度自动分发——复杂的架构性任务交给深度规划，明确的单点修改交给快速执行。这样\"PRD 到架构拆解\"和\"即时 Bugfix\"这两类差异极大的任务都能稳定接住，而不是拿同一套配置硬扛到底。",[1125,1152,1153],{"id":1153},"架构创新与云端-本地协同",[1101,1155,1156],{},"产品以一个统一内核为中心，对外提供 Web、CLI、IDE 插件乃至移动端 App 等多种客户端，开发者在任意终端都能随时开工。再通过 MCP 打通 GitHub、Vercel、Cloudflare 等开发与部署链路，把研发流程串成一个闭环。",[1101,1158,1159],{},"这套架构的关键在于内核与外壳解耦。同一份内核代码靠不同的 KernelClient 适配多端——CLI 走 InProcessKernelClient，Web 走 HttpSseKernelClient，未来 IDE 走 JsonRpcKernelClient；而 Claude Code 的 VSCode 扩展和 CLI 是两条相对独立的实现路径。内核并不知道自己是被 CLI、Web 还是 IDE 调用的——LLMPort、ToolPort、StorePort 三个端口接口让内核只跟抽象契约打交道，换模型、换工具来源、换存储后端，都不必改动内核代码。这个设计便于日后的插件化扩展",[1101,1161,1162],{},"新增Sandbox，路径白名单加命令黑名单，再配合 auto\u002Fask\u002Fdeny 三档确认策略，权限粒度比 Claude Code 更细。",[1125,1164,1166],{"id":1165},"harness-框架支撑长程任务自迭代","Harness 框架支撑长程任务自迭代",[1101,1168,1169,1170,1174],{},"Harness 是 Liskin 专为复杂长程任务设计的执行框架。它把任务拆成可中断、可恢复、可审计的节点序列，用 Markdown 文件落盘记录意图、阶段、闸门和完成状态。借助它，Agent 在多轮执行中能够始终对齐目标，即便中途中断，也能从断点精确接回。其长任务可中断、可恢复、可审计，状态落盘在 ",[1171,1172,1173],"code",{},".liskin\u002Fharness\u002F"," 目录，这是 Claude Code 目前没有的机制。",[1125,1176,1177],{"id":1177},"评测驱动迭代",[1101,1179,1180],{},"Liskin 建立了一套系统化的 Agent 评测机制，并把行为日志结构化成 RLHF\u002FDPO 训练数据，形成 post-coding 数据飞轮。依托评测持续发现并改进 System Prompt、链路、工具和模型上的问题。",[1125,1182,1183],{"id":1183},"在建能力",[1101,1185,1186],{},"D2C 是当前的核心抓手，配合 AGENTS.md 的项目级规范注入和 Harness 真相文档，把业务规则与 UI 标准显式传给模型，不再依赖模型自行揣摩。围绕落地链路，还在推进 GitHub CI\u002FCD、Vercel、Cloudflare 等平台从 SCM 研发到上线部署的全流程集成，以及基于 ContextDB 的上下文管理集成和文档形式的 stage 管理。",[1096,1188,1190],{"id":1189},"三与-claude-code-trae-cursor-的对比","三、与 Claude Code \u002F Trae \u002F Cursor 的对比",[1192,1193,1194,1210],"table",{},[1195,1196,1197],"thead",{},[1198,1199,1200,1204,1207],"tr",{},[1201,1202,1203],"th",{},"维度",[1201,1205,1206],{},"Claude Code",[1201,1208,1209],{},"Liskin",[1211,1212,1213,1225,1236,1246,1257],"tbody",{},[1198,1214,1215,1219,1222],{},[1216,1217,1218],"td",{},"多端支持",[1216,1220,1221],{},"本地 CLI \u002F VSCode 扩展",[1216,1223,1224],{},"CLI + Web + IDE 插件，共用同一 daemon",[1198,1226,1227,1230,1233],{},[1216,1228,1229],{},"Provider",[1216,1231,1232],{},"仅 Anthropic API",[1216,1234,1235],{},"原生支持多 Provider 热切换",[1198,1237,1238,1240,1243],{},[1216,1239,273],{},[1216,1241,1242],{},"系统 Prompt + 项目记忆",[1216,1244,1245],{},"同样支持 AGENTS.md，外加 Harness 工程基础设施",[1198,1247,1248,1251,1254],{},[1216,1249,1250],{},"工具系统",[1216,1252,1253],{},"内置工具（Bash\u002FRead\u002FWrite\u002FEdit 等）",[1216,1255,1256],{},"内置 fs\u002Fshell + Sandbox 防护 + 可扩展 ToolPort",[1198,1258,1259,1262,1265],{},[1216,1260,1261],{},"多 Provider",[1216,1263,1264],{},"仅 Anthropic 模型",[1216,1266,1267],{},"动态 Provider 路由，Web UI 切换，配置持久化",[1101,1269,1270],{},"当然，Claude Code 在 System Prompt 与工具链的打磨、PR\u002FIssue 评论和 CI 集成等企业协作能力上更为成熟，这些是 Liskin 后续需要补齐的方向。",[1272,1273],"hr",{},[1091,1275,1277],{"id":1276},"架构设计-kernel-client","架构设计 Kernel ↔ Client",[1101,1279,1280],{},"内核（Agent 状态机 + 工具 + 模型适配）与调用方（CLI \u002F Web \u002F IDE）进行解耦",[1101,1282,1283],{},"内核不感知调用内核的对象，越靠内的层越稳定。",[1101,1285,1286],{},"四层单向依赖的架构",[1288,1289],"mermaid",{"code":1290},"flowchart TB\n    %% 样式定义\n    classDef l4 fill:#eff6ff,stroke:#3b82f6,stroke-width:1.5px,color:#1e3a8a\n    classDef trans fill:#f5f3ff,stroke:#8b5cf6,stroke-width:1.5px,color:#4c1d95\n    classDef proto fill:#fffbeb,stroke:#f59e0b,stroke-width:1.5px,stroke-dasharray: 5 5,color:#92400e\n    classDef l3l2 fill:#ecfdf5,stroke:#10b981,stroke-width:1.5px,color:#064e3b\n    classDef l1 fill:#f8fafc,stroke:#64748b,stroke-width:2px,color:#0f172a\n\n    subgraph L4[\"L4 接入层\"]\n        direction LR\n        Clients[\"CLI, Web, IDE Plugin\"]:::l4\n    end\n\n    subgraph Transport[\"传输适配\"]\n        Server[\"Hono Server\u003Cbr\u002F>\u003Csmall>packages\u002Fserver\u003C\u002Fsmall>\"]:::trans\n    end\n\n    subgraph Protocol[\"协议边界\"]\n        Proto[\"KernelClient \u002F Op \u002F EventMsg\"]:::proto\n    end\n\n    subgraph L3[\"L3 模型适配\"]\n        LLM[\"LLMProvider → LLMPort\u003Cbr\u002F>\u003Csmall>packages\u002Fllm\u003C\u002Fsmall>\"]:::l3l2\n    end\n\n    subgraph L2[\"L2 工具\u002F执行\"]\n        Tools[\"ToolRegistry + Sandbox\u003Cbr\u002F>\u003Csmall>packages\u002Ftools\u003C\u002Fsmall>\"]:::l3l2\n    end\n\n    subgraph L1[\"L1 内核\"]\n        Core[\"runAgent + 状态机\u003Cbr\u002F>\u003Csmall>packages\u002Fcore\u003C\u002Fsmall>\"]:::l1\n    end\n\n    %% 数据流向与依赖\n    Clients ==>|\"KernelClient 接口\"| Server\n    Server --> Proto\n    Proto --> LLM\n    Proto --> Tools\n    LLM --> Core\n    Tools --> Core\n\n    style L4 fill:transparent,stroke:#3b82f6,stroke-width:2px\n    style L1 fill:#f1f5f9,stroke:#64748b,stroke-width:2px",[1192,1292,1293,1306],{},[1195,1294,1295],{},[1198,1296,1297,1300,1303],{},[1201,1298,1299],{},"包",[1201,1301,1302],{},"层",[1201,1304,1305],{},"职责",[1211,1307,1308,1321,1334,1347,1360,1372],{},[1198,1309,1310,1315,1318],{},[1216,1311,1312],{},[1171,1313,1314],{},"packages\u002Fcore",[1216,1316,1317],{},"L1",[1216,1319,1320],{},"Agent 状态机、主循环、Op\u002FEventMsg 协议、KernelClient 接口",[1198,1322,1323,1328,1331],{},[1216,1324,1325],{},[1171,1326,1327],{},"packages\u002Ftools",[1216,1329,1330],{},"L2",[1216,1332,1333],{},"工具注册 + 沙箱（路径白名单\u002F危险命令拦截）、fs.read\u002Ffs.write\u002Fshell.exec",[1198,1335,1336,1341,1344],{},[1216,1337,1338],{},[1171,1339,1340],{},"packages\u002Fllm",[1216,1342,1343],{},"L3",[1216,1345,1346],{},"LLMProvider 接口 + OpenAI 兼容适配器（已验证 GLM5.2）",[1198,1348,1349,1354,1357],{},[1216,1350,1351],{},[1171,1352,1353],{},"packages\u002Fserver",[1216,1355,1356],{},"L4",[1216,1358,1359],{},"Hono daemon，HTTP\u002FSSE + SQLite 持久化",[1198,1361,1362,1367,1369],{},[1216,1363,1364],{},[1171,1365,1366],{},"client\u002F",[1216,1368,1356],{},[1216,1370,1371],{},"CLI 入口：agent serve（daemon）、agent exec（headless 一次性任务）",[1198,1373,1374,1379,1381],{},[1216,1375,1376],{},[1171,1377,1378],{},"web\u002F",[1216,1380,1356],{},[1216,1382,1383],{},"React + Vite + Tailwind 前端（待重写为时间线渲染）",[1272,1385],{},[1096,1387,1388],{"id":1388},"技术栈",[1125,1390,1391],{"id":1391},"核心技术",[1192,1393,1394,1404],{},[1195,1395,1396],{},[1198,1397,1398,1401],{},[1201,1399,1400],{},"类别",[1201,1402,1403],{},"选型",[1211,1405,1406,1414,1422,1430,1438,1445,1453,1461],{},[1198,1407,1408,1411],{},[1216,1409,1410],{},"语言",[1216,1412,1413],{},"TypeScript 5.5",[1198,1415,1416,1419],{},[1216,1417,1418],{},"运行时",[1216,1420,1421],{},"Node ≥ 20",[1198,1423,1424,1427],{},[1216,1425,1426],{},"包管理",[1216,1428,1429],{},"pnpm 9",[1198,1431,1432,1435],{},[1216,1433,1434],{},"构建",[1216,1436,1437],{},"tsup",[1198,1439,1440,1442],{},[1216,1441,490],{},[1216,1443,1444],{},"vitest",[1198,1446,1447,1450],{},[1216,1448,1449],{},"Lint",[1216,1451,1452],{},"oxlint",[1198,1454,1455,1458],{},[1216,1456,1457],{},"格式化",[1216,1459,1460],{},"prettier",[1198,1462,1463,1466],{},[1216,1464,1465],{},"提交",[1216,1467,1468],{},"commitlint + husky",[1125,1470,1471],{"id":1471},"依赖边界",[1101,1473,1474,1475,1478,1479,1482,1483,1486,1487,1482,1490,1493,1494,1497],{},"通过 ",[1171,1476,1477],{},"dependency-cruiser"," 强制执行单向依赖规则：",[1171,1480,1481],{},"core"," 不依赖 ",[1171,1484,1485],{},"tools\u002Fllm\u002Fserver","，",[1171,1488,1489],{},"tools",[1171,1491,1492],{},"llm\u002Fserver","，依此类推。任何反向 import 在 ",[1171,1495,1496],{},"pnpm deps:check"," 阶段直接阻塞。",[1125,1499,135],{"id":135},[1192,1501,1502,1513],{},[1195,1503,1504],{},[1198,1505,1506,1508,1510],{},[1201,1507,1400],{},[1201,1509,1403],{},[1201,1511,1512],{},"用途",[1211,1514,1515,1526,1537,1548,1559,1570,1581,1592,1603,1614],{},[1198,1516,1517,1520,1523],{},[1216,1518,1519],{},"框架",[1216,1521,1522],{},"React + TypeScript",[1216,1524,1525],{},"SPA，Vite 构建",[1198,1527,1528,1531,1534],{},[1216,1529,1530],{},"路由",[1216,1532,1533],{},"react-router",[1216,1535,1536],{},"客户端路由，非 Next 文件路由",[1198,1538,1539,1542,1545],{},[1216,1540,1541],{},"远端状态",[1216,1543,1544],{},"SWR",[1216,1546,1547],{},"请求缓存、重试、revalidate",[1198,1549,1550,1553,1556],{},[1216,1551,1552],{},"本地状态",[1216,1554,1555],{},"Zustand",[1216,1557,1558],{},"跨组件共享，替代 Redux",[1198,1560,1561,1564,1567],{},[1216,1562,1563],{},"局部状态",[1216,1565,1566],{},"React hooks + ahooks",[1216,1568,1569],{},"页面\u002F组件级交互",[1198,1571,1572,1575,1578],{},[1216,1573,1574],{},"样式",[1216,1576,1577],{},"TailwindCSS + cva + clsx + tailwind-merge",[1216,1579,1580],{},"原子化 + 变体管理",[1198,1582,1583,1586,1589],{},[1216,1584,1585],{},"无样式组件",[1216,1587,1588],{},"Radix UI",[1216,1590,1591],{},"Dialog、Select、Tooltip 等",[1198,1593,1594,1597,1600],{},[1216,1595,1596],{},"业务组件",[1216,1598,1599],{},"HeroUI",[1216,1601,1602],{},"快速搭建（待 React 19 + Tailwind 4 升级后深度启用）",[1198,1604,1605,1608,1611],{},[1216,1606,1607],{},"动画",[1216,1609,1610],{},"Framer Motion",[1216,1612,1613],{},"过渡与手势",[1198,1615,1616,1619,1622],{},[1216,1617,1618],{},"通知",[1216,1620,1621],{},"Sonner",[1216,1623,1624],{},"Toast 通知",[1125,1626,1627],{"id":1627},"编辑与内容渲染",[1192,1629,1630,1638],{},[1195,1631,1632],{},[1198,1633,1634,1636],{},[1201,1635,1400],{},[1201,1637,1403],{},[1211,1639,1640,1647,1654,1662],{},[1198,1641,1642,1644],{},[1216,1643,57],{},[1216,1645,1646],{},"react-markdown + remark-gfm + rehype 系列",[1198,1648,1649,1652],{},[1216,1650,1651],{},"图表",[1216,1653,1288],{},[1198,1655,1656,1659],{},[1216,1657,1658],{},"代码编辑",[1216,1660,1661],{},"monaco-editor + @monaco-editor\u002Freact",[1198,1663,1664,1667],{},[1216,1665,1666],{},"节点流程图",[1216,1668,1669],{},"reactflow",[1272,1671],{},[1096,1673,1674],{"id":1674},"当前进度",[1101,1676,1677],{},"Phase 0 已闭环。五个核心包全部可构建、可测试，端到端通路已验证。",[1125,1679,1680],{"id":1680},"已交付",[1101,1682,1683,1687],{},[1684,1685,1686],"strong",{},"M0 — monorepo 骨架。"," pnpm workspace 立起五个包，共享 tsconfig，dependency-cruiser 守住架构红线，oxlint\u002Fprettier\u002Fcommitlint 工具链完整。",[1101,1689,1690,1693,1694,1697,1698,1701,1702,1701,1705,1708,1709,1712],{},[1684,1691,1692],{},"M1 — Agent Core 状态机。"," ",[1171,1695,1696],{},"runAgent"," 异步生成器驱动主循环：idle → streaming → awaiting_tool → awaiting_user → done。",[1171,1699,1700],{},"LLMPort"," \u002F ",[1171,1703,1704],{},"ToolPort",[1171,1706,1707],{},"StorePort"," 三个端口接口定义在内核中，具体实现在外层注入。",[1171,1710,1711],{},"HarnessPort"," 接口预留，NoopHarness 占位。6 个单测覆盖纯对话、工具回灌、确认门、maxTurns 保护、错误传播、取消信号。",[1101,1714,1715,1693,1718,1721,1722,1725],{},[1684,1716,1717],{},"M2 — OpenAI Provider。",[1171,1719,1720],{},"OpenAIProvider implements LLMPort","，覆盖 SSE 流式解析、按 index 增量拼接 tool_call、Msg\u002FToolDef ↔ OpenAI 协议互转、错误归一化（API 错误 \u002F 网络错误 \u002F 流异常 \u002F 取消）。",[1171,1723,1724],{},"createProvider"," 工厂函数支持动态路由。30 个单测。",[1101,1727,1728,1693,1731,1734,1735,1738,1739,1742,1743,1746,1747,1750],{},[1684,1729,1730],{},"M3 — 工具系统 + 沙箱。",[1171,1732,1733],{},"ToolRegistry implements ToolPort","，zod schema 校验。内置 ",[1171,1736,1737],{},"fs.read","（行号范围）、",[1171,1740,1741],{},"fs.write","（diff 预览）、",[1171,1744,1745],{},"shell.exec","（sh -c 管道）。Sandbox 三层：路径白名单（防路径穿越）、命令黑名单（9 条危险模式）、确认策略（auto\u002Fask\u002Fdeny）。",[1171,1748,1749],{},"ConfirmRequiredError"," 携带 callId 支持外部确认回灌。40 个单测。",[1101,1752,1753,1693,1756,1758,1759,1761,1762,1765,1766,1769,1770,1772],{},[1684,1754,1755],{},"M4 — 接入层 + CLI + Web。",[1171,1757,1353],{},"：Hono daemon，POST \u002Fv1\u002Fchat SSE 端点，SQLite 持久化。动态 Provider 路由，Web UI 可配置多服务商、热切换、API key 掩码。",[1171,1760,1366],{},"：CLI 入口，",[1171,1763,1764],{},"agent serve"," 启 daemon，",[1171,1767,1768],{},"agent exec"," 一次性任务。",[1171,1771,1378],{},"：React 前端，SSE AgentEvent 消费，工具调用面板，确认弹窗，ProviderSettings 配置面板。",[1101,1774,1775,1778],{},[1684,1776,1777],{},"累计","：88 个测试（14 个文件），全仓 typecheck \u002F build \u002F lint \u002F deps:check 通过。",[1125,1780,1781],{"id":1781},"遗留",[1101,1783,1784,1787],{},[1171,1785,1786],{},"server\u002F","（Go + Gin + faasrouter + Thrift IDL）暂时搁置，Phase 2 后端需时开始进行评估。",[1272,1789],{},[1096,1791,1792],{"id":1792},"接下来的工作",[1101,1794,1795],{},"按优先级排列，每条支线相互独立，可按需切入。",[1125,1797,1799],{"id":1798},"_1-收尾清理","1. 收尾清理",[1105,1801,1802,1805,1808,1811],{},[1108,1803,1804],{},"前端 MVP 样式优化",[1108,1806,1807],{},"清掉未使用的依赖（@radix-ui 部分组件、ahooks、axios、swr、usehooks-ts）",[1108,1809,1810],{},"bundle 拆分：react-markdown \u002F highlight.js 改用 dynamic import，消除 614KB chunk",[1108,1812,1813],{},"修复 lint-staged 在部分环境下的 stash-restore 异常",[1125,1815,1817],{"id":1816},"_2-mcp-协议支持","2. MCP 协议支持",[1101,1819,1820,1821,1823,1824,1826],{},"Phase 1 价值最大的一项。接入 Model Context Protocol，让 agent 能消费外部工具和数据源（stdio 和 HTTP 两种 transport）。内核的 ",[1171,1822,1704],{}," 已为此预留接口——MCP 客户端只需作为 ",[1171,1825,1704],{}," 的另一个实现注入，内核零改动。",[1125,1828,1830],{"id":1829},"_3-多-provider-扩展","3. 多 Provider 扩展",[1101,1832,1833,1834,1836,1837,1840,1841,1843],{},"当前 LLM 层只有 OpenAI 兼容适配器。",[1171,1835,1700],{}," 接口天然支持新增 Anthropic 等 Provider。",[1171,1838,1839],{},"dynamic-llm.ts"," 已有骨架，主要是 ",[1171,1842,1340],{}," 内加适配器实现。",[1125,1845,1847],{"id":1846},"_4-项目记忆","4. 项目记忆",[1101,1849,1850,1851,1854],{},"让 agent 读取并遵守项目根目录的 ",[1171,1852,1853],{},"AGENTS.md"," 约定文件。内容按层级组织：根目录放全局规范（架构、编码规范、Agent 路由决策树），业务目录放模块知识。记忆文件只描述\"在哪查、怎么查\"，不存易变数据。",[1125,1856,1858],{"id":1857},"_5-终端-ui","5. 终端 UI",[1101,1860,1861,1862,1864],{},"当前 CLI 只有 ",[1171,1863,1768],{}," 的一次性任务模式。补充交互式 REPL，可选 Ink（React）或 Bubble Tea（Go）实现。Core\u002FUI 已经解耦，可并行推进。",[1125,1866,1868],{"id":1867},"_6-harness-框架","6. Harness 框架",[1101,1870,1871,1872,1875,1876,1879,1880,1883],{},"将 ",[1171,1873,1874],{},"NoopHarness"," 替换为 ",[1171,1877,1878],{},"MarkdownHarness","：复杂任务自动在 ",[1171,1881,1882],{},".liskin\u002Fharness\u002Factive\u002F"," 下创建 Markdown 任务文档，记录用户意图、待办节点、已完成节点、闸门、控制状态。每个工具调用闭环后落盘节点结果。目标：任务中断能续跑、长任务可审计、执行过程可回溯。",[1125,1885,1887],{"id":1886},"_7-沙箱执行加固","7. 沙箱执行加固",[1105,1889,1890,1896,1899],{},[1108,1891,1892,1895],{},[1171,1893,1894],{},"--sandbox"," 标志，接入 OS 级隔离（Linux bubblewrap \u002F macOS sandbox-exec）",[1108,1897,1898],{},"写\u002F删文件前的 diff 预览",[1108,1900,1901],{},"撤销栈",[1272,1903],{},[1096,1905,1906],{"id":1906},"阶段路线图",[1125,1908,1910],{"id":1909},"phase-0已完成","Phase 0（已完成）",[1101,1912,1913],{},"单体本地 Agent 跑通端到端：用户对话 → 模型流式输出 → 工具调用 → 沙箱确认 → 执行 → 结果回灌 → 继续对话 → 完成。Web UI、CLI、Hono daemon 全部到位。",[1125,1915,1917],{"id":1916},"phase-1当前阶段","Phase 1（当前阶段）",[1101,1919,1920],{},"目标：终端常驻可用，覆盖 80% 日常编码需求。",[1922,1923,1924,1930,1936,1945,1951,1957],"ol",{},[1108,1925,1926,1929],{},[1684,1927,1928],{},"Agent Loop 完善","：Read → Plan → Act → Verify 循环，工具集扩展（read_file、write_file、run_shell、list_files、grep、edit）",[1108,1931,1932,1935],{},[1684,1933,1934],{},"沙箱隔离","：OS 级机制（Landlock\u002Fseccomp）限制文件系统和网络访问，默认最小权限，按需扩展",[1108,1937,1938,1941,1942,1944],{},[1684,1939,1940],{},"项目感知","：读取 ",[1171,1943,1853],{}," 和项目配置文件，构建指令链，让 Agent 理解项目结构和约定",[1108,1946,1947,1950],{},[1684,1948,1949],{},"审批机制","：多级审批（只读→需确认→全自动），可编程 hook 系统拦截生命周期事件",[1108,1952,1953,1956],{},[1684,1954,1955],{},"工具协议标准化","：MCP 客户端消费外部工具，工具 schema 以 JSON Schema 传给模型，支持 stdio 和 HTTP 两种 transport",[1108,1958,1959,1962],{},[1684,1960,1961],{},"上下文管理","：自动压缩（compaction），session 持久化和恢复，上下文健康度监控",[1125,1964,1966],{"id":1965},"phase-2","Phase 2",[1101,1968,1969],{},"条件触发——只有真实需求出现才启动。",[1922,1971,1972,1978],{"start":899},[1108,1973,1974,1977],{},[1684,1975,1976],{},"可观测性","：结构化日志（JSONL session transcripts），OpenTelemetry Tracing，Token 用量计量",[1108,1979,1980,1983],{},[1684,1981,1982],{},"多 Agent 协作","：子 Agent 定义（TOML），并行执行 + 结果聚合，MCP Server 模式（自身也能被其他 agent 调用）",[1125,1985,1987],{"id":1986},"phase-3","Phase 3+",[1101,1989,1990],{},"触发条件更严格，有可能永远不做。",[1922,1992,1993,2002,2011],{"start":940},[1108,1994,1995,1998,1999,2001],{},[1684,1996,1997],{},"后端网关","：Key 托管、多用户、审计、限流（激活 ",[1171,2000,1786],{}," Go 代码）",[1108,2003,2004,2007,2008,2010],{},[1684,2005,2006],{},"IDE 插件","：VSCode \u002F JetBrains 插件，连接同一个 ",[1171,2009,1764],{}," daemon",[1108,2012,2013,2016],{},[1684,2014,2015],{},"工作流编排","：多 Agent DAG 执行。设计文档明确警告——不要把 Agent 多步骤误当成工作流引擎，不要把 Harness 当 DAG 节点。",[1272,2018],{},[1096,2020,12],{"id":12},[1101,2022,2023],{},"参考资料： 构建AGENT 一般roadmap",[1101,2025,2026],{},"Step 1：确定 Agent Loop\n实现 Read → Plan → Act → Verify 循环\n给模型配备工具：read_file、write_file、run_shell、list_files",[1101,2028,2029],{},"Step 2：沙箱隔离\n用 OS 级机制（Landlock\u002Fseccomp\u002FSeatbelt）限制文件系统和网络\n默认最小权限，按需扩展",[1101,2031,2032],{},"Step 3：项目感知\n读取 AGENTS.md\u002F 项目配置文件\n构建指令链（instruction chain）",[1101,2034,2035],{},"Step 4：审批机制\n实现多级审批模式（从只读到全自动）\n提供可编程的 hook 系统拦截生命周期事件",[1101,2037,2038],{},"Step 5：工具协议\n实现 MCP 客户端（消费外部工具）\n将工具 schema 作为 JSON schema 传给模型\n支持 stdio 和 HTTP 传输",[1101,2040,2041],{},"Step 6：上下文管理\n实现自动压缩（compaction）\n支持 session 持久化和恢复\n监控上下文健康度",[1101,2043,2044],{},"Step 7：可观测性\n结构化日志（JSONL session transcripts）\nTracing（OpenTelemetry 导出）\nToken 计量",[1101,2046,2047],{},"Step 8：多代理扩展\n子代理定义（TOML 格式）\n并行执行 + 结果聚合\nMCP Server 模式（让自己也能被其他 agent 调用）",{"title":2049,"searchDepth":2050,"depth":2050,"links":2051},"",4,[2052,2054,2064,2065,2071,2075,2084,2090],{"id":1098,"depth":2053,"text":1099},2,{"id":1122,"depth":2053,"text":1123,"children":2055},[2056,2058,2059,2060,2061,2062,2063],{"id":1127,"depth":2057,"text":1127},3,{"id":1133,"depth":2057,"text":1134},{"id":1143,"depth":2057,"text":1144},{"id":1153,"depth":2057,"text":1153},{"id":1165,"depth":2057,"text":1166},{"id":1177,"depth":2057,"text":1177},{"id":1183,"depth":2057,"text":1183},{"id":1189,"depth":2053,"text":1190},{"id":1388,"depth":2053,"text":1388,"children":2066},[2067,2068,2069,2070],{"id":1391,"depth":2057,"text":1391},{"id":1471,"depth":2057,"text":1471},{"id":135,"depth":2057,"text":135},{"id":1627,"depth":2057,"text":1627},{"id":1674,"depth":2053,"text":1674,"children":2072},[2073,2074],{"id":1680,"depth":2057,"text":1680},{"id":1781,"depth":2057,"text":1781},{"id":1792,"depth":2053,"text":1792,"children":2076},[2077,2078,2079,2080,2081,2082,2083],{"id":1798,"depth":2057,"text":1799},{"id":1816,"depth":2057,"text":1817},{"id":1829,"depth":2057,"text":1830},{"id":1846,"depth":2057,"text":1847},{"id":1857,"depth":2057,"text":1858},{"id":1867,"depth":2057,"text":1868},{"id":1886,"depth":2057,"text":1887},{"id":1906,"depth":2053,"text":1906,"children":2085},[2086,2087,2088,2089],{"id":1909,"depth":2057,"text":1910},{"id":1916,"depth":2057,"text":1917},{"id":1965,"depth":2057,"text":1966},{"id":1986,"depth":2057,"text":1987},{"id":12,"depth":2053,"text":12},"https:\u002F\u002Fpic1.zhimg.com\u002F80\u002Fv2-aad998e4635454432798201472ffd04f_720w.webp?source=d16d100b","关于CodeAgent设计","md",true,{"uuid":156,"slots":2096},{},12,{"title":1085,"description":2092},"posts\u002FRFC_Agentic_project\u002F2026-06-19-[RFC]-Liskin_Code_Agent",[274,300],"waPjWjEy10Pbh7Xe5G4RaIR7tpU0r2MWtN6qoMckY0w",1790443283862]