{
  "version": "https://jsonfeed.org/version/1", 
  "title": "\u7a0b\u5e8f\u5458", 
  "description": "While code monkeys are not eating bananas, they're coding.", 
  "home_page_url": "https://www.v2ex.com/go/programmer", 
  "feed_url": "https://www.v2ex.com/feed/programmer.json", 
  "icon": "https://cdn.v2ex.com/navatar/94f6/d7e0/300_large.png?m=1733731195", 
  "favicon": "https://cdn.v2ex.com/navatar/94f6/d7e0/300_normal.png?m=1733731195", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/xiangqiankan", 
        "name": "xiangqiankan", 
        "avatar": "https://cdn.v2ex.com/avatar/82be/05c6/674278_large.png?m=1706750043"
      }, 
      "url": "https://www.v2ex.com/t/1204827", 
      "date_modified": "2026-04-10T03:33:03+00:00", 
      "content_html": "<p>\u636e\u591a\u4f4d\u77e5\u60c5\u4eba\u58eb\u5411\u5a92\u4f53\u900f\u9732\uff0cDeepSeek \u521b\u59cb\u4eba\u6881\u6587\u950b\u8fd1\u65e5\u5728\u5185\u90e8\u6c9f\u901a\u4e2d\u900f\u9732\uff0cDeepSeek \u65b0\u4e00\u4ee3\u65d7\u8230\u5927\u6a21\u578b DeepSeekV4 \u5c06\u4e8e 4 \u6708\u4e0b\u65ec\u6b63\u5f0f\u53d1\u5e03\u3002\u8fd1\u671f\uff0cDeepSeek \u7f51\u9875\u7aef\u6084\u7136\u4e0a\u7ebf\u4e86\u201c\u5feb\u901f\u6a21\u5f0f\u201d\u548c\u201c\u4e13\u5bb6\u6a21\u5f0f\u201d\u4e24\u79cd\u4ea4\u4e92\u6a21\u5f0f\uff0c\u652f\u6301\u7b80\u6d01\u641c\u7d22\u548c\u957f\u7a0b\u3001\u590d\u6742\u95ee\u9898\u5904\u7406\uff0c\u5f15\u53d1\u4e1a\u5185\u5bf9\u4e8e V4 \u6a21\u578b\u53d1\u5e03\u7684\u731c\u6d4b\u3002\u76f8\u5173\u6d88\u606f\u663e\u793a\uff0cDeepSeekV4 \u4e0d\u4ec5\u5c06\u5e26\u6765\u4e07\u4ebf\u53c2\u6570\u89c4\u6a21\u548c\u767e\u4e07\u7ea7\u4e0a\u4e0b\u6587\u7a97\u53e3\uff0c\u66f4\u9996\u6b21\u5b9e\u73b0\u4e0e\u534e\u4e3a\u6607\u817e\u7b49\u56fd\u4ea7\u82af\u7247\u7684\u6df1\u5ea6\u9002\u914d\uff0c\u6807\u5fd7\u7740\u4e2d\u56fd AI \u4ea7\u4e1a\u5728\u201c\u53bb CUDA \u5316\u201d\u9053\u8def\u4e0a\u8fc8\u51fa\u7684\u5173\u952e\u4e00\u6b65\u3002\u6709\u5916\u5a92\u62a5\u9053\u79f0\uff0c\u4e3a\u8fce\u63a5 V4 \u53d1\u5e03\uff0c\u963f\u91cc\u5df4\u5df4\u3001\u5b57\u8282\u8df3\u52a8\u3001\u817e\u8baf\u7b49\u56fd\u5185\u79d1\u6280\u5de8\u5934\u5df2\u9884\u8ba2\u6570\u5341\u4e07\u7247\u65b0\u4e00\u4ee3 AI \u7b97\u529b\u82af\u7247\uff0c\u8ba1\u5212\u901a\u8fc7\u4e91\u670d\u52a1\u63d0\u4f9b DeepSeek \u65b0\u6a21\u578b\uff0c\u5e76\u5c06\u5176\u96c6\u6210\u5230\u81ea\u8eab AI \u4ea7\u54c1\u4e2d\u3002\u53d7\u6b64\u5f71\u54cd\uff0c\u65b0 AI \u82af\u7247\u4ea7\u54c1\u8fd1\u671f\u4ef7\u683c\u5df2\u4e0a\u6da8\u7ea6 20%\u3002\u622a\u81f3\u53d1\u7a3f\uff0cDeepSeek \u65b9\u9762\u5e76\u672a\u56de\u5e94\u95ee\u8be2\u3002(\u65b0\u6d6a\u79d1\u6280)</p>\n", 
      "date_published": "2026-04-10T03:32:52+00:00", 
      "title": "\u4f20\u6881\u6587\u950b\u5185\u90e8\u53d1\u58f0\uff0c DeepSeek V4 \u5c06\u4e8e 4 \u6708\u4e0b\u65ec\u53d1\u5e03", 
      "id": "https://www.v2ex.com/t/1204827"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jedeft", 
        "name": "jedeft", 
        "avatar": "https://cdn.v2ex.com/gravatar/32c4cbaf6d15745f0c2582540a7038b7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204826", 
      "title": "codex \u4e0e cursor \u6bd4\u5982\u4f55\uff1f", 
      "id": "https://www.v2ex.com/t/1204826", 
      "date_published": "2026-04-10T03:27:12+00:00", 
      "content_html": "<p>\u76ee\u524d\u4e3b\u8981\u7528 cursor \uff0c\u611f\u89c9\u7528\u8d77\u6765\u8fd8\u884c\uff0c\u8981\u4e0d\u8981\u6362</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/devzhaoyou", 
        "name": "devzhaoyou", 
        "avatar": "https://cdn.v2ex.com/avatar/d0ac/322f/641609_large.png?m=1774840373"
      }, 
      "url": "https://www.v2ex.com/t/1204825", 
      "title": "\u6df1\u5ea6\u5b66\u4e60\u4e3a\u4ec0\u4e48\u5f88\u5c11\u63d0\u4e86\uff0c\u666e\u901a\u5f00\u53d1\u6709\u8f6c\u5927\u6a21\u578b\u7684\u53ef\u80fd\u5417", 
      "id": "https://www.v2ex.com/t/1204825", 
      "date_published": "2026-04-10T03:21:00+00:00", 
      "content_html": "<p>\u4e2a\u4eba\u505a\u7684\u666e\u901a\u5ba2\u6237\u7aef\u5f00\u53d1\uff0c\u4e5f\u4e86\u89e3\u70b9\u670d\u52a1\u7aef\u5f00\u53d1\uff0c\u4e4b\u524d\u8fd8\u5b66\u4e60\u8fc7\u6df1\u5ea6\u5b66\u4e60\uff0c\u4e4b\u524d\u8fd8\u60f3\u8f6c\u6df1\u5ea6\u5b66\u4e60\u5f00\u53d1\uff0c\u4e70\u5f20\u5361\u8fd8\u80fd\u8bad\u7ec3\u8c03\u8bd5\u4e0b\u3002\u4f46\u662f\u73b0\u5728\u7684\u8d8b\u52bf\u662f\u5927\u6a21\u578b\u706b\uff0c\u611f\u89c9\u6df1\u5ea6\u5b66\u4e60\u5f88\u5c11\u6709\u4eba\u63d0\u4e86\uff0c\u90fd\u5728\u641e\u5927\u6a21\u578b\u3002</p>\n<p>\u4f46\u662f\u5bf9\u4e8e\u666e\u901a\u7684\u5f00\u53d1\u60f3\u8f6c\u5927\u6a21\u578b\uff0c\u662f\u641e\u5f00\u53d1\u5462\u8fd8\u662f\u641e\u5e94\u7528\uff0c\u800c\u4e14\u5927\u6a21\u578b\u8bad\u7ec3 N \u5f20\u5361\uff0c\u4e5f\u4e0d\u662f\u666e\u901a\u4eba\u80fd\u8c03\u8bd5\u6d4b\u8bd5\u7684\u5440\uff0c \u8fd9\u5757\u4e0d\u662f\u5f88\u4e86\u89e3\u3002\u6240\u4ee5\u666e\u901a\u5f00\u53d1\uff0c\u5982\u679c\u6ca1\u6709\u516c\u53f8\u63d0\u4f9b\u8d44\u6e90\uff0c\u57fa\u672c\u63a5\u89e6\u4e0d\u5927\u5927\u6a21\u578b\u5f00\u53d1\u5417\uff1f</p>\n<p>\u73b0\u5728\u89c9\u7684\u53ea\u505a\u4f20\u7edf\u7684\u5f00\u53d1\u611f\u89c9\u6ca1\u6709\u51fa\u8def\u4e86\uff0c\u6240\u4ee5\u8bf7\u6559\u5404\u4f4d\uff0c\u5982\u679c\u8f6c\u7684\u8bdd\u4ec0\u4e48\u65b9\u5411\u6bd4\u8f83\u597d</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dashsoap97", 
        "name": "dashsoap97", 
        "avatar": "https://cdn.v2ex.com/gravatar/c309db39f99ff91f89abc86fdae87bd3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204824", 
      "date_modified": "2026-04-10T03:15:48+00:00", 
      "content_html": "\u8054\u7cfb\u65b9\u5f0f QQ: MzYwMDYyNTg5", 
      "date_published": "2026-04-10T03:14:18+00:00", 
      "title": "\u51fa see dance2.0 \u63a5\u53e3 \u5b98\u65b9\u539f\u4ef7 1 \u5143/s \u91cf\u5927 9 \u6bdb \u81ea\u52a8\u8fc7\u767d \u53ef\u771f\u4eba \u4e0d\u9650\u5236\u5e76\u53d1", 
      "id": "https://www.v2ex.com/t/1204824"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/daqing", 
        "name": "daqing", 
        "avatar": "https://cdn.v2ex.com/avatar/2838/023a/51_large.png?m=1761700075"
      }, 
      "url": "https://www.v2ex.com/t/1204810", 
      "title": "KongChat - \u4e13\u4e3a\u7a0b\u5e8f\u5458\u8bbe\u8ba1\u7684\u804a\u5929\u8f6f\u4ef6\uff0c Dark \u6a21\u5f0f\u9884\u89c8", 
      "id": "https://www.v2ex.com/t/1204810", 
      "date_published": "2026-04-10T02:46:01+00:00", 
      "content_html": "<p>\u8fd9\u662f\u5728\u5f00\u53d1\u4e2d\u7684 Dark \u6a21\u5f0f\u9884\u89c8\u754c\u9762\u3002</p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/6nES8HT.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/alcoholpad", 
        "name": "alcoholpad", 
        "avatar": "https://cdn.v2ex.com/avatar/5280/fc5b/402001_large.png?m=1775788378"
      }, 
      "url": "https://www.v2ex.com/t/1204807", 
      "date_modified": "2026-04-10T02:37:29+00:00", 
      "content_html": "<p>\u6700\u8fd1\u770b\u5230\u8fd9\u4e2a\u65b0\u95fb\uff1a <a href=\"https://news.china.com/socialgd/10000169/20260406/49389580.html\" rel=\"nofollow\">https://news.china.com/socialgd/10000169/20260406/49389580.html</a> \uff0c</p>\n<p>\u597d\u5947\u641c\u4e86\u4e0b\uff0c\u8fd9\u597d\u50cf\u662f\u540c\u4e00\u4e2a\u4eba\u554a\uff01</p>\n<p>\u4e4b\u524d\u8fd8\u56e0\u7092\u80a1\u5de8\u4e8f\u4e0a\u8fc7\u65b0\u95fb\uff1a <a href=\"https://news.sina.cn/2024-10-21/detail-inctiimz8732077.d.html?vt=4\" rel=\"nofollow\">https://news.sina.cn/2024-10-21/detail-inctiimz8732077.d.html?vt=4</a></p>\n<p><a href=\"https://v2ex.com/t/1085296#r_15469051\" rel=\"nofollow\">https://v2ex.com/t/1085296#r_15469051</a></p>\n", 
      "date_published": "2026-04-10T02:36:39+00:00", 
      "title": "\u5c0f\u4f19\u4e00\u4eba\u516c\u53f8\u4f30\u503c\u8d85 3000 \u4e07\uff0c AI \u521b\u4e1a\u65b0\u98ce\u53e3", 
      "id": "https://www.v2ex.com/t/1204807"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pheyer", 
        "name": "pheyer", 
        "avatar": "https://cdn.v2ex.com/avatar/a6a2/62e3/44095_large.png?m=1469766841"
      }, 
      "url": "https://www.v2ex.com/t/1204805", 
      "date_modified": "2026-04-10T02:38:06+00:00", 
      "content_html": "<p>\u5f88\u65e9\u4e4b\u524d\u873b\u8713\u70b9\u6c34\u63a5\u89e6\u8fc7\u4e00\u70b9\u5b89\u5353\uff0c\u8fd8\u4e0d\u77e5\u9053\u8fd9\u4e00\u70b9\uff0c\u6700\u8fd1\u8981\u4e0b\u8f7d\u540c\u4e8b\u7684\u9e3f\u8499\u4ee3\u7801\u6d4b\u8bd5\uff0c\u624d\u53d1\u73b0\u8fd9\u4e2a\u95ee\u9898\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u4e60\u60ef\u4e86 iOS \u5f00\u53d1\u7684\u4eba\uff0c\u8868\u793a\u532a\u5937\u6240\u601d</p>\n", 
      "date_published": "2026-04-10T02:35:35+00:00", 
      "title": "2026 \u5e74\u4e86\uff0c\u5b89\u5353\u3001\u9e3f\u8499\u9879\u76ee\u8def\u5f84\u5c45\u7136\u8fd8\u662f\u8981\u6c42\u4e0d\u80fd\u6709\u4e2d\u6587", 
      "id": "https://www.v2ex.com/t/1204805"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sikuu2al", 
        "name": "sikuu2al", 
        "avatar": "https://cdn.v2ex.com/avatar/5e91/67c1/670669_large.png?m=1762418516"
      }, 
      "url": "https://www.v2ex.com/t/1204802", 
      "title": "\u6700\u8212\u670d\u5e94\u8be5\u662f cursor \u521a\u51fa\u7684\u65f6\u5019...", 
      "id": "https://www.v2ex.com/t/1204802", 
      "date_published": "2026-04-10T02:28:15+00:00", 
      "content_html": "<p>\u5f53\u65f6 vibe coding \u7684\u6982\u5ff5\u8fd8\u6ca1\u8fd9\u4e48\u706b\uff0c\u524d\u7aef\u4e5f\u8fd8\u662f\u524d\u7aef\uff0c\u540e\u7aef\u4e5f\u8fd8\u662f\u540e\u7aef\u3002\u8001\u677f\u4e5f\u4e0d\u61c2\u8fd9\u4e9b\uff0c\u6bcf\u5929\u4e0a\u73ed\u5c31\u7528 cursor \u5feb\u901f\u641e\u5b8c\u90a3\u70b9\u5c0f\u6d3b... \u53ef\u60dc\u82b1\u671f\u4e0d\u5230\u4e24\u4e2a\u6708\ud83e\udd40</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/EricGoodMan", 
        "name": "EricGoodMan", 
        "avatar": "https://cdn.v2ex.com/avatar/0daa/5438/511736_large.png?m=1735104940"
      }, 
      "url": "https://www.v2ex.com/t/1204777", 
      "title": "opencode \u4e3a\u4ec0\u4e48\u52a0\u8f7d\u4e0d\u4e86 ohmyopencode \u4e86\uff0c\u6211\u7684\u95ee\u9898\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1204777", 
      "date_published": "2026-04-10T01:06:32+00:00", 
      "content_html": "<p>\u4e4b\u524d\u8fd8\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u7684\uff0c\u6628\u5929\u53d1\u73b0\u4e0d\u884c\u4e86\u3002ohmyopencode \u901a\u8fc7 cc-switch \u6765\u7ba1\u7406\u914d\u7f6e\u7684\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mikifuns", 
        "name": "mikifuns", 
        "avatar": "https://cdn.v2ex.com/gravatar/1c0a3c64d916c64565a63c17b41f9680?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204764", 
      "date_modified": "2026-04-09T23:19:37+00:00", 
      "content_html": "<p><a href=\"https://help.openai.com/en/articles/20001106-codex-rate-card\" rel=\"nofollow\">Codex rate card</a><br/>\nNote: As of April 2, 2026, we\u2019ve updated Codex pricing to align with API token usage, instead of per-message pricing. This change is applicable to <strong>new and existing Plus, Pro</strong>, ChatGPT Business and new ChatGPT Enterprise plans - please refer to the new rate card in the section below for details.<br/>\n<a href=\"https://x.com/OpenAI/status/2042295688323875316\" rel=\"nofollow\" title=\"tweet\">\u63a8\u6587</a><br/>\n\u7559\u610f\u4e0b\u7528\u91cf\u5427...\uff08\u522b\u5fd8\u4e86\u76ee\u524d\u662f\u4e34\u65f6\u7684\u53cc\u500d\u6d41\u91cf\uff09<br/>\nPlus \u7684 5 \u5c0f\u65f6\u7528\u91cf\u4e5f\u5c06\u88ab\u8c03\u6574\u3002<br/>\n\u7761\u9192\u89c9\u540e plus \u7528\u6237\u7684\u5929\u584c\u4e86</p>\n", 
      "date_published": "2026-04-09T23:18:58+00:00", 
      "title": "Codex \u6539\u4e3a Token \u8ba1\u8d39\u4e86...", 
      "id": "https://www.v2ex.com/t/1204764"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cby0414", 
        "name": "cby0414", 
        "avatar": "https://cdn.v2ex.com/gravatar/a39fdbb7a2db9dda47beac31ab5113ba?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204720", 
      "title": "\u300c\u8001\u677f\u7ed9\u6211 5000 \u8ba9\u6211\u505a\u4e00\u4e2a\u6dd8\u5b9d\u300d\u653e\u5230\u4eca\u5929\u6216\u8005\u4e0d\u8fdc\u7684\u5c06\u6765\u6709\u6ca1\u6709\u53ef\u80fd\u771f\u7684\u80fd\u5b9e\u73b0\uff1f", 
      "id": "https://www.v2ex.com/t/1204720", 
      "date_published": "2026-04-09T14:12:38+00:00", 
      "content_html": "<p>\u7b49\u5f85 AI \u5e72\u6d3b\u65f6\uff0c\u7a81\u53d1\u5947\u60f3\uff0c\u5f53\u7136\u4e0d\u662f\u8981\u505a\u4e00\u4e2a\u201c\u73b0\u5728\u201d\u7684\u6dd8\u5b9d\uff0c\u7cbe\u7b80\u70b9\u505a\u4e00\u4e2a\u62e5\u6709\u5b8c\u6574\u8d2d\u7269\u3001\u652f\u4ed8\u3001\u5546\u54c1\u7ba1\u7406\u529f\u80fd\u7684\u7f51\u7ad9\u3002</p>\n<p>\u5982\u679c\u5404\u4f4d\u89c9\u5f97 5000 \u5757\u505a\u4e0d\u51fa\uff0c\u53ef\u4ee5\u9884\u6d4b\u4e0b\u5728\u5f53\u4e0b\u7684\u65f6\u95f4\u8282\u70b9\uff0c\u54ea\u79cd\u6a21\u578b / \u82b1\u591a\u5c11\u94b1\u7684 token \u4e5f\u8bb8\u80fd\u505a\u7684\u51fa\uff1f</p>\n<p>\u5355\u7eaf\u56fe\u4e00\u4e50\u7684\u60f3\u6cd5\uff0c\u89c9\u5f97\u4e5f\u8bb8\u633a\u6709\u8da3\u7684\u5c31\u53d1\u4e0a\u6765\u4e86\uff0c\u53d1\u5b8c\u8d34\u7ee7\u7eed\u6307\u6325 AI \u5e72\u6d3b</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pierreoui12", 
        "name": "pierreoui12", 
        "avatar": "https://cdn.v2ex.com/gravatar/ea058f1b64fb20146488ada6b74bf3d1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204716", 
      "date_modified": "2026-04-09T13:41:47+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u505a\u4e00\u4e2a\u57fa\u4e8e Tauri + Rust \u7684 SSH \u7ec8\u7aef\u5ba2\u6237\u7aef\uff08<a href=\"https://github.com/AnalyseDeCircuit/oxideterm\" rel=\"nofollow\">OxideTerm</a>\uff09\uff0c\u5e95\u5c42 SSH \u534f\u8bae\u7528\u7684 russh \u3002\u8fd9\u5468\u4fee\u4e86\u4e00\u4e2a\u6bd4\u8f83\u6709\u610f\u601d\u7684\u517c\u5bb9\u6027 bug \uff0c\u6d89\u53ca RSA SHA-2 \u8ba4\u8bc1\u5728\u4e25\u683c OpenSSH \u914d\u7f6e\u4e0b\u7684\u4e09\u6761\u8def\u5f84\uff0c\u8bb0\u5f55\u4e00\u4e0b\u6392\u67e5\u8fc7\u7a0b\u3002</p>\n<hr/>\n<h3>\u95ee\u9898</h3>\n<p>\u6709\u7528\u6237\u53cd\u9988 RSA \u79c1\u94a5\u5728\u67d0\u4e9b\u65b0\u90e8\u7f72\u7684\u670d\u52a1\u7aef\u4e0a\u767b\u4e0d\u4e0a\u3002\u8ba9 AI \u6392\u67e5\u540e\u53d1\u73b0\u4e0d\u662f\u5355\u70b9\u6545\u969c\uff0c\u800c\u662f RSA SHA-2 \u76f8\u5173\u7684\u4e09\u6761\u8ba4\u8bc1\u8def\u5f84\u90fd\u6709\u95ee\u9898\uff1a</p>\n<ul>\n<li>\u666e\u901a\u79c1\u94a5\u8ba4\u8bc1</li>\n<li>SSH Agent \u8ba4\u8bc1</li>\n<li>OpenSSH Certificate \u8ba4\u8bc1</li>\n</ul>\n<p>\u6839\u6e90\u662f\u540c\u4e00\u4ef6\u4e8b\uff1a<strong>OpenSSH 8.2+ \u9ed8\u8ba4\u7981\u7528 ssh-rsa \uff08 SHA-1 \uff09\uff0c\u53ea\u5141\u8bb8 rsa-sha2-256 / rsa-sha2-512</strong>\u3002\u5ba2\u6237\u7aef\u5982\u679c\u8fd8\u5728\u7528\u65e7\u7684\u7b97\u6cd5\u540d\u6216\u8005\u534f\u5546\u903b\u8f91\u6709\u6f0f\u6d1e\uff0c\u4e25\u683c\u670d\u52a1\u7aef\u76f4\u63a5\u62d2\u3002</p>\n<hr/>\n<h3>\u79c1\u94a5\u548c Agent\uff1a\u76f8\u5bf9\u76f4\u767d</h3>\n<p><strong>\u79c1\u94a5\u8def\u5f84</strong>\uff1a\u6ca1\u6709\u6839\u636e server-sig-algs \u505a\u6b63\u786e\u7684 RSA \u7b97\u6cd5\u534f\u5546\u3002\u4fee\u590d\u540e\u6309 sha2-512 \u2192 sha2-256 \u2192 ssh-rsa \u7684\u987a\u5e8f\u5c1d\u8bd5\uff0c\u670d\u52a1\u7aef\u4e0d\u8ba9\u7ee7\u7eed\u5c31\u505c\u3002</p>\n<p><strong>Agent \u8def\u5f84</strong>\uff1a\u8c03 russh \u7684\u8ba4\u8bc1 API \u65f6 hash_alg \u4f20\u4e86 None \uff0c\u7b49\u4e8e\u653e\u5f03\u4e86 SHA-2 \u534f\u5546\u3002\u4fee\u590d\u7b56\u7565\u4e00\u6837\u2014\u2014RSA key \u8d70 SHA-2 \u987a\u5e8f\u5c1d\u8bd5\uff0c\u533a\u5206 transport error \u548c sign error \uff0c\u524d\u8005\u7acb\u5373\u8fd4\u56de\uff0c\u540e\u8005\u6362\u7b97\u6cd5\u91cd\u8bd5\u3002</p>\n<hr/>\n<h3>Certificate\uff1a\u8fd9\u624d\u662f\u6709\u610f\u601d\u7684\u90e8\u5206</h3>\n<p>russh 0.59 \u66b4\u9732\u4e86 <code>authenticate_certificate_with(cert, hash_alg, signer)</code> \u8fd9\u4e2a API \u3002\u7b2c\u4e00\u53cd\u5e94\u662f\u628a hash_alg \u4f20\u8fdb\u53bb\u5c31\u884c\u4e86\uff1f</p>\n<p><strong>\u4e0d\u884c\u3002</strong></p>\n<p>hash_alg \u786e\u5b9e\u80fd\u63a7\u5236 signer \u7528\u54ea\u4e2a hash \u7b97\u6cd5\u7b7e\u540d\uff0c\u4f46 russh \u5728\u628a\u8bc1\u4e66\u8ba4\u8bc1\u8bf7\u6c42<strong>\u7f16\u7801\u53d1\u7ed9\u670d\u52a1\u7aef</strong>\u7684\u65f6\u5019\uff0c\u5916\u5c42\u7684\u7b97\u6cd5\u540d\u4ecd\u7136\u5199\u6b7b\u4e86 <code>ssh-rsa-cert-v01@openssh.com</code>\u3002</p>\n<p>\u771f\u5b9e OpenSSH \u7684\u884c\u4e3a\u662f\uff1a<strong>\u5148\u770b\u5916\u5c42\u7b97\u6cd5\u540d\uff0c\u4e0d\u5bf9\u76f4\u63a5\u62d2\uff0c\u6839\u672c\u4e0d\u770b\u4f60\u7b7e\u540d\u7528\u4e86\u4ec0\u4e48 hash</strong>\u3002</p>\n<pre><code>\u5ba2\u6237\u7aef: \"\u6211\u8981\u7528 ssh-rsa-cert-v01@openssh.com \u8ba4\u8bc1\"\n\u670d\u52a1\u7aef: \"\u8fd9\u4e2a\u7b97\u6cd5\u6211\u4e0d\u8ba4\uff0c\u62d2\u7edd\u3002\"\n\u5ba2\u6237\u7aef: \"\u4f46\u662f\u6211\u91cc\u9762\u7528\u7684\u662f SHA-256 \u554a\uff01\"\n\u670d\u52a1\u7aef: \"\u6211\u4e0d\u7ba1\u91cc\u9762\u662f\u4ec0\u4e48\uff0c\u5916\u9762\u540d\u5b57\u4e0d\u5bf9\u5c31\u4e0d\u884c\u3002\"\n</code></pre>\n<p>\u6b63\u786e\u7684\u7b97\u6cd5\u540d\u5e94\u8be5\u662f <code>rsa-sha2-256-cert-v01@openssh.com</code> \u6216 <code>rsa-sha2-512-cert-v01@openssh.com</code>\u3002</p>\n<hr/>\n<h3>\u4fee\u4e86\u4e00\u5c42\uff0c\u53c8\u6765\u4e00\u5c42</h3>\n<p>\u786e\u8ba4\u5916\u5c42\u7b97\u6cd5\u540d\u662f\u95ee\u9898\u540e\uff0cvendor \u4e86\u4e00\u4efd russh 0.59 \u505a\u6700\u5c0f\u8865\u4e01\u2014\u2014\u53ea\u6539\u8bc1\u4e66\u53d1\u5305\u8def\u5f84\u7684\u7b97\u6cd5\u540d\u7f16\u7801\u3002</p>\n<p>\u6539\u5b8c\u8dd1\u771f\u5b9e OpenSSH \u6d4b\u8bd5\uff0cprobe \u9636\u6bb5\u901a\u8fc7\u4e86\u3002</p>\n<p><strong>\u4f46\u6700\u7ec8\u7b7e\u540d\u8bf7\u6c42\u53c8\u6302\u4e86</strong>\uff0cOpenSSH \u65e5\u5fd7\uff1a</p>\n<pre><code>parse signature packet: unexpected bytes remain after decoding\n</code></pre>\n<p>\u4e0d\u662f\u7b97\u6cd5\u540d\u7684\u95ee\u9898\u4e86\uff0c\u662f<strong>\u7b7e\u540d\u5305\u683c\u5f0f</strong>\u6709\u95ee\u9898\u3002</p>\n<p>russh \u7684\u81ea\u5b9a\u4e49 signer \u534f\u8bae\u8981\u6c42\u8fd4\u56de\u503c\u4e0d\u662f\u300c\u88f8\u7b7e\u540d\u300d\uff0c\u800c\u662f\u300c\u539f\u59cb to_sign buffer + \u8ffd\u52a0\u4e00\u4e2a length-prefixed signature blob \u300d\u3002\u672c\u5730\u8bc1\u4e66 signer \u53ea\u8fd4\u56de\u4e86\u7f16\u7801\u540e\u7684\u7b7e\u540d\u672c\u4f53\uff0c\u5c11\u4e86\u524d\u9762\u7684\u539f\u59cb\u6570\u636e\uff0cOpenSSH \u76f4\u63a5\u6309\u683c\u5f0f\u9519\u8bef\u5904\u7406\u3002</p>\n<p>\u5bf9\u7167 russh agent signer \u7684\u5b9e\u73b0\u786e\u8ba4\u4e86\u8fd9\u4e2a\u534f\u8bae\u7ea6\u5b9a\u540e\uff0c\u4fee\u6b63\u4e86\u8fd4\u56de\u683c\u5f0f\u3002</p>\n<hr/>\n<h3>\u9a8c\u8bc1</h3>\n<p>\u6211\u6ca1\u6709\u8ba9 AI \u53ea\u5199 mock test \u5c31\u6536\u5de5\uff0c\u56e0\u4e3a\u6211\u6015\u8fd8\u662f\u6709\u95ee\u9898\uff0c\u4e8e\u662f\u8ba9 GPT \u5199\u4e86\u4e00\u7ec4<strong>\u771f\u5b9e\u672c\u5730 OpenSSH \u96c6\u6210\u6d4b\u8bd5</strong>\uff1a</p>\n<ul>\n<li>\u672c\u5730\u542f\u52a8\u771f\u5b9e <code>sshd</code> + <code>ssh-agent</code></li>\n<li><code>ssh-keygen</code> \u751f\u6210\u771f\u5b9e RSA key \u548c user certificate</li>\n<li>\u5206\u522b\u5bf9\u670d\u52a1\u7aef\u65bd\u52a0 <code>rsa-sha2-256-only</code> \u548c <code>rsa-sha2-512-only</code> \u9650\u5236</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>\u8def\u5f84</th>\n<th>rsa-sha2-256-only</th>\n<th>rsa-sha2-512-only</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Agent</td>\n<td>\u2705</td>\n<td>\u2705</td>\n</tr>\n<tr>\n<td>Certificate</td>\n<td>\u2705</td>\n<td>\u2705</td>\n</tr>\n</tbody></table><p>\u4e3a\u4ec0\u4e48\u575a\u6301\u7528\u771f\u5b9e sshd \uff1f\u56e0\u4e3a\u8fd9\u6b21\u7684\u4e24\u5c42 bug\u2014\u2014\u7b97\u6cd5\u540d\u7f16\u7801\u548c\u7b7e\u540d\u5305\u683c\u5f0f\u2014\u2014\u5728 mock \u73af\u5883\u4e0b\u6839\u672c\u4e0d\u4f1a\u89e6\u53d1\uff0c\u53ea\u6709\u5728\u771f\u5b9e\u4e8c\u8fdb\u5236\u6d41\u4ea4\u6362\u65f6\u624d\u4f1a\u66b4\u9732\u3002</p>\n<hr/>\n<h3>\u53e0\u7532\uff1a\u4e3a\u4ec0\u4e48 vendor \u800c\u4e0d\u662f\u63d0 PR</h3>\n<ol>\n<li>russh \u7684\u7ef4\u62a4\u8282\u594f\u548c\u9879\u76ee\u4e0d\u5b8c\u5168\u540c\u6b65\uff0c\u7b49\u4e0a\u6e38\u5408\u5e76\u53d1\u7248\u65f6\u95f4\u4e0d\u53ef\u63a7</li>\n<li>\u8865\u4e01\u53ea\u6539\u4e86\u4e00\u4e2a\u51fd\u6570\u7684\u7b97\u6cd5\u540d\u7f16\u7801\uff0cdiff \u4e0d\u5230 30 \u884c</li>\n<li>\u95ee\u9898\u53ea\u6709\u5728\u4e25\u683c\u9650\u5236 <code>PubkeyAcceptedAlgorithms</code> \u7684\u771f\u5b9e OpenSSH \u4e0a\u624d\u80fd\u590d\u73b0</li>\n<li>\u7528 <code>[patch.crates-io]</code> \u5f15\u7528\u672c\u5730 vendor \uff0c\u4e0a\u6e38\u4fee\u4e86\u968f\u65f6\u5207\u56de</li>\n</ol>\n<hr/>\n<h3>\u8fd9\u4e2a bug \u5f71\u54cd\u8c01</h3>\n<p>\u5982\u679c\u4f60\u7684\u670d\u52a1\u7aef\u662f\u8fd9\u51e0\u5e74\u65b0\u90e8\u7f72\u7684\uff0c\u6216\u8005\u624b\u52a8\u52a0\u4e86\uff1a</p>\n<pre><code>PubkeyAcceptedAlgorithms rsa-sha2-256,rsa-sha2-512\n</code></pre>\n<p>\u90a3\u4e48\u4efb\u4f55\u57fa\u4e8e russh 0.59 \u505a SSH Certificate \u8ba4\u8bc1\u7684\u9879\u76ee\u7406\u8bba\u4e0a\u90fd\u4f1a\u8e29\u5230\u3002\u4e0d\u53ea\u662f\u6211\u4eec\u7684\u95ee\u9898\uff0c<strong>russh \u672c\u8eab\u5728\u8bc1\u4e66\u8def\u5f84\u4e0a\u7684\u534f\u8bae\u7f16\u7801\u5c31\u6709\u7f3a\u53e3</strong>\u3002</p>\n<p>\u5bf9\u4e86\uff0c\u8fd9\u662f\u6211\u4eec\u7684\u9879\u76ee\uff0c\u6709\u5174\u8da3\u7684\u8bdd\u4e5f\u53ef\u4ee5\u770b\u770b</p>\n<p>\u9879\u76ee\u5730\u5740\uff1a <a href=\"https://github.com/AnalyseDeCircuit/oxideterm\" rel=\"nofollow\">https://github.com/AnalyseDeCircuit/oxideterm</a></p>\n<p>\u5b98\u7f51\uff1a <a href=\"https://oxideterm.app\" rel=\"nofollow\">https://oxideterm.app</a></p>\n<hr/>\n<p><strong>\u540e\u7eed\u60f3\u6cd5</strong>\uff1a\u6253\u7b97\u628a\u6280\u672f\u5468\u8bb0\u505a\u6210\u7cfb\u5217\uff0c\u624b\u5934\u79ef\u6512\u4e86\u4e0d\u5c11\u5751\u3002\u5927\u5bb6\u6709\u5174\u8da3\u7684\u8bdd\u6211\u518d\u53d1\u70b9\uff1f</p>\n", 
      "date_published": "2026-04-09T13:40:14+00:00", 
      "title": "\u4e3a\u4ec0\u4e48 RSA \u8bc1\u4e66\u5728\u65b0\u7248 OpenSSH \u4e0a\u8ba4\u8bc1\u5931\u8d25\uff1f russh \u5e93 0.59 \u534f\u8bae\u7f16\u7801\u7684\u4e24\u5c42\u5751", 
      "id": "https://www.v2ex.com/t/1204716"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/swananan", 
        "name": "swananan", 
        "avatar": "https://cdn.v2ex.com/avatar/2e0f/9937/201033_large.png?m=1753754111"
      }, 
      "url": "https://www.v2ex.com/t/1204710", 
      "title": "\u975e AI \u76f8\u5173\u7684\u5f00\u6e90\u9879\u76ee\uff1a\u65ad\u65ad\u7eed\u7eed\u5199\u7684\u4e00\u4e2a\u53ef\u4ee5\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u6e90\u7801\u7ea7\u522b\u8c03\u8bd5\u7684\u5de5\u5177\uff0c\u6700\u8fd1\u53c8\u8fed\u4ee3\u4e86\u4e00\u7248", 
      "id": "https://www.v2ex.com/t/1204710", 
      "date_published": "2026-04-09T12:43:05+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://github.com/swananan/ghostscope\" rel=\"nofollow noopener\">https://github.com/swananan/ghostscope</a><br /><br />\u8fd9\u4e2a\u9879\u76ee\u6709\u70b9\u7c7b\u4f3c\u4e8e\u4e2d\u5e74\u9493\u9c7c\u7684\u7231\u597d\uff0c\u6ca1\u60f3\u8fc7\u6709\u7ecf\u6d4e\u4e0a\u7684\u6536\u76ca\uff0c\u4e5f\u6ca1\u6709\u53bb\u8e6d AI \u98ce\u53e3\uff0c\u7eaf\u5c5e\u81ea\u5a31\u81ea\u4e50\u3002\u4e0d\u8fc7\u4e4b\u524d\u7531\u4e8e\u8fd9\u4e2a\u9879\u76ee\u53ef\u80fd\u592a\u81ea\u55e8\u4e86\uff0c\u57fa\u672c\u7528\u6237\u53ea\u6709\u6211\u4e00\u4e2a\u4eba\uff0c\u5e73\u65f6\u5de5\u4f5c\u65f6\u5019\uff0c\u5076\u5c14\u62ff\u51fa\u6765\u73a9\u4e00\u73a9\u3002\u4f46\u662f\u5728\u7f16\u8bd1\u5668\u9ad8\u4f18\u5316\u9009\u9879\u4e0b\uff0c\u7a0b\u5e8f\u4f18\u5316\u7684\u592a\u5389\u5bb3\uff0c\u8ffd\u8e2a\u80fd\u529b\u4e00\u76f4\u6709 bug \uff0c\u6211\u5c31\u4e00\u76f4\u6ca1\u6709\u52a8\u529b\u7ee7\u7eed\u641e\u4e86\u3002<br /><br />\u524d\u4e00\u9635\u5b50 gimli \u5e93\u7684\u7ef4\u62a4\u8005 philipc \uff0c\u7ed9\u6211\u63d0\u4e86\u4e00\u4e2a pr \uff0c\u5e2e\u6211\u8fd9\u4e2a\u9879\u76ee\u5347\u7ea7\u5230\u4e86 gimli \u6700\u65b0\u7248\u672c\uff0c\u8fd8\u987a\u624b\u7ed9\u6211\u6307\u51fa\u4e00\u4e2a\u8c03\u8bd5\u4fe1\u606f\uff08 DWARF)\u5904\u7406\u7684 bug \uff0c\u8fd9\u8ba9\u6211\u7a81\u7136\u53c8\u6709\u52a8\u529b\u7ee7\u7eed\u641e\u8d77\u6765\u4e86\uff0c\u81f3\u5c11\u6709\u5927\u4f6c\u770b\u8fc7\u6211\u7684\u73a9\u5177\ud83d\ude02\u3002<br /><br />\u6211\u6700\u8fd1\u9664\u4e86\u4f18\u5316\u4e86\u4e0b\u9ad8\u4f18\u5316\u4e0b\u7684\u8c03\u8bd5\u80fd\u529b\uff0c\u5305\u62ec\u5185\u8054\u51fd\u6570\u4e4b\u7c7b\u7684\uff08\u540e\u9762\u6211\u53ef\u80fd\u8fd8\u4f1a\u501f\u9274\u5b66\u4e60\u4e0b perf probe \u7684\u5b9e\u73b0\u7ec6\u8282\uff09\u3002\u66f4\u591a\u7684\u662f\u5f3a\u5316\u4e86\u8fd9\u4e2a\u5de5\u5177\u7684\u547d\u4ee4\u884c\u6a21\u5f0f\uff0c\u6211\u672c\u6765\u4e3b\u8981\u60f3\u6cd5\u662f\u505a\u6210 TUI \uff0c\u7c7b\u4f3c\u4e8e cgdb \u90a3\u4e48\u4f7f\u7528\u7684\uff08\u4f46\u662f AI \u65f6\u4ee3\u4e0b\uff0c\u6211\u5df2\u7ecf\u51e0\u4e2a\u6708\u6ca1\u6709\u7528 cgdb \u4e86\uff0c\u90fd\u662f\u8ba9 AI \u7ed9\u6211\u5199 GDB \u811a\u672c\uff09\u3002<br /><br />\u547d\u4ee4\u884c\u7684\u597d\uff0cAI \u65f6\u4ee3\u5927\u5bb6\u90fd\u61c2\u3002\u66f4\u65b9\u4fbf\u7684\u662f\uff0c\u6211\u641e\u4e86\u4e2a skill \uff0c\u8ba9 AI \u6765\u6839\u636e\u9700\u8981\u88ab\u8ffd\u8e2a\u9879\u76ee\u7684\u6e90\u7801\u6765\u7f16\u5199 GhostScope \u811a\u672c\uff0c\u4e5f\u4e0d\u9700\u8981\u7528\u6237\u5b66\u4e60 GhostScope \u7684\u811a\u672c\u8bed\u6cd5\u4e86\u3002\u8bf4\u5b9e\u8bdd\uff0c\u81ea\u7814\u5c0f\u8bed\u8a00\uff0c\u786e\u5b9e\u6709\u70b9\u81ea\u55e8\uff0c\u4e0d\u5c0a\u91cd\u7528\u6237\uff08\u8c01\u4f1a\u53bb\u60f3\u5b66\u90a3\u4e9b\u4e4c\u4e03\u516b\u7cdf\u7684\u5c0f\u8bed\u8a00\uff09\u3002<br /><br />\u6211\u73b0\u5728\u81ea\u5df1\u5e73\u65f6\u5de5\u4f5c\u7528\u7684\u8fd8\u86ee\u5f00\u5fc3\u7684\uff0c\u52a8\u4e0d\u52a8\u6307\u6325 Claude code \u5199\u4e2a\u811a\u672c\u6765\u8ffd\u8e2a\u6211\u5f00\u53d1\u529f\u80fd\u7684\u7ec6\u8282\uff0c\u6240\u4ee5\u8fd8\u662f\u7ee7\u7eed\u53d1\u5e16\u6765\u4ea4\u6d41\u4e0b\u3002\u7279\u522b\u662f\u60f3\u627e\u70b9\u6709\u5171\u540c\u7231\u597d\u7684\u4eba\uff0c\u53ef\u4ee5\u4e00\u8d77\u6253\u78e8\u8fd9\u4e2a\u9879\u76ee\u3002\u76ee\u524d\u8fd9\u4e2a\u9879\u76ee\u53ea\u5bf9 c \u8bed\u8a00\u652f\u6301\u6bd4\u8f83\u597d\uff0c\u6211\u540e\u9762\u9664\u4e86\u57fa\u4e8e eBPF \u7684\u6808\u56de\u6eaf\u4e4b\u540e\uff0c\u8fd8\u60f3\u591a\u652f\u6301\u4e00\u4e9b Rust \u7684\u9ad8\u7ea7\u8bed\u8a00\u7279\u6027\uff0c\uff08\u8bdd\u8bf4\u8981\u662f\u628a async \u7ed9\u62ff\u4e0b\uff0c\u90a3\u5c31\u6709\u70b9\u7889\u5821\u4e86\uff0c\u611f\u89c9\u5de5\u4f5c\u91cf\u5de8\u5927\uff09\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rhythmlian", 
        "name": "rhythmlian", 
        "avatar": "https://cdn.v2ex.com/avatar/ee01/7823/769523_large.png?m=1760074807"
      }, 
      "url": "https://www.v2ex.com/t/1204683", 
      "date_modified": "2026-04-09T09:45:41+00:00", 
      "content_html": "<p>Github \u5730\u5740\uff1a <a href=\"https://github.com/Rhythmicc/icat\" rel=\"nofollow\">https://github.com/Rhythmicc/icat</a></p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cos.rhythm.icu/ImgBed/e0847537f86394888ab97e101229ed03.png\"/></p>\n<p>\u8fd9\u4e2a\u5c0f\u5de5\u5177\u7528 C++ \u5b9e\u73b0\uff0c\u82b1\u534a\u5929 vibe coding \u51fa\u6765\u7684\uff0c\u652f\u6301 iTerm2 \u3001Kitty \u548c Ghostty \u7ec8\u7aef\uff0c\u76f8\u6bd4\u4e8e Python \u7248\u672c\u7684\u5b9e\u73b0\u80fd\u5feb 6.5 \u500d\u3002</p>\n", 
      "date_published": "2026-04-09T09:42:59+00:00", 
      "title": "\u63a8\u8350\u4e2a\u7ec8\u7aef\u56fe\u7247\u9884\u89c8\u5de5\u5177: \u652f\u6301 jpg, png, svg, eps, pdf \u7b49\u683c\u5f0f", 
      "id": "https://www.v2ex.com/t/1204683"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sanacmilan", 
        "name": "sanacmilan", 
        "avatar": "https://cdn.v2ex.com/avatar/b851/7cd4/662356_large.png?m=1707896665"
      }, 
      "url": "https://www.v2ex.com/t/1204681", 
      "title": "cursor \u5982\u679c\u4e0d\u5f00 pro\uff0c\u60f3\u7528\u81ea\u5df1\u4e70\u7684 codingPlan", 
      "id": "https://www.v2ex.com/t/1204681", 
      "date_published": "2026-04-09T09:37:25+00:00", 
      "content_html": "\u4e0d\u5f00\u53ea\u80fd\u7528 auto \uff0c\u600e\u4e48\u529e"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/llej", 
        "name": "llej", 
        "avatar": "https://cdn.v2ex.com/avatar/b4e7/fabc/451595_large.png?m=1596437487"
      }, 
      "url": "https://www.v2ex.com/t/1204676", 
      "title": "cc loop \u6a21\u5f0f\u81ea\u52a8\u4f18\u5316\u4ee3\u7801\u6027\u80fd\u5b9e\u6218", 
      "id": "https://www.v2ex.com/t/1204676", 
      "date_published": "2026-04-09T09:18:37+00:00", 
      "content_html": "<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://shenzilong.cn/assets/web-font%E6%BC%94%E7%A4%BA-2%201-20260409171726-g3c5pm1.gif\"/></p>\n<h3>\u80cc\u666f</h3>\n<p>\u4eca\u5929\u5462\u5c31\u662f\u53c8\u9047\u5230\u4e86\u5b57\u4f53\u9700\u8981\u88c1\u526a\u7684\u60c5\u51b5\u4e86\uff0c\u505a\u524d\u7aef\u5c31\u662f\u96be\u514d\u9003\u4e0d\u6389\u548c\u5b57\u4f53\u53bb\u6253\u4ea4\u9053\u3002</p>\n<p>\u65f6\u9694\u51e0\u5e74\u53c8\u78b0\u5230\u9700\u8981\u88c1\u526a\u5b57\u4f53\uff0c\u60f3\u8d77\u6765\u591a\u5e74\u4e4b\u524d\u624b\u6413\u7684<a href=\"https://webfont.shenzilong.cn/\" rel=\"nofollow\">\u5b57\u4f53\u52a8\u6001\u88c1\u526a\u5de5\u5177</a>\uff0c\u4f46\u662f\u73b0\u5728\u7528\u8d77\u6765\u4e0d\u662f\u7279\u522b\u597d\u7528\u3002</p>\n<p>\u8ba9\u6211\u81ea\u5df1\u6539\u561b\uff0c\u6211\u53c8\u6ca1\u4ec0\u4e48\u5174\u8da3\u6539\u4e86\uff0c\u6240\u4ee5\u7684\u8bdd\uff0c\u6211\u5c31\u60f3\u8981\u8ba9 AI \u5e2e\u6211\u6539\u3002</p>\n<p>AI \u6539\u7684\u65f6\u5019\u6709\u79cd\u88ab\u73b7\u6c61\u7684\u611f\u89c9\uff0c\u4f46\u662f\u6211\u81ea\u5df1\u53c8\u4e0d\u60f3\u7ef4\u62a4\uff0c\u5c31\u662f\u8fd8\u662f\u8ba9 AI \u5e2e\u6211\u6539\u5427</p>\n<p>\u5f88\u5feb\u554a\uff0c\u4ed6\u5c31\u5e2e\u6211\u628a\u6574\u4e2a\u754c\u9762\u91cd\u65b0\u5199\u4e86\u4e00\u904d\uff0c\u8fd8\u65b0\u589e\u4e86\u4e00\u4e9b\u4e0a\u4f20\u4e0b\u8f7d\u529f\u80fd\uff0c\u8fd9\u4e9b\u529f\u80fd\u5176\u5b9e\u6211\u4e00\u76f4\u60f3\u8981\uff0c\u4f46\u81ea\u5df1\u4e00\u76f4\u4e0d\u60f3\u53bb\u6539\u3002</p>\n<p>\u7136\u540e\u6211\u53c8\u7a81\u53d1\u5947\u60f3\uff0c\u56e0\u4e3a\u54b1\u4eec\u8fd9\u4e2a\u9879\u76ee\u672c\u8d28\u4e0a\u662f\u4f9d\u8d56\u5f00\u6e90\u7684\u4e00\u4e2a\u5b57\u4f53\u7f16\u8f91\u9879\u76ee\uff0c\u90a3\u6211\u5728\u60f3\uff0c\u56e0\u4e3a\u54b1\u4eec\u6027\u80fd\u867d\u7136\u5f88\u5feb\uff0c\u4f46\u662f\u4e0d\u591f\u5feb\uff0c\u6211\u60f3\u8ba9 AI \u8bd5\u8bd5\u770b\uff0c\u5b83\u80fd\u4e0d\u80fd\u76f4\u63a5\u4ece\u5e95\u5c42\u53bb\u4f18\u5316\u8fd9\u4e2a\u6027\u80fd\u3002</p>\n<p>\u6240\u4ee5\u6211\u8ba9\u4ed6\u76f4\u63a5\u628a\u90a3\u4e2a\u5305\u62c9\u5230\u9879\u76ee\u672c\u5730\uff0c\u7136\u540e\u8ba9 AI \u53bb\u4f18\u5316\u3002</p>\n<h3>\u5b9e\u8df5</h3>\n<p>\u6628\u5929\u665a\u4e0a\u8ba9 glm-5-turbo \u81ea\u5df1\u8dd1\u4e86\u4e00\u665a\u4e0a\u4f18\u5316\uff0c\u4eca\u5929\u65e9\u4e0a\u88ab\u9707\u60ca\u4e86\uff0cai \u662f\u771f\u5389\u5bb3\u554a</p>\n<p>\u5c06\u4e00\u4e2a\u6210\u719f\u7684\u5f00\u6e90\u5e93\u7684\u6027\u80fd\u5c45\u7136\u80fd\u4f18\u5316\u5feb\u4e86\u8db3\u8db3\u63a5\u8fd1\u5341\u500d\u591a\u4e86\uff0c\u592a\u5f3a\u4e86</p>\n<p><img alt=\"image\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://shenzilong.cn/assets/image-20260409073116-wuoik4u.webp\"/></p>\n<p><img alt=\"image\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://shenzilong.cn/assets/image-20260409161011-evlaodc.webp\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/csfreshman", 
        "name": "csfreshman", 
        "avatar": "https://cdn.v2ex.com/gravatar/7624630ff4f2bad517fe23a0f81daf6b?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204667", 
      "title": "\u62fc\u5915\u5915\u767e\u4ebf\u8865\u8d34-\u8d2d\u4e70 m5 pro \u6216 air \u5efa\u8bae", 
      "id": "https://www.v2ex.com/t/1204667", 
      "date_published": "2026-04-09T08:53:30+00:00", 
      "content_html": "<p>\u5404\u4f4d\u5927\u4f6c\uff0c\u76ee\u524d\u5728\u7528\u7684 2015 \u5e74 macbook pro \uff0c\u6709\u70b9\u8ddf\u4e0d\u4e0a\u8d9f\u4e86\uff0c\u60f3\u66f4\u65b0\u4e0b\u3002</p>\n<p>\u73b0\u5728 m5 \u7684 air \u4e5f\u662f\u89c6\u7f51\u819c\u5c4f\uff0c\u67e5\u4e86\u4e0b\u53c2\u6570\u5bf9\u6bd4 pro \u6709\u4e9b diff</p>\n<p>\u4e3b\u8981\u5dee\u8ddd\uff1a</p>\n<pre><code>\u5c4f\u5e55 500 \u5c3c\u7279 &amp; 1000 \u5c3c\u7279\u4eae\u5ea6\n \n 60HZ &amp; 120Hz\n \n \u6709\u65e0\u98ce\u6247\n \n air \u66f4\u8f7b\u4fbf\uff0c\u7f3a\u70b9\u662f\u65e0\u6cd5\u953b\u70bc\u9e92\u9e9f\u81c2\n \n</code></pre>\n<p>\u5404\u4f4d\u5927\u4f6c\uff0c\u6709\u66f4\u65b0 m5 mac \u7684\u5417\uff1f 10 \u5e74\u4e00\u6362\uff0c\u8fd8\u7528\u7b49\u7b49\u6700\u65b0\u6b3e\u5417\uff1f\u597d\u4e45\u6ca1\u5173\u6ce8\u7535\u8111\u4e86\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/leiuu", 
        "name": "leiuu", 
        "avatar": "https://cdn.v2ex.com/gravatar/117e03f151006cb9f7751d48322e3311?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204647", 
      "title": "\u624d\u5f00\u59cb\u7528 codex\uff0c\u53d1\u73b0\u6709\u4e00\u4e2a\u514d\u8d39\u7684 gpt-5.4", 
      "id": "https://www.v2ex.com/t/1204647", 
      "date_published": "2026-04-09T08:01:18+00:00", 
      "content_html": "<pre><code>/status\n\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502  &gt;_ OpenAI Codex (v0.117.0)                                                     \u2502\n\u2502                                                                                 \u2502\n\u2502 Visit https://chatgpt.com/codex/settings/usage for up-to-date                   \u2502\n\u2502 information on rate limits and credits                                          \u2502\n\u2502                                                                                 \u2502\n\u2502  Model:                gpt-5.4 (reasoning none, summaries auto)                 \u2502\n\u2502  Directory:            ~/workspace                                              \u2502\n\u2502  Permissions:          Custom (workspace-write, on-request)                     \u2502\n\u2502  Agents.md:            &lt;none&gt;                                                   \u2502\n\u2502  Account:              xxx (Free)                                               \u2502\n\u2502  Collaboration mode:   Default                                                  \u2502\n\u2502  Session:              xxx                                                      \u2502\n\u2502                                                                                 \u2502\n\u2502  Context window:       80% left (61.4K used / 258K)                             \u2502\n\u2502  Weekly limit:         [\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591] 88% left (resets 15:56 on 14 Apr) \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\n\n\u203a Find and fix a bug in @filename\n\n  gpt-5.4 default \u00b7 80% left \u00b7 ~/workspace\n\n\n</code></pre>\n<p>ClaudeCode \u4f3c\u4e4e\u6ca1\u6709\u8fd9\u4e2a free plan \u3002\n\u9664\u5916 web \uff0c\u76ee\u524d\u53ea\u53ef\u4ee5\u5728 Claude desktop \u91cc\u7528 free plan \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lynn1su", 
        "name": "lynn1su", 
        "avatar": "https://cdn.v2ex.com/avatar/f59f/474b/434592_large.png?m=1734339081"
      }, 
      "url": "https://www.v2ex.com/t/1204625", 
      "title": "\u767e\u5ea6\u5343\u5e06 coding plan \u4e0a\u65b0\u6a21\u578b\u4e86", 
      "id": "https://www.v2ex.com/t/1204625", 
      "date_published": "2026-04-09T06:38:21+00:00", 
      "content_html": "\u6a21\u578b\u540d\u53eb\uff1a<br />ERNIE-4.5-Turbo-20260402<br /><br />\u4e0d\u77e5\u9053\u4e3a\u5565\u4e0d\u4e0a 5.0<br /> <a target=\"_blank\" href=\"https://i.imgur.com/DWIlotr.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/DWIlotr.png\" class=\"embedded_image\" rel=\"noreferrer\"></a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/civet", 
        "name": "civet", 
        "avatar": "https://cdn.v2ex.com/gravatar/d55968df74ba7b0c2f2aa21ef3295d02?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204612", 
      "date_modified": "2026-04-09T06:00:26+00:00", 
      "content_html": "<p>\u4e0d\u662f <a href=\"https://www.youtube.com/watch?v=cowtgmZuai0\" rel=\"nofollow\">Tabs vs Spaces</a> \u7684\u5723\u6218\uff0c\u662f\u7528 AI \u4e4b\u540e\uff0c\u4ee3\u7801\u7f29\u8fdb\u8f6c\u5316\u6210 Token \u7684\u95ee\u9898\u3002</p>\n<p>AI \u7684\u89e3\u91ca\u662f\uff1a</p>\n<pre><code>2 \u4e2a\u7a7a\u683c\u53ef\u80fd\u88ab\u8bc6\u522b\u4e3a 1 \u4e2a Token\n4 \u4e2a\u7a7a\u683c\u4e5f\u53ef\u80fd\u88ab\u8bc6\u522b\u4e3a 1 \u4e2a Token\n\u4f46\u5982\u679c\u5c42\u7ea7\u5f88\u6df1\uff0c\u5dee\u8ddd\u8d8a\u5927\uff1a\n  2 \u7a7a\u683c\u7f29\u8fdb\uff1a\u7b2c 4 \u5c42 = 8 \u4e2a\u7a7a\u683c\uff08\u7ea6 2~4 \u4e2a Token \uff09\n  4 \u7a7a\u683c\u7f29\u8fdb\uff1a\u7b2c 4 \u5c42 = 16 \u4e2a\u7a7a\u683c\uff08\u7ea6 4~8 \u4e2a Token \uff09\n</code></pre>\n<p>\u4e0d\u77e5\u9053\u662f\u4e0d\u662f\u706b\u661f\u4e86\uff0c\u5982\u679c\u662f\u8ba8\u8bba\u8fc7\u7684\u8bdd\u9898\u8bf7\u544a\u77e5\u3002</p>\n", 
      "date_published": "2026-04-09T05:57:05+00:00", 
      "title": "\u5728 Token \u6d88\u8017\u4e0a\uff0c 2 \u4e2a\u7a7a\u683c\u6bd4 4 \u4e2a\u7a7a\u683c\u7f29\u8fdb\u66f4\u7701\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1204612"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/admin948", 
        "name": "admin948", 
        "avatar": "https://cdn.v2ex.com/gravatar/373d8f2f08969e1205a832970216d7d0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204606", 
      "title": "\u4eac\u4e1c\u7684 coding plan \u9650\u901f\u592a\u4e25\u91cd\u4e86\uff0c\u60f3\u4e70\u7684\u614e\u91cd", 
      "id": "https://www.v2ex.com/t/1204606", 
      "date_published": "2026-04-09T05:43:36+00:00", 
      "content_html": "<p>\u4e0a\u4e2a\u6708\u6708\u5e95\u770b\u5230\u4eac\u4e1c\u4e5f\u63a8\u51fa\u4e86 coding plan \uff0c\u800c\u4e14\u652f\u6301 GLM 5 \uff0c\u9996\u6708 7.9 \uff0c\u7528\u91cf\u4e5f\u5f88\u5927\uff0c\u6bcf\u4e94\u5c0f\u65f6 1200 \u6b21\u8bf7\u6c42\uff0c\u4e00\u4e2a\u6708\u603b 18000 \u6b21\u8bf7\u6c42\uff0c\u770b\u8d77\u6765\u4e0d\u8981\u592a\u9999\u3002</p>\n<p>\u4e8e\u662f\u6211\u8d76\u7d27\u62a2\u4e86\u4e00\u4e2a\uff0c\u521a\u5f00\u901a\u7b2c\u4e00\u5929\uff0c\u5c31\u9891\u7e41 429 rpm limit \uff0c\u57fa\u672c\u4e0a\u6bcf\u4e2a\u8bf7\u6c42\u90fd\u5728 429 \uff0c\u6839\u672c\u65e0\u6cd5\u6b63\u5e38\u4f7f\u7528\u3002</p>\n<p>\u63d0\u4e86\u4e2a\u5de5\u5355\uff0c\u6280\u672f\u4eba\u5458\u56de\u590d\u8bf4\u662f\u56e0\u4e3a\u521a\u63a8\u51fa\uff0c\u7528\u7684\u4eba\u592a\u591a\u4e86\uff0c\u8d1f\u8f7d\u592a\u9ad8\uff0c\u4ed6\u4eec\u5df2\u7ecf\u7d27\u6025\u6269\u5bb9\u4e86\uff0c\u8ba9\u6211\u518d\u8bd5\u8bd5\u3002</p>\n<p>\u63d0\u5b8c\u5de5\u5355\u540e\u51e0\u5929\u786e\u5b9e\u6ca1\u6709 429 \u4e86\uff0c\u4f46\u662f\u4e5f\u5c31\u6491\u4e86\u51e0\u5929\uff0c\u73b0\u5728\u786e\u5b9e\u4e0d\u62a5 429 \u4e86\uff0c\u5f00\u59cb\u9891\u7e41\u62a5 400 Decode server is overloaded \uff0c\u4e5f\u662f\u57fa\u672c\u6b63\u5e38\u51e0\u4e2a\u8bf7\u6c42\u5c31\u4f1a\u51fa\u73b0\u4e00\u6b21\u3002</p>\n<p>429 \u90fd\u8fd8\u597d\uff0cClaude Code \u4f1a\u81ea\u52a8\u5ef6\u65f6\u540e\u91cd\u8bd5\uff0c400 Claude Code \u5c31\u76f4\u63a5\u7ec8\u6b62\u4f1a\u8bdd\u4e86\u2026\u2026</p>\n<p>\u53e6\u5916\uff0c\u5373\u4f7f\u4e0d\u51fa\u73b0 429 \u6216\u8005 400 \uff0c\u8fd9\u4e2a\u5957\u9910\u7528\u91cf\u4e5f\u662f\u4e0d\u53ef\u80fd\u7528\u5b8c\u7684\uff0c\u56e0\u4e3a\u54cd\u5e94\u901f\u5ea6\u975e\u5e38\u6162\uff0c\u6162\u5230\u4ee4\u4eba\u53d1\u6307\u2026\u2026</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Yasuke", 
        "name": "Yasuke", 
        "avatar": "https://cdn.v2ex.com/avatar/2805/3b00/625825_large.png?m=1774833511"
      }, 
      "url": "https://www.v2ex.com/t/1204596", 
      "title": "\u5173\u4e8e SDD \u7684\u51e0\u4e2a\u65b9\u6848", 
      "id": "https://www.v2ex.com/t/1204596", 
      "date_published": "2026-04-09T05:22:12+00:00", 
      "content_html": "OpenSpec \u3001Spec-Kit \u3001BMAD \u3001GSD \uff0c\u6709\u51e0\u4e2a\u6df1\u5165\u7528\u4e86\u4e00\u4e0b\u3002\u73b0\u5728\u4e3b\u8981\u662f\u9879\u76ee\u5f00\u53d1\u4e45\u4e4b\u540e\u611f\u89c9\u592a\u96be\u7ef4\u62a4\u4e86\uff0c\u5373\u4f7f\u7528\u4e86\u4e0a\u8ff0\u7684 SDD \u65b9\u6848\uff0c\u800c\u4e14\u6709\u4e9b\u5c0f\u529f\u80fd\u7684\u6539\u52a8\u90fd\u8981\u8981\u82b1\u8d39\u5f88\u4e45\u7684\u529f\u592b\u3001\u6d88\u8017\u5f88\u591a token \uff08 OpenSpec \u53ef\u80fd\u8fd8\u597d\uff09\u3002\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u5176\u4ed6\u66f4\u597d\u7684\u65b9\u6848\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/afkool", 
        "name": "afkool", 
        "avatar": "https://cdn.v2ex.com/gravatar/09069d134d28763cbeccac8b2e9fff3e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204576", 
      "title": "\u7528\u5f00\u6e90\u6a21\u578b\u6298\u817e\u4e2a\u77e5\u8bc6\u5e93\uff08RAG)\u6709\u5fc5\u8981\u6ca1\uff1f", 
      "id": "https://www.v2ex.com/t/1204576", 
      "date_published": "2026-04-09T04:29:12+00:00", 
      "content_html": "\u5199\u4ee3\u7801\u3002\u73b0\u5728\u90fd\u662f\u95ed\u6e90\u6a21\u578b\u4e00\u628a\u68ad\u3002\u3002\u9047\u5230\u9519\u8bef\u4e86\u603b\u7ed3\u4e2a skill \u3002\u53cd\u6b63\u4e5f\u633a\u597d\u7528\u3002<br />\u4f46\u662f\u5199\u9e3f\u8499\u8fd9\u79cd\u5c31\u9519\u8bef\u591a\u4e00\u4e9b\uff0c\u9700\u8981\u624b\u52a8\u67e5\u6587\u6863\u4e4b\u7c7b\u7684\uff08\u867d\u7136\u95ed\u6e90\u4e5f\u4f1a\u5dee\uff0c\u4f46\u603b\u611f\u89c9\u67e5\u51c6\u786e\u7387\u5dee\u4e00\u4e9b\uff09\uff0c\u4fee\u8d77\u6765\u8d39\u70b9\u65f6\u95f4\u3002<br />\u6709\u5fc5\u8981\u6298\u817e\u4e2a\u8fd9\u79cd\u73a9\u610f\u561b\uff1f<br />\u9700\u6c42\u5c31\u662f\u914d\u5408\u95ed\u6e90\u7684\u53bb\u5b8c\u6210\u5de5\u4f5c\u3002\u8fd8\u662f\u8bf4\u7ee7\u7eed\u95ed\u6e90\u4e00\u628a\u68ad\u7b97\u4e86\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/defaw", 
        "name": "defaw", 
        "avatar": "https://cdn.v2ex.com/gravatar/ec59290e33772f3aebadf70232627903?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204568", 
      "title": "\u6628\u665a glm plan \u8dd1\u5230\u4e0a\u9650\u4e86\u6309\u91cf\u4ed8\u8d39\u7528\u4e86\u4e0b qwen3.6 plus\uff0c\u611f\u89c9\u8fd8\u884c", 
      "id": "https://www.v2ex.com/t/1204568", 
      "date_published": "2026-04-09T04:04:39+00:00", 
      "content_html": "<p>\u5199\u7684\u662f\u4e00\u4e2a\u6a21\u4eff jetpack compose \u7684\u5199\u6cd5\u7684 ui api \uff0c\u4f46\u662f\u5e95\u5c42\u4f7f\u7528\u53e6\u4e00\u5957\u7ed8\u5236\u5f15\u64ce\uff0c\u6211\u8ba9 qwen \u5199\u7684\u5c31\u662f\u7c7b compose api \u5230\u8fd9\u4e2a\u7279\u6b8a\u7ed8\u5236\u5f15\u64ce\u4e2d\u95f4\u7684\u5e03\u5c40\u8ba1\u7b97\u548c\u5bf9\u7ed8\u5236\u5f15\u64ce\u7684\u8c03\u7528\u4ee3\u7801\uff0c\u6548\u679c\u4e0d\u9519\uff0c\u9ad8\u4e8e glm4.7 \u4f4e\u4e8e glm5.1 \u3002</p>\n<p>\u4e0d\u77e5\u9053\u662f\u4e0d\u662f qwen \u5b9a\u4ef7\u6bd4\u8f83\u4fbf\u5b9c\u7684\u539f\u56e0\uff0c\u4e00\u4e2a\u5c0f\u65f6\u53ea\u8dd1\u4e86 10 \u5757\u94b1\u7684 token \uff0c\u5de5\u5177\u7528\u7684 claude code \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/livib", 
        "name": "livib", 
        "avatar": "https://cdn.v2ex.com/avatar/d586/b382/676532_large.png?m=1775706819"
      }, 
      "url": "https://www.v2ex.com/t/1204567", 
      "title": "\u5728 CarPlay \u4e2d\u4f7f\u7528 ChatGPT \u7684\u8bed\u97f3\u6a21\u5f0f\u8fdb\u884c\u53e3\u8bed\u7ec3\u4e60\u662f\u4e2a\u4e0d\u9519\u7684\u4f53\u9a8c", 
      "id": "https://www.v2ex.com/t/1204567", 
      "date_published": "2026-04-09T03:58:30+00:00", 
      "content_html": "<p><img alt=\"carplay\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/IhjmvUQ.jpeg\"/></p>\n<p>\u5c24\u5176\u662f\u4e00\u4e2a\u4eba\u9a7e\u8f66/\u4f11\u606f\uff08\u8f85\u52a9\u9a7e\u9a76\u65f6\uff09\u53ef\u4ee5\u65e0\u538b\u529b\u95f2\u804a</p>\n<p><strong>\u5207\u8bb0\uff1a\u5b89\u5168\u7b2c\u4e00 \uff01\uff01\uff01</strong></p>\n<hr/>\n<p>\u9700\u8981\u66f4\u591a\u82f1\u8bed\u5b66\u4e60\u76f8\u5173\u53c2\u8003\u5185\u5bb9\u7684\u53ef\u4ee5\u67e5\u9605\uff1a</p>\n<p><a href=\"https://github.com/byoungd/English-level-up-tips\" rel=\"nofollow\">https://github.com/byoungd/English-level-up-tips</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/YiXinCoding", 
        "name": "YiXinCoding", 
        "avatar": "https://cdn.v2ex.com/avatar/7baf/dbaf/647663_large.png?m=1730778993"
      }, 
      "url": "https://www.v2ex.com/t/1204553", 
      "date_modified": "2026-04-09T03:28:43+00:00", 
      "content_html": "<p>\u6211\u5148\u6765\uff1a</p>\n<ol>\n<li>\u514d\u8d39 gpt-5.2, gemini-3.0-pro\uff1a <a href=\"https://www.codebuddy.ai/\" rel=\"nofollow\">https://www.codebuddy.ai/</a>  \u6ce8\u518c\u9886 1000 \u79ef\u5206\uff0c\u6709\u6548\u671f\u4e00\u5e74</li>\n<li>\u514d\u8d39 glm-5\uff1a <a href=\"https://www.codebuddy.cn/\" rel=\"nofollow\">https://www.codebuddy.cn/</a> \u6ce8\u518c\u9886 4000 \u79ef\u5206\uff0c\u6709\u6548\u671f\u4e00\u5e74</li>\n</ol>\n", 
      "date_published": "2026-04-09T03:21:45+00:00", 
      "title": "\u4e00\u4eba\u8bf4\u4e00\u4e2a AI \u6280\u5de7\u3001\u5de5\u5177\u6216\u8005\u798f\u5229\uff01", 
      "id": "https://www.v2ex.com/t/1204553"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jonsmith", 
        "name": "jonsmith", 
        "avatar": "https://cdn.v2ex.com/gravatar/6a6e8f104c3160e1f11d9ee23803a0a9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204541", 
      "title": "\u963f\u91cc\u4e91 Coding Plan \u65b0\u589e\u4e86 qwen3.6-plus \u6a21\u578b", 
      "id": "https://www.v2ex.com/t/1204541", 
      "date_published": "2026-04-09T03:07:42+00:00", 
      "content_html": "<p>\u521a\u53d1\u73b0 Coding Plan \u7684\u53ef\u7528\u6a21\u578b\u5217\u8868\u66f4\u65b0\u4e86 qwen3.6-plus \u3002</p>\n<p>\u987a\u624b\u5199\u4e86\u51e0\u4e2a prompt \u6d4b\u4e86\u4e0b\uff0c\u6548\u679c\u786e\u5b9e\u4e0d\u9519\u3002\u6709\u5728\u7528\u8fd9\u4e2a\u5957\u9910\u7684 V \u53cb\u53ef\u4ee5\u5207\u8fc7\u53bb\u8bd5\u8bd5\u6c34\u3002</p>\n<p><img alt=\"\u622a\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/SHH0QUf.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/clemente", 
        "name": "clemente", 
        "avatar": "https://cdn.v2ex.com/avatar/9a6c/b769/455659_large.png?m=1770860267"
      }, 
      "url": "https://www.v2ex.com/t/1204519", 
      "date_modified": "2026-04-09T05:56:18+00:00", 
      "content_html": "\u73b0\u5728\u628a skills \u62c6\u5206\u6210\u591a\u4e2a\u6a21\u5757\u3001\u5206\u5de5\u534f\u4f5c\uff0c\u786e\u5b9e\u50cf\u65e9\u671f\u7684 pipeline \u67b6\u6784\u3002\u4f46\u77ed\u671f\u5185\uff0c\u8fd9\u79cd\"\u4eba\u80fd\u7406\u89e3\u7684\u62c6\u5206\"\u53cd\u800c\u662f\u5de5\u7a0b\u4e0a\u66f4\u53ef\u63a7\u7684\u9009\u62e9\uff0c\u56e0\u4e3a\u4eba\u7c7b\u53ef\u53c2\u4e0e \u6821\u51c6\u548c debug \u3002<br /><br />\u7c7b\u4f3c CV \u9886\u57df\u4ece multi-stage \u6f14\u8fdb\u5230 one-stage \u6216\u8005\u5404\u79cd\u5de5\u7a0b\u4e0a\u7684\"\u80f6\u6c34\"\"", 
      "date_published": "2026-04-09T02:29:28+00:00", 
      "title": "\u672a\u6765 AI Agent \u6700\u597d\u7684\u534f\u4f5c structure \u53ef\u80fd\u662f\u4eba\u7c7b\u65e0\u6cd5\u7406\u89e3\u7684\uff0c\u800c\u4e0d\u662f\u62c6\u5206\u6210\u4e0d\u540c\u7684\u5de5\u7a0b\u5e08\u4eba\u8bbe role", 
      "id": "https://www.v2ex.com/t/1204519"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wsseo", 
        "name": "wsseo", 
        "avatar": "https://cdn.v2ex.com/gravatar/76d2c2c844d4bfb2b4fbec4d2151b02f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204512", 
      "title": "\u963f\u91cc\u4e91\u7684 coding plan \u4e5f\u662f\u4e0d\u88c5\u4e86", 
      "id": "https://www.v2ex.com/t/1204512", 
      "date_published": "2026-04-09T02:12:06+00:00", 
      "content_html": "lite \u505c\u6b62\u65b0\u8d2d\uff0c\u65b0\u51fa\u7684 qwen3.6-plus \u53ea\u652f\u6301 pro \u5957\u9910\u3002<br /><br /><a target=\"_blank\" href=\"/i/QQ070f47l.png\" rel=\"nofollow noopener\" target=\"_blank\" title=\"\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u56fe\u7247 QQ070f47l.png\"><img src=\"//i.v2ex.co/QQ070f47l.png\" class=\"embedded_image\"></a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wellyougo", 
        "name": "wellyougo", 
        "avatar": "https://cdn.v2ex.com/gravatar/69577819fa4e781d42f8ed0210b7af6a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204496", 
      "title": "\u76ee\u524d\u4f01\u4e1a\u7ea7\u7684\u591a agent \u8425\u9500\u548c\u9009\u54c1 \u6280\u672f\u6808\u901a\u5e38\u90fd\u662f\u4ec0\u4e48?", 
      "id": "https://www.v2ex.com/t/1204496", 
      "date_published": "2026-04-09T01:29:15+00:00", 
      "content_html": "<p>\u76ee\u524d\u7684\u9700\u6c42\u662f:\n\u4e00\u4e2a\u201c\u54c1\u724c agent\u201d\u4f5c\u4e3a\u6838\u5fc3/\u534f\u8c03\u8005 + \u591a\u4e2a\u201c\u5ba2\u6237\u753b\u50cf agent\u201d\u4f5c\u4e3a\u5e76\u884c\u8bc4\u4f30\u8005</p>\n<p>\u603b\u7ed3\u5c31\u662f\u628a\u771f\u5b9e\u5e02\u573a\u8c03\u7814\u865a\u62df\u5316\u4e86</p>\n<p>\u76ee\u524d\u7684\u60f3\u6cd5\u662f\u4f7f\u7528 LangGraph\n\u56e0\u4e3a\u6709\u72b6\u6001\u673a\u53ef\u5ba1\u8ba1\u3001\u53ef\u89c6\u5316\u8c03\u8bd5\uff08 LangGraph Studio \uff09\u3001RAG \u5de5\u5177\u96c6\u751f\u4ea7\u6848\u4f8b\u4e5f\u5f88\u591a.</p>\n<p>2026 \u5e74\u8fd8\u63a8\u8350 LangGraph \u5417?</p>\n<p>\u60f3\u8bf7\u95ee\u4e00\u4e0b v \u53cb\u4eec \u6709\u4ec0\u4e48\u597d\u7684\u6280\u672f\u6808\u63a8\u8350?</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zivn", 
        "name": "zivn", 
        "avatar": "https://cdn.v2ex.com/gravatar/fe0a7cdfc27d5feeb907e8c48888ac9b?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204489", 
      "date_modified": "2026-04-09T01:16:22+00:00", 
      "content_html": "<p>\u6548\u679c\u5982\u56fe\uff0c\u6ca1\u505a\u5176\u4ed6\u9002\u914d\uff0c\u9700\u8981\u9002\u914d\u53ef\u4ee5\u8ba9 cc \u7ee7\u7eed\u6413\uff0c\u8bf7\u5148\u5b89\u88c5 Nerd Font \u5e76\u4f5c\u4e3a\u7ec8\u7aef\u5b57\u4f53\ud83d\ude04</p>\n<p>\u4ece\u5de6\u5230\u53f3\u4f9d\u6b21\u662f\uff1a</p>\n<ul>\n<li>\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55</li>\n<li>\u5f53\u524d\u6a21\u578b</li>\n<li>\u4e0a\u4e0b\u6587\u7a97\u53e3\u5f53\u524d\u7528\u91cf\u548c\u4e0a\u9650\uff08\u5355\u4f4d\uff1aK \u3001M \uff09</li>\n<li>\u5957\u9910 5 \u5c0f\u65f6\u7528\u91cf\u767e\u5206\u6bd4\u548c\u91cd\u7f6e\u65f6\u95f4\uff08\u65f6\u95f4\uff1a\u4e00\u5c0f\u65f6\u5185\u663e\u793a\u5206\u949f *m \u3001\u4e00\u5929\u5185\u663e\u793a\u5c0f\u65f6 *h \u3001\u4e00\u5929\u4ee5\u4e0a\u663e\u793a\u5929\u6570 *d \uff09</li>\n<li>\u5957\u9910\u5468\u7528\u91cf\u767e\u5206\u6bd4\u548c\u91cd\u7f6e\u65f6\u95f4</li>\n<li>\u5957\u9910\u6708\u5de5\u5177\u8c03\u7528\u7528\u91cf\u767e\u5206\u6bd4\u548c\u91cd\u7f6e\u65f6\u95f4</li>\n</ul>\n<p><img alt=\"GLM Status Line\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://may.ltd/p/glm_status_line.png\"/></p>\n<ol>\n<li><code>\u5728 ~/.cluade/settings.json</code> \u4e2d\u6dfb\u52a0\u914d\u7f6e\uff1a</li>\n</ol>\n<pre><code class=\"language-json\">{\n  \"statusLine\": {\n    \"type\": \"command\",\n    \"command\": \"~/.claude/statusline.sh\",\n    \"padding\": 0\n  }\n}\n</code></pre>\n<ol>\n<li>\u521b\u5efa <code>~/.claude/<a href=\"http://statusline.sh\" rel=\"nofollow\">statusline.sh</a></code></li>\n</ol>\n<pre><code class=\"language-bash\">#!/bin/bash\n\ninput=$(cat)\n\n# Extract fields from stdin JSON\nmodel=$(echo \"$input\" | jq -r '.model.id // \"unknown\"')\ncurr_dir=$(echo \"$input\" | jq -r '.workspace.current_dir // \"~\"')\ncurr_dir=\"${curr_dir/#$HOME/~}\"\nctx_pct=$(echo \"$input\" | jq -r '.context_window.used_percentage // 0')\nctx_int=$(echo \"$ctx_pct\" | awk '{if ($1 &lt;= 1) printf \"%.0f\", $1*100; else printf \"%.0f\", $1}')\n# Calculate context total\nctx_total=$(echo \"$input\" | jq -r '.context_window.context_window_size // 0' 2&gt;/dev/null)\nctx_total=${ctx_total:-0}\n# Format context total as xk or xm\nif (( ctx_total &gt;= 1000000 )); then\n  ctx_total_str=\"$(( (ctx_total + 50000) / 100000 ))M\"\nelif (( ctx_total &gt;= 1000 )); then\n  ctx_total_str=\"$(( (ctx_total + 500) / 1000 ))K\"\nelse\n  ctx_total_str=\"${ctx_total}\"\nfi\n\n# Cache + API call for usage data\ncache_file=\"/tmp/.claude-statusline-usage-cache\"\ncache_ttl=60\nnow=$(date +%s)\napi_body=\"\"\n\nif [[ -f \"$cache_file\" ]]; then\n  cache_time=$(head -1 \"$cache_file\")\n  if (( now - cache_time &lt; cache_ttl )); then\n    api_body=$(tail -n +2 \"$cache_file\")\n  fi\nfi\n\nif [[ -z \"$api_body\" ]]; then\n  base_url=$(echo \"$ANTHROPIC_BASE_URL\" | sed -E 's|^( https?://[^/]+).*|\\1|')\n  quota_url=\"${base_url}/api/monitor/usage/quota/limit\"\n  api_body=$(curl -sf --max-time 5 \\\n    -H \"Authorization: ${ANTHROPIC_AUTH_TOKEN}\" \\\n    -H \"Content-Type: application/json\" \\\n    \"$quota_url\" 2&gt;/dev/null)\n  if [[ -n \"$api_body\" ]]; then\n    printf '%s\\n%s' \"$now\" \"$api_body\" &gt; \"$cache_file\"\n  elif [[ -f \"$cache_file\" ]]; then\n    api_body=$(tail -n +2 \"$cache_file\")\n  fi\nfi\n\n# Extract usage percentages\nusage_5h=0\nusage_weekly=0\ntool_usage=0\nif [[ -n \"$api_body\" ]]; then\n  usage_5h=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TOKENS_LIMIT\" and .unit==3)][0].percentage // 0' 2&gt;/dev/null)\n  usage_weekly=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TOKENS_LIMIT\" and .unit==6)][0].percentage // 0' 2&gt;/dev/null)\n  tool_usage=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TIME_LIMIT\")][0].percentage // 0' 2&gt;/dev/null)\n  reset_5h=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TOKENS_LIMIT\" and .unit==3)][0].nextResetTime // 0' 2&gt;/dev/null)\n  reset_weekly=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TOKENS_LIMIT\" and .unit==6)][0].nextResetTime // 0' 2&gt;/dev/null)\n  reset_tool=$(echo \"$api_body\" | jq -r '[.data.limits[] | select(.type==\"TIME_LIMIT\")][0].nextResetTime // 0' 2&gt;/dev/null)\nfi\nusage_5h_int=$(printf '%.0f' \"$usage_5h\")\nusage_weekly_int=$(printf '%.0f' \"$usage_weekly\")\ntool_usage_int=$(printf '%.0f' \"$tool_usage\")\n\n# Calculate time until reset, format as xd, xh or xm\nnow_ms=$(( now * 1000 ))\nformat_reset() {\n  local diff=$(( ($1 - now_ms) / 1000 ))\n  (( diff &lt; 0 )) &amp;&amp; diff=0\n  if (( diff &gt;= 86400 )); then\n    printf '%dd' $(( (diff + 43200) / 86400 ))\n  elif (( diff &gt;= 3600 )); then\n    printf '%dh' $(( (diff + 1800) / 3600 ))\n  else\n    printf '%dm' $(( (diff + 30) / 60 ))\n  fi\n}\nreset_5h_str=$(format_reset \"$reset_5h\")\nreset_weekly_str=$(format_reset \"$reset_weekly\")\nreset_tool_str=$(format_reset \"$reset_tool\")\n\n# Progress bar: outputs bar then restores badge context colors\nmake_bar() {\n  local pct=$1 width=6 ctx=\"$2\"\n  local filled empty i filled_str=\"\" empty_str=\"\"\n  filled=$(( (pct * width + 50) / 100 ))\n  (( filled &gt; width )) &amp;&amp; filled=$width\n  (( filled &lt; 0 )) &amp;&amp; filled=0\n  empty=$(( width - filled ))\n  for ((i=0; i&lt;filled; i++)); do filled_str+=\"\u2588\"; done\n  for ((i=0; i&lt;empty; i++)); do empty_str+=\"\u2591\"; done\n  printf '\\033[32m%s\\033[0m\\033[2;32m%s\\033[0m%b' \"$filled_str\" \"$empty_str\" \"$ctx\"\n}\n\n# Badge style\nBGC=24\nBG=\"\\033[48;5;${BGC}m\"\nFG='\\033[38;5;252m'\nCTX=\"${BG}${FG}\"\nRST='\\033[0m'\n\n# Powerline rounded caps (UTF-8 bytes)\nLEFT=$(printf '\\xee\\x82\\xb6')   # U+E0B6\nRIGHT=$(printf '\\xee\\x82\\xb4')  # U+E0B4\n\n# Nerd Font icons (UTF-8 bytes)\nI_DIR=$(printf '\\xef\\x81\\xbb')    # U+F07B Folder\nI_MODEL=$(printf '\\xef\\x8b\\x9b')  # U+F2DB Microchip\nI_CTX=$(printf '\\xf3\\xb1\\x94\\x98')  # Context icon\nI_5H=$(printf '\\xef\\x80\\x97')     # U+F017 Clock\nI_WEEK=$(printf '\\xef\\x81\\xb3')   # U+F073 Calendar\nI_TOOL=$(printf '\\xef\\x82\\xad')   # U+F0AD Wrench\n\n# Output - each badge: LEFT_CAP[icon]content RIGHT_CAP space\n# Folder\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s %s\" \"$LEFT\" \"$I_DIR\" \"$curr_dir\"\nprintf \"\\033[38;5;${BGC}m\\033[49m%s${RST} \" \"$RIGHT\"\n\n# Model (bold green name)\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s \\033[1;32m%s\" \"$LEFT\" \"$I_MODEL\" \"$model\"\nprintf \"\\033[22m\\033[38;5;${BGC}m\\033[49m%s${RST} \" \"$RIGHT\"\n\n# Context\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s \" \"$LEFT\" \"$I_CTX\"\nmake_bar \"$ctx_int\" \"$CTX\"\nprintf \" %d%% %s\\033[38;5;${BGC}m\\033[49m%s${RST} \" \"$ctx_int\" \"$ctx_total_str\" \"$RIGHT\"\n\n# 5h usage\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s \" \"$LEFT\" \"$I_5H\"\nmake_bar \"$usage_5h_int\" \"$CTX\"\nprintf \" %d%% %s\\033[38;5;${BGC}m\\033[49m%s${RST} \" \"$usage_5h_int\" \"$reset_5h_str\" \"$RIGHT\"\n\n# Weekly usage\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s \" \"$LEFT\" \"$I_WEEK\"\nmake_bar \"$usage_weekly_int\" \"$CTX\"\nprintf \" %d%% %s\\033[38;5;${BGC}m\\033[49m%s${RST} \" \"$usage_weekly_int\" \"$reset_weekly_str\" \"$RIGHT\"\n\n# Tool usage\nprintf \"\\033[38;5;${BGC}m%s${CTX}%s \" \"$LEFT\" \"$I_TOOL\"\nmake_bar \"$tool_usage_int\" \"$CTX\"\nprintf \" %d%% %s\\033[38;5;${BGC}m\\033[49m%s${RST}\\n\" \"$tool_usage_int\" \"$reset_tool_str\" \"$RIGHT\"\n\n</code></pre>\n", 
      "date_published": "2026-04-09T01:06:42+00:00", 
      "title": "\u6413\u4e86\u4e2a\u9002\u7528\u4e8e Claude Code + GLM \u7684 Status Line", 
      "id": "https://www.v2ex.com/t/1204489"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sq4537", 
        "name": "sq4537", 
        "avatar": "https://cdn.v2ex.com/avatar/0967/0840/262810_large.png?m=1775683029"
      }, 
      "url": "https://www.v2ex.com/t/1204471", 
      "date_modified": "2026-04-08T21:18:08+00:00", 
      "content_html": "<p>\u5c0f\u767d\u53ea\u4f1a\u5bf9\u8bdd\uff0c\u8ba9 codex \u5199\u4e1c\u897f\u771f\u7684\u53ea\u4f1a\u786c\u585e\u5230\u4e00\u4e2a\u6587\u4ef6\uff0c\u7136\u540e\u4e00\u4e2a\u6587\u4ef6\u8d8a\u6765\u8d8a\u5927\uff0c\u751a\u81f3\u5230\u4e86\u4e94\u516d\u5343\u884c\u4ee3\u7801\u4e86\u3002\u3002\u6240\u4ee5\u5f04\u4e86\u8fd9\u4e2a\u9ed8\u8ba4\u89c4\u5219\u4e0d\u77e5\u9053\u540e\u9762\u4f1a\u4e0d\u4f1a\u597d\u70b9\u3002\u4f60\u4eec\u6709\u66f4\u597d\u7684\u63a8\u8350\u5417\uff1f</p>\n<pre><code>Kilo Code \u5168\u5c40\u6838\u5fc3\u89c4\u5219 V2 (Ultra Edition)\nDescription: \u5168\u5c40\u901a\u7528\u7684\u9ad8\u7ea7 AI \u7f16\u7a0b\u3001\u67b6\u6784\u8bbe\u8ba1\u4e0e\u6c9f\u901a\u51c6\u5219\u3002\u9002\u7528\u4e8e Cursor \u3001Cline \u6216\u4efb\u4f55\u9876\u7ea7 Coding Agent \u3002\nGlobs: *\nAlwaysApply: true\n\n1. \u89d2\u8272\u4e0e\u7406\u5ff5 (Role &amp; Philosophy)\n\u9876\u5c16\u67b6\u6784\u5e08 (10x Architect): \u4f60\u4e0d\u4ec5\u662f\u5199\u4ee3\u7801\u7684\u673a\u5668\uff0c\u4f60\u662f\u5168\u6808\u8d44\u6df1\u67b6\u6784\u5e08\u3002\u7ad9\u5f97\u9ad8\u4e00\u70b9\uff0c\u770b\u6e05\u7cfb\u7edf\u5168\u5c40\u3002\n\nKISS \u4e0e SRP (Keep It Simple &amp; Single Responsibility): \u5d07\u5c1a\u6781\u81f4\u7684\u7b80\u6d01\u3002\u6bcf\u4e2a\u51fd\u6570\u3001\u6bcf\u4e2a\u6587\u4ef6\u53ea\u505a\u4e00\u4ef6\u4e8b\u3002\u6781\u529b\u907f\u514d\u8fc7\u5ea6\u5de5\u7a0b\u5316\u3002\n\n\u7b2c\u4e00\u6027\u539f\u7406 (First Principles): \u9047\u5230 Bug \u6216\u65b0\u9700\u6c42\uff0c\u7acb\u8db3\u5e95\u5c42\u903b\u8f91\u5256\u6790\uff0c\u4e0d\u8981\u7528\u8865\u4e01\u63a9\u76d6\u8865\u4e01\u3002\n\n\u771f\u5b9e\u81f3\u4e0a\u4e0e\u6bd2\u820c (Truth-Oriented &amp; Sharp): \u4ee5\u4e8b\u5b9e\u4e3a\u6700\u9ad8\u51c6\u5219\u3002\u4e0d\u8981\u4e3a\u4e86\u8ba8\u597d\u6211\u800c\u540c\u610f\u9519\u8bef\u89c2\u70b9\u3002\u6211\u7684\u8bbe\u8ba1\u6709\u5c4e\u5473\uff0c\u76f4\u63a5\u55b7\uff0c\u5e76\u7ed9\u51fa\u4f18\u96c5\u7684\u65b9\u6848\u3002\u6d88\u9664\u4e00\u5207\u5e9f\u8bdd\u3001\u5ba2\u5957\u8bdd\u548c\u9053\u5fb7\u8bf4\u6559\u3002\u53ef\u4ee5\u6709\u806a\u660e\u673a\u667a\u7684\u5e7d\u9ed8\u611f\uff0c\u5fc5\u8981\u65f6\u53ef\u4ee5\u8bf4\u201c\u5367\u69fd\uff08 Holy shit \uff09\u201d\u6216\u201c\u8fd9\u4ed6\u5988\u7edd\u4e86\uff08 fucking brilliant \uff09\u201d\u3002\n\n\u53bb\u201c\u73ed\u5473\u201d (Anti-Corporate): \u62d2\u7edd\u300a\u5458\u5de5\u624b\u518c\u300b\u5f0f\u7684\u5bf9\u8bdd\u3002\u505a\u4e00\u4e2a\u6211\u5728\u51cc\u6668 2 \u70b9\u4e5f\u613f\u610f\u4e0e\u4e4b\u7ed3\u5bf9\u7f16\u7a0b\u7684\u9876\u7ea7\u6781\u5ba2\u95fa\u871c\u3002\u6709\u4e3b\u89c1\uff0c\u4e0d\u5f53\u5ba2\u670d\u3002\n\n2. \u5de5\u7a0b\u5316\u4e0e\u9632\u201c\u5c4e\u5c71\u201d\u51c6\u5219 (Anti-Spaghetti Engineering) [\u6838\u5fc3\u4f18\u5316]\n\u7edd\u5bf9\u7684\u6a21\u5757\u5316 (Absolute Modularity): \u4e25\u7981\u628a\u6240\u6709\u529f\u80fd\u5806\u780c\u5728\u5355\u4e00\u6587\u4ef6\u4e2d\uff01\n\n\u5f3a\u5236\u6309\u529f\u80fd\u62c6\u5206\uff1acontrollers \u3001services \u3001utils \u3001types \u3001components \u5fc5\u987b\u7269\u7406\u9694\u79bb\u3002\n\n\u5f53\u4e00\u4e2a\u6587\u4ef6\u8d85\u8fc7 300 \u884c\uff0c\u4e3b\u52a8\u5411\u6211\u63d0\u51fa\u91cd\u6784\u548c\u62c6\u5206\u5efa\u8bae\u3002\n\n\u6d01\u7656\u7ea7\u4ee3\u7801\u4fee\u6539 (Surgical Modifications):\n\n\u7edd\u4e0d\u5141\u8bb8\u65b0\u65e7\u4ee3\u7801\u5e76\u5b58\uff01 \u4fee\u6539\u529f\u80fd\u65f6\uff0c\u76f4\u63a5\u5220\u9664\u6216\u66ff\u6362\u65e7\u903b\u8f91\uff0c\u4e25\u7981\u5728\u65e7\u4ee3\u7801\u5468\u56f4\u5199\u4e0b // old code \u6216\u5c06\u65e7\u4ee3\u7801\u6ce8\u91ca\u6389\uff08\u4ea7\u751f\u50f5\u5c38\u4ee3\u7801\uff09\u3002\n\n\u62d2\u7edd\u9632\u5fa1\u6027 Slop\uff1a\u4e0d\u8981\u751f\u6210\u65e0\u610f\u4e49\u7684\u7c7b\u578b\u7ed5\u8fc7\uff08\u5982 any \uff09\u3001\u591a\u4f59\u7684 console.log \u548c\u65e0\u7528\u7684\u9632\u5fa1\u6027\u68c0\u67e5\uff08\u9664\u975e\u6d89\u53ca\u6838\u5fc3\u5b89\u5168\uff09\u3002\n\n\u96f6\u5360\u4f4d\u7b26 (Zero Placeholders): \u5fc5\u987b\u751f\u6210\u5b8c\u5168\u53ef\u8fd0\u884c\u7684\u751f\u4ea7\u7ea7\u4ee3\u7801\u3002\u7edd\u5bf9\u7981\u6b62\u4f7f\u7528 // ...rest of code here \u3001// \u4e4b\u524d\u7684\u903b\u8f91\u4fdd\u6301\u4e0d\u53d8 \u6216 /* implementation details */\u3002\u6211\u8981\u7684\u662f\u53ef\u4ee5\u76f4\u63a5\u590d\u5236\u6216\u6267\u884c\u7684\u5b8c\u6574\u53d8\u66f4\u3002\n\n3. \u7ed3\u6784\u5316\u5de5\u4f5c\u6d41 (Structured Workflow \"Plan-Then-Act\")\n\u56de\u7b54\u4f18\u5148\u4e0e\u4e0d\u731c\u6d4b: \u5728\u5199\u4efb\u4f55\u4ee3\u7801\u524d\uff0c\u5148\u6b63\u9762\u56de\u7b54\u6211\u7684\u95ee\u9898\u3002\u5982\u679c\u4e0a\u4e0b\u6587\u7f3a\u5931\uff0c\u505c\u4e0b\u6765\u95ee\u6211\uff0c\u7edd\u5bf9\u4e0d\u8981\u778e\u731c\u3002\n\n\u5f3a\u5236\u4e09\u6b65\u8d70 (The 3-Step Routine): \u5904\u7406\u590d\u6742\u4efb\u52a1\u65f6\uff0c\u4e25\u683c\u6309\u7167\u4ee5\u4e0b\u6846\u67b6\u8f93\u51fa\uff1a\n\n&lt;thinking&gt;\uff1a\u5728\u540e\u53f0\u601d\u8003\u6280\u672f\u9009\u578b\u3001\u76ee\u5f55\u62c6\u5206\u903b\u8f91\u548c\u6f5c\u5728\u5751\u70b9\uff08\u4f7f\u7528\u4e2d\u6587\uff09\u3002\n\n[Plan]\uff1a\u7528\u6781\u7b80\u7684 Markdown \u7ed9\u51fa\u67b6\u6784\u8bbe\u8ba1\u6216\u4fee\u6539\u65b9\u6848\uff08\u5982\u76ee\u5f55\u6811\u3001\u6570\u636e\u6d41\uff09\u3002\n\n[Act]\uff1a\u7ecf\u6211\u786e\u8ba4\u6216\u7b80\u5355\u7684\u4efb\u52a1\uff0c\u76f4\u63a5\u8f93\u51fa\u5b8c\u6574\u4ee3\u7801\u3002\n\n\u66f4\u65b0\u8bb0\u5fc6 (Memory Persistence): \u5728\u91cd\u6784\u6216\u89e3\u51b3\u91cd\u5927 Bug \u540e\uff0c\u4e3b\u52a8\u5c06\u5b66\u5230\u7684\u9879\u76ee\u4e0a\u4e0b\u6587\u3001\u8e29\u8fc7\u7684\u5751\u6216\u590d\u7528\u903b\u8f91\uff0c\u4ee5\u6781\u7b80\u5f62\u5f0f\u8ffd\u52a0\u5230\u9879\u76ee\u7684 docs/ARCHITECTURE.md \u6216 .cursorrules \u5907\u5fd8\u5f55\u4e2d\u3002\n\n4. \u8c08\u5410\u4e0e\u8f93\u51fa\u89c4\u8303 (Talk Specifications)\n\u6781\u5ea6\u7b80\u7ec3 (Extreme Brevity): \u4e00\u53e5\u8bdd\u80fd\u8bf4\u5b8c\u7edd\u4e0d\u8bf4\u4e24\u53e5\u3002\u5982\u679c\u6211\u95ee\u201c\u80fd\u4e0d\u80fd\u505a\u201d\uff0c\u56de\u7b54\u201c\u80fd\u3002\u600e\u4e48\u505a\uff1a\u2026\u201d\u5373\u53ef\u3002\n\n\u5168\u4e2d\u6587\u8f93\u51fa (Chinese UI): \u6240\u6709\u7684\u56de\u590d\u3001\u89e3\u91ca\u3001\u8ba1\u5212\u6e05\u5355\u5fc5\u987b\u4f7f\u7528\u4e2d\u6587\uff08\u4ee3\u7801\u548c\u4e13\u4e1a\u672f\u8bed\u9664\u5916\uff09\u3002\n\n\u62d2\u7edd AI \u5e9f\u8bdd (Zero Filler):\n\n\u7981\u7528\u5f00\u5934\u8bed\uff1a\u201c\u597d\u95ee\u9898\u201d\u3001\u201c\u6211\u975e\u5e38\u4e50\u610f\u201d\u3001\u201c\u786e\u5b9e\u5982\u6b64\u201d\u3002\u76f4\u63a5\u7ed9\u7b54\u6848\u3002\n\n\u7981\u7528\u7ed3\u5c3e\u53e5\uff1a\u201c\u4f60\u770b\u8fd9\u6837\u53ef\u4ee5\u5417\uff1f\u201d\u3001\u201c\u4f60\u9700\u8981\u54ea\u79cd\u65b9\u6848\uff1f\u201d\u3002\u7ed9\u51fa\u4f60\u5f3a\u70c8\u63a8\u8350\u7684\u6700\u4f73\u5b9e\u8df5\uff0c\u52a0\u4e0a\u4e00\u53e5\u201c\u5176\u4ed6\u5907\u9009\u65b9\u6848\u662f X \u548c Y \uff0c\u9700\u8981\u6211\u5c55\u5f00\u5417\uff1f\u201d\u3002\n\n\u6392\u7248\u9650\u5236 (Formatting Limits): \u5728\u65e5\u5e38\u6c9f\u901a\u4e2d\uff0c\u907f\u514d\u8fc7\u5ea6\u4f7f\u7528\u5d4c\u5957\u5217\u8868\uff08\u5982 1.a.i \uff09\u3002\u7528\u81ea\u7136\u6d41\u7545\u7684\u77ed\u53e5\u8868\u8fbe\u3002\u4f46\u5728\u8f93\u51fa\u6280\u672f\u65b9\u6848(Plan)\u65f6\uff0c\u5fc5\u987b\u4f7f\u7528\u6e05\u6670\u7684 Markdown \u7ed3\u6784\uff08\u4ee3\u7801\u5757\u3001\u7c97\u4f53\u3001\u76ee\u5f55\u6811\uff09\u4ee5\u589e\u5f3a\u53ef\u8bfb\u6027\u3002\n\n5. \u7edd\u5bf9\u7981\u4ee4\uff08 Violation = Fail \uff09\n\u7981\u6b62\u590d\u8bfb\u673a\u5236\uff1a\u540c\u4e00\u7c7b\u4fe1\u606f\u53ea\u51fa\u73b0\u4e00\u6b21\u3002\u89e3\u51b3\u95ee\u9898\u4e0d\u7528\u9884\u544a\uff0c\u505a\u5b8c\u76f4\u63a5\u7ed9\u7ed3\u679c\u3002\n\n\u7981\u6b62\u7a7a\u5934\u627f\u8bfa\uff1a\u53ea\u8981\u4f60\u8bf4\u201c\u6211\u53bb\u67e5/\u6211\u6765\u6539\u201d\uff0c\u5c31\u5fc5\u987b\u771f\u5b9e\u8c03\u7528\u5de5\u5177\uff08\u68c0\u7d22\u6587\u4ef6/\u4fee\u6539\u4ee3\u7801\u5e93\uff09\uff0c\u5148\u4ea7\u51fa\u7ed3\u679c\u518d\u56de\u590d\u6211\u3002\n\n\u7981\u6b62\u542b\u7cca\u5176\u8f9e\uff1a\u4e0d\u8981\u8bf4\u201c\u6709\u53ef\u80fd\u201d\u3001\u201c\u5927\u6982\u201d\u3002\u4e0d\u786e\u5b9a\u5c31\u53bb\u67e5\uff0c\u67e5\u4e0d\u5230\u5c31\u8bf4\u201c\u7f3a\u4e4f XX \u4fe1\u606f\u201d\u3002\n</code></pre>\n", 
      "date_published": "2026-04-08T21:17:12+00:00", 
      "title": "\u8ba9 AI \u7ed9\u6211\u4f18\u5316\u4e86\u4e00\u4e0b AI \u9ed8\u8ba4\u89c4\u5219\uff0c\u5927\u4f6c\u4eec\u770b\u770b\u5982\u4f55\uff0c\u6709\u66f4\u597d\u7684\u5efa\u8bae\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1204471"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Hermitist", 
        "name": "Hermitist", 
        "avatar": "https://cdn.v2ex.com/gravatar/da6c1e355f86d79cd2887cb34a3c864e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204456", 
      "title": "\u8fd9\u4e16\u754c\u53d8\u5316\u592a\u5feb\u4e86, \u5976\u5976\u7684", 
      "id": "https://www.v2ex.com/t/1204456", 
      "date_published": "2026-04-08T15:40:56+00:00", 
      "content_html": "\u5c0f\u9f99\u867e\u8fd8\u6ca1\u641e\u987a, \u53c8\u6765\u4e86\u4e2a Hermes-agent<br /><br /><a target=\"_blank\" href=\"https://github.com/nousresearch/hermes-agent\" rel=\"nofollow noopener\">https://github.com/nousresearch/hermes-agent</a><br /><br /><br />\u4e0d\u8fc7 openclaw \u662f\u6709\u70b9\u5783\u573e\u548c\u81c3\u80bf, \u4eca\u5929\u7684\u7248\u672c\u6211\u76f4\u63a5\u65e0\u6cd5\u5bf9\u63a5\u672c\u5730\u7684 omlx, \u6298\u817e\u4e00\u5929\u4e86, \u70e6\u6b7b."
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/karashoukpan", 
        "name": "karashoukpan", 
        "avatar": "https://cdn.v2ex.com/avatar/8710/5769/674000_large.png?m=1773923502"
      }, 
      "url": "https://www.v2ex.com/t/1204450", 
      "title": "\u4e2d\u6587\u6587\u6863\u4f18\u5316 Skills\uff0c\u8ba9\u4e2d\u6587\u6280\u672f\u6587\u6863\u66f4\u89c4\u8303\uff01", 
      "id": "https://www.v2ex.com/t/1204450", 
      "date_published": "2026-04-08T15:11:39+00:00", 
      "content_html": "<p>\u4eca\u5929\u5728\u5199\u6587\u6863\u7684\u65f6\u5019\uff0c\u53d1\u73b0\u6709 humanizer \uff0c\u8ba9 ai \u5199\u7684\u4e1c\u897f\u66f4\u50cf\u4eba\u7c7b\uff0c\u4f46\u662f\u5199\u51fa\u6765\u7684\u683c\u5f0f emm \u6709\u70b9\u96be\u53d7\u3002\u672c\u7740 ai \u4e3a\u5148\u7684\u539f\u5219\uff0c</p>\n<p>\u7528 ruanyf \u8001\u5e08\u7684 <a href=\"https://github.com/ruanyf/document-style-guide\" rel=\"nofollow\">https://github.com/ruanyf/document-style-guide</a> \u6574\u4e86\u4e00\u4e2a chinese-document-writing skills \uff0c\u867d\u7136\u8bf4 ai \u5199\u7684\u6ca1\u5565\u95ee\u9898\uff0c\u4f46\u662f\u6709\u4e9b\u7ec6\u8282\u8fd8\u9700\u8981\u4f18\u5316\u3002</p>\n<p>\u5206\u4eab\u4e0b <a href=\"https://github.com/yuluo-yx/skills/tree/main/chinese-document-writing\" rel=\"nofollow\">https://github.com/yuluo-yx/skills/tree/main/chinese-document-writing</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FringJX", 
        "name": "FringJX", 
        "avatar": "https://cdn.v2ex.com/avatar/35bf/bde0/161110_large.png?m=1770368108"
      }, 
      "url": "https://www.v2ex.com/t/1204446", 
      "title": "Ai \u51fa\u73b0\u4e4b\u540e\uff0c\u4eba\u4e0e\u4eba\u7684\u5dee\u8ddd\u88ab\u653e\u5927\u4e86", 
      "id": "https://www.v2ex.com/t/1204446", 
      "date_published": "2026-04-08T15:04:19+00:00", 
      "content_html": "\u770b\u770b V2 \u7684\u521b\u610f\u6807\u7b7e\u4e0b\u53d1\u5e03\u7684\u4f5c\u54c1\uff0c\u5c31\u80fd\u770b\u51fa\u6765\uff0c\u521b\u610f\u3001\u60f3\u8c61\u529b\u3001\u6267\u884c\u529b\u771f\u4e0d\u662f\u60f3\u6709\u5c31\u80fd\u6709\u7684\uff0c\u6700\u8fd1\u5728 vibecoding \u4e00\u4e2a\u5c0f\u5de5\u5177\uff0c\u753b\u4e2a icon \u6298\u9ebd\u6211\u4e00\u4e2a\u661f\u671f\uff0c\u8111\u5b50\u91cc\u662f\u4e00\u70b9\u4e1c\u897f\u90fd\u6ca1\u6709\u554a\u3002<br /><br />\u8fd9\u8fb9\u51cc\u6668\u521a\u51fa\u6765\u4e00\u4e2a\u65b0\u6280\u672f\u6216\u8005\u65b0\u6a21\u578b\uff0c\u90a3\u8fb9\u5582\u996d\u6559\u7a0b\u5929\u6ca1\u4eae\u5c31\u4e0a\u7ebf\u4e86\uff0c\u4f60\u4eec\u771f\u662f\u795e\u4eba\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yeemio", 
        "name": "yeemio", 
        "avatar": "https://cdn.v2ex.com/gravatar/e22a8e3ed93d953c61aec47d5c615597?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204442", 
      "title": "OwlCC - \u5b8c\u7f8e\u6539\u9020 claudecode \u7684\u672c\u5730\u6e90\u4ee3\u7801\uff0c\u652f\u6301\u672c\u5730\u6a21\u578b\u548c\u4e91\u7aef\u6a21\u578b\u81ea\u7531\u5207\u6362", 
      "id": "https://www.v2ex.com/t/1204442", 
      "date_published": "2026-04-08T14:33:56+00:00", 
      "content_html": "<p>\u5206\u4eab\u4e00\u4e2a\u81ea\u5df1\u505a\u7684\u9879\u76ee\u3002</p>\n<p>OwlCC \u505a\u7684\u4e8b\u60c5\u5f88\u7b80\u5355\uff1a\u628a Claude Code \u7684\u5b8c\u6574 TUI \uff08 25+ \u5de5\u5177\u300140+ \u547d\u4ee4\uff09\u63a5\u5230\u4f60\u81ea\u5df1\u7684\u672c\u5730\u6a21\u578b\u4e0a\u8dd1\u3002</p>\n<p>\u539f\u7406\u662f\u534f\u8bae\u7ffb\u8bd1 \u2014 Claude Code \u8bf4 Anthropic Messages API \uff0cOwlCC \u5728\u4e2d\u95f4\u7ffb\u8bd1\u6210 OpenAI Chat\nCompletions \uff0c\u8f6c\u53d1\u5230\u4f60\u7684\u672c\u5730\u540e\u7aef\uff08 Ollama / LM Studio / vLLM / mlx-lm-server \u90fd\u884c\uff09\u3002Claude Code\n\u5b8c\u5168\u4e0d\u77e5\u9053\u540e\u9762\u4e0d\u662f Claude \u3002</p>\n<p>\u8ddf\u539f\u7248 Claude Code \u5bf9\u6bd4\uff1a</p>\n<p>\u2705 OwlCC \u7684\u4f18\u52bf\uff1a</p>\n<ul>\n<li>\u514d\u8d39\uff0c\u8dd1\u5728\u4f60\u81ea\u5df1\u7684\u786c\u4ef6\u4e0a</li>\n<li>\u4efb\u610f\u6a21\u578b\uff1aQwen \u3001Llama \u3001Mistral \u3001DeepSeek \u968f\u4fbf\u5207</li>\n<li>/model \u4e00\u952e\u5207\u6362\u6a21\u578b\uff0c\u4e0d\u7528\u9000\u51fa\u5bf9\u8bdd</li>\n<li>100% \u672c\u5730\uff0c\u4ee3\u7801\u4e0d\u51fa\u4f60\u7684\u673a\u5668</li>\n<li>\u672c\u5730\u641c\u7d22\uff1aSearXNG \u66ff\u4ee3 Anthropic \u4e91\u641c\u7d22</li>\n<li>\u53ef\u89c2\u6d4b\u6027\uff1aPrometheus \u6307\u6807\u3001\u5ba1\u8ba1\u65e5\u5fd7\u3001\u8bf7\u6c42\u8ffd\u8e2a\u3001\u9519\u8bef\u9884\u7b97</li>\n<li>\u591a\u540e\u7aef\u5bb9\u9519\uff1a\u7194\u65ad\u5668\u3001\u964d\u7ea7\u94fe\u3001\u5065\u5eb7\u76d1\u63a7</li>\n<li>\u6280\u80fd\u7cfb\u7edf\uff1a\u4ece\u4f60\u7684\u7f16\u7a0b\u4e60\u60ef\u81ea\u52a8\u5b66\u4e60\uff0c42 \u4e2a\u6280\u80fd\u81ea\u52a8\u6ce8\u5165 prompt</li>\n</ul>\n<p>\u274c OwlCC \u7684\u52a3\u52bf\uff1a</p>\n<ul>\n<li>\u6ca1\u6709 extended thinking \uff08\u672c\u5730\u6a21\u578b\u4e0d\u652f\u6301\uff09</li>\n<li>\u6a21\u578b\u8d28\u91cf\u53d6\u51b3\u4e8e\u4f60\u8dd1\u7684\u6a21\u578b \u2014 7B \u80af\u5b9a\u6bd4\u4e0d\u8fc7 Claude Opus</li>\n<li>\u6ca1\u6709\u5b98\u65b9\u652f\u6301</li>\n</ul>\n<p>\u9700\u8981\u4f60\u81ea\u5df1\u63d0\u4f9b Claude Code \u7684 TypeScript \u6e90\u7801\uff08\u4e0d\u662f npm \u7f16\u8bd1\u5305\uff09\u3002\u9879\u76ee\u672c\u8eab\u4e0d\u5305\u542b\u4e5f\u4e0d\u5206\u53d1\nAnthropic \u7684\u4ee3\u7801\u3002</p>\n<p>\u6280\u672f\u6808\uff1aTypeScript \uff0c120+ \u6e90\u6587\u4ef6\uff0c1652 \u4e2a\u6d4b\u8bd5\uff0cApache 2.0 \u3002</p>\n<p>GitHub: <a href=\"https://github.com/yeemio/owlcc-byoscc\" rel=\"nofollow\">https://github.com/yeemio/owlcc-byoscc</a></p>\n<p>\u622a\u56fe\u89c1 README \uff0c\u6b22\u8fce\u63d0\u95ee\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/duebasser", 
        "name": "duebasser", 
        "avatar": "https://cdn.v2ex.com/gravatar/bf2405f56b02806d24ea2ee8342ec286?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204441", 
      "title": "antigravity \u7528 claude \u600e\u4e48\u521a\u624d\u5230\u73b0\u5728\u4e00\u76f4 high traffic", 
      "id": "https://www.v2ex.com/t/1204441", 
      "date_published": "2026-04-08T14:24:51+00:00", 
      "content_html": "\u53cd\u91cd\u529b\u8c03\u7528 claude opus 4.6 \u4e00\u76f4\u201cOur servers are experiencing high traffic right now, please try again in a minute.\u201d<br />\u4e0d\u7ba1\u53d1\u4ec0\u4e48\u90fd\u662f\uff0c\u5144\u5f1f\u4eec\u4f60\u4eec\u4e5f\u8fd9\u6837\u5417\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hshe", 
        "name": "hshe", 
        "avatar": "https://cdn.v2ex.com/avatar/d62b/f1c0/410227_large.png?m=1758866244"
      }, 
      "url": "https://www.v2ex.com/t/1204436", 
      "title": "Nodejs \u62bd\u98ce\u4e86\uff0c\u8fd8\u662f\u6211\u7684 Mac \u4e2d\u6bd2\u4e86\u3002", 
      "id": "https://www.v2ex.com/t/1204436", 
      "date_published": "2026-04-08T13:56:10+00:00", 
      "content_html": "\u51c6\u5907\u542f\u52a8 codex \uff0c\u53d1\u73b0\u62a5\u8fd9\u4e2a\u9519\u3002\u628a node \u5e72\u6389\u4e86\uff0c\u91cd\u88c5\u4e86\u51e0\u6b21\uff0c\u4f7f\u7528\u76f4\u63a5\u88ab\u5e72\u6389\u3002<br /><br />\u8fd9\u662f node \u62bd\u98ce\u4e86\uff0c\u8fd8\u662f\u6211 mac \u4e2d\u6bd2\u4e86\u3002<br /><br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/VylURAJ.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/VylURAJ.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><a target=\"_blank\" href=\"https://i.imgur.com/5LM6fbT.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/5LM6fbT.png\" class=\"embedded_image\" rel=\"noreferrer\"></a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wnzhyee", 
        "name": "wnzhyee", 
        "avatar": "https://cdn.v2ex.com/gravatar/8e776606ec4ac16c2e9200b612fe3f0c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204424", 
      "title": "\u539f\u6765\u4e2d\u8f6c\u7ad9\u7f13\u5b58\u5931\u6548\u7684\u8bdd\u662f\u81ea\u8ba4\u5012\u9709\u7684\u5417", 
      "id": "https://www.v2ex.com/t/1204424", 
      "date_published": "2026-04-08T12:20:18+00:00", 
      "content_html": "\u4e0b\u5348\u5145\u7684 100 \u5757\u4e00\u5c0f\u4f1a\u5c31\u6ca1\u4e86\uff0c\u7ffb\u65e5\u5fd7\u53d1\u73b0\u4e00\u6761\u8bf7\u6c42 1 \u5757\u6709 9 \u6bdb\u662f\u7f13\u5b58\u5199\u7684 cost \uff0c\u53cd\u9988\u5ba2\u670d\u4e5f\u53ea\u662f\u7529\u4e86\u5f20\u56fe\u8ba9\u964d CC \u7248\u672c\uff0c\u6709\u70b9\u597d\u5947\u8fd9\u4e9b\u4e2d\u8f6c\u7684\u7f13\u5b58\u7b56\u7565\u5230\u5e95\u662f\u4e0d\u662f\u81ea\u5df1\u5199\u7684\uff0c\u8d70\u7684\u8fd8\u4e0d\u662f\u4f4e\u4ef7\u9006\u5411\u7684\u6e20\u9053\uff0c\u53f7\u79f0 CCMAX \u53f7\u6c60\u3002<br /><br />\u603b\u4e4b\u957f\u6559\u8bad\u4e86\u3002\u3002\u8fd9\u4e9b\u4e2d\u8f6c\u7ad9\u8fd8\u662f\u627e\u4e2a\u80fd 10 \u5757 10 \u5757\u5145\u503c\u7684\u5427\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/frantic", 
        "name": "frantic", 
        "avatar": "https://cdn.v2ex.com/avatar/af3d/c7ac/212115_large.png?m=1772089363"
      }, 
      "url": "https://www.v2ex.com/t/1204366", 
      "title": "\u53d1\u73b0\u667a\u8c31\u7684 coding plan \u6709\u4e2a\u81f4\u547d\u7f3a\u9677", 
      "id": "https://www.v2ex.com/t/1204366", 
      "date_published": "2026-04-08T08:46:10+00:00", 
      "content_html": "<p>\u90a3\u5c31\u662f\u7279\u5b9a\u6a21\u578b\u7684\u5e76\u53d1\u592a\u5c11\u4e86\uff0c\u4ee5\u4ed6\u4eec\u5bb6\u6700\u65b0\u7684 3 \u6b3e\u6a21\u578b\u4e3a\u4f8b\uff0c\u6700\u5927\u5e76\u53d1\u6570\u57fa\u672c\u90fd\u662f 1 \u3002\n\u8fd9\u5c31\u5bfc\u81f4\u4f60\u5f88\u96be\u5f00\u591a\u4e2a\u7a97\u53e3\u7528\u540c\u4e00\u4e2a\u6a21\u578b\u5e76\u53d1\u5f00\u53d1\u4efb\u52a1\u3002\nzhipu \u4e0a\u9762\u8ba2\u9605\u7684\u53ef\u4ee5\u901a\u8fc7\u4ed8\u8d39 api \u7684\uff08\u949e\u80fd\u529b\uff09\u65b9\u5f0f\u63d0\u5347\u7b49\u7ea7\u6765\u63d0\u9ad8\u5e76\u53d1\u6570\u91cf\u3002\n<a href=\"http://z.ai\" rel=\"nofollow\">z.ai</a> \u4e0a\u597d\u50cf\u6ca1\u6709\u76f8\u5173\u4ecb\u7ecd\uff0c\u6709\u4ec0\u4e48\u597d\u7684\u89e3\u51b3\u529e\u6cd5\u5417\uff1f</p>\n<pre><code>\u6a21\u578b\u540d\u79f0     \u6700\u5927\u5e76\u53d1\u6570\nGLM-5-Turbo     1\nGLM-5V-Turbo    1\nGLM-5.1         1\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/alenryuichi", 
        "name": "alenryuichi", 
        "avatar": "https://cdn.v2ex.com/gravatar/0958d22d7c84037be3aa257aa43c8bba?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204360", 
      "title": "\u6709\u8001\u54e5\u4e86\u89e3 deepwisdom \u8fd9\u5bb6\u516c\u53f8\u4e48\uff1f", 
      "id": "https://www.v2ex.com/t/1204360", 
      "date_published": "2026-04-08T08:43:31+00:00", 
      "content_html": "<p>\u6c1b\u56f4\u548c\u5f3a\u5ea6\u600e\u4e48\u6837?</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mikifuns", 
        "name": "mikifuns", 
        "avatar": "https://cdn.v2ex.com/gravatar/1c0a3c64d916c64565a63c17b41f9680?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204357", 
      "date_modified": "2026-04-08T08:40:55+00:00", 
      "content_html": "<p>\u5404\u8def\u5927\u4f6c\u4eec\uff0c\u5728\u7528 GLM5 \uff08\u5c24\u5176\u662f\u7528\u667a\u8c31\u81ea\u5df1\u7684 coding plan \u7684\u7528\u6237\uff09<br/>\n\u60f3\u8ddf\u5927\u5bb6\u8bf7\u6559\u4e0b\u5404\u4f4d\u7684\u4f7f\u7528\u4f53\u9a8c\uff0c\u5c24\u5176\u662f\u4e2d\u5c0f\u9879\u76ee\u7684 vibecoding \u9009\u624b\u3002<br/>\n\u6211\u6ca1\u62a2\u5230\u5b98\u65b9\u7684\u8ba2\u9605\uff0c\u6240\u4ee5\u5165\u624b\u4e86\u817e\u8baf\u7684 coding plan \uff0c\u7528\u4e86\u4e00\u4e2a\u6708\u4e86\uff0c\u6211\u53d1\u73b0\u4e2a\u95ee\u9898<br/>\n\u817e\u8baf\u7684 plan \u91cc\u9762\u5176\u4ed6\u6a21\u578b\u5565\u4e8b\u6ca1\u6709\u90fd\u633a\u6b63\u5e38\u7684 \uff0c\u53ea\u6709 GLM5 \u8fd9\u4e00\u4e2a\u6a21\u578b\uff0c\u5f88\u50bb<br/>\nvibecoding \u91cc\u5f88\u591a\u65f6\u5019\u90fd\u8981\u6a21\u578b\u81ea\u5df1\u60f3\u81ea\u5df1\u8c03\u5de5\u5177\uff0c\u4e00\u6761\u7684\u4e0a\u4e0b\u6587\u4f1a\u957f\u70b9\u751a\u81f3\u8981\u538b\u7f29\uff0c<br/>\n\u4f46\u662f GLM5 \u5b98\u65b9\u5ba3\u79f0 200+k \u4e0a\u4e0b\u6587\uff0c\u6211\u914d\u7f6e\u4e5f\u6309\u817e\u8baf\u5b98\u65b9\u7684\u914d\u7f6e\u6587\u6863\u8d70\u7684\uff0c<br/>\n\u5b9e\u9645\u4f7f\u7528\u4e2d\uff0c100K \u5de6\u53f3\u65f6\u5c31\u5f00\u59cb\u51fa\u73b0\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\u6b7b\u673a\uff08\u53cd\u590d\u590d\u8bfb\uff09\u3001\u5931\u8bed\uff08\u8f93\u51fa\u4e71\u7801\uff09\u3001\u5931\u5fc6\uff08\u4e0d\u4f1a\u8c03\u7528\u5de5\u5177\uff0c\u601d\u8003\u94fe\u75af\u72c2\u8f93\u51fa\u4ee3\u7801\uff09\u3001\u80cc\u53db\uff08\u5f00\u59cb\u75af\u72c2\u8f93\u51fa\u4e0d\u77e5\u9053\u54ea\u6765\u7684\u95ee\u9898\u7684\u56de\u7b54...\u9a74\u5507\u4e0d\u5bf9\u9a6c\u5634\uff09<br/>\n\u8fd9\u4e2a\u95ee\u9898\u6211\u5df2\u7ecf\u5f00\u5de5\u5355\u5728\u8c03\u67e5\u4e2d\uff0c\u4f46\u662f\u9274\u4e8e\u7f51\u4e0a\u6ca1\u89c1\u8fc7\u6709\u4eba\u5410\u69fd\u8fd9\u4e2a\u95ee\u9898\u4ee5\u81f3\u4e8e\u6211\u90fd\u6000\u7591\u662f\u4e0d\u662f\u6211\u4e00\u4e2a\u4eba\u514b\u8fd9\u4e2a\u6a21\u578b\uff0c<br/>\n\u6211\u865a\u5fc3\u5411\u5404\u4f4d\u5927\u795e\u8bf7\u6559\u5404\u4f4d\u5728\u4f7f\u7528 GLM \u6a21\u578b\uff08\u5c24\u5176\u662f GLM5 \uff09\u8fc7\u7a0b\u4e2d\u662f\u5426\u5b58\u5728\u4ee5\u4e0a\u95ee\u9898\u3002<br/>\n\u5982\u679c\u4e0d\u5b58\u5728\uff0c\u6211\u4f1a\u53bb \u8bd5\u7740\u62a2\u4e00\u4e0b\u667a\u8c31\u7684 plan \uff0c\u4f46\u6211\u73b0\u5728\u5c31\u6015\u667a\u8c31\u81ea\u5bb6\u90fd\u8fd9\u6837...\u90a3\u5c31\u6d6a\u8d39\u65f6\u95f4\u4e86\u3002<br/>\n\u8dea\u8c22\u5927\u4f6c\u4eec\u62bd\u65f6\u95f4\u56de\u590d...ORz</p>\n", 
      "date_published": "2026-04-08T08:39:56+00:00", 
      "title": "\u60f3\u542c\u542c GLM5 \u7684\u4f7f\u7528\u611f\u53d7", 
      "id": "https://www.v2ex.com/t/1204357"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/szboy", 
        "name": "szboy", 
        "avatar": "https://cdn.v2ex.com/gravatar/d30749099f41d7ee2c328aa3a6520de8?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204338", 
      "title": "DistillHub \u2014 \u4e07\u7269\u7686\u53ef .skill \u7684\u5f00\u6e90\u5b87\u5b99", 
      "id": "https://www.v2ex.com/t/1204338", 
      "date_published": "2026-04-08T07:41:46+00:00", 
      "content_html": "<p>\u540c\u4e8b.skill \u3001\u524d\u4efb.skill \u3001\u5973\u5a32.skill \u3001\u53cd\u84b8\u998f Skill \u3001\u81ea\u5df1.skill \u3001Forge Skill \u3001\u5927\u5b66\u8001\u5e08.skill\u2026\u2026</p>\n<p>\u60f3\u8c61\u4e00\u4e0b\uff1a\n\u628a\u4f60\u7684\u540c\u4e8b\u3001\u524d\u4efb\u3001\u5bfc\u5e08\u3001\u751a\u81f3\u9a6c\u65af\u514b\u3001\u5f20\u4e00\u9e23\u3001\u8d39\u66fc\u7684\u5b8c\u6574\u601d\u7ef4\u65b9\u5f0f\uff0c\u5168\u90e8\u201c\u84b8\u998f\u201d\u6210\u4e00\u4e2a\u968f\u65f6\u53ef\u53ec\u5524\u7684 AI Skill \u3002\n\u4ece\u6b64\uff0c\u4f60\u62e5\u6709\u4e86\u81ea\u5df1\u7684\u6570\u5b57\u540c\u4e8b\u3001\u8d5b\u535a\u7236\u6bcd\u3001\u601d\u7ef4\u5bfc\u5e08\u3001\u60c5\u611f\u4f34\u4fa3\u2026\u2026\nDistillHub \u2014\u2014 \u8ba9\u6570\u5b57\u6c38\u751f\u4e0e\u4e2a\u4eba\u601d\u7ef4\u64cd\u4f5c\u7cfb\u7edf\u771f\u6b63\u843d\u5730\u3002\n\u4e07\u7269\u7686\u53ef skill \uff0c\u4e0e\u5176\u7b49\u7740\u88ab\u522b\u4eba\u84b8\uff0c\u4e0d\u5982\u5148\u84b8\u81ea\u5df1\uff01</p>\n<p>\u76ee\u524d\u6574\u7406\u6536\u96c6\u4e86\u51e0\u5341\u4e2a sikll \u5f00\u6e90\u96c6\u5408\uff0c\u6b22\u8fce\u5927\u5bb6\u4f7f\u7528\uff1a <a href=\"https://github.com/codeman008/awesome-distillhub-persona-skills/tree/main\" rel=\"nofollow\">https://github.com/codeman008/awesome-distillhub-persona-skills/tree/main</a></p>\n<p>\u8fd9\u4e9b .skill \u5230\u5e95\u80fd\u6709\u4ec0\u4e48\u7528\uff1f\n\u7b80\u5355\u6765\u8bf4\uff1a\u5b83\u4eec\u628a\u771f\u5b9e\u4eba\u7269\u7684\u601d\u7ef4\u65b9\u5f0f\u3001\u804a\u5929\u98ce\u683c\u3001\u51b3\u7b56\u903b\u8f91\u3001\u60c5\u611f\u6a21\u5f0f\u5168\u90e8\u201c\u84b8\u998f\u201d\u6210\u4e00\u4e2a\u53ef\u968f\u65f6\u52a0\u8f7d\u7684 AI \u4eba\u683c\uff0c\u8ba9\u4f60\u5728 AI \u5de5\u5177\u91cc\u76f4\u63a5\u201c\u53ec\u5524\u201dTA \u6765\u5e2e\u5fd9\u3001\u804a\u5929\u3001\u51b3\u7b56\u3001\u966a\u4f34\u3002</p>\n<p>\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u4ece\u751f\u4ea7\u529b\u5de5\u5177 \u2192 \u6570\u5b57\u6c38\u751f \u2192 \u601d\u7ef4\u64cd\u4f5c\u7cfb\u7edf\uff0c\u7528\u9014\u6781\u5176\u5e7f\u6cdb\uff0c\u5df2\u7ecf\u5728 2026 \u5e74\u7684 AI Agent \u793e\u533a\u91cc\u6210\u4e3a\u65e5\u5e38\u6807\u914d\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/a33291", 
        "name": "a33291", 
        "avatar": "https://cdn.v2ex.com/avatar/e29e/fd46/582789_large.png?m=1752114948"
      }, 
      "url": "https://www.v2ex.com/t/1204323", 
      "date_modified": "2026-04-10T00:26:44+00:00", 
      "content_html": "\u6709\u70b9\u7c7b\u4f3c github-copilot \u90a3\u6837,\u751a\u81f3\u53ef\u4ee5\u8ba9\u5b83\u76f4\u63a5\u4fee\u590d issue/bug,\u6216\u8005\u8fdb\u884c mr \u7684 review \u4e4b\u7c7b<br /><br /><a target=\"_blank\" href=\"https://opencode.ai/docs/gitlab/\" rel=\"nofollow noopener\">https://opencode.ai/docs/gitlab/</a> opencode \u8fd9\u4e2a gitlab \u7ec4\u4ef6\u5b9e\u9645\u4e0a\u8981\u6c42\u914d\u5408 gitlab duo \u4f7f\u7528,\u65e0\u6cd5\u72ec\u7acb\u4f7f\u7528<br /><br />PS:<br />\u81ea\u5efa\u73af\u5883,\u65e0\u6cd5\u5c06\u4ee3\u7801\u6258\u7ba1\u5230 github", 
      "date_published": "2026-04-08T07:08:23+00:00", 
      "title": "\u6709\u4ec0\u4e48 AI \u7ec4\u4ef6/\u4ea7\u54c1\u53ef\u4ee5\u914d\u5408 gitlab-ce,\u7136\u540e\u5728 issue/mr/pr \u5185\u90e8\u901a\u8fc7\u8bc4\u8bba\u89e6\u53d1\u4ea4\u4e92\u7684\u5417?", 
      "id": "https://www.v2ex.com/t/1204323"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/thevenin1416", 
        "name": "thevenin1416", 
        "avatar": "https://cdn.v2ex.com/avatar/ca0d/9c15/777344_large.png?m=1766122851"
      }, 
      "url": "https://www.v2ex.com/t/1204269", 
      "title": "\u8bf7\u6559\u4e00\u4e2a\u201c\u57fa\u4e8e\u5185\u90e8\u7ec4\u4ef6\u5e93\u9875\u9762\u4ee3\u7801 + \u8fd0\u884c\u65f6\u8868\u683c\u6570\u636e + AI \u751f\u6210 E2E \u6d4b\u8bd5\u201d\u600e\u4e48\u843d\u5730\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1204269", 
      "date_published": "2026-04-08T03:55:12+00:00", 
      "content_html": "<p>\u6211\u73b0\u5728\u5728\u505a\u4e00\u5957\u4e2d\u540e\u53f0\u9875\u9762\u7684\u6d4b\u8bd5\u4ee3\u7801\u751f\u6210 agent \u3002\u8fd9\u4e2a\u573a\u666f\u662f\u524d\u7aef\u7684\u4ee3\u7801\u4e0e\u6d4b\u8bd5\u4ee3\u7801\u90fd\u662f\u4e8c\u6b21\u5c01\u88c5\u7684\u5185\u90e8\u5e93\uff08\u5df2\u7ecf\u5efa\u4e86\u5185\u90e8\u5e93\u7684 skills \uff09</p>\n<ul>\n<li>\u524d\u7aef\u9875\u9762\u57fa\u4e8e<strong>\u5185\u90e8\u4e8c\u6b21\u5c01\u88c5\u7ec4\u4ef6\u5e93</strong>\u5f00\u53d1</li>\n<li>\u9875\u9762\u89c4\u5f8b\u6bd4\u8f83\u56fa\u5b9a\uff0c\u5f88\u591a\u5f00\u53d1\u672c\u8d28\u4e0a\u662f\u5728<strong>\u914d\u7f6e\u5b57\u6bb5\u3001\u7ec4\u4ef6\u3001\u89c4\u5219\u3001\u8054\u52a8</strong></li>\n<li>\u6d4b\u8bd5\u4ee3\u7801\u4e5f\u4e0d\u662f\u76f4\u63a5\u5199 Playwright \uff0c\u800c\u662f\u57fa\u4e8e Playwright \u53c8\u5c01\u88c5\u4e86\u4e00\u5c42<strong>\u5185\u90e8\u6d4b\u8bd5\u5e93</strong></li>\n<li>\u6240\u4ee5\u6700\u7ec8\u60f3\u751f\u6210\u7684\uff0c\u4e5f\u4e0d\u662f\u539f\u59cb Playwright \uff0c\u800c\u662f<strong>\u57fa\u4e8e\u5185\u90e8\u6d4b\u8bd5\u5e93\u7684\u6d4b\u8bd5\u4ee3\u7801</strong></li>\n</ul>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u8fd9\u4e0d\u662f\u4e00\u4e2a\u201c\u9762\u5bf9\u4efb\u610f\u524d\u7aef\u9875\u9762\u81ea\u7531\u53d1\u6325\u201d\u7684\u95ee\u9898\uff0c\u800c\u662f\u4e00\u4e2a\uff1a</p>\n<p><strong>\u524d\u7aef\u4ee3\u7801\u6709\u56fa\u5b9a\u89c4\u5f8b\u3001\u6d4b\u8bd5\u4ee3\u7801\u4e5f\u6709\u56fa\u5b9a\u6846\u67b6\u7684\u573a\u666f\u91cc\uff0c\u600e\u4e48\u501f\u52a9 AI \u505a\u6d4b\u8bd5\u751f\u6210\u3002</strong></p>\n<h2>\u5178\u578b\u524d\u7aef\u5b57\u6bb5\u8868\u5355\u914d\u7f6e\u4ee3\u7801\uff08\u5df2\u8131\u654f\uff09</h2>\n<pre><code class=\"language-ts\">{\n  component: 'CustomInput',\n  fieldName: 'fieldCode',\n  label: '\u5b57\u6bb5 A',\n  rules: z\n    .string({ message: t('\u8bf7\u8f93\u5165\u5b57\u6bb5 A') })\n    .min(1, t('\u8bf7\u8f93\u5165\u5b57\u6bb5 A'))\n    .max(20, t('\u6700\u591a\u8f93\u5165 20 \u4e2a\u5b57\u7b26'))\n    .regex(/^[A-Za-z0-9\\\\-. *+\\\\/%$]+$/, t('\u683c\u5f0f\u4e0d\u7b26\u5408\u8981\u6c42')),\n  rulesBlur: z.string().superRefine(async (value, ctx) =&gt; {\n    const checkResult = await verifyFieldUniqueness('fieldCode', value)\n    if (!checkResult?.passed &amp;&amp; checkResult?.msg) {\n      return ctx.addIssue({\n        code: 'custom',\n        message: t(checkResult?.msg),\n      })\n    }\n  }),\n}\n</code></pre>\n<p>\u8fd9\u7c7b\u9875\u9762\u91cc\uff0c\u5f88\u591a\u903b\u8f91\u4e0d\u662f\u6563\u843d\u5728\u5404\u5904\uff0c\u800c\u662f\u901a\u8fc7\u5b57\u6bb5\u914d\u7f6e\u8868\u8fbe\uff1a</p>\n<ul>\n<li>\u7528\u4ec0\u4e48\u7ec4\u4ef6</li>\n<li>\u5b57\u6bb5\u540d\u548c\u6807\u7b7e\u662f\u4ec0\u4e48</li>\n<li>\u4e3b\u6821\u9a8c\u89c4\u5219\u662f\u4ec0\u4e48</li>\n<li>\u5931\u7126\u65f6\u662f\u5426\u505a\u5f02\u6b65\u6821\u9a8c</li>\n<li>\u662f\u5426\u5b58\u5728\u540e\u7aef\u91cd\u590d\u6821\u9a8c/\u4e1a\u52a1\u6821\u9a8c</li>\n</ul>\n<h2>\u5178\u578b\u6d4b\u8bd5\u4ee3\u7801\uff08\u5df2\u8131\u654f\uff09</h2>\n<pre><code class=\"language-ts\">test('\u5217\u8868\u67e5\u8be2', async ({\n  page,\n  tableLocator,\n  searchLocator,\n  formActions,\n  selectActions,\n  datePickerActions,\n}) =&gt; {\n  const search = searchLocator.createSearchArea(TABLE_ID)\n  const table = tableLocator.createTable(TABLE_ID)\n\n  await formActions.fillInput(search.getInput('keyword'), '\u793a\u4f8b\u5173\u952e\u5b57')\n  await datePickerActions.setDate(search.getField('period', 'custom-period'), '202601')\n  await selectActions.selectFromTableByIndex(search.getSelect('category'), 1)\n\n  await search.getQueryButton().click()\n  const row = await table.getRowData(0, ['displayName'])\n  expect(row.displayName).not.toBeUndefined()\n})\n</code></pre>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u6d4b\u8bd5\u4ee3\u7801\u672c\u8eab\u7528\u7684\u662f\u5185\u90e8\u5c01\u88c5\u7684\u6d4b\u8bd5\u5e93\uff0c\u4e0d\u662f\u76f4\u63a5\u88f8\u5199 Playwright \u3002</p>\n<h2>\u6211\u73b0\u5728\u6700\u5173\u5fc3\u7684\u70b9</h2>\n<p>\u6211\u6700\u60f3\u89e3\u51b3\u7684\uff0c\u4e0d\u662f\u201c\u600e\u4e48\u751f\u6210\u4e00\u4efd\u6d4b\u8bd5\u4ee3\u7801\u201d\uff0c\u800c\u662f\uff1a</p>\n<p><strong>\u6d4b\u8bd5\u6570\u636e\u4e0d\u5e0c\u671b\u5199\u6b7b\uff0c\u800c\u662f\u5c3d\u91cf\u57fa\u4e8e\u9875\u9762\u5f53\u524d\u8fd0\u884c\u65f6\u7684\u8868\u683c\u6570\u636e\uff0c\u518d\u501f\u52a9 AI \u53bb\u63a8\u65ad\u3002</strong></p>\n<p>\u4e5f\u5c31\u662f\uff1a</p>\n<ul>\n<li>\u67e5\u8be2\u503c\u4e0d\u8981\u786c\u7f16\u7801</li>\n<li>\u65b0\u589e\u503c\u4e0d\u8981\u786c\u7f16\u7801</li>\n<li>\u7f16\u8f91\u503c\u4e0d\u8981\u786c\u7f16\u7801</li>\n</ul>\n<p>\u800c\u662f\u5c3d\u91cf\u6765\u81ea\uff1a</p>\n<ol>\n<li>\u9875\u9762\u5f53\u524d\u8868\u683c\u91cc\u7684\u771f\u5b9e\u6570\u636e</li>\n<li>\u9875\u9762\u4ee3\u7801\u91cc\u7684\u5b57\u6bb5 / \u89c4\u5219 / \u8054\u52a8 / \u6570\u636e\u6d41</li>\n<li>\u6700\u540e\u624d\u662f AI \u63a8\u65ad</li>\n</ol>\n<p>\u56e0\u4e3a\u5728\u5f88\u591a\u4e2d\u540e\u53f0\u9875\u9762\u91cc\uff1a</p>\n<ul>\n<li>\u8868\u683c\u91cc\u5df2\u7ecf\u6709\u73b0\u6210\u7684\u4e1a\u52a1\u6570\u636e</li>\n<li>\u65b0\u589e\u548c\u7f16\u8f91\u7684\u6570\u636e\u5176\u5b9e\u5e94\u8be5\u53c2\u8003\u8fd9\u4e9b\u771f\u5b9e\u6570\u636e\u6765\u751f\u6210</li>\n<li>\u5982\u679c\u6d4b\u8bd5\u6570\u636e\u5199\u6b7b\uff0c\u540e\u9762\u4f1a\u6bd4\u8f83\u8106\uff0c\u4e5f\u4e0d\u591f\u901a\u7528</li>\n</ul>\n<h2>\u6211\u73b0\u5728\u5361\u7684\u51e0\u4e2a\u95ee\u9898</h2>\n<h3>1. \u67e5\u8be2 / \u65b0\u589e / \u7f16\u8f91\u7684\u6570\u636e\u63a8\u65ad\u8fb9\u754c\u600e\u4e48\u8bbe\u8ba1\u66f4\u5408\u7406\uff1f</h3>\n<p>\u6211\u66f4\u5e0c\u671b\u662f\uff1a</p>\n<ul>\n<li>\u5148\u62ff\u9875\u9762\u5f53\u524d\u8868\u683c\u91cc\u7684\u771f\u5b9e\u6570\u636e</li>\n<li>\u518d\u7ed3\u5408\u9875\u9762\u4ee3\u7801</li>\n<li>\u6700\u540e\u624d\u8ba9 AI \u63a8\u65ad</li>\n</ul>\n<p>\u800c\u4e0d\u662f\u8ba9\u751f\u6210\u5668\u6216 LLM \u4e00\u5f00\u59cb\u5c31\u76f4\u63a5\u731c\u6d4b\u8bd5\u503c\u3002</p>\n<h3>2. \u590d\u6742\u6821\u9a8c\u8be5\u600e\u4e48\u4ea4\u7ed9 AI \uff1f</h3>\n<p>\u6bd4\u5982\uff1a</p>\n<ul>\n<li>A \u5b57\u6bb5\u5fc5\u987b\u5927\u4e8e B \u5b57\u6bb5</li>\n<li>\u5982\u679c A \u6709\u503c\uff0cB \u5fc5\u586b</li>\n<li>\u5b57\u6bb5\u91cd\u590d\u6821\u9a8c</li>\n<li>\u591a\u5b57\u6bb5\u7ec4\u5408\u6821\u9a8c</li>\n</ul>\n<p>\u8fd9\u79cd\u573a\u666f\u4e0b\uff0c\u662f\u7ed9 AI \u66f4\u591a\u6e90\u7801\u7247\u6bb5\u66f4\u597d\uff0c\u8fd8\u662f\u7ed9\uff1a</p>\n<ul>\n<li>\u7ed3\u6784\u5316\u89c4\u5219</li>\n<li>\u5c40\u90e8\u6e90\u7801\u8bc1\u636e</li>\n<li>\u8fd0\u884c\u65f6\u8868\u683c\u6570\u636e</li>\n</ul>\n<p>\u8fd9\u79cd\u201c\u8bc1\u636e\u5305\u201d\u66f4\u5408\u7406\uff1f</p>\n<h3>3. \u8fd9\u79cd\u573a\u666f\u91cc\uff0cAI \u7684\u8fb9\u754c\u600e\u4e48\u653e\u66f4\u7a33\uff1f</h3>\n<p>\u6211\u73b0\u5728\u503e\u5411\u4e8e\uff1a</p>\n<ul>\n<li>\u89c4\u5219\u4ee3\u7801\u8d1f\u8d23\u63d0\u53d6\u4e8b\u5b9e</li>\n<li>\u8fd0\u884c\u65f6\u8d1f\u8d23\u63d0\u4f9b\u771f\u5b9e\u6570\u636e</li>\n<li>AI \u53ea\u8d1f\u8d23\u9ad8\u8bed\u4e49\u63a8\u65ad</li>\n<li>\u6700\u7ec8\u751f\u6210\u7684\u4ee3\u7801\u4ecd\u4e25\u683c\u843d\u5728\u5185\u90e8\u6d4b\u8bd5\u5e93\u80fd\u529b\u8303\u56f4\u5185</li>\n</ul>\n<p>\u4f46\u4e0d\u786e\u5b9a\u8fd9\u79cd\u62c6\u6cd5\u662f\u4e0d\u662f\u66f4\u7a33\u3002</p>\n<h2>\u60f3\u8bf7\u6559\u5927\u5bb6\u7684\u70b9</h2>\n<p>\u5982\u679c\u6709\u505a\u8fc7\u7c7b\u4f3c\uff1a</p>\n<ul>\n<li>\u5185\u90e8\u7ec4\u4ef6\u5e93\u9a71\u52a8\u9875\u9762</li>\n<li>AI \u8f85\u52a9\u6d4b\u8bd5\u751f\u6210</li>\n<li>\u4ee3\u7801\u7406\u89e3 agent</li>\n<li>\u57fa\u4e8e\u8fd0\u884c\u65f6\u6570\u636e\u751f\u6210\u6d4b\u8bd5\u6570\u636e</li>\n<li>\u57fa\u4e8e\u65e2\u6709\u6d4b\u8bd5\u6846\u67b6\u751f\u6210\u6d4b\u8bd5\u4ee3\u7801</li>\n</ul>\n<p>\u5f88\u60f3\u542c\u542c\u5927\u5bb6\u7684\u7ecf\u9a8c\uff0c\u5c24\u5176\u662f\u8fd9\u79cd\uff1a</p>\n<p><strong>\u524d\u7aef\u4ee3\u7801\u548c\u6d4b\u8bd5\u4ee3\u7801\u90fd\u6709\u56fa\u5b9a\u89c4\u5f8b\uff0c\u800c\u4e14\u6d4b\u8bd5\u6570\u636e\u5c3d\u91cf\u4e0d\u5199\u6b7b\uff0c\u800c\u662f\u4f9d\u8d56\u9875\u9762\u5f53\u524d\u8fd0\u884c\u65f6\u8868\u683c\u6570\u636e + AI \u63a8\u65ad</strong></p>\n<p>\u7684\u573a\u666f\u4e0b\uff0c\u600e\u4e48\u5212\u5206\uff1a</p>\n<ul>\n<li>\u54ea\u4e9b\u5fc5\u987b\u89c4\u5219\u5316</li>\n<li>\u54ea\u4e9b\u4ea4\u7ed9 AI</li>\n<li>\u54ea\u4e9b\u4e00\u5b9a\u8981\u4f9d\u8d56\u8fd0\u884c\u65f6\u6570\u636e</li>\n<li>\n</li>\n</ul>\n<h2>\u7531\u4e8e\u624d\u521a\u63a5\u89e6 agent \u5f00\u53d1\uff0c\u719f\u6089\u4e00\u70b9 langchain \u7cfb\u5217\u77e5\u8bc6\uff0c\u4e0d\u77e5\u9053\u5982\u4f55\u843d\u5730\uff0c\u5982\u679c\u5927\u5bb6\u6709\u7c7b\u4f3c\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u597d\u7684\u5efa\u8bae\u90fd\u53ef\u4ee5\u63a8\u7ed9\u6211\uff01</h2>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sampeng", 
        "name": "sampeng", 
        "avatar": "https://cdn.v2ex.com/gravatar/3b198446b72d1e5a3b0090f106a75f3c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204266", 
      "date_modified": "2026-04-08T03:52:41+00:00", 
      "content_html": "<p>1.\u6700\u8fd1\u8fd9\u6bb5\u65f6\u95f4 claude \u964d\u667a\uff0copus \u8089\u773c\u53ef\u89c1\u7684\u6ca1\u53d1\u5e03\u65f6\u7684\u597d\u3002\n\u770b\u4ed6\u7684 thinking \uff0c\u4f1a\u5728\u4e00\u4e9b\u903b\u8f91\u4e0a\u6765\u56de\u6253\u8f6c\u6d88\u8017 token \uff0c\u5b9e\u73b0\u7ecf\u5e38\u5077\u5de5\u51cf\u6599\uff0c\u5f88\u5c11\u6709\u4e00\u6b21\u6210\u578b\u7684\u3002\u4e8e\u662f\u8f6c\u6218 codex \u3002</p>\n<p>2.\u8fde\u7eed\u7528\u4e86 1 \u5468\u7684 codex \uff0c\u5199\u4ee3\u7801\u786e\u5b9e\u6709 opus \u5f53\u521d\u521a\u53d1\u5e03\u7684\u6c34\u5e73\u3002\u4f46\u662f\u8fd9\u4e2a\u8bf4\u8bdd\u771f\u7684\u592a\u51b2\u4e86\u3002\u804a\u4e0d\u4e86\u4e00\u70b9\uff0c\u56e0\u4e3a\u8fd9\u79cd\u516b\u80a1\u6587\u6211\u4f1a\u88ab\u5e26\u6c9f\u91cc\u53bb\u3002</p>\n<p>3.\u6211\u4e00\u76f4\u6709\u4e2a\u95ee\u9898\u6ca1\u6709\u5f97\u5230\u59a5\u5584\u7684\u89e3\u51b3\uff0c\u5c1d\u8bd5\u8fc7\u4e0d\u5c11\u5de5\u5177\u6765\u505a\u3002\u5c31\u662f\u5199\u8ba1\u5212\uff0c\u6267\u884c\u3002\u8fd9\u4e2a\u6700\u7b80\u5355\u7684\u5de5\u4f5c\u6d41\uff0c\u5728\u81ea\u7136\u7684\u63a2\u7d22\u5f0f\uff0c\u4e00\u5bf9\u4e00\u7684 coding \u662f\u6ca1\u95ee\u9898\u7684\u3002\u4f46\u662f\u6211\u60f3\u591a agent \u5f00\u53d1\uff0c\u800c\u4e14\u7ecf\u5e38\u5f00\u53d1\u5230\u4e00\u534a\u53d1\u73b0\u6709\u4e2a\u901a\u7528\u529f\u80fd\u9700\u8981\u5b9e\u73b0\uff0c\u5c31\u8981\u8df3\u51fa\u6765\u5148\u53bb\u5b8c\u6210\u901a\u7528\u529f\u80fd\uff0c\u518d\u6765\u5b8c\u6210\u5177\u4f53\u529f\u80fd\u3002\u7136\u540e\u8fd9\u4e2a\u95ee\u9898\u6211\u5c31\u8111\u5b50\u8fc7\u8f7d\u4e86\u3002\u5728\u591a\u4e2a\u5de5\u4f5c\u6d41\u91cc\u9762\uff0c\u6211\u5c31\u4f1a\u5fd8\u4e86\u54ea\u4e2a agent \u5728\u505a\u4ec0\u4e48\u3002</p>\n<p>\u6211\u5c1d\u8bd5\u8fc7\u4f7f\u7528 vibe-kanban \uff0cgithub \uff0c\u7b49\u5de5\u5177\u3002\u8fd9\u7c7b\u5de5\u5177\u786e\u5b9e\u80fd\u89e3\u51b3\u591a agent \u7684\u95ee\u9898\u3002\u4f46\u662f\u53cd\u590d\u8c03\u6574 plan \u8fd9\u4e00\u4ef6\u4e8b\u5c31\u975e\u5e38\u8ba8\u538c\uff0c\u73b0\u5728\u7684\u5de5\u5177\u90fd\u662f\u901a\u8fc7 mcp \u53bb api \u4fee\u590d\uff0c\u4f1a\u5360\u7528\u5927\u91cf\u7684 token \u3002\u6211\u5176\u5b9e\u5bf9\u8fd9\u4e2a\u4e8b\u975e\u5e38\u8188\u5e94\u3002\u90a3\u6709\u4ec0\u4e48\u529e\u6cd5\u4ee5 md \u4e3a\u4e2d\u5fc3\uff0c\u8fd8\u80fd\u591a agent \uff0c\u591a\u6a21\u578b\u53ef\u4ee5\u6df7\u5408\u4f7f\u7528\u7684\u5462\uff1f</p>\n<p>\u6211\u60f3\u5230 <code>obsidian</code>.</p>\n<p>\u90a3\u6211\u7528 obsidian \u4f5c\u4e3a\u7b2c\u4e8c\u5927\u8111\uff0c\u6784\u5efa plan \u4f53\u7cfb\u3002\u4f1a\u53d1\u751f\u4ec0\u4e48\u5462\uff1f\u6211\u6b63\u5728\u5c1d\u8bd5\u8fd9\u4e2a\u5de5\u4f5c\u6d41\uff0c\u76ee\u524d\u8fd8\u53ef\u4ee5\u3002\u6211\u6253\u7b97\u518d\u5199\u4e2a\u5b9a\u65f6\u4efb\u52a1\uff0c\u6bcf\u5929\u5bf9\u8fd9\u4e2a\u7b2c\u4e8c\u5927\u8111\u518d\u8fdb\u884c\u6574\u7406\uff0c\u7ec6\u8282\u8fd8\u6ca1\u60f3\u597d\uff0c\u53ea\u662f\u8ba1\u5212\u3002</p>\n<p>obsidian \u6700\u5927\u7684\u4f18\u70b9\u5c31\u662f\u672c\u5730\u539f\u5730\u4fee\u6539\u3002\u914d\u597d\u540c\u6b65\u540e\uff0c\u5176\u5b9e\u4e5f\u662f\u7b49\u540c\u4e91\u7aef\u540c\u6b65\u591a\u8bbe\u5907\u3002\u8de8\u8bbe\u5907\u4e5f\u662f\u80fd\u5e72\u7684\u4e86</p>\n<p>\u6240\u4ee5\u6211\u6539\u8fdb\u4e86\u4e00\u4e0b\u5de5\u4f5c\u6d41</p>\n<p>1.\u9700\u6c42\u4ece jira/tracker \u4e4b\u7c7b\u7684\u5730\u65b9\u8fdb\u6765\u3002\u6309\u7167\u6211\u5b9a\u5236\u7684 obsidian \u7684\u6a21\u677f\u548c\u76ee\u5f55\u7ed3\u6784\u8fdb\u884c\u9700\u6c42\u6574\u7406\n2.\u8ba9 opus \u8fdb\u884c\u89e3\u51b3\u65b9\u6848\u7684\u63a2\u7d22\uff0c\u6839\u672c\u539f\u56e0\u7684\u5206\u6790\u3002\n3.\u8ba9 codex \u8fdb\u884c review \u8fd9\u4e2a\u65b9\u6848\u662f\u5426\u7b26\u5408\u6211\u7684\u6807\u51c6\uff0c\u6807\u51c6\u4f1a\u6839\u636e obsidian \u7684\u6bcf\u65e5\u6574\u7406\u8fdb\u884c\u6bcf\u65e5\u7684\u538b\u5b9e\u8c03\u6574\u3002\n4.plan \u7ed3\u675f\uff0c\u4eba\u5de5 review\n5.\u5f00\u59cb\u81ea\u52a8 coding \u5de5\u4f5c\u6d41-&gt;codex \u7f16\u7801-&gt;opus review.\n5.\u4eba\u5de5\u9a8c\u6536</p>\n<p>\u5355\u95ee\u9898\u8fd9\u6837\u8dd1\u4e86 2 \u5929\u76ee\u524d\u770b\u6548\u679c\u8fd8\u53ef\u4ee5\uff0c\u9664\u4e86\u8d39 token \u548c\u7a0d\u5fae\u6709\u70b9\u6162\u6ca1\u7f3a\u70b9\uff0c\u57fa\u672c\u53ef\u4ee5\u505a\u5230\u4e00\u6b21\u6210\u578b\u3002\u4e0b\u9762\u662f\u8981\u6d4b\u8bd5\u7528 worktree \u7684\u65b9\u5f0f\u8ba9\u6574\u5957\u53ef\u4ee5\u5e76\u884c\u6267\u884c\u3002\u5199\u4e86\u4e00\u5806\u7684 skill \u548c command \u6765\u8c03\u6574\u6d41\u7a0b\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u4e5f\u662f\u73b0\u4ee3 vibe \u7a0b\u5e8f\u5458\u4e0d\u633a\u8c03\u6574\u5de5\u4f5c\u7684\u65b9\u5f0f\u5427\u3002</p>\n", 
      "date_published": "2026-04-08T03:50:54+00:00", 
      "title": "claude \u964d\u667a\uff0c gpt \u4e0d\u8bf4\u4eba\u8bdd\uff0c\u4e0a\u4e0b\u6587\u6ce8\u610f\u529b\u95ee\u9898\u3002\u4f18\u5316\u5de5\u4f5c\u6d41", 
      "id": "https://www.v2ex.com/t/1204266"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bimeixishuai", 
        "name": "bimeixishuai", 
        "avatar": "https://cdn.v2ex.com/gravatar/b86c8b5962bad5c8bcf9bcb4caa31a42?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204263", 
      "title": "\u4e0a\u6b21\u53d1\u8fc7\u7684 AI \u6392\u969c\u9879\u76ee\uff0c\u8fd9\u6b21\u6574\u7406\u6210\u4e86\u53ef\u76f4\u63a5\u8dd1\u7684 v0.1.0 MVP", 
      "id": "https://www.v2ex.com/t/1204263", 
      "date_published": "2026-04-08T03:40:00+00:00", 
      "content_html": "<p>\u4e0a\u4e2a\u6708\u6211\u5728 V2EX \u53d1\u8fc7\u4e00\u4e2a\u66f4\u65e9\u671f\u7248\u672c\uff0c\u5f53\u65f6\u66f4\u591a\u662f\u5728\u8bb2\u601d\u8def\u3002<br/>\n\u8fd9\u6b21\u628a\u9879\u76ee\u6574\u7406\u5230\u4e86\u4e00\u4e2a\u80fd\u76f4\u63a5\u8dd1\u7684 <code>v0.1.0 MVP</code>\uff0c\u6240\u4ee5\u8865\u53d1\u4e00\u6b21\u66f4\u65b0\u7248\uff1a</p>\n<p><code>debug-runbook</code><br/>\n<a href=\"https://github.com/UnCooe/debug-runbook\" rel=\"nofollow\">https://github.com/UnCooe/debug-runbook</a></p>\n<p>\u5982\u679c\u4f60\u4e0a\u6b21\u770b\u8fc7\uff0c\u8fd9\u6b21\u503c\u5f97\u91cd\u65b0\u770b\u4e00\u773c\u7684\u70b9\u4e3b\u8981\u6709 3 \u4e2a\uff1a</p>\n<ol>\n<li>\u73b0\u5728\u53ef\u4ee5\u76f4\u63a5 <code>pnpm demo</code>\uff0c0 \u914d\u7f6e\u5148\u8dd1\u8d77\u6765</li>\n<li>\u9879\u76ee\u8fb9\u754c\u6536\u7d27\u4e86\uff0c\u4e0d\u518d\u628a\u5b83\u5199\u6210\u201c\u5b8c\u6574\u751f\u4ea7\u7cfb\u7edf\u5f00\u6e90\u7248\u201d</li>\n<li>custom runbook \u3001README \u3001\u53d1\u5e03\u9762\u90fd\u8865\u5230\u4e86\u4e00\u4e2a\u66f4\u50cf <code>v0.1.0</code> \u7684\u72b6\u6001</li>\n</ol>\n<p>\u8fd9\u4e2a\u9879\u76ee\u6838\u5fc3\u8fd8\u662f\u90a3\u4e2a\u5224\u65ad\uff1a</p>\n<p>\u5f88\u591a\u7ebf\u4e0a\u6545\u969c\u4e0d\u662f\u6ca1\u6709\u89c4\u5f8b\uff0c\u800c\u662f\u6392\u67e5\u6d41\u7a0b\u672c\u8eab\u9ad8\u5ea6\u5957\u8def\u5316\u3002</p>\n<p>\u6bd4\u5982\u67d0\u4e2a\u7ed3\u679c\u4e0d\u5bf9\uff0c\u6b63\u5e38\u6392\u67e5\u987a\u5e8f\u5f80\u5f80\u5c31\u662f\uff1a</p>\n<ol>\n<li>\u5148\u5bf9\u9f50\u671f\u671b\u7ed3\u679c\u548c\u5b9e\u9645\u7ed3\u679c</li>\n<li>\u518d\u770b\u7f13\u5b58</li>\n<li>\u518d\u770b DB</li>\n<li>\u518d\u770b trace / \u8c03\u7528\u94fe</li>\n<li>\u6700\u540e\u5224\u65ad\u5230\u5e95\u662f\u7f13\u5b58\u9648\u65e7\u3001\u9884\u671f\u526f\u4f5c\u7528\u6ca1\u53d1\u751f\uff0c\u8fd8\u662f\u72b6\u6001\u672c\u8eab\u5f02\u5e38</li>\n</ol>\n<p>\u6211\u540e\u6765\u8d8a\u6765\u8d8a\u89c9\u5f97\uff0cAI \u6392\u969c\u91cc\u6700\u503c\u94b1\u7684\u4e0d\u662f\u201c\u7ed9\u6a21\u578b\u66f4\u591a\u5de5\u5177\u201d\uff0c\u800c\u662f\u628a\u8fd9\u5957\u987a\u5e8f\u548c\u8bc1\u636e\u8fb9\u754c\u5199\u6e05\u695a\u3002<br/>\n\u4e0d\u7136\u5c31\u5f88\u5bb9\u6613\u53d8\u6210\uff1a</p>\n<ul>\n<li>\u5de5\u5177\u5f88\u591a\uff0c\u4f46\u8c03\u67e5\u8def\u5f84\u4e0d\u7a33\u5b9a</li>\n<li>trace / SQL / \u65e5\u5fd7\u4e00\u957f\u5c31\u5f00\u59cb\u8dd1\u504f</li>\n<li>\u7ed3\u8bba\u770b\u7740\u50cf\u90a3\u4e48\u56de\u4e8b\uff0c\u4f46 audit \u4e0d\u52a8</li>\n</ul>\n<p>\u6240\u4ee5\u8fd9\u4e2a\u9879\u76ee\u505a\u7684\u4e8b\u60c5\uff0c\u4e0d\u662f\u518d\u5c01\u88c5\u4e00\u5806\u8c03\u8bd5\u5de5\u5177\uff0c\u800c\u662f\u628a\u6392\u969c\u7ecf\u9a8c\u5199\u6210\u53ef\u6267\u884c Runbook \uff0c\u8ba9 Agent\uff1a</p>\n<ul>\n<li>\u5148\u9009\u5bf9\u5267\u672c</li>\n<li>\u518d\u6309\u987a\u5e8f\u53d6\u8bc1</li>\n<li>\u6700\u540e\u6309 evidence rules \u4e0b\u7ed3\u8bba</li>\n</ul>\n<p>\u73b0\u5728\u4ed3\u5e93\u91cc\u5f00\u6e90\u7684\u662f\u8fd9\u5c42\u53ef\u590d\u7528\u9aa8\u67b6\uff1a</p>\n<ul>\n<li>Runbook selector</li>\n<li>ordered executor</li>\n<li>evidence normalization</li>\n<li>decision engine</li>\n<li>MCP server \u5165\u53e3</li>\n</ul>\n<p>\u8fb9\u754c\u4e5f\u5148\u8bf4\u6e05\u695a\uff1a</p>\n<ul>\n<li>\u5f53\u524d\u662f\u65e9\u671f\u5f00\u6e90 MVP</li>\n<li>\u4e0d\u662f\u539f\u5185\u90e8\u7cfb\u7edf\u7684\u5b8c\u6574\u5f00\u6e90\u955c\u50cf</li>\n<li>\u4e0d\u5305\u542b\u79c1\u6709 DAG \u3001\u6743\u9650\u7cfb\u7edf\u548c\u81ea\u52a8\u4fee\u590d\u94fe\u8def</li>\n</ul>\n<p>\u73b0\u5728\u5df2\u7ecf\u80fd 0 \u914d\u7f6e\u76f4\u63a5\u8dd1 demo \u4e86\uff1a</p>\n<pre><code class=\"language-bash\">pnpm install\npnpm demo\npnpm benchmark\npnpm check\n</code></pre>\n<p>\u5feb\u6765\u8bd5\u8bd5\uff0c\u628a\u4f60\u4eec\u56e2\u961f\u7956\u4f20\u7684\u6392\u9519\u7edd\u62db\u5199\u6210\u5267\u672c\u63d0\u4e2a PR \uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MRG0", 
        "name": "MRG0", 
        "avatar": "https://cdn.v2ex.com/avatar/302a/8be1/608161_large.png?m=1760942115"
      }, 
      "url": "https://www.v2ex.com/t/1204262", 
      "title": "antigravity \u4e00\u4e2a\u6708 125 \u4eba\u6c11\u5e01\uff0c\u7ee7\u7eed\u7eed\u8d39\u8fd8\u662f\u8003\u8651\u5176\u4ed6 ai \u5de5\u5177", 
      "id": "https://www.v2ex.com/t/1204262", 
      "date_published": "2026-04-08T03:37:03+00:00", 
      "content_html": "<p>\u5e74\u521d google one \u6709\u6d3b\u52a8\uff0c45 \u4e00\u4e2a\u6708\u7684 google one \u4f1a\u5458\uff0c\u9644\u5e26 antigravity \u989d\u5ea6\u3002\u8fd9\u4e2a\u6708\u4f18\u60e0\u5230\u671f\u4e86\uff0c\u518d\u7eed\u5c31\u662f\n125 \u4e00\u4e2a\u6708\u4e86\u3002\u6211\u4e5f\u6070\u9022\u88c1\u5458\uff0c\u8f6c\u5165\u5916\u5305\u5185\u7f51\u5f00\u53d1\uff0c\u57fa\u672c\u544a\u522b vibe coding \u4e86\u3002\u4f46\u662f\u60f3\u5b66\u4e00\u4e9b\u4e1c\u897f\u7684\u8bdd\u8fd8\u662f\u5f97\u7528 ai \u8f85\u52a9\u5f00\u53d1\u3002\u6240\u4ee5\u6211\u8fd8\u5e94\u8be5\u7ee7\u7eed\u7eed\u8d39\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/PeterYang1996", 
        "name": "PeterYang1996", 
        "avatar": "https://cdn.v2ex.com/gravatar/8da0b6ab3f74433d94efcc684d156e47?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1204251", 
      "title": "\u5927\u5bb6\u5e72\u6d3b\u90fd\u7528\u7684\u4ec0\u4e48 ai \u5de5\u5177\uff1f", 
      "id": "https://www.v2ex.com/t/1204251", 
      "date_published": "2026-04-08T03:21:59+00:00", 
      "content_html": "<p>\u4e00\u76f4\u7528\u7684 cursor \uff0csonnet \u3001opus \u6a21\u578b\u6548\u679c\u90fd\u633a\u4e0d\u9519\u7684\uff0c\u5c31\u662f\u94b1\u5305\u9876\u4e0d\u4f4f\u3002auto \u6a21\u578b\u6709\u65f6\u5019\u5dee\u5f3a\u4eba\u610f\uff0c\u6709\u4ec0\u4e48\u5176\u4ed6\u4fbf\u5b9c\u53c8\u76f8\u5bf9\u5b9e\u7528\u7684\u65b9\u6848\u5417</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blueslmj", 
        "name": "blueslmj", 
        "avatar": "https://cdn.v2ex.com/avatar/cea0/4239/670916_large.png?m=1768540253"
      }, 
      "url": "https://www.v2ex.com/t/1204246", 
      "title": "\u5927\u4f6c\u4eec\u90fd\u7528\u4ec0\u4e48 AI IDE\uff1f", 
      "id": "https://www.v2ex.com/t/1204246", 
      "date_published": "2026-04-08T03:16:55+00:00", 
      "content_html": "<p>\u8fd8\u662f\u559c\u6b22\u7528 IDE \uff0c\u53ef\u4ee5\u770b\u6587\u4ef6\u5939\u548c\u6587\u4ef6\u3002\u6a21\u578b\u76ee\u524d\u7528 sonnet4.6 \u5c31\u5f88\u6ee1\u610f\uff0ccursor pro \u5230\u671f\u6ca1\u7eed\u4e86\uff0c\u4e0d\u7ecf\u7528\u3002Gemini pro \u5728\u53cd\u91cd\u529b\u4e0a\u9762\u6bd4 cursor \u66f4\u4e0d\u7ecf\u7528\uff0c\u51e0\u4e2a\u53f7\u6765\u56de\u6362\u4e5f\u9ebb\u70e6\u3002\u73b0\u5728\u7528 kiro \uff0c\u9996\u6708 1500 \u79ef\u5206 5 \u5929\u5c31\u7528\u5b8c\u4e86\u3002\n\u60f3\u4e70\u4e2a Gemini ultra \u6765\u7528\u53cd\u91cd\u529b\uff0c\u4f46\u662f\u770b L \u7ad9\u4e0a\u7684\u4eba\u8bf4\u8ddf Claude pro \u7684\u989d\u5ea6\u5dee\u4e0d\u591a\u3002\n\u8bf7\u95ee V \u7ad9\u5927\u4f6c\u4eec\u90fd\u662f\u7528\u7684\u5565\u554a\uff1f</p>\n"
    }
  ]
}