{
  "version": "https://jsonfeed.org/version/1", 
  "title": "\u5206\u4eab\u521b\u9020", 
  "description": "\u6b22\u8fce\u4f60\u5728\u8fd9\u91cc\u53d1\u5e03\u81ea\u5df1\u7684\u6700\u65b0\u4f5c\u54c1\uff01", 
  "home_page_url": "https://www.v2ex.com/go/create", 
  "feed_url": "https://www.v2ex.com/feed/create.json", 
  "icon": "https://cdn.v2ex.com/navatar/70ef/df2e/17_large.png?m=1660301119", 
  "favicon": "https://cdn.v2ex.com/navatar/70ef/df2e/17_normal.png?m=1660301119", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/VulcanEon", 
        "name": "VulcanEon", 
        "avatar": "https://cdn.v2ex.com/gravatar/404d041b15f9b32156cae06e89f75403?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1245040", 
      "title": "\u6211\u9020\u4e86\u4e2a\u5b50\u7ad9\u6765\u7eaa\u5ff5\u5218\u6b22\uff1a\u4ece\u201c\u4f60\u4e0a\u4f60\u4e5f\u884c\u201d\uff0c\u5230\u6211\u52a8\u624b\u505a\u7684\u5218\u6b22\u5b50\u7ad9", 
      "id": "https://www.v2ex.com/t/1245040", 
      "date_published": "2026-09-27T07:34:17+00:00", 
      "content_html": "<h2>\u4e00\u3001\u5148\u628a\u8fd9\u4e2a\u79c1\u4eba\u9879\u76ee\u653e\u51fa\u6765</h2>\n<p>\u6211\u9020\u4e86\u4e2a\u5b50\u7ad9\u6765\u7eaa\u5ff5\u5218\u6b22\u3002\u8fd9\u4e2a\u5ff5\u5934\u4e0d\u662f\u4ec0\u4e48\u5b8c\u6574\u7684\u4ea7\u54c1\u8ba1\u5212\uff0c\u66f4\u591a\u662f\u89c9\u5f97\u81ea\u5df1\u4ece\u90a3\u4e9b\u4f5c\u54c1\u91cc\u5f97\u5230\u8fc7\u5f88\u591a\uff0c\u4e5f\u60f3\u5177\u4f53\u505a\u4e00\u4ef6\u4e8b\u3002</p>\n<p><a href=\"https://wesing.ai/\" rel=\"nofollow\">\u88ab\u6211\u8fd9\u6b21\u79c1\u4eba\u5efa\u7ad9\u5e26\u7740\u8d77\u6b65\u7684\u5de5\u5177\u4e3b\u7ad9</a> \u662f <a href=\"http://wesing.ai\" rel=\"nofollow\">wesing.ai</a> \u3002\u5b83\u662f\u4e3a\u4e86\u5b50\u7ad9\u624d\u4ed3\u4fc3\u4e0a\u7ebf\u7684\uff0c\u97f3\u4e50\u529f\u80fd\u5c1a\u672a\u6dfb\u52a0\uff0c\u73b0\u5728\u4e0d\u80fd\u5728\u4e3b\u7ad9\u751f\u6210\u97f3\u4e50\u3002</p>\n<p><a href=\"https://liuhuan.wesing.ai/\" rel=\"nofollow\">\u6211\u5148\u52a8\u624b\u505a\u51fa\u7684\u5218\u6b22\u4f5c\u54c1\u4e0e\u7559\u8a00\u5c0f\u7ad9</a>\uff0c\u6536\u5f55\u73b0\u573a\u6f14\u51fa\u3001MV \u3001\u7efc\u827a\u9ad8\u5149\u3001\u7eaa\u5f55\u7247\u548c\u8bbf\u8c08\u3002\u767b\u5f55\u540e\uff0c\u53ef\u4ee5\u7559\u4e0b 60 \u79d2\u6b4c\u58f0\u548c\u4e00\u5c0f\u6bb5\u8bdd\uff0c\u5171\u540c\u7eaa\u5ff5\u5218\u6b22\u4e0e\u4ed6\u7684\u4f5c\u54c1\u3002</p>\n<p><img alt=\"\u5b50\u7ad9\u4e2d\u6587\u9996\u5c4f\uff0c\u7559\u4e0b\u4e00\u6bb5\u6700\u957f 60 \u79d2\u7684\u58f0\u97f3\u548c\u4e00\u53e5\u8bdd\u8bf4\u660e\u3002\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/VulcanFeynman/wesing-liuhuan-story/main/liuhuan-home.png\"/></p>\n<p>\u6211\u4e3a\u4ec0\u4e48\u505a\u8fd9\u4ef6\u4e8b\uff0c\u60f3\u5148\u4ea4\u4ee3\u6e05\u695a\u3002\u4e0d\u662f\u56e0\u4e3a\u81ea\u5df1\u542c\u4e86\u591a\u5e74\u6b4c\uff0c\u5c31\u89c9\u5f97\u201c\u6211\u4e5f\u61c2\uff0c\u6211\u4e5f\u884c\u201d\u3002\u6070\u597d\u76f8\u53cd\uff0c\u6211\u5bf9\u597d\u4f5c\u54c1\u7684\u5f88\u591a\u611f\u53d7\uff0c\u662f\u4ece\u77e5\u9053\u81ea\u5df1\u6ca1\u90a3\u4e48\u884c\u5f00\u59cb\u7684\u3002</p>\n<h2>\u4e8c\u3001\u4eb2\u81ea\u52aa\u529b\u8fc7\uff0c\u624d\u77e5\u9053\u6709\u4e9b\u4e1c\u897f\u4e0d\u80fd\u8f7b\u770b</h2>\n<p>\u300a\u4e2d\u56fd\u597d\u58f0\u97f3\u300b\u300a\u4e2d\u56fd\u597d\u6b4c\u66f2\u300b\u90a3\u9635\u5b50\uff0c\u6211\u5728\u56fd\u4f01\u4e0a\u73ed\uff0c\u6b63\u597d\u51fa\u4e00\u4e2a\u5f88\u95f2\u7684\u95f2\u5dee\u3002\u65b0\u9762\u5b54\u5e26\u7740\u65e0\u6bd4\u9ad8\u5999\u7684\u539f\u521b\u4f5c\u54c1\u6251\u9762\u800c\u6765\uff0c\u6211\u53c8\u6709\u5145\u8db3\u65f6\u95f4\u6ce1\u5728\u91cc\u9762\uff0c\u7cbe\u795e\u4e16\u754c\u65e0\u6bd4\u5145\u5b9e\u5e78\u798f\u3002</p>\n<p>\u90a3\u662f 2010 \u5e74\u4ee3\u3002\u56e0\u4e3a\u97f3\u7efc\u88ab\u9009\u4e2d\u7684\u6b4c\u624b\u548c\u5531\u4f5c\u4eba\uff0c\u4ece\u4e94\u6e56\u56db\u6d77\u6c47\u805a\u5411\u5317\u4eac\u3002\u5728\u767e\u5b50\u6e7e\uff0c\u5728\u5317\u4eac\u50cf\u7d20\uff0c\u5728\u6b27\u5c1a\u7fbd\u6bdb\u7403\u9986\uff0c\u5728\u5218\u6b22\u7684\u6218\u961f\uff0c\u8fd8\u6709\u5e38\u77f3\u78ca\u7684\u201c\u6b4c\u4e0d\u52a8\u542c\u8bf7\u9000\u7fa4\u201d\u5fae\u4fe1\u7fa4\u3002</p>\n<p>\u6211\u9ad8\u4e2d\u3001\u5927\u5b66\u5728\u91d1\u5e06\u56e2\u5531\u4e86\u591a\u5e74\u7684\u5408\u5531\u548c\u963f\u5361\u8d1d\u62c9\u3002\u90a3\u4e2a\u7fa4\u91cc\u5f88\u591a\u5531\u4f5c\u4eba\u90fd\u662f\u670b\u53cb\uff0c\u6211\u4e00\u6b21\u6ca1\u6562\u63d0\u8fc7\u7533\u8bf7\u5165\u7fa4\u3002</p>\n<p>\u97f3\u4e50\u5c31\u662f\u8fd9\u4e48\u4e00\u56de\u4e8b\u3002\u4e0d\u61c2\u7684\u65f6\u5019\u89c9\u5f97\u5c31\u90a3\u6837\u513f\uff0c\u4f60\u4e0a\u4f60\u4e5f\u884c\uff1b\u4f60\u61c2\u4e86\uff0c\u4e5f\u52aa\u529b\u8fc7\uff0c\u542c\u4e09\u79d2\u949f\uff0c\u5c31\u77e5\u9053\u8fd9\u4eba\u3001\u8fd9\u4f5c\u54c1\uff0c\u4f60\u662f\u4e0d\u662f\u5f97\u8dea\u7740\u542c\u3002</p>\n<p>\u8ba4\u8bc6\u8c01\uff0c\u548c\u4f60\u542c\u89c1\u4f5c\u54c1\u4ee5\u540e\u5fc3\u91cc\u6709\u591a\u670d\uff0c\u662f\u4e24\u56de\u4e8b\u3002\u81ea\u5df1\u7684\u7ec3\u4e60\u7ecf\u5386\u6ca1\u6709\u66ff\u6211\u6d88\u6389\u90a3\u4efd\u8ddd\u79bb\uff0c\u53cd\u800c\u8ba9\u6211\u66f4\u6e05\u695a\u5730\u77e5\u9053\u5b83\u5728\u90a3\u91cc\u3002</p>\n<p>2018 \u5e74\uff0c\u6211\u53bb\u91d1\u97e9\u4e00\u7684\u8ffd\u60bc\u4f1a\u3002\u5317\u4eac\u7684\u6b4c\u624b\u5708\u5b50\u5df2\u7ecf\u56db\u6563\u800c\u53bb\uff0c\u5927\u5bb6\u4e3a\u4e86\u66fe\u7ecf\u7684\u56de\u5fc6\u77ed\u6682\u518d\u6b21\u76f8\u805a\uff0c\u770b\u770b\u90a3\u4e9b\u66fe\u7ecf\u719f\u6089\u7684\u9762\u5b54\u5982\u4eca\u662f\u5426\u8fd8\u597d\u3002</p>\n<p>\u5f88\u591a\u4eba\u559d\u4e86\u901a\u5bb5\uff0c\u5410\u5728\u9152\u9986\u91cc\uff0c\u7761\u5728\u9a6c\u8def\u4e0a\u3002</p>\n<p>\u676f\u5b50\u78b0\u5728\u4e00\u8d77\uff0c\u90fd\u662f\u68a6\u60f3\u7834\u788e\u7684\u58f0\u97f3\u3002</p>\n<p>\u90a3\u4e9b\u4f5c\u54c1\u5e26\u6765\u8fc7\u90a3\u4e48\u5145\u5b9e\u5e78\u798f\u7684\u65f6\u5149\uff0c\u540e\u6765\u5927\u5bb6\u518d\u805a\uff0c\u53c8\u662f\u8fd9\u6837\u7684\u573a\u9762\u3002\u60f3\u5230\u8fd9\u4e9b\uff0c\u6211\u5f88\u96be\u53ea\u6309\u4e00\u4e2a\u8f93\u8d62\u7ed3\u679c\u53bb\u770b\u90a3\u4e9b\u4eba\uff0c\u4e5f\u5f88\u96be\u628a\u521b\u9020\u8fd9\u4ef6\u4e8b\u8bf4\u5f97\u8f7b\u5de7\u3002</p>\n<p>\u4f46\u6211\u7684\u559c\u6b22\uff0c\u5e76\u4e0d\u662f\u957f\u5927\u4ee5\u540e\u624d\u4ece\u8fd9\u79cd\u4e25\u8083\u7684\u5fc3\u60c5\u91cc\u751f\u51fa\u6765\u7684\u3002\u5c0f\u65f6\u5019\uff0c\u559c\u6b22\u5f80\u5f80\u8fd8\u5e26\u7740\u5acc\u5f03\u3002</p>\n<p>\u521d\u4e2d\u56de\u5b81\u6ce2\u8001\u5bb6\u8fc7\u65b0\u5e74\uff0c\u6309\u6211\u90a3\u65f6\u7684\u4f53\u4f1a\uff0c\u6d59\u6c5f\u4eba\u7761\u89c9\u6781\u65e9\uff0c\u6625\u665a\u4ece\u6ca1\u6709\u4e00\u5e74\u80fd\u770b\u5b8c\u3002\u6211\u5374\u6267\u7740\u4e8e\u591a\u770b\u51e0\u96c6\u300a\u897f\u6e38\u8bb0\u540e\u4f20\u300b\u3002</p>\n<p>\u5267\u60c5\u73b0\u5728\u4e0d\u8bb0\u5f97\u4e86\uff0c\u53ea\u8bb0\u5f97\u51fa\u4e4e\u610f\u6599\u5730\u597d\u770b\uff0c\u867d\u7136\u6253\u6597\u7c97\u7cd9\u5f97\u79bb\u8c31\u3002\u6211\u5fc3\u76ee\u4e2d\u4f1f\u5927\u4f5c\u54c1\u91cc\u7c97\u7cd9\u5230\u79bb\u8c31\u7684\u4e24\u4ef6\u4e8b\uff0c\u5c31\u662f\u300a\u897f\u6e38\u8bb0\u540e\u4f20\u300b\u7684\u6b66\u6253\u548c\u300a\u5929\u9053\u300b\u7684\u80cc\u666f\u97f3\u4e50\u3002</p>\n<p>\u53ef\u300a\u897f\u6e38\u8bb0\u540e\u4f20\u300b\u7684\u97f3\u4e50\u53cd\u800c\u5f88\u597d\u3002\u5218\u6b22\u5531\uff1a</p>\n<blockquote>\n<p>\u6211\u6b32\u6210\u4ed9/\u5feb\u4e50\u9f50\u5929/\u53d8\u5316\u51fa\u795e\u8bdd\u5728\u98ce\u4e2d\u6d41\u4f20/\u771f\u5fc3\u8d70\u8fc7/\u6bcf\u4e2a\u77ac\u95f4/\u624d\u80fd\u5bf9\u5b69\u5b50\u6b3e\u6b3e\u7b11\u8c08/\u6211\u6b32\u6210\u4ed9/\u5feb\u4e50\u9f50\u5929/\u8ba9\u81ea\u5df1\u5bf9\u5f97\u8d77\u7f8e\u4e3d\u5bd3\u8a00/\u5929\u964d\u6211\u5728/\u5929\u5730\u4e4b\u95f4/\u603b\u5f97\u6709\u6545\u4e8b\u8ba9\u540e\u4eba\u770b</p>\n</blockquote>\n<p>\u8fd9\u662f\u9ed8\u5199\u7684\uff0c\u5df2\u7ecf\u8fc7\u53bb 26 \u5e74\uff0c\u6709\u54ea\u91cc\u8bb0\u9519\u5f88\u6b63\u5e38\u3002\u5267\u60c5\u5fd8\u4e86\uff0c\u97f3\u4e50\u8fd8\u5728\uff0c\u89c9\u5f97\u6b66\u6253\u79bb\u8c31\u4e5f\u8fd8\u5728\u3002\u4f5c\u54c1\u6709\u8ba9\u6211\u60f3\u5410\u69fd\u7684\u5730\u65b9\uff0c\u5e76\u4e0d\u59a8\u788d\u5b83\u771f\u7684\u7559\u4e0b\u4e9b\u597d\u4e1c\u897f\u3002</p>\n<p>\u518d\u8bf4\u300a\u5929\u5730\u5728\u6211\u5fc3\u300b\u548c\u300a\u51e4\u51f0\u4e8e\u98de\u300b\u3002\u5b83\u4eec\u5728\u6211\u8fd9\u91cc\u4e0d\u662f\u4e00\u822c\u7684\u597d\u542c\uff0c\u800c\u662f\u5b9a\u4e49\u4e86\u4ec0\u4e48\u53eb\u9ad8\u7ea7\u7684\u597d\u542c\u3002\u867d\u7136\u300a\u5b9d\u83b2\u706f\u300b\u6211\u4ece\u6ca1\u770b\u8fc7\uff0c\u300a\u7504\u5b1b\u4f20\u300b\u4e5f\u6ca1\u770b\u5b8c\u3002</p>\n<p>\u670d\u6c14\u4e4b\u4f59\uff0c\u53c8\u603b\u5fcd\u4e0d\u4f4f\u60f3\u95ee\uff1a\u4ed6\u662f\u61d2\u5417\uff1f\u4e3b\u6b4c\u8fd1\u5173\u7cfb\u8f6c\u8c03\u4e4b\u540e\uff0c\u76f4\u63a5\u5c31\u662f\u526f\u6b4c\u4e86\u3002\u54c8\u54c8\uff0c\u600e\u4e48\u8fd8\u80fd\u8fd9\u6837\uff0c\u800c\u4e14\u8fd8\u771f\u7684\u53ef\u884c\u3002</p>\n<p>\u53ef\u80fd\u90a3\u4e2a\u521b\u9020\u592a\u7ed3\u5b9e\u4e86\u5427\uff0c\u61d2\u5f97\u6709\u6043\u65e0\u6050\u3002\u4f60\u5728\u60f3\u4ed6\u600e\u4e48\u80fd\u8fd9\u4e48\u5199\uff0c\u6b4c\u5374\u5df2\u7ecf\u628a\u95ee\u9898\u56de\u7b54\u4e86\u3002\u60f3\u5410\u69fd\u548c\u771f\u4f69\u670d\uff0c\u5b8c\u5168\u53ef\u4ee5\u540c\u65f6\u53d1\u751f\u3002</p>\n<p>\u6211\u66f4\u65e9\u7684\u542c\u6b4c\u8bb0\u5fc6\uff0c\u8fd8\u8c08\u4e0d\u4e0a\u8fd9\u79cd\u5224\u65ad\u3002</p>\n<p>\u6211\u7238\u5e74\u8f7b\u65f6\u5019\u505a\u7535\u89c6\u5267\u5236\u7247\u4e3b\u4efb\uff0c\u6709\u4e2a\u5267\u53eb\u300a\u7b2c\u4e09\u519b\u56e2\u300b\uff0c\u8bb2\u4e5d\u5341\u5e74\u4ee3\u9ad8\u4e2d\u751f\u7684\u6545\u4e8b\u3002\u6211\u8bb0\u5f97\u8c46\u74e3 8 \u5206\u591a\uff0c\u7537\u4e8c\u662f\u5e74\u8f7b\u65f6\u671f\u7684\u738b\u781a\u8f89\u3002\u5218\u6b22\u732e\u5531\u7684\u4e3b\u9898\u66f2\u53eb\u300a\u4ed6\u4eec\u6211\u4eec\u300b\u3002</p>\n<blockquote>\n<p>\u6211\u4eec\u90fd\u662f\u4e00\u6b65\u4e00\u6b65\u8dcb\u6d89\u8fc7\u6765/\u4ed6\u4eec\u4e5f\u8981\u4e00\u6b65\u4e00\u6b65\u594b\u6597\u4e0b\u53bb/\u5f53\u5e74\u6211\u4eec\u4e5f\u50cf\u4ed6\u4eec\u73b0\u5728\u4e00\u6837/\u4ee5\u540e\u4ed6\u4eec\u662f\u5426\u4e5f\u50cf\u73b0\u5728\u6211\u4eec</p>\n</blockquote>\n<p>\u90a3\u65f6\u6211\u4e0a\u5c0f\u5b66\uff0c\u53ea\u89c9\u5f97\u7247\u5c3e\u66f2\u6709\u4e00\u79cd\u4e0d\u540c\u4e8e\u5267\u60c5\u7684\u82cd\u51c9\u610f\u5883\u3002\u4e0d\u4f1a\u5206\u6790\uff0c\u4e5f\u8bf4\u4e0d\u6e05\u7406\u7531\uff0c\u4f46\u8fd9\u9996\u6b4c\u7559\u7ed9\u6211\u7684\u60c5\u7eea\uff0c\u786e\u5b9e\u548c\u770b\u5267\u60c5\u65f6\u4e0d\u540c\u3002</p>\n<p>\u518d\u6709\u4e00\u6bb5\uff0c\u5c31\u548c\u97f3\u4e50\u8bc4\u4ef7\u5b8c\u5168\u6ca1\u5173\u7cfb\u4e86\u3002</p>\n<p>1998 \u5e74\u4e0b\u5c97\u6f6e\uff0c\u5317\u4eac\u793e\u4f1a\u4e0a\u522e\u8d77\u4e00\u80a1\u5f69\u7968\u98ce\u3002\u6211\u7238\u5e26\u6211\u4e0a\u8857\u4e70\u5f69\u7968\uff0c\u5e38\u89c1\u7684\u662f\u7a7a\u65f7\u9ec4\u571f\u5730\uff0c\u7528\u94c1\u76ae\u56f4\u6321\u5708\u8d77\u4e00\u5927\u5757\uff0c\u957f\u6761\u684c\u5b50\u4e0a\u5168\u662f\u5f69\u7968\u3002</p>\n<p>\u5728\u6211\u7684\u8bb0\u5fc6\u91cc\uff0c\u5f53\u65f6\u5317\u4eac\u6240\u6709\u8fd9\u6837\u7684\u5f69\u7968\u7ad9\uff0c\u5927\u5587\u53ed\u90fd\u53ea\u5faa\u73af\u653e\u5218\u6b22\u7684\u300a\u4ece\u5934\u518d\u6765\u300b\u3002</p>\n<blockquote>\n<p>\u5fc3\u82e5\u5728/\u68a6\u5c31\u5728/\u5929\u5730\u4e4b\u95f4\u8fd8\u6709\u771f\u7231/\u770b\u6210\u8d25/\u4eba\u751f\u8c6a\u8fc8/\u53ea\u4e0d\u8fc7\u662f\u91cd\u5934\u518d\u6765</p>\n</blockquote>\n<p>\u6211\u7238\u542c\u4e0a\u5934\u4e86\uff0c\u4e00\u76f4\u4e70\uff0c\u4e00\u76f4\u91cd\u5934\u518d\u6765\u3002\u6211\u5988\u90fd\u6025\u4e86\uff0c\u76f4\u5230\u771f\u7684\u4e2d\u4e86\u4e00\u5957\u5bb6\u5ead\u7ec4\u5408\u97f3\u54cd\u3002</p>\n<p>\u6211\u5370\u8c61\u633a\u6df1\u3002\u6211\u7238\u522e\u51fa\u6765\u7684\u662f\u4e2a\u9ed1\u6843\uff0c\u4e5f\u4e0d\u662f\u8349\u82b1 K \u3002</p>\n<p>\u5728\u5218\u6b22\u7684\u6b4c\u58f0\u91cc\uff0c\u6211\u548c\u6211\u7238\u6325\u821e\u7740\u5f69\u7968\u51b2\u5411\u9886\u5956\u53f0\u3002\u8fd9\u9996\u6b4c\u5bf9\u6211\u800c\u8a00\uff0c\u5c31\u5e26\u7740\u8fd9\u4e48\u4e00\u4ef6\u597d\u7b11\u7684\u4e8b\u3002\u6211\u7238\u7684\u4e0a\u5934\uff0c\u6211\u5988\u7684\u7740\u6025\uff0c\u6700\u540e\u6211\u4eec\u7236\u5b50\u4fe9\u4e2d\u5956\uff0c\u90fd\u548c\u5b83\u5728\u4e00\u8d77\u3002</p>\n<p><img alt=\"\u79c1\u4eba\u97f3\u4e50\u8bb0\u5fc6\u610f\u8c61\uff0cAI \u751f\u6210\u63d2\u753b\uff0c\u975e\u5386\u53f2\u7167\u7247\u3002\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/VulcanFeynman/wesing-liuhuan-story/main/music-memory.png\"/></p>\n<p>\u300a\u6c34\u6d52\u4f20\u300b\u64ad\u7684\u65f6\u5019\uff0c\u6211\u4e94\u5e74\u7ea7\uff0c\u7ecf\u5e38\u4f4f\u59e5\u59e5\u5bb6\u3002\u90a3\u65f6\u961c\u6210\u95e8\u8fd8\u6ca1\u88ab\u56fd\u4f01\u96c6\u56e2\u4eec\u62e5\u6324\u5360\u636e\u3002\u6625\u8282\uff0c\u6211\u548c\u8868\u5f1f\u8868\u59b9\u63d0\u7740\u706f\u7b3c\u8dd1\u8fc7\u5c0f\u80e1\u540c\uff0c\u91cc\u9762\u662f\u6696\u878d\u7684\u70db\u5149\uff0c\u8eab\u540e\u7684\u5f71\u5b50\u957f\u957f\u7684\uff0c\u5ffd\u95ea\u7740\u3002</p>\n<p>\u6bcf\u96c6\u7ed3\u5c3e\uff0c\u8868\u5f1f\u90fd\u4f1a\u8ddf\u7740\u5218\u6b22\u5531\uff1a</p>\n<blockquote>\n<p>\u5927\u6cb3\u5411\u4e1c\u6d41\u54c7/\u5929\u4e0a\u7684\u661f\u661f\u53c2\u5317\u6597\u54c7</p>\n</blockquote>\n<p>\u4ed6\u90a3\u4f1a\u513f\u4e94\u97f3\u4e0d\u5168\uff0c\u4e0d\u77e5\u9053\u73b0\u5728\u6709\u6ca1\u6709\u597d\u4e9b\uff0c\u6211\u4eec\u5df2\u7ecf\u591a\u5e74\u6ca1\u6709\u76f8\u89c1\u3002</p>\n<p>\u5c31\u8fde\u8bb0\u5fc6\u91cc\u90a3\u4e2a\u65f6\u5019\u7684\u5218\u6b22\uff0c\u4e0a\u6b21\u518d\u88ab\u5e26\u5230\u773c\u524d\uff0c\u4e5f\u8fd8\u662f\u56e0\u4e3a\u300a\u559c\u4eba\u5947\u5999\u591c\u300b\u91cc\u7684\u300a\u8d8a\u72f1\u7684\u590f\u5929\u300b\u3002\u90a3\u4e2a\u6545\u4e8b\u771f\u7684\u597d\uff0c\u5522\u5450\u54cd\u8d77\u6765\u7684\u65f6\u5019\uff0c\u6211\u6389\u773c\u6cea\u4e86\u3002</p>\n<p>\u8bb2\u5230\u8fd9\u91cc\uff0c\u6211\u53c8\u4f1a\u89c9\u5f97\uff0c\u97f3\u4e50\u4e0d\u53ea\u8ba9\u6211\u77e5\u9053\u4ec0\u4e48\u53eb\u5389\u5bb3\u3002\u5b83\u4e5f\u66ff\u6211\u8bb0\u7740\u90a3\u4e9b\u4e0d\u5389\u5bb3\u3001\u5531\u5f97\u4e0d\u51c6\uff0c\u5374\u548c\u6211\u4e00\u8d77\u8fc7\u8fc7\u65e5\u5b50\u7684\u4eba\u3002</p>\n<p>\u4eca\u5929\u6211\u7684\u4ef7\u503c\u89c2\u91cc\uff0c\u7ade\u4e89\u83b7\u5f97\u7684\u96f6\u548c\u80dc\u5229\u4e0d\u503c\u4e00\u63d0\uff0c\u4eba\u751f\u7684\u6210\u5c31\u5168\u90e8\u6765\u81ea\u521b\u9020\u3002</p>\n<p>\u8fd9\u6837\u770b\u5218\u6b22\uff0c\u4ed6\u4e0d\u53ea\u5531\u8fc7\uff0c\u4e0d\u53ea\u5199\u8fc7\uff0c\u8fd8\u6276\u6301\u8fc7\u4e0d\u77e5\u591a\u5c11\u6709\u624d\u534e\u7684\u540e\u8f88\uff0c\u9020\u8fc7\u5c5e\u4e8e\u51e0\u4ee3\u4eba\u7684\u65f6\u4e8b\u3002\u90a3\u4e9b\u521b\u9020\u5df2\u7ecf\u8fdb\u5165\u5f88\u591a\u4eba\u7684\u751f\u6d3b\uff0c\u5728\u6211\u8fd9\u91cc\uff0c\u5c31\u662f\u524d\u9762\u8fd9\u4e9b\u4eba\u548c\u4e8b\u3002</p>\n<p>\u80fd\u521b\u9020\u5230\u8fd9\u4e2a\u4efd\u4e0a\uff0c\u5728\u6211\u5fc3\u91cc\u5c31\u662f\uff1a\u6b64\u751f\u8db3\u77e3\u3002</p>\n<p><img alt=\"\u5b50\u7ad9\u89c6\u9891\u533a\uff0c\u5c55\u793a\u4e5d\u4e2a\u73b0\u573a\u6f14\u51fa\u5361\u7247\uff1b\u53e6\u6709 MV \u3001\u597d\u6b4c\u66f2\u3001\u8bbf\u8c08\u548c\u7eaa\u5f55\u7247\u5206\u7c7b\u3002\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/VulcanFeynman/wesing-liuhuan-story/main/liuhuan-videos.png\"/></p>\n<h2>\u4e09\u3001\u6211\u5148\u505a\u4e00\u70b9\uff0c\u518d\u8bf7\u5927\u5bb6\u63d0\u5177\u4f53\u7684\u610f\u89c1</h2>\n<p>\u8fd9\u4e2a\u5b50\u7ad9\uff0c\u662f\u6211\u60f3\u843d\u5b9e\u7684\u4e00\u4ef6\u5c0f\u4e8b\u3002\u5b83\u4e0d\u9700\u8981\u66ff\u6211\u8bc1\u660e\u61c2\u591a\u5c11\u97f3\u4e50\uff0c\u6211\u66f4\u5e0c\u671b\u5b83\u8ba9\u5927\u5bb6\u80fd\u627e\u5230\u4f5c\u54c1\uff0c\u4e5f\u80fd\u7559\u4e0b\u81ea\u5df1\u7684\u6545\u4e8b\u3002</p>\n<p>\u6b22\u8fce\u7559\u8a00\u8bf4\u8bf4\u5b9e\u9645\u9700\u8981\u3002\u6309\u5e74\u4ee3\u627e\u5f71\u50cf\u4f1a\u4e0d\u4f1a\u66f4\u65b9\u4fbf\uff1f\u540c\u4e00\u9996\u6b4c\u7684\u4e0d\u540c\u6f14\u51fa\u7248\u672c\uff0c\u8981\u4e0d\u8981\u6709\u96c6\u4e2d\u6574\u7406\u7684\u6a21\u5757\uff1f\u8bbf\u8c08\u548c\u7eaa\u5f55\u7247\u91cc\u7684\u8bdd\u9898\uff0c\u662f\u5426\u503c\u5f97\u53e6\u505a\u5206\u7c7b\uff1f</p>\n<p>\u8fd9\u4e9b\u662f\u540e\u7eed\u53ef\u80fd\u589e\u52a0\u7684\u6a21\u5757\u5efa\u8bae\u3002\u4e5f\u6b22\u8fce\u76f4\u63a5\u6307\u51fa\u5177\u4f53\u95ee\u9898\uff1a\u60f3\u627e\u7684\u5185\u5bb9\u5728\u54ea\u91cc\u4e0d\u597d\u627e\uff0c\u8d44\u6599\u54ea\u91cc\u9700\u8981\u8865\uff0c\u7559\u4e0b\u6b4c\u58f0\u548c\u6587\u5b57\u65f6\u8fd8\u5e0c\u671b\u4ec0\u4e48\u66f4\u987a\u624b\u3002</p>\n<p>\u5df2\u7ecf\u80fd\u767b\u5f55\u7559\u4e0b 60 \u79d2\u6b4c\u58f0\u548c\u4e00\u5c0f\u6bb5\u8bdd\uff0c\u81f3\u4e8e\u5f80\u540e\u600e\u4e48\u5b8c\u5584\uff0c\u6211\u5e0c\u671b\u4ece\u5927\u5bb6\u771f\u6b63\u5728\u8fd9\u91cc\u505a\u7684\u4e8b\u60c5\u51fa\u53d1\u3002</p>\n<p>\u6211\u4ece\u90a3\u4e9b\u521b\u9020\u91cc\u5f97\u5230\u8fc7\u5f88\u591a\u3002\u73b0\u5728\u505a\u4e00\u70b9\u81ea\u5df1\u80fd\u505a\u7684\uff0c\u518d\u8ba4\u771f\u542c\u53d6\u610f\u89c1\uff0c\u628a\u8fd9\u4e2a\u5730\u65b9\u9010\u6b65\u505a\u597d\uff0c\u5bf9\u6211\u6765\u8bf4\u5c31\u5f88\u503c\u5f97\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cvcat", 
        "name": "cvcat", 
        "avatar": "https://cdn.v2ex.com/avatar/9ae4/cd81/740522_large.png?m=1779620485"
      }, 
      "url": "https://www.v2ex.com/t/1245026", 
      "title": "\u5f00\u6e90\u4e86 X \u7684\u6240\u6709\u63a5\u53e3\uff0c\u5927\u4f19\u53ef\u4ee5\u505a\u81ea\u5df1\u7684\u65b0\u95fb\u673a\u5668\u4eba\u4e86~", 
      "id": "https://www.v2ex.com/t/1245026", 
      "date_published": "2026-09-27T06:14:26+00:00", 
      "content_html": "<h1>XApis\uff1a\u7eaf Python \u7684 X \uff08 Twitter \uff09\u63a5\u53e3\u5e93</h1>\n<p>\u4ed3\u5e93\u5730\u5740\uff1a<a href=\"https://github.com/cv-cat/XApis\" rel=\"nofollow\">https://github.com/cv-cat/XApis</a></p>\n<p>XApis \u662f\u4e00\u4e2a\u7eaf Python \u5b9e\u73b0\u7684 X \uff08 Twitter \uff09\u63a5\u53e3\u5e93\uff0c\u767b\u5f55\u3001\u8bf7\u6c42\u53c2\u6570\u548c\u52a0\u5bc6\u5b57\u6bb5\u5747\u5728 Python \u4fa7\u8ba1\u7b97\uff0c\u4e0d\u4f9d\u8d56\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u3002</p>\n<p>\u76ee\u524d\u652f\u6301\uff1a</p>\n<ul>\n<li>Cookie \u767b\u5f55\u3001\u7528\u6237\u540d\u5bc6\u7801\u7eaf\u7b97\u767b\u5f55</li>\n<li>Cookie \u6301\u4e45\u5316\u3001\u590d\u7528\u548c\u5f3a\u5236\u91cd\u767b</li>\n<li>\u641c\u7d22\u3001\u63a8\u8350\u6d41\u3001\u7528\u6237\u4e3b\u9875\u3001\u4f5c\u54c1\u8be6\u60c5</li>\n<li>\u8bc4\u8bba\u3001\u697c\u4e2d\u697c\u3001\u7528\u6237\u4fe1\u606f\u548c\u65f6\u95f4\u7ebf</li>\n<li>\u53d1\u5e16\u3001\u56de\u590d\u3001\u5220\u9664\u3001\u70b9\u8d5e\u3001\u8f6c\u63a8\u3001\u5173\u6ce8</li>\n<li>\u56fe\u7247\u3001\u591a\u56fe\u7247\u548c\u89c6\u9891\u4e0a\u4f20</li>\n<li>X Chat \u79c1\u4fe1\u76f8\u5173\u63a5\u53e3</li>\n<li>GraphQL \u3001\u5a92\u4f53\u4e0a\u4f20\u53ca\u5e38\u7528\u7528\u6237\u63a5\u53e3</li>\n<li>Castle / XCTID \u7b49\u8bf7\u6c42\u5b57\u6bb5\u672c\u5730\u8ba1\u7b97</li>\n</ul>\n<p>\u4e3b\u8981\u7528\u4e8e\u5b66\u4e60\u3001\u7814\u7a76\u548c\u7ecf\u8fc7\u6388\u6743\u7684\u81ea\u52a8\u5316\u573a\u666f\uff0c\u6b22\u8fce Star \u3001Follow \u548c\u63d0\u4ea4 Issue \u3002</p>\n<p><a href=\"https://github.com/cv-cat\" rel=\"nofollow\">https://github.com/cv-cat</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mjar", 
        "name": "mjar", 
        "avatar": "https://cdn.v2ex.com/avatar/e352/84b6/14647_large.png?m=1790487958"
      }, 
      "url": "https://www.v2ex.com/t/1245025", 
      "title": "\u4e00\u4e2a\u4e0d\u9700\u8981\u6ce8\u518c\u7684\u60c5\u4fa3\u79c1\u5bc6\u65e5\u8bb0 App\uff08iOS\uff09\uff0c\u9001 10 \u4e2a\u4e00\u5e74\u4f1a\u5458", 
      "id": "https://www.v2ex.com/t/1245025", 
      "date_published": "2026-09-27T06:03:30+00:00", 
      "content_html": "<p>\u4e00\u4e2a\u505a\u4e86\u534a\u5e74\u7684 App \uff0c\u81ea\u5df1\u4e5f\u6bcf\u5929\u5728\u7528\uff0c\u4e3b\u8981\u5173\u5fc3\u9690\u79c1\u6027\uff08\u65e0\u6570\u636e\u6536\u96c6+\u5b8c\u5168\u57fa\u4e8e iCloud \u7684\u53cc\u7aef\u540c\u6b65\uff09\u548c\u957f\u671f\u6027\uff08\u672c\u5730\u4f18\u5148\uff09\u3002</p>\n<p>\u6700\u8fd1\u611f\u89c9\u529f\u80fd\u6bd4\u8f83\u5b8c\u5584\u4e86\uff0c\u6240\u4ee5\u5728 V2 \u9001\u4e00\u4e9b\u4f1a\u5458\uff0c\u5e0c\u671b\u80fd\u6536\u5230\u4e00\u4e9b\u5927\u5bb6\u7684\u53cd\u9988\u3002</p>\n<p><strong>App \u7279\u70b9</strong></p>\n<ul>\n<li>\u4e0d\u9700\u8981\u6ce8\u518c\uff0c\u6ca1\u6709\u8d26\u53f7</li>\n<li>\u65e0 iCloud \u4ee5\u5916\u7684\u7b2c\u4e09\u65b9\u670d\u52a1\u5668\uff0c\u6570\u636e\u9ed8\u8ba4\u53ea\u5b58\u5728\u624b\u673a\u4e0a\u3002\u548c\u4f34\u4fa3\u8fde\u63a5\u540e\uff0c\u5185\u5bb9\u901a\u8fc7 iCloud \u540c\u6b65</li>\n<li>\u65e0\u5e7f\u544a\uff0c\u65e0\u4efb\u4f55\u6570\u636e\u6536\u96c6</li>\n<li>\u6781\u7b80\u8bbe\u8ba1\uff08\u5176\u5b9e\u501f\u9274\u4e86 apple journal \uff09</li>\n</ul>\n<p><strong>\u4e3b\u8981\u529f\u80fd</strong></p>\n<ul>\n<li>\u8bb0\u5f55\u53ef\u4ee5\u662f\uff1a\u6587\u5b57\u3001\u7167\u7247\u3001\u77ed\u89c6\u9891\u3001\u8bed\u97f3\u3001\u624b\u7ed8</li>\n<li>\u4e92\u76f8\u8bc4\u8bba</li>\n<li>\u5f80\u5e74\u4eca\u65e5</li>\n<li>\u65e5\u5386\u548c\u641c\u7d22</li>\n<li>\u684c\u9762\u5c0f\u7ec4\u4ef6</li>\n<li>\u591a\u6b3e\u81ea\u5e26\u4e3b\u9898\u548c\u5b57\u4f53</li>\n</ul>\n<p><strong>\u514d\u8d39\u548c\u4f1a\u5458</strong></p>\n<p>\u514d\u8d39\u7248\u6bcf\u6708 30 \u6761\u77ac\u95f4\u3001\u6bcf\u6761\u6700\u591a 3 \u5f20\u56fe\u3001\u56fe\u7247\u4e3a\u4e2d\u7b49\u753b\u8d28\u3002\u4f1a\u5458\u89e3\u9501\u65e0\u9650\u6761\u6570\u3001\u6bcf\u6761\u6700\u591a 18 \u5f20\u56fe\u6216\u89c6\u9891\u3001\u56fe\u7247\u9ad8\u753b\u8d28\u3002</p>\n<p>App store: <a href=\"https://apps.apple.com/app/id/6767999283\" rel=\"nofollow\">https://apps.apple.com/app/id/6767999283</a></p>\n<p><strong>\u5151\u6362\u7801</strong></p>\n<p>\u5148\u9001 10 \u4e2a\u4e00\u5e74\u4f1a\u5458\uff08\u539f\u4ef7$9.99 \uff09\uff0c\u5df2\u5173\u95ed\u81ea\u52a8\u7eed\u8d39\uff0c\u653e\u5728\u4e00\u697c\u56de\u590d\u91cc\u3002\u7528\u4e86\u7684\u670b\u53cb\u9ebb\u70e6\u56de\u590d\u8bf4\u4e00\u58f0\uff0c\u907f\u514d\u522b\u4eba\u91cd\u590d\u8bd5\uff0c\u8c22\u8c22</p>\n<ul>\n<li>TJ3WPJY8MNNYYWFFNR</li>\n<li>XR3YHE6WKNN7KMXKFK</li>\n<li>XL8K7TL6LF4HRP78PE</li>\n<li>YN8XH8NWK3AN84AEP4</li>\n<li>8YRYWJNRYTXTY8JF6W</li>\n<li>LN6NMF6KWPKTA6FX6P</li>\n<li>TTXNMRR6HA8TLXL76P</li>\n<li>EFTPA8PYHNLPRFT7LJ</li>\n<li>KT6PER348TXM3WNJMJ</li>\n<li>434R6WRKKTFAP46HP7</li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/smiletalker", 
        "name": "smiletalker", 
        "avatar": "https://cdn.v2ex.com/gravatar/2a27aa75fa5b6500811aac9274d823c3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1245022", 
      "title": "Joplin \u7684\u5b57\u6570\u63d2\u4ef6\u6570\u4e2d\u6587\u5168\u662f 0\uff0c\u6211\u5199\u4e86\u4e2a\u80fd\u6570\u5bf9\u7684\uff0c\u987a\u624b\u505a\u4e86\u300c\u90a3\u5e74\u4eca\u65e5\u300d", 
      "id": "https://www.v2ex.com/t/1245022", 
      "date_published": "2026-09-27T05:43:17+00:00", 
      "content_html": "<p>\u6211\u7684 Joplin \u5e93\u91cc\u6709\u4e09\u5343\u591a\u7bc7\u7b14\u8bb0\uff0c\u5927\u90e8\u5206\u662f\u4e2d\u6587\u3002\u524d\u9635\u5b50\u60f3\u77e5\u9053\u81ea\u5df1\u5230\u5e95\u5199\u4e86\u591a\u5c11\u5b57\uff0c\u7ffb\u4e86\u793e\u533a\u91cc\u73b0\u6709\u7684\u56db\u4e2a\u5b57\u6570\u63d2\u4ef6\uff0c\u53d1\u73b0\u4e00\u7bc7\u4e94\u767e\u5b57\u7684\u4e2d\u6587\u7b14\u8bb0\uff0c\u5b83\u4eec\u90fd\u4f1a\u7b97\u6210 0 \u5b57\u3002</p>\n<p>\u539f\u56e0\u5f88\u7b80\u5355\uff1a\u8fd9\u51e0\u4e2a\u63d2\u4ef6\u90fd\u662f\u6309\u82f1\u6587\u7684\u65b9\u5f0f\u62c6\u8bcd\uff0c\u53ea\u8ba4\u7a7a\u683c\u9694\u5f00\u7684\u5b57\u6bcd\u548c\u6570\u5b57\uff0c\u6c49\u5b57\u5168\u88ab\u8df3\u8fc7\u3002</p>\n<p>\u6240\u4ee5\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a\uff0c\u53eb <strong>Recall</strong>\uff0c\u5df2\u7ecf\u4e0a\u67b6\u5b98\u65b9\u63d2\u4ef6\u5e93\uff0c\u5728 Joplin \u7684\u300c\u8bbe\u7f6e \u2192 \u63d2\u4ef6\u300d\u91cc\u641c Recall \u5c31\u80fd\u88c5\u3002</p>\n<p><strong>\u5b83\u80fd\u505a\u7684\u4e8b\uff1a</strong></p>\n<ul>\n<li><strong>\u5199\u4f5c\u7edf\u8ba1</strong>\uff1a\u7edf\u8ba1\u6574\u4e2a\u5e93\u7684\u5b57\u6570\uff0c\u6709\u603b\u6570\u3001\u6700\u8fd1 12 \u4e2a\u6708\u7684\u70ed\u529b\u56fe\uff0c\u8fd8\u80fd\u6309\u5e74\u4efd\u3001\u6309\u7b14\u8bb0\u672c\u5206\u5f00\u770b\u3002\u6c49\u5b57\u548c\u65e5\u6587\u5047\u540d\u4e00\u4e2a\u5b57\u7b97\u4e00\u4e2a\uff0c\u82f1\u6587\u6309\u5355\u8bcd\u7b97\uff0c\u4e2d\u82f1\u6df7\u6392\u4e5f\u80fd\u6570\u5bf9\u3002Markdown \u7b26\u53f7\u3001\u94fe\u63a5\u3001\u4ee3\u7801\u5757\u90fd\u4e0d\u7b97\u8fdb\u53bb\u3002</li>\n<li><strong>\u90a3\u5e74\u4eca\u65e5</strong>\uff1a\u5217\u51fa\u5f80\u5e74\u540c\u4e00\u5929\u5199\u7684\u7b14\u8bb0\uff0c\u5c31\u50cf\u76f8\u518c App \u91cc\u7684\u300c\u56de\u5fc6\u300d\u3002Joplin \u91cc\u4e4b\u524d\u6ca1\u6709\u8fd9\u4e2a\u529f\u80fd\u3002</li>\n<li><strong>\u968f\u673a\u4e00\u7bc7</strong>\uff1a\u7b14\u8bb0\u5de5\u5177\u680f\u4e0a\u591a\u4e86\u4e00\u4e2a\u9ab0\u5b50\u6309\u94ae\uff0c\u70b9\u4e00\u4e0b\u968f\u673a\u6253\u5f00\u4e00\u7bc7\u65e7\u7b14\u8bb0\u3002</li>\n<li><strong>\u6bcf\u65e5\u56de\u987e</strong>\uff1a\u628a\u300c\u90a3\u5e74\u4eca\u65e5\u300d\u52a0\u4e0a\u51e0\u7bc7\u968f\u673a\u7b14\u8bb0\u6c47\u603b\u6210\u4e00\u7bc7\uff0c\u53ef\u4ee5\u8bbe\u6210\u6bcf\u6b21\u6253\u5f00 Joplin \u81ea\u52a8\u751f\u6210\u3002</li>\n</ul>\n<p><img alt=\"\u5199\u4f5c\u7edf\u8ba1\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/smieltalker/joplin-plugin-recall@main/docs/writing-stats.png\"/></p>\n<p>\uff08\u622a\u56fe\u7528\u7684\u662f\u751f\u6210\u7684\u5047\u6570\u636e\uff0c\u4e0d\u662f\u6211\u7684\u771f\u5b9e\u7b14\u8bb0\u3002\uff09</p>\n<p>\u5f00\u6e90\uff0cMIT \u534f\u8bae\uff1a <a href=\"https://github.com/smieltalker/joplin-plugin-recall\" rel=\"nofollow\">https://github.com/smieltalker/joplin-plugin-recall</a></p>\n<p>\u9700\u8981 Joplin 3.0 \u4ee5\u4e0a\uff0c\u6211\u53ea\u5728\u684c\u9762\u7248\u4e0a\u6d4b\u8fc7\u3002\u6709 bug \u6216\u8005\u60f3\u8981\u4ec0\u4e48\u529f\u80fd\uff0c\u6b22\u8fce\u5728\u8fd9\u91cc\u7559\u8a00\u6216\u8005\u53bb GitHub \u63d0 issue \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Lentin", 
        "name": "Lentin", 
        "avatar": "https://cdn.v2ex.com/avatar/96b1/c608/58119_large.png?m=1787818896"
      }, 
      "url": "https://www.v2ex.com/t/1245021", 
      "date_modified": "2026-09-27T05:27:33+00:00", 
      "content_html": "\u989d \u7eaf\u81ea\u7528\uff0c\u65b9\u4fbf\u5206\u6d41\uff0c\u81f3\u4e8e\u4e3a\u4ec0\u4e48\u8981\u7528 \u770b\u4e2a\u4eba\u9700\u6c42\u5427\u3002\u3002<br /><a target=\"_blank\" href=\"https://github.com/codexss/l2tp2socks\" rel=\"nofollow noopener\">https://github.com/codexss/l2tp2socks</a><br /><br />\u4e0d\u5f97\u4e0d\u8bf4 go \u771f\u7684\u5f88\u5f3a\u5927\u554a", 
      "date_published": "2026-09-27T05:23:13+00:00", 
      "title": "\u641e\u4e86\u4e00\u4e2a l2tp vpn \u8f6c socks5 \u7684\u9879\u76ee", 
      "id": "https://www.v2ex.com/t/1245021"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gerryqeenholtmar", 
        "name": "gerryqeenholtmar", 
        "avatar": "https://cdn.v2ex.com/avatar/a223/88ff/851029_large.png?m=1790478726"
      }, 
      "url": "https://www.v2ex.com/t/1245000", 
      "title": "\u6765\u6765\u6765\uff0c\u53ef\u4ee5\u63a8\u8350\u4e00\u4e0b\u90fd\u5728\u8fd9\u91cc\u770b\u5565\u5417\uff0c\u8fd9\u79cd\u4e0a\u53e4\u7ea7\u522b\u7684 UI \u8bbe\u8ba1\u8fd8\u80fd\u4fdd\u6301\u5c0f\u51e0\u5343\u4eba\u7684\u65e5\u6d3b\uff0c\u60f3\u77e5\u9053\u6709\u5565\u4e1c\u897f\u554a", 
      "id": "https://www.v2ex.com/t/1245000", 
      "date_published": "2026-09-27T03:17:29+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kongbai1", 
        "name": "kongbai1", 
        "avatar": "https://cdn.v2ex.com/gravatar/40d6a980565332d19ae6ff362ebc5597?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244999", 
      "title": "\u505a\u4e86\u4e00\u4e2a AI \u9020\u578b\u5e08 Agent\uff0c\u5e2e\u52a9\u5144\u5f1f\u4eec\u627e\u51c6\u7a7f\u642d\u548c\u9020\u578b~", 
      "id": "https://www.v2ex.com/t/1244999", 
      "date_published": "2026-09-27T03:09:10+00:00", 
      "content_html": "\u8fd9\u4e48\u591a\u5e74\u6211\u4e00\u76f4\u90fd\u662f\u7eaf T \u886c\u8863\u725b\u4ed4\u88e4\u53cc\u80a9\u5305\u3002\u53ef\u80fd\u662f\u4e2d\u5e74\u53db\u9006\u4e86\u3002\u7a81\u7136\u5f00\u59cb\u7814\u7a76\u81ea\u5df1\u7684\u9020\u578b\u4e86\u3002\u4e8e\u662f\u5c31\u60f3\u5230\u505a\u4e00\u4e2a ai agent \u3002\u5b83\u53ef\u4ee5\u5148\u5e2e\u6211\u627e\u51c6\u53d1\u578b\uff0c\u627e\u51c6\u7a7f\u642d\uff0c\u7136\u540e\u6839\u636e\u5929\u6c14\u63a8\u8350\u9002\u5408\u6211\u4eca\u5929\u7684\u7a7f\u642d\u3002\u8fd8\u4f1a\u8bb0\u4f4f\u6211\u73b0\u5728\u6709\u54ea\u4e9b\u8863\u670d\u3002\u5e2e\u6211\u642d\u914d~ \u5730\u5740\u662f\uff1a <a target=\"_blank\" href=\"https://weartoday.io/\" rel=\"nofollow noopener\">https://weartoday.io/</a> \u6b22\u8fce\u5144\u5f1f\u59d0\u59b9\u4eec\u4f53\u9a8c\uff0c\u6709\u9700\u8981\u8bd5\u7528\u7684\u5e95\u4e0b\u7559\u8a00\u7528\u6237\u540d\u6211\u8d60\u9001 888 \u79ef\u5206\u3002\u6b22\u8fce\u63d0\u51fa\u6539\u8fdb\u610f\u89c1\u54c8\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Zeos3154", 
        "name": "Zeos3154", 
        "avatar": "https://cdn.v2ex.com/gravatar/226e2246cd2cc4ab65afa89287f6ceca?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244996", 
      "title": "\u505a\u4e86\u4e00\u4e2a\u9e48\u9e55\u9a91\u81ea\u884c\u8f66\u7684\u5c0f\u7ad9\uff0c\u6b22\u8fce\u5404\u4f4d\u6307\u6b63", 
      "id": "https://www.v2ex.com/t/1244996", 
      "date_published": "2026-09-27T02:46:08+00:00", 
      "content_html": "<p>\u6700\u8fd1\u770b\u4e86\u8bba\u575b\u91cc\u3001\u5404\u4e2a\u5fae\u4fe1\u7fa4\u91cc\u9762\uff0c\u5927\u5bb6\u90fd\u4f1a\u7528\u9e48\u9e55\u9a91\u81ea\u884c\u8f66\u6765\u6d4b\u8bd5\u6a21\u578b\u662f\u5426\u964d\u667a\uff0c\u53d1\u73b0\u5927\u5bb6\u5f88\u591a\u65f6\u5019\u90fd\u662f\u622a\u56fe\u53d1\u5b8c\u5c31\u6ca1\u4e86\uff0c\u540c\u4e00\u4e2a\u6a21\u578b\uff0c\u6362\u4e00\u4e2a\u601d\u8003\u6863\u4f4d\uff0c\u6362\u4e00\u4e2a\u5de5\u5177\uff0c\u8dd1\u51fa\u6765\u7684\u5dee\u522b\u4e5f\u633a\u5927\u7684\uff0c\u4e8b\u540e\u60f3\u8981\u5bf9\u6bd4\uff0c\u627e\u4e0d\u56de\u539f\u4ef6\uff0c\u4e8e\u662f\u505a\u4e86\u4e00\u4e2a\u7ad9\uff0c\u4e13\u95e8\u5b58\u8fd9\u4e9b\u4f5c\u54c1\uff1a <a href=\"https://pelicanbenchmark.com/\" rel=\"nofollow\">https://pelicanbenchmark.com/</a></p>\n<p>\u6211\u5148\u8bf4\u4e00\u4e0b\u6536\u4ec0\u4e48\uff1a</p>\n<ol>\n<li>Classic SVG\uff1aSimon Willison \u90a3\u53e5\u539f\u59cb\u82f1\u6587\u9898\u9762\uff0c\u4e00\u70b9\u90fd\u6ca1\u6709\u505a\u6539\u52a8\u3002</li>\n<li>Animated HTML\uff1a\u4f1a\u52a8\u7684 html \u7248\u672c\u3002\u8868\u5355\u91cc\u9762\u586b\u4f60\u5b9e\u9645\u7528\u7684\u63d0\u793a\u8bcd\u5c31\u597d\u4e86\u3002</li>\n</ol>\n<p>\u4e3b\u8981\u6536 SVG \u548c HTML \u6e90\u7801\uff0c\u4e0d\u662f\u622a\u56fe\u3002\u6bcf\u4e00\u4ef6\u4f5c\u54c1\u90fd\u4f1a\u8bb0\u4e0b\u6a21\u578b\u3001\u601d\u8003\u6863\u4f4d\u3001\u5b9e\u9645\u7528\u7684\u63d0\u793a\u8bcd\u8fd9\u4e9b\u3002</p>\n<p>\u6211\u5728\u505a\u8fd9\u4e2a\u7ad9\u7684\u65f6\u5019\u60f3\u8fc7\u7684\u51e0\u4e2a\u70b9\uff1a</p>\n<ol>\n<li>SVG \u76f4\u63a5\u7528\u56fe\u7247\uff08 img \u6807\u7b7e\uff09\u663e\u793a\uff0c\u91cc\u9762\u7684\u811a\u672c\u4e0d\u4f1a\u6267\u884c\u3002</li>\n<li>\u52a8\u753b\u4f5c\u54c1\u4f1a\u8dd1\u4f5c\u8005\u5199\u7684 JS \uff0c\u6240\u4ee5\u653e\u5728\u5355\u72ec\u7684\u5b50\u57df\u4e0b\uff0c\u7528 sandbox=\"allow-scripts\"\u7684 iframe \u64ad\u653e\uff0c\u4f5c\u54c1\u4e0d\u80fd\u5f80\u5916\u53d1\u8bf7\u6c42\u3002\u53ea\u653e\u884c jsdelivr \u3001cdnjs \u3001unpkg \u3001Google Fonts \u8fd9\u51e0\u4e2a CDN \u52a0\u8f7d\u8d44\u6e90\u3002</li>\n<li>\u4f5c\u8005\u7684\u4ee3\u7801\u4e00\u4e2a\u5b57\u4e0d\u6539</li>\n<li>\u5217\u8868\u9875\u9762\u53ea\u663e\u793a\u9759\u6001\u5c01\u9762\uff0c\u4e0d\u4f1a\u51fa\u73b0\u540c\u65f6\u8dd1\u4e00\u5806\u52a8\u753b\u7684\u60c5\u51b5\uff1b\u624b\u673a\u4e0a\u9700\u8981\u70b9\u51fb play \u624d\u5f00\u59cb\u64ad\u653e</li>\n<li>\u63d0\u4ea4\u65f6\u4f1a\u6709\u683c\u5f0f\u68c0\u67e5\uff0c\u662f\u5426\u91cd\u590d\u68c0\u67e5\uff0c\u5f15\u7528\u540d\u5355\u5916\u7684\u57df\u540d\u7684\u65f6\u5019\u4f1a\u51fa\u63d0\u793a</li>\n</ol>\n<p>\u6ca1\u505a\u70b9\u8d5e\u3001\u6295\u7968\u3001\u6392\u540d\uff0c\u76ee\u524d\u5927\u90e8\u5206\u4f5c\u54c1\u8fd8\u90fd\u662f\u6211\u81ea\u5df1\u8dd1\u7684\uff0c\u7f3a qwen \u3001minimax \u7b49\u7b49\uff0c\u6709\u7684\u8bdd\u6b22\u8fce\u5404\u4f4d\u8865\u5145\uff5e</p>\n<p>\u4e0d\u7528\u6ce8\u518c\uff0c\u7f72\u4e0d\u7f72\u540d\u968f\u610f\uff0c\u60f3\u8981\u64a4\u56de\u53ef\u4ee5\u53d1\u90ae\u4ef6\u3002\u600e\u4e48\u6536\u3001\u600e\u4e48\u67e5\u3001\u6709\u54ea\u4e9b\u5c40\u9650\u90fd\u5199\u5728/methodology \u4e86\uff0c\u6b22\u8fce\u5404\u4f4d\u6311\u6bdb\u75c5</p>\n<p>\u989d\u5916\u8bf4\u660e\u4e00\u70b9\u554a\uff0c\u8fd9\u4e2a\u6d4b\u8bd5\u9996\u5148\u662f\u7531 Simon Willison \u63d0\u51fa\u7684\uff0c\u90a3\u6211\u8fd9\u4e2a\u7ad9\u548c\u4ed6\u4e00\u70b9\u5173\u7cfb\u90fd\u6ca1\u6709\uff0c\u4e5f\u4e0d\u4f1a\u4ee3\u8868\u4efb\u4f55\u6a21\u578b\u5382\u5546\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/919936091", 
        "name": "919936091", 
        "avatar": "https://cdn.v2ex.com/gravatar/7410befc0e854a94ca2a3065fdefb46c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244995", 
      "title": "\u505a\u4e86\u4e00\u4e2a\u63d0\u793a\u8bcd\u9a71\u52a8\u7684 AI \u56fe\u7247\u7f16\u8f91\u5668\uff0c\u60f3\u542c\u542c\u5de5\u4f5c\u6d41\u53cd\u9988", 
      "id": "https://www.v2ex.com/t/1244995", 
      "date_published": "2026-09-27T02:45:44+00:00", 
      "content_html": "<p>\u6700\u8fd1\u5728\u6574\u7406\u4e00\u4e2a\u5f88\u5177\u4f53\u7684\u95ee\u9898\uff0c\u987a\u624b\u628a\u5b83\u5355\u72ec\u505a\u6210\u4e86\u4e00\u9875\uff1aArtDo \u3002</p>\n<p>\u8fd9\u4e00\u9875\u4e3b\u8981\u60f3\u89e3\u51b3\u7684\u662f\uff1a</p>\n<p>\u8ba9\u7528\u6237\u4e0d\u7528\u5148\u5b66\u4e60\u590d\u6742\u56fe\u5c42\u5de5\u5177\uff0c\u76f4\u63a5\u4e0a\u4f20\u56fe\u7247\u3001\u63cf\u8ff0\u4fee\u6539\u76ee\u6807\u3001\u786e\u8ba4\u5f53\u524d\u517c\u5bb9\u8bbe\u7f6e\uff0c\u518d\u751f\u6210\u5e76\u590d\u6838\u7ed3\u679c\u3002</p>\n<p>\u5f53\u524d\u8fd9\u7248\u66f4\u504f\u5411\u201c\u5148\u628a\u7b2c\u4e00\u6b65\u8d70\u987a\u201d\uff0c\u800c\u4e0d\u662f\u4e00\u6b21\u628a\u6240\u6709\u6750\u6599\u90fd\u5806\u8fdb\u53bb\u3002\u73b0\u5728\u8fd9\u9875\u5927\u81f4\u4f1a\u5e26\u7740\u7528\u6237\u8d70\u8fd9\u51e0\u6b65\uff1a</p>\n<ol>\n<li>\u4e0a\u4f20\u5f53\u524d\u652f\u6301\u7684 JPG \u3001PNG \u6216 WebP \u56fe\u7247\u3002</li>\n<li>\u7528\u81ea\u7136\u8bed\u8a00\u8bf4\u660e\u60f3\u6539\u4ec0\u4e48\uff0c\u4e5f\u5199\u6e05\u695a\u54ea\u4e9b\u4e3b\u4f53\u548c\u7ec6\u8282\u9700\u8981\u4fdd\u7559\u3002</li>\n<li>\u6839\u636e\u5f53\u524d\u53ef\u7528\u80fd\u529b\u9009\u62e9\u517c\u5bb9\u7684\u6a21\u578b\u3001\u6a21\u5f0f\u3001\u6bd4\u4f8b\u548c\u5206\u8fa8\u7387\u3002</li>\n<li>\u63d0\u4ea4\u540e\u67e5\u770b\u4efb\u52a1\u72b6\u6001\uff0c\u5b8c\u6210\u540e\u590d\u6838\u4e3b\u4f53\u3001\u7455\u75b5\u3001\u6587\u5b57\u548c\u6807\u5fd7\u662f\u5426\u6b63\u786e\u3002</li>\n<li>\u786e\u8ba4\u7ed3\u679c\u548c\u4f7f\u7528\u6743\u8fb9\u754c\u540e\u518d\u4e0b\u8f7d\uff0c\u4e0d\u628a\u201c\u751f\u6210\u5b8c\u6210\u201d\u5f53\u6210\u201c\u53ef\u4ee5\u76f4\u63a5\u4ea4\u4ed8\u201d\u3002</li>\n</ol>\n<p>\u505a\u8fd9\u4e2a\u7684\u65f6\u5019\u6211\u6709\u4e2a\u53d6\u820d\uff1a</p>\n<p>\u6211\u6ca1\u6709\u628a\u6240\u6709\u6a21\u578b\u548c\u7f16\u8f91\u80fd\u529b\u5199\u6210\u4e00\u5f20\u56fa\u5b9a\u529f\u80fd\u8868\uff0c\u800c\u662f\u5148\u4fdd\u7559\u4e00\u6761\u4e0a\u4f20\u3001\u63cf\u8ff0\u3001\u9009\u62e9\u517c\u5bb9\u8bbe\u7f6e\u3001\u751f\u6210\u3001\u590d\u6838\u3001\u4e0b\u8f7d\u7684\u77ed\u8def\u5f84\u3002\u6a21\u578b\u652f\u6301\u7684\u6a21\u5f0f\u3001\u56fe\u7247\u6570\u91cf\u3001\u6bd4\u4f8b\u3001\u5206\u8fa8\u7387\u3001\u70b9\u6570\u548c\u767b\u5f55\u8981\u6c42\u4f1a\u53d8\u5316\uff0c\u6240\u4ee5\u9650\u5236\u9700\u8981\u8ddf\u7740\u5f53\u524d\u9009\u62e9\u663e\u793a\u3002</p>\n<p>\u8fb9\u754c\u4e5f\u5148\u8bf4\u6e05\u695a\uff1a</p>\n<p>\u7f51\u7ad9\u76ee\u524d\u662f\u82f1\u6587\u754c\u9762\uff0c\u53ea\u5904\u7406\u56fe\u7247\u3002\u7b26\u5408\u6761\u4ef6\u7684\u65b0\u8bbf\u5ba2\u53ef\u4ee5\u4ece\u4e00\u6b21\u6027 guest credits \u5f00\u59cb\uff0c\u4f46\u4e0d\u540c\u6a21\u578b\u3001\u8bbe\u7f6e\u3001\u70b9\u6570\u6d88\u8017\u548c\u767b\u5f55\u8981\u6c42\u4f1a\u53d8\u5316\uff1b\u751f\u6210\u7ed3\u679c\u4e5f\u4e0d\u4fdd\u8bc1\u5b8c\u5168\u9075\u5faa\u6307\u4ee4\u3001\u6ca1\u6709\u7455\u75b5\u6216\u81ea\u52a8\u5177\u5907\u5546\u4e1a\u4f7f\u7528\u6743\u3002</p>\n<p>\u60f3\u542c\u542c\u5927\u5bb6\u4e24\u4e2a\u610f\u89c1\uff1a</p>\n<ul>\n<li>\u7b2c\u4e00\u6b21\u4f7f\u7528\u65f6\uff0c\u4f60\u66f4\u5e0c\u671b\u5148\u770b\u5230\u5e38\u89c1\u7f16\u8f91\u793a\u4f8b\uff0c\u8fd8\u662f\u5148\u76f4\u63a5\u4e0a\u4f20\u56fe\u7247\u5199\u9700\u6c42\uff1f</li>\n<li>\u6a21\u578b\u9650\u5236\u5e94\u8be5\u96c6\u4e2d\u653e\u5728\u8bbe\u7f6e\u533a\u8bf4\u660e\uff0c\u8fd8\u662f\u53ea\u5728\u67d0\u4e2a\u7ec4\u5408\u4e0d\u53ef\u7528\u65f6\u5c31\u5730\u63d0\u793a\uff1f</li>\n</ul>\n<p>\u94fe\u63a5\uff1a <a href=\"https://artdo.ai/\" rel=\"nofollow\">https://artdo.ai/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/littlewey", 
        "name": "littlewey", 
        "avatar": "https://cdn.v2ex.com/avatar/6ecb/dd6e/426_large.png?m=1750824239"
      }, 
      "url": "https://www.v2ex.com/t/1244990", 
      "title": "con: \u4e00\u4e2a\u8de8\u5e73\u53f0\u7684\uff0c\u7ed9 terminal \u7231\u597d\u8005\u7684 terminal", 
      "id": "https://www.v2ex.com/t/1244990", 
      "date_published": "2026-09-27T02:11:50+00:00", 
      "content_html": "\u9879\u76ee\u662f 4 \u6708\u4efd\u505a\u7684\uff0c\u90a3\u65f6\u5019 warp \u8fd8\u6ca1\u6709\u5f00\u6e90\uff0c\u73b0\u5728\u7528\u6237\u8d8a\u6765\u8d8a\u591a\u4e86\uff0c\u6211\u4eec\u52aa\u529b\u7ef4\u62a4\u4e86 windows/linux \u7248\u672c\u4e5f\uff0c\u505a\u4e86\u5f88\u591a\u989d\u5916\u7684\u5de5\u4f5c\uff0c\u6b22\u8fce\u5927\u5bb6\u4f53\u9a8c\u54c8~<br /><br /><a target=\"_blank\" href=\"https://github.com/nowledge-co/con-terminal\" rel=\"nofollow noopener\">https://github.com/nowledge-co/con-terminal</a><br /><br /><a target=\"_blank\" href=\"https://con.nowledge.co/\" rel=\"nofollow noopener\">https://con.nowledge.co/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/luyuan9870", 
        "name": "luyuan9870", 
        "avatar": "https://cdn.v2ex.com/gravatar/ec2dbaeafed4d574fc000091285f4712?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244977", 
      "title": "\u516c\u4f17\u53f7\u6587\u7ae0\u60f3\u8fdb\u81ea\u5df1\u7684\u7b14\u8bb0\u5e93\uff0c\u6709\u6ca1\u6709\u300c\u672c\u5730\u5bfc\u51fa Markdown\u300d\u7684\u8f7b\u65b9\u6848\uff1f", 
      "id": "https://www.v2ex.com/t/1244977", 
      "date_published": "2026-09-27T01:07:52+00:00", 
      "content_html": "<p>\u75db\u70b9\u5f88\u5177\u4f53\uff1a\u516c\u4f17\u53f7\u91cc\u7ecf\u5e38\u6709\u503c\u5f97\u7559\u7684\u957f\u6587\uff0c\u4f46\u5e73\u53f0\u6536\u85cf\u4e0d\u65b9\u4fbf\u4e8c\u6b21\u68c0\u7d22\uff0c\u590d\u5236\u7c98\u8d34\u53c8\u4e22\u683c\u5f0f\u3002\u5728\u7ebf\u300c\u94fe\u63a5\u8f6c MD \u300d\u6211\u7528\u8fc7\u51e0\u6b21\uff0c\u603b\u62c5\u5fc3\u6b63\u6587\u8fc7\u670d\u52a1\u5668\uff0c\u78b0\u5230\u767b\u5f55\u5899/\u98ce\u63a7\u4e5f\u4e0d\u7a33\u5b9a\u3002</p>\n<p>\u6700\u8fd1\u5728\u7528\u4e00\u4e2a\u672c\u5730\u5411\u7684 Chrome \u6269\u5c55\uff1aWeChat to Markdown \uff08 wx2md \uff09\u3002\u6d41\u7a0b\u662f\u4f60\u5728\u6d4f\u89c8\u5668\u91cc\u81ea\u5df1\u6253\u5f00\u6587\u7ae0\uff0c\u6269\u5c55\u5728\u672c\u5730\u89e3\u6790\u540e\u5bfc\u51fa Markdown \uff08\u53ef\u9009\u56fe\u7247 ZIP \uff09\uff0c\u518d\u4e22\u8fdb Obsidian / \u601d\u6e90\u4e4b\u7c7b\u3002\u5b83\u4e0d\u662f\u91c7\u96c6\u5668\uff0c\u4e5f\u505a\u4e0d\u5230\u6279\u91cf\u7ffb\u5899\u5f0f\u6293\u53d6\u2014\u2014\u5c31\u662f\u628a\u300c\u5f53\u524d\u8fd9\u7bc7\u300d\u53d8\u6210\u6587\u4ef6\u3002</p>\n<p>\u5b98\u7f51\uff1a <a href=\"https://wx2md.com/\" rel=\"nofollow\">https://wx2md.com/</a>\n\u5546\u5e97\uff1a <a href=\"https://chromewebstore.google.com/detail/wechat-to-markdown/kbijkembfnijlgpkeofanhpoaefkddim\" rel=\"nofollow\">https://chromewebstore.google.com/detail/wechat-to-markdown/kbijkembfnijlgpkeofanhpoaefkddim</a>\nGitHub\uff1a <a href=\"https://github.com/wangshan9870/wechat-to-markdown\" rel=\"nofollow\">https://github.com/wangshan9870/wechat-to-markdown</a></p>\n<p>\u60f3\u95ee\u95ee\uff1a</p>\n<ol>\n<li>\u5404\u4f4d\u73b0\u5728\u516c\u4f17\u53f7\u2192\u7b14\u8bb0\u662f\u600e\u4e48\u505a\u7684\uff1f</li>\n<li>\u6709\u6ca1\u6709\u8e29\u8fc7\u5bfc\u51fa\u4e22\u56fe\u3001\u6807\u9898\u5c42\u7ea7\u4e71\u3001\u4ee3\u7801\u5757\u7ffb\u8f66\u7684\u5751\uff0c\u65b9\u4fbf\u5bf9\u7167\u4fee\uff1f</li>\n</ol>\n<p>\u8c22\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/NightCatS", 
        "name": "NightCatS", 
        "avatar": "https://cdn.v2ex.com/avatar/9474/ddf3/171312_large.png?m=1790450467"
      }, 
      "url": "https://www.v2ex.com/t/1244959", 
      "title": "Opus 5.5 \u4e3a\u6211\u642d\u5efa\u4e86\u4e00\u5957 2D MMORPG \u97f3\u4e50\u7f8e\u672f\u7ba1\u7ebf", 
      "id": "https://www.v2ex.com/t/1244959", 
      "date_published": "2026-09-26T19:19:49+00:00", 
      "content_html": "<p><a href=\"https://m.linsenx.com/\" rel=\"nofollow\">https://m.linsenx.com/</a></p>\n<p>\u5b8c\u5168\u7531 Claude Code + Opus 5.5 \u5de5\u4f5c\u4ea7\u751f\uff0c\u6ca1\u6709\u4f7f\u7528\u4efb\u4f55\u56fe\u50cf\u3001\u97f3\u4e50\u751f\u6210\u6a21\u578b\n<img alt=\"\u4e5d\u5bab\u683c\u5ba3\u4f20\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://promo-image-cdn.pages.dev/promo-nine-grid-v2.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/StillNotYet", 
        "name": "StillNotYet", 
        "avatar": "https://cdn.v2ex.com/avatar/5bdb/48d7/482472_large.png?m=1758360276"
      }, 
      "url": "https://www.v2ex.com/t/1244958", 
      "date_modified": "2026-09-26T19:09:04+00:00", 
      "content_html": "<p>\u5206\u4eab\u4e00\u5957\u81ea\u5df1\u5728\u7528\u7684 V2EX \u6837\u5f0f\uff0c\u98ce\u683c\u53c2\u8003\u4e86 macOS / Safari \u3002\u4e3b\u8981\u8c03\u6574\u4e86\u5b57\u4f53\u3001\u914d\u8272\u548c\u95f4\u8ddd\uff0c\u652f\u6301\u6d45\u8272\u548c\u6df1\u8272\u6a21\u5f0f\u3002\u81ea\u5df1\u7528\u7740\u633a\u8212\u670d\uff0c\u653e\u51fa\u6765\u7ed9\u6709\u9700\u8981\u7684\u4eba\u8bd5\u8bd5\u3002</p>\n<p>\u7eaf CSS \uff0c\u4e0d\u7528\u88c5\u63d2\u4ef6\uff0c\u6df1\u6d45\u8272\u8ddf\u968f V2EX \u7ad9\u5185\u5f00\u5173\u3002</p>\n<h2>\u622a\u56fe</h2>\n<p><img alt=\"\u6d45\u8272\u9996\u9875\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/StillNotYet/v2ex-still@036a3dc0be6c7f6da4fd0b558f58433678bea5bc/screenshots/light.png\"/></p>\n<p><img alt=\"\u6df1\u8272\u9996\u9875\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/StillNotYet/v2ex-still@036a3dc0be6c7f6da4fd0b558f58433678bea5bc/screenshots/dark.png\"/></p>\n<p><img alt=\"\u6df1\u8272\u56de\u590d\u533a\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/StillNotYet/v2ex-still@036a3dc0be6c7f6da4fd0b558f58433678bea5bc/screenshots/replies.png\"/></p>\n<h2>\u4f7f\u7528\u65b9\u6cd5</h2>\n<p>\u6253\u5f00 <a href=\"https://www.v2ex.com/settings\" rel=\"nofollow\">V2EX \u8bbe\u7f6e</a>\uff0c\u5907\u4efd\u539f\u6709\u7684\u81ea\u5b9a\u4e49 CSS \uff0c\u5f00\u542f\u300c\u4f7f\u7528\u81ea\u5b9a\u4e49 CSS \u300d\uff0c\u628a\u8f93\u5165\u6846\u91cc\u7684\u5185\u5bb9\u66ff\u6362\u6210\u4e0b\u9762\u8fd9\u4e00\u884c\u5e76\u4fdd\u5b58\uff1a</p>\n<pre><code class=\"language-css\">@import url(\"https://cdn.jsdelivr.net/gh/StillNotYet/v2ex-still@v1.0.0/v2ex-still.min.css\");\n</code></pre>\n<p>\u94fe\u63a5\u56fa\u5b9a\u5728 v1.0.0 \uff0c\u4e0d\u4f1a\u81ea\u52a8\u5347\u7ea7\u3002\u5982\u679c CDN \u52a0\u8f7d\u4e0d\u7545\uff0c\u53ef\u4ee5\u76f4\u63a5\u590d\u5236\u4ed3\u5e93\u91cc\u7684 <code>v2ex-still.min.css</code> \u5185\u5bb9\u7c98\u8d34\u3002\u60f3\u6062\u590d\u539f\u6837\uff0c\u5173\u95ed\u300c\u4f7f\u7528\u81ea\u5b9a\u4e49 CSS \u300d\u5373\u53ef\u3002</p>\n<p><a href=\"https://github.com/StillNotYet/v2ex-still\" rel=\"nofollow\">GitHub</a></p>\n", 
      "date_published": "2026-09-26T19:08:31+00:00", 
      "title": "\u5206\u4eab\u4e00\u4e2a\u81ea\u7528\u7684 V2EX \u6837\u5f0f\uff0c\u53c2\u8003 macOS / Safari \u98ce\u683c", 
      "id": "https://www.v2ex.com/t/1244958"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/uncleFlower", 
        "name": "uncleFlower", 
        "avatar": "https://cdn.v2ex.com/avatar/4d0a/660f/525631_large.png?m=1790444877"
      }, 
      "url": "https://www.v2ex.com/t/1244956", 
      "date_modified": "2026-09-26T17:54:35+00:00", 
      "content_html": "<p>\u60f3\u8bfb\u7684\u4e66\u592a\u591a\uff0c\u8bfb\u5b8c\u7684\u592a\u5c11\u3002\n\u6240\u4ee5\u505a\u4e86 Cairn\uff1a\u5bfc\u5165\u81ea\u5df1\u7684 EPUB/PDF/MOBI \uff0c\u9009\u4e00\u6863\u6df1\u6d45\uff08\u77e5\u9053\u4e2a\u5927\u6982 \u2192 \u5b8c\u6574\u8d70\u4e00\u904d\uff09\uff0c\u5b83\u6309\u4e66\u7684\u76ee\u5f55\u548c\u7ae0\u8282\u539f\u6587\u6392\u51fa\u4e00\u6761\u8def\u5f84\uff0c\u6bcf\u7ad9\u662f\u51e0\u9875\u5e26\u8bed\u97f3\u548c\u5b57\u5e55\u7684\u5e7b\u706f\u7247\uff0c\u8fb9\u542c\u8fb9\u751f\u6210\u540e\u9762\u7684\u7ad9\u3002</p>\n<ul>\n<li>\u7ed3\u6784\u6765\u81ea\u539f\u6587\uff0c\u6bcf\u7ad9\u6807\u6ce8\u6765\u6e90\u7ae0\u8282\uff0c\u4e0d\u9760\u6a21\u578b\"\u8bb0\u5f97\"\u8fd9\u672c\u4e66</li>\n<li>\u65c1\u8fb9\u6709\u4e2a\u4f34\u8bfb\u52a9\u624b\uff0c\u53ef\u4ee5\u968f\u65f6\u95ee\u8fd9\u672c\u4e66\u7684\u95ee\u9898\uff0c\u5f15\u7528\u539f\u6587\u4f1a\u5148\u6838\u5bf9</li>\n<li>\u6a21\u578b\u81ea\u5df1\u9009\uff1aOpenAI / Claude / Gemini / DeepSeek / \u672c\u5730\u6a21\u578b\u90fd\u884c\uff0c\u4e66\u53ea\u5b58\u5728\u672c\u673a</li>\n</ul>\n<p>\u94fe\u63a5\uff1a <a href=\"https://github.com/jiehaoZ/Cairn\" rel=\"nofollow\">https://github.com/jiehaoZ/Cairn</a></p>\n<p>\u5f00\u6e90 MIT \uff0cApple Silicon \u7684 DMG \u5728 Release \u91cc\n\u6b22\u8fce\u62cd\u7816\uff0c\u7279\u522b\u60f3\u77e5\u9053\u5927\u5bb6\u62ff\u4ec0\u4e48\u4e66\u8bd5\u3002</p>\n", 
      "date_published": "2026-09-26T17:49:35+00:00", 
      "title": "\u505a\u4e86\u4e2a\u5e94\u7528\uff0c\u628a\u7535\u5b50\u4e66\u53d8\u6210\u4e00\u7ad9\u7ad9\u5e26\u6717\u8bfb\u7684\u5e7b\u706f\u7247", 
      "id": "https://www.v2ex.com/t/1244956"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/gefangshuai", 
        "name": "gefangshuai", 
        "avatar": "https://cdn.v2ex.com/avatar/75d1/38db/93264_large.png?m=1776679867"
      }, 
      "url": "https://www.v2ex.com/t/1244954", 
      "title": "\u4ece Arc \u56de\u5230 Chrome \u53d7\u4e0d\u4e86 \u2303\u21e5\uff0c\u81ea\u5df1\u505a\u4e86\u4e00\u4e2a\uff1a\u6309\u6700\u8fd1\u4f7f\u7528\u5207\u6807\u7b7e\uff0c\u5916\u52a0 \u2318E \u641c\u904d\u6807\u7b7e\u3001\u4e66\u7b7e\u3001\u5386\u53f2", 
      "id": "https://www.v2ex.com/t/1244954", 
      "date_published": "2026-09-26T16:51:38+00:00", 
      "content_html": "<p><img alt=\"\u641c\u7d22\u9762\u677f\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/lifedever/TabFlick@v0.16.0/docs/search-all-dark.jpg\"/></p>\n<p>\u4ece Arc \u56de\u5230 Chrome \u4ee5\u540e\uff0c\u6700\u4e0d\u4e60\u60ef\u7684\u662f \u2303\u21e5\uff1aChrome \u6309\u6807\u7b7e\u680f\u987a\u5e8f\u5207\uff0cArc \u6309\u6700\u8fd1\u7528\u8fc7\u7684\u987a\u5e8f\u5207\u3002\u6269\u5c55\u505a\u4e0d\u4e86\u8fd9\u4ef6\u4e8b\uff08 Chrome 33 \u8d77\u6269\u5c55\u4e0d\u80fd\u7ed1\u5b9a\u5e26 Tab \u7684\u5feb\u6377\u952e\uff09\uff0c\u6240\u4ee5\u5199\u4e86\u4e00\u4e2a\u83dc\u5355\u680f App \u52a0\u4e00\u4e2a\u6269\u5c55\uff0c\u4e24\u8fb9\u7528\u672c\u673a WebSocket \u8fde\u8d77\u6765\u3002</p>\n<p>\u73b0\u5728\u6709\u4e24\u5757\uff1a</p>\n<p><strong>\u5207\u6362\u5668\uff08\u2303\u21e5\uff09</strong></p>\n<ul>\n<li>\u6309\u6700\u8fd1\u4f7f\u7528\u987a\u5e8f\u5207\uff0c\u2303\u21e5 \u4e00\u4e0b\u56de\u5230\u4e0a\u4e00\u4e2a\u6807\u7b7e\uff0c\u518d\u4e00\u4e0b\u56de\u6765</li>\n<li>\u6309\u4f4f \u2303 \u65f6\u663e\u793a\u7f51\u9875\u7f29\u7565\u56fe\uff0c\u677e\u5f00\u624d\u5207\uff0c\u4e2d\u9014\u7ecf\u8fc7\u7684\u4e0d\u7b97\u7528\u8fc7</li>\n<li>\u65b9\u5411\u952e\u3001\u9f20\u6807\u70b9\u9009\u90fd\u884c\uff0c\u53ea\u5217\u5f53\u524d\u7a97\u53e3\u7684\u6807\u7b7e\uff08\u53ef\u5173\uff09</li>\n</ul>\n<p><img alt=\"\u5207\u6362\u5668\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/lifedever/TabFlick@v0.16.0/docs/demo-poster.jpg\"/></p>\n<p><strong>\u641c\u7d22\u9762\u677f\uff08\u2318E \uff0c\u522b\u7684 App \u91cc \u2325Space \uff09</strong></p>\n<ul>\n<li>\u4e00\u4e2a\u6846\u641c\u6d3b\u6807\u7b7e\u3001\u6700\u8fd1\u5173\u95ed\u3001\u4e66\u7b7e\u3001\u5386\u53f2\u8bb0\u5f55\u3001\u6536\u85cf\u7684\u6587\u4ef6\u5939\u3001\u5df2\u88c5\u7684 App</li>\n<li>\u4e2d\u6587\u6807\u9898\u53ef\u4ee5\u7528\u62fc\u97f3\u641c\uff0c\u5168\u62fc\u3001\u9996\u5b57\u6bcd\u90fd\u884c</li>\n<li>Tab \u5207\u8303\u56f4\uff1a\u5168\u90e8 / \u6807\u7b7e / \u641c\u7d22 / \u5386\u53f2 / \u4e66\u7b7e / \u6700\u8fd1\u5173\u95ed / \u6587\u4ef6\u5939 / \u5e94\u7528</li>\n<li>\u6ca1\u627e\u5230\u5c31\u76f4\u63a5\u7528\u6d4f\u89c8\u5668\u9ed8\u8ba4\u5f15\u64ce\u641c\uff0c\u6216\u8005 GitHub \u3001YouTube \u8fd9\u7c7b\u7ad9\u5185\u641c\u7d22</li>\n</ul>\n<p><img alt=\"\u641c\u7f51\u9875\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/lifedever/TabFlick@v0.16.0/docs/search-web-dark.jpg\"/></p>\n<p><img alt=\"\u6536\u85cf\u7684\u6587\u4ef6\u5939\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.jsdelivr.net/gh/lifedever/TabFlick@v0.16.0/docs/search-folders-dark.jpg\"/></p>\n<p>\u754c\u9762\u6709\u7b80\u4e2d\u3001\u7e41\u4e2d\u3001\u82f1\u3001\u65e5\u3001\u97e9\u3001\u897f\u3001\u6cd5\u3001\u5fb7\u516b\u79cd\u8bed\u8a00\u3002</p>\n<p>\u53e6\u5916\u8fd8\u6709\u7f6e\u9876\u6807\u7b7e\u91cd\u542f\u540e\u6062\u590d\u3001\u95f2\u7f6e\u6807\u7b7e\u81ea\u52a8\u6e05\u7406\u3001\u83dc\u5355\u680f\u6807\u7b7e\u5217\u8868\u8fd9\u4e9b\u3002</p>\n<p>\u652f\u6301 Chrome \u548c\u5176\u4ed6 Chromium \u6d4f\u89c8\u5668\uff08 Edge \u3001Brave \u3001\u5938\u514b\u7b49\uff09\uff0c\u591a\u4e2a\u6d4f\u89c8\u5668\u540c\u65f6\u5f00\u7740\u4e5f\u884c\u3002</p>\n<p>\u5b98\u7f51\uff1a <a href=\"https://www.lifedever.com/TabFlick/\" rel=\"nofollow\">https://www.lifedever.com/TabFlick/</a>\nGitHub\uff1a <a href=\"https://github.com/lifedever/TabFlick\" rel=\"nofollow\">https://github.com/lifedever/TabFlick</a></p>\n<p>\u6269\u5c55\u8fd8\u6ca1\u4e0a\u67b6\u5546\u5e97\uff0c\u8981\u5f00\u53d1\u8005\u6a21\u5f0f\u88c5\u4e00\u4e0b\uff0c\u5b98\u7f51\u6709\u6b65\u9aa4\u3002\u6709\u95ee\u9898\u6b22\u8fce\u63d0 issue \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jackroyal", 
        "name": "jackroyal", 
        "avatar": "https://cdn.v2ex.com/avatar/402b/557b/30529_large.png?m=1790436651"
      }, 
      "url": "https://www.v2ex.com/t/1244948", 
      "title": "\u5199\u4e86\u4e2a HA \u96c6\u6210\u652f\u6301\u7c73\u5bb6/\u7f8e\u7684\u8bbe\u5907\u8f93\u51fa\u5230\u5c0f\u5ea6\u667a\u80fd\u97f3\u7bb1", 
      "id": "https://www.v2ex.com/t/1244948", 
      "date_published": "2026-09-26T16:13:05+00:00", 
      "content_html": "<p><strong>\u80cc\u666f</strong></p>\n<p>\u7531\u4e8e\u5bb6\u91cc\u7684\u8bbe\u5907\u54c1\u724c\u4e3b\u8981\u662f\u7c73\u5bb6/\u7f8e\u7684/\u5c0f\u5ea6\u97f3\u7bb1,  \u591a\u5e74\u6765\u7c73\u5bb6\u5899\u58c1\u5f00\u5173\u90fd\u53ea\u80fd\u7528\u5c0f\u7231\u540c\u5b66\u63a7\u5236, \u800c\u7f8e\u7684\u7a7a\u8c03\u53c8\u53ea\u80fd\u7528\u5c0f\u5ea6\u540c\u5b66\u63a7\u5236, \u8bed\u97f3\u64cd\u4f5c\u4f53\u9a8c\u6709\u70b9\u5272\u88c2, \u501f\u7740\u73b0\u5728 vibe coding \u7684\u6625\u98ce, \u5199\u4e86\u4e00\u4e2a HA \u96c6\u6210<strong>xiaodu bridge</strong>\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898.</p>\n<p><strong>\u6838\u5fc3\u539f\u7406: HA \u96c6\u6210\u63d0\u4f9b OAuth Server \u548c\u8bbe\u5907\u4e91\u670d\u52a1, \u5229\u7528\u5c0f\u5ea6\u97f3\u7bb1\u81ea\u5b9a\u4e49\u7684\u667a\u80fd\u5bb6\u5c45\u6280\u80fd(\u4e91\u4e91\u63a5\u5165), \u5b9e\u73b0\u7c73\u5bb6/\u7f8e\u7684\u8bbe\u5907\u63a5\u5165\u5c0f\u5ea6\u667a\u80fd\u97f3\u7bb1, \u540c\u65f6\u5916\u8f93\u7ed9 iPhone homekit, \u652f\u6301\u591a iPhone \u624b\u673a\u63a7\u5236.</strong></p>\n<blockquote>\n<p>\u7f8e\u7684\u5df2\u7ecf\u652f\u6301\u4e91\u5382\u5546\u63a5\u5165\u5c0f\u5ea6\u97f3\u7bb1, \u4e3a\u5565\u4e5f\u8981\u901a\u8fc7\u8fd9\u4e2a\u96c6\u6210\u63a5\u5165\u5462? \u7528\u8fc7\u5c31\u77e5\u9053, \u7f8e\u7684\u4e91\u670d\u52a1\u7684\u72b6\u6001\u540c\u6b65\u6bd4\u8f83\u5dee\u52b2, \u7a7a\u8c03\u5173\u7740\u5c0f\u5ea6 app \u8fd8\u662f\u5f00\u542f\u72b6\u6001.</p>\n</blockquote>\n<p>\u6574\u4f53\u8fd0\u8f6c\u6d41\u7a0b:</p>\n<pre><code>\u7c73\u5bb6 / \u7f8e\u7684 / Sonoff / \u5176\u4ed6 HA \u96c6\u6210\n        \u2193\nHome Assistant \u5b9e\u4f53 + \u533a\u57df\n        \u2193\nxiaodu bridge \uff08 DuerOS \u8bed\u4e49\u6a21\u578b + OAuth \u670d\u52a1\u7aef\uff09\n        \u2193\n\u5c0f\u5ea6\u97f3\u7bb1 / \u5c0f\u5ea6 App / Homekit Bridge\n</code></pre>\n<p><strong>\u5b9e\u73b0\u65b9\u5f0f</strong></p>\n<p>\u96c6\u6210\u5728 HA \u91cc\u76f4\u63a5\u5145\u5f53 DuerOS \u667a\u80fd\u5bb6\u5c45\u7684 OAuth \u670d\u52a1\u7aef\uff08\u6388\u6743 / Token / WebService \u4e09\u4e2a\u7aef\u70b9\uff09\u3002\u6838\u5fc3\u662f\u4e24\u4ef6\u4e8b\uff1a</p>\n<ol>\n<li>\u628a HA \u5b9e\u4f53\u7ec4\u88c5\u6210 DuerOS \u8bed\u4e49\u8bbe\u5907\uff1a\u6d74\u9738\u662f\u4e00\u53f0\u6d74\u9738\uff08\u7167\u660e/\u53d6\u6696/\u6362\u6c14\u805a\u5408\uff09\uff0c\u6d17\u8863\u673a\u3001\u667e\u8863\u6746\u3001\u626b\u5730\u673a\u6709\u4e13\u7528\u6863\u6848\uff0c\u706f\u3001\u5f00\u5173\u3001\u63d2\u5ea7\u3001\u7a7a\u8c03\u3001\u7a97\u5e18\u3001\u98ce\u6247\u3001\u4f20\u611f\u5668\u8d70\u901a\u7528\u5408\u6210</li>\n<li>\u72b6\u6001\u53cc\u5411\u6d41\u52a8\uff1a\u63a7\u5236\u8bf7\u6c42\u7ecf WebService \u8f6c\u6210 HA \u670d\u52a1\u8c03\u7528\uff0c\u72b6\u6001\u53d8\u5316\u4e3b\u52a8 Change Report \u63a8\u7ed9\u5c0f\u5ea6</li>\n</ol>\n<p><strong>\u4e3b\u8981\u7279\u70b9</strong></p>\n<ul>\n<li>\u8bed\u4e49\u8bbe\u5907\u6a21\u578b\uff1a\u590d\u5408\u8bbe\u5907\uff08\u6d74\u9738\u7b49\uff09= \u4e00\u53f0\u5c0f\u5ea6\u8bbe\u5907\uff0c\u4e0d\u662f\u4e00\u5806\u96f6\u6563\u5f00\u5173</li>\n<li>\u623f\u95f4\u5206\u7ec4\uff1aHA \u533a\u57df\u540c\u6b65\u6210\u5c0f\u5ea6\u623f\u95f4\uff0c\u300c\u6253\u5f00\u5ba2\u5385\u7684\u706f\u300d\u76f4\u63a5\u53ef\u7528</li>\n<li>\u5b9a\u65f6\u5f00\u5173\u6301\u4e45\u5316\uff0cHA \u91cd\u542f\u4e0d\u4e22</li>\n<li>\u5355\u5b9e\u4f8b + \u6700\u5c0f\u6743\u9650 token\uff1atoken \u53ea\u80fd\u6253\u672c\u96c6\u6210\u7aef\u70b9\uff0c\u78b0\u4e0d\u5230 HA API</li>\n<li>\u7eaf Python \u3001\u65e0\u7b2c\u4e09\u65b9\u4f9d\u8d56\uff0c276 \u4e2a\u6d4b\u8bd5\u7528\u4f8b</li>\n</ul>\n<p><strong>\u5b89\u88c5</strong></p>\n<p>\u8981\u6c42 HA 2025.1+\uff0c\u5c0f\u5ea6\u4e91\u7aef\u80fd\u8bbf\u95ee HA \u7684\u516c\u7f51 HTTPS \u5730\u5740\u3002</p>\n<ol>\n<li>HACS \u2192 Custom repositories \u6dfb\u52a0 <a href=\"https://github.com/Jackroyal/xiaodu-bridge\" rel=\"nofollow\">https://github.com/Jackroyal/xiaodu-bridge</a> \uff08\u8fd8\u6ca1\u4e0a\u67b6 HACS \u9ed8\u8ba4\u5546\u5e97\uff09</li>\n<li>\u91cd\u542f HA \u2192 \u6dfb\u52a0\u96c6\u6210 \u2192 \u586b OAuth \u914d\u7f6e\uff08\u5148\u5728\u5c0f\u5ea6\u5f00\u53d1\u8005\u5e73\u53f0\u5efa\u6280\u80fd\uff0c\u628a\u4e09\u4e2a\u5730\u5740\u586b\u56de\u53bb\uff09</li>\n<li>\u96c6\u6210\u91cc\u9009\u8981\u66b4\u9732\u7684\u8bbe\u5907 \u2192 \u5c0f\u5ea6\u4fa7\u89e6\u53d1\u53d1\u73b0</li>\n</ol>\n<p><strong>\u94fe\u63a5</strong></p>\n<p>github \u4ed3\u5e93\uff1a<a href=\"https://github.com/Jackroyal/xiaodu-bridge\" rel=\"nofollow\">https://github.com/Jackroyal/xiaodu-bridge</a></p>\n<p>\u6211\u5bb6\u7684\u5176\u4ed6\u8bbe\u5907\u63a5\u5165\u5230 HA \u4e2d: <a href=\"https://mp.weixin.qq.com/s/vCMu2KMSknTfMnio1MwWNA\" rel=\"nofollow\">https://mp.weixin.qq.com/s/vCMu2KMSknTfMnio1MwWNA</a></p>\n<p>xiaodu bridge \u8be6\u7ec6\u7684\u5b89\u88c5\u90e8\u7f72\u8bb0\u5f55\uff1a<a href=\"https://mp.weixin.qq.com/s/ITsERPt-xfy3WXboo9siJw?\" rel=\"nofollow\">https://mp.weixin.qq.com/s/ITsERPt-xfy3WXboo9siJw?</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hyqer", 
        "name": "hyqer", 
        "avatar": "https://cdn.v2ex.com/avatar/07fe/b1e1/28532_large.png?m=1407397506"
      }, 
      "url": "https://www.v2ex.com/t/1244947", 
      "title": "\u53bb\u4e2d\u5fc3\u5316\u7684\u53cb\u60c5\u94fe\u63a5\u5e73\u53f0\uff0c\u5916\u94fe\u7684 DePIN\uff0c\u4e5f\u63d0\u4f9b c2c \u7684\u5916\u94fe\u5e02\u573a\uff08\u5efa\u8bbe\u4e2d\uff09", 
      "id": "https://www.v2ex.com/t/1244947", 
      "date_published": "2026-09-26T16:03:00+00:00", 
      "content_html": "\u7f51\u5740 <a target=\"_blank\" href=\"https://congrid.net\" rel=\"nofollow noopener\">https://congrid.net</a><br />\u6e90\u7801 <a target=\"_blank\" href=\"https://github.com/congrid-project/content-grid-chain\" rel=\"nofollow noopener\">https://github.com/congrid-project/content-grid-chain</a><br /><br />\u7ad9\u957f\u53c2\u4e0e\u6784\u5efa\u57fa\u4e8e\u5185\u5bb9\u76f8\u4f3c\u6027\u7684\u53cb\u60c5\u4e92\u8fde\u5c31\u80fd\u96f6\u6210\u672c\u3001\u65e0\u8d28\u62bc\u5730\u83b7\u5f97 token \u5956\u52b1\u3002\u5f53\u7136\u4e5f\u80fd\u5f97\u5230\u66f4\u591a\u5916\u94fe\u548c\u5728\u641c\u7d22\u5f15\u64ce\u91cc\u7684\u6743\u91cd\u3002<br />\u8fd0\u884c\u65e0\u7b97\u529b\u8981\u6c42\u7684\u9a8c\u8bc1\u8005\u8282\u70b9\uff0c\u80fd\u83b7\u5f97\u66f4\u591a\u6316\u77ff\u6536\u76ca\u3002<br /><br />\u975e\u5e38\u5e0c\u671b\u5f97\u5230\u5927\u5bb6\u7684\u610f\u89c1\u548c\u53cd\u9988\uff0c\u53c2\u4e0e\u4e92\u52a8\u8005\u5982\u679c\u89c9\u5f97\u5b83\u6709\u4ef7\u503c\uff0c\u90fd\u4f1a\u8d60\u4e0e\u5927\u91cf token \u3002\u5f53\u7136\uff0c\u89c9\u5f97\u5b83\u5c31\u662f\u5783\u573e\uff0c\u4e25\u5389\u5410\u69fd\u7684\uff0c\u5982\u80fd\u9a82\u9192\u6211\uff0c\u53ef\u6210\u4e3a\u5408\u4f19\u4eba\u3002<br /><br />\u611f\u8c22\uff01\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/netox", 
        "name": "netox", 
        "avatar": "https://cdn.v2ex.com/avatar/44ba/0b03/18767_large.png?m=1784083368"
      }, 
      "url": "https://www.v2ex.com/t/1244939", 
      "date_modified": "2026-09-26T14:14:17+00:00", 
      "content_html": "<p>\u4e4b\u524d\u5206\u4eab\u8fc7\u6211\u7684 iOS \u5e94\u7528 NovaScale(\u539f\u540d NovaAccess), \u5b83\u76f4\u63a5\u96c6\u6210\u4e86 Tailscale \u5185\u6838, \u628a SSH/SFTP/Remote Codex \u8fd9\u4e9b\u529f\u80fd\u6574\u5408\u5230\u4e00\u4e2a App \u91cc, \u65e0\u9700\u5f00\u542f Tailscale VPN \u5ba2\u6237\u7aef, \u4e5f\u53ef\u4ee5\u5728\u6709 VPN \u8fd0\u884c\u7684\u60c5\u51b5\u4e0b\u8fd0\u884c, \u76ee\u524d\u8fd8\u5728\u79ef\u6781\u8fed\u4ee3\u57fa\u4e8e herdr remote \u534f\u8bae, \u4ee5\u6ee1\u8db3\u50cf\u6211\u8fd9\u6837\u91cd\u5ea6 Tailscale \u7528\u6237\u8fdc\u7a0b\u5f00\u53d1\u4ee5\u53ca\u7ef4\u62a4\u670d\u52a1\u7684\u4e00\u4e9b\u9700\u6c42</p>\n<p>\u8ddd\u79bb\u4e4b\u524d\u53d1\u8d34\u5df2\u7ecf\u6709\u4e00\u6bb5\u65f6\u95f4\u4e86\uff0c\u8fd9\u671f\u95f4 iOS \u7248\u672c\u589e\u52a0\u4e86\u5f88\u591a\u65b0\u529f\u80fd\uff0c\u540c\u65f6\u4e5f\u4fee\u590d\u4e86\u4e00\u4e9b libtailscale \u7684\u95ee\u9898(\u76f8\u5173\u4fee\u590d\u5f00\u6e90\u5728 <a href=\"https://github.com/GalaxNet-Ltd/libtailscale\" rel=\"nofollow\">https://github.com/GalaxNet-Ltd/libtailscale</a> \u4e0d\u77e5\u9053\u4e3a\u5565, \u611f\u89c9 Tailscale \u7684 iOS \u6709\u4e9b\u4e25\u91cd\u95ee\u9898\u4e0a\u6e38\u4fee\u590d\u7684\u4e0d\u79ef\u6781, \u6bd4\u5982\u8fd9\u4e2a\u65ad\u7f51\u95ee\u9898: <a href=\"https://github.com/tailscale/tailscale/issues/19504)%3B\" rel=\"nofollow\">https://github.com/tailscale/tailscale/issues/19504);</a> \u4e0e\u6b64\u540c\u65f6, \u6211\u4e5f\u4e00\u76f4\u5728\u7528\u591a\u4f59\u7684 codex \u989d\u5ea6(pro 5x \u7528\u6237, \u8fd1\u671f reset \u5b9e\u5728\u65f6\u592a\u591a\u4e86), \u5728\u5f00\u53d1\u4e00\u4e2a\u5168\u514d\u8d39\u5168\u5f00\u6e90\u7684 Play \u7248\u672c, \u7528\u6765\u6ee1\u8db3\u5f53\u65f6\u4e00\u4e9b\u56fd\u5185\u5916\u7528\u6237\u63d0\u5230\u7684 android \u7248\u672c\u9700\u6c42</p>\n<p>\u7531\u4e8e\u4e4b\u524d\u7684\u4e00\u4e9b\u65b9\u6848\u611f\u89c9\u4e0d\u7406\u60f3, \u5728 5.6/astra \u53d1\u5e03\u540e\u53c8\u8fdb\u4e86\u4e00\u4e9b\u4f18\u5316, \u611f\u89c9\u9010\u6e10\u8fbe\u5230\u4e86\u81ea\u5df1\u53ef\u7528\u7684\u60c5\u51b5, \u751a\u81f3\u4e3a SSH terminal \u589e\u52a0\u57fa\u4e8e SGR \u7684\u9f20\u6807\u652f\u6301(herdr \u8fd9\u79cd mouse native \u7684 TUI \u5e94\u7528\u9700\u8981)\u57fa\u672c\u4e0a Astra \u4e00\u53d1\u5c31\u5dee\u4e0d\u591a\u4e86</p>\n<p>\u6700\u8fd1\u91cd\u65b0\u628a\u4e4b\u524d\u7684 play \u5f00\u53d1\u8005\u8d26\u53f7\u7528\u4e86\u8d77\u6765, \u5168\u90e8\u59d4\u6258\u7ed9 codex \u8d1f\u8d23\u622a\u56fe\u3001\u63cf\u8ff0\u3001\u5546\u5e97\u64cd\u4f5c(\u751a\u81f3\u5982\u4f55\u641e\u6388\u6743\u4e5f\u662f codex \u544a\u8bc9\u6211\u7684, \u76f8\u6bd4 iOS \u5f00\u53d1\u8981\u590d\u6742\u70b9), \u6ca1\u60f3\u5230\u5f53\u524d\u63d0\u4ea4\u9694\u5929\u5c31\u901a\u8fc7\u4e86</p>\n<p>\u56e0\u6b64\u53d1\u5728\u8fd9\u91cc\u4e5f\u5206\u4eab\u7ed9\u6709\u9700\u8981\u7684\u670b\u53cb, \u63d0\u524d\u58f0\u660e\u5982\u4e0b:</p>\n<p>1 \u3001\u8fd9\u662f\u4e00\u4e2a\u5b8c\u5168\u514d\u8d39\u7684\u5e94\u7528\uff0c\u4ee3\u7801\u5b8c\u5168\u5f00\u6e90 ( <a href=\"https://github.com/GalaxNet-Ltd/novascale-android)\" rel=\"nofollow\">https://github.com/GalaxNet-Ltd/novascale-android)</a>, \u4e0e iOS \u7248\u672c\u4e0d\u540c, \u6ca1\u6709\u91c7\u7528 libtailscale, \u76f4\u63a5\u8ba9 codex \u57fa\u4e8e tailscale \u6e90\u7801\u9002\u914d</p>\n<p>2 \u3001\u534a\u5e74\u524d\u7684\u6700\u521d\u7248\u672c\u5927\u6982\u8fd8\u662f claude \u505a\u7684, \u611f\u89c9\u505a\u7684\u4e0d\u600e\u4e48\u6837, \u5f53\u524d\u5b8c\u5168\u7531 Codex \u5f00\u53d1, \u6211\u53ea\u8d1f\u8d23\u67b6\u6784\u6587\u6863\u548c\u6700\u7ec8\u7684\u9a8c\u6536, \u6240\u4ee5\u53ef\u4ee5\u79f0\u4e4b\u5916\u5b8c\u5168 AI \u5f00\u53d1\u5e76\u53d1\u5e03\u7684\u7248\u672c, \u540e\u9762\u53ef\u80fd\u4f1a\u6839\u636e\u7528\u6237\u53cd\u9988\u3001\u65f6\u95f4\u548c Codex \u989d\u5916\u4f1a\u8fdb\u884c\u4e00\u4e9b\u8fed\u4ee3; \u603b\u4f53\u4e0a\u611f\u89c9\u6ee1\u8db3\u6211\u6709\u65f6\u5019 iPhone \u6ca1\u7535\u65f6\u7528 Android \u624b\u673a\u7684\u9700\u6c42</p>\n<p>3 \u3001\u4ee3\u7801\u4e3a GPL \u534f\u8bae, \u539f\u56e0\u5728\u4e8e\u4ece termux \u4e0a\u501f\u4e86\u4e00\u4e9b terminal rendering \u7684\u4ee3\u7801, \u8fd9\u90e8\u5206\u5b83\u7684\u534f\u8bae\u662f GPL \u7684, \u56e0\u6b64\u4e5f\u53ea\u80fd GPL \u5f00\u6e90</p>\n<p>Android \u7248\u672c NovaScale \u7684\u4e00\u4e9b\u4e3b\u8981\u529f\u80fd\u5982\u4e0b:</p>\n<ul>\n<li>\u65e0\u9700\u5b89\u88c5 Tailscale \u5b98\u65b9 App \uff0c\u56e0\u6b64\u53ef\u4ee5\u540c\u65f6\u4f7f\u7528\u5176\u4ed6 VPN</li>\n<li>\u57fa\u4e8e libghostty(\u51c6\u786e\u8bf4\u662f libghostty-vt \u5e93) + Termux \u6e32\u67d3\u65b9\u6848</li>\n<li>\u652f\u6301\u9f20\u6807\u64cd\u4f5c\uff08\u56e0\u6b64 tmux / herdr \u7b49\u573a\u666f\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff09</li>\n<li>\u652f\u6301\u526a\u8d34\u677f\u529f\u80fd\uff08\u5305\u62ec OSC52 \uff09</li>\n<li>\u652f\u6301\u81ea\u5b9a\u4e49\u63a7\u5236\u670d\u52a1\u5668(\u5373\u652f\u6301 headscale \u6216\u5176\u4ed6\u81ea\u5efa tailscale coordinator)</li>\n<li>\u5185\u7f6e SFTP \u6587\u4ef6\u6d4f\u89c8\u5668\uff0c\u652f\u6301\u76f4\u63a5\u7f16\u8f91\u6587\u4ef6, \u4ee5\u53ca\u5c11\u91cf\u4ee3\u7801\u7c7b\u578b\u7684\u9ad8\u5ea6\u652f\u6301</li>\n<li>\u5185\u7f6e\u6d4f\u89c8\u5668\uff0c\u53ef\u8bbf\u95ee tailnet \u5185\u90e8\u7684 Web \u670d\u52a1</li>\n<li>\u652f\u6301\u540e\u53f0\u4ee3\u7406\uff0c\u8ba9\u7b2c\u4e09\u65b9\u5e94\u7528\u4f7f\u7528 tailnet \u8fde\u63a5, \u4f8b\u5982\u4f60\u6b63\u5728\u4f7f\u7528\u5176\u4ed6\u975e Tailscale VPN \u65f6\uff0c\u4e5f\u53ef\u4ee5\u914d\u5408 Termius \u7b49 SSH \u5ba2\u6237\u7aef\u8fde\u63a5\u670d\u52a1\u5668</li>\n</ul>\n<p>\u6280\u672f\u67b6\u6784\u5982\u4e0b:</p>\n<ul>\n<li>tailscale \u6e90\u7801\u5305\u88c5\u51fa lib</li>\n<li>russh \u901a\u8fc7 ffi \u4e0e tailscale lib \u8fdb\u884c\u901a\u4fe1, \u5b9e\u73b0 ssh \u901a\u9053</li>\n<li>\u4f7f\u7528 termux \u63d0\u4f9b\u7684\u4ee3\u7801\u5b9e\u73b0\u4e86\u4e00\u4e2a terminal UI \u7684\u6e32\u67d3</li>\n<li>tailscale lib \u4e2d\u63d0\u4f9b\u4e00\u4e2a socks5 \u4ee3\u7406, \u6b64\u4ee3\u7406\u4f9b\u6d4f\u89c8\u5668\u5b9e\u73b0\u57fa\u4e8e MagicDNS \u7684\u8bbf\u95ee, \u540c\u65f6\u8fd9\u4e2a\u4ee3\u7406\u53ef\u4ee5\u63d0\u4f9b\u7ed9\u5176\u4ed6\u8fdb\u7a0b\u4f7f\u7528</li>\n</ul>\n<p>\u5982\u679c\u4f60\u662f Android \u7528\u6237\uff0c\u5e76\u4e14\u5bf9\u6b64\u611f\u5174\u8da3\uff0c\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u94fe\u63a5\u4e0b\u8f7d:</p>\n<p><a href=\"https://play.google.com/store/apps/details?id=cc.galaxnet.novascale\" rel=\"nofollow\">https://play.google.com/store/apps/details?id=cc.galaxnet.novascale</a></p>\n<p>\u7b80\u5355\u63a8\u5e7f\u4e0b iOS \u7248 NovaScale \uff0c\u5b83\u5305\u542b Android \u7248\u7684\u5168\u90e8\u529f\u80fd\uff0c\u57fa\u7840\u529f\u80fd\u514d\u8d39, \u6709\u5c11\u91cf\u7684\u4ed8\u8d39\u529f\u80fd\u9700\u8981\u8ba2\u9605\u6216\u4e70\u65ad\u652f\u6301:</p>\n<ul>\n<li>\u591a tailnet \u652f\u6301</li>\n<li>\u57fa\u4e8e\u5185\u7f6e Tailscale \u548c\u4e3b\u673a Codex App-Server \u76f4\u63a5\u4ea4\u4e92\u7684\u8fdc\u7a0b Codex \u65b9\u6848(\u65e0\u9700\u7b2c\u4e09\u65b9\u4e2d\u8f6c)</li>\n<li>\u670d\u52a1\u5668\u76d1\u63a7</li>\n<li>Docker \u7ba1\u7406</li>\n</ul>\n<p>\u76ee\u524d\u6211\u8fd8\u5728\u5c1d\u8bd5\u901a\u8fc7 herdr \u7684\u534f\u8bae\u5b9e\u73b0\u539f\u751f herdr \u652f\u6301\uff0c\u8ba9\u5b83\u80fd\u591f\u50cf herdr remote \u4e00\u6837\u5de5\u4f5c\u3002</p>\n<p>iOS \u7248\u672c\u53ef\u901a\u8fc7\u5982\u4e0b\u94fe\u63a5\u4e0b\u8f7d:</p>\n<p><a href=\"https://apps.apple.com/cn/app/novascale-%E4%B8%93%E4%B8%BA-tailscale-%E6%89%93%E9%80%A0/id6749938291\" rel=\"nofollow\">https://apps.apple.com/cn/app/novascale-%E4%B8%93%E4%B8%BA-tailscale-%E6%89%93%E9%80%A0/id6749938291</a></p>\n<p>PS:</p>\n<p>1 \u3001\u6700\u8fd1\u770b\u5230 tailscale CEO \u4e5f\u5fcd\u4e0d\u4f4f\u5145\u4e86\u70b9 codex \u7684\u989d\u5ea6, vibe \u4e86\u4e00\u4e2a\u5185\u7f6e Tailscale \u7684 jellyfin \u5ba2\u6237\u7aef, \u540c\u6837\u4e5f\u662f\u57fa\u4e8e libtailscale \u5b9e\u73b0\u7684, \u6709\u9700\u8981\u7528\u6237\u53ef\u4ee5\u53bb\u4ed6\u7684 X \u7684\u5e16\u5b50\u4e0a\u7ffb\u7ffb\u5e94\u8be5\u80fd\u627e\u5230 testflight</p>\n<p>2 \u3001\u4f5c\u4e3a tailscale \u7684\u91cd\u5ea6\u7528\u6237, \u4e5f\u6b22\u8fce\u79c1\u4fe1\u6280\u672f\u4ea4\u6d41</p>\n", 
      "date_published": "2026-09-26T14:13:38+00:00", 
      "title": "\u96c6\u6210 tailscale \u7684 android SSH/SFTP \u7ec8\u7aef", 
      "id": "https://www.v2ex.com/t/1244939"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yuanyuan11", 
        "name": "yuanyuan11", 
        "avatar": "https://cdn.v2ex.com/gravatar/ded7e01f4683e5c610b67020a45c47ee?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244938", 
      "title": "\u7528 Rust \u5199\u4e86\u4e00\u4e2a\u884c\u5f0f coding agent", 
      "id": "https://www.v2ex.com/t/1244938", 
      "date_published": "2026-09-26T14:12:27+00:00", 
      "content_html": "<hr/>\n<h2>title: \u7528 Rust \u5199\u4e86\u4e00\u4e2a\u884c\u5f0f coding agent\ndate: 2026-09-26</h2>\n<p>\u7528\u4e86\u4e00\u5e74\u591a Claude Code \uff0c\u4ece<a href=\"/5v7pe/\" rel=\"nofollow\">\u672c\u5730\u914d\u5408 DeepSeek \u8dd1\u751f\u4fe1\u6d41\u7a0b</a>\uff0c\u5230<a href=\"/9z3sa/\" rel=\"nofollow\">\u5728\u66d9\u5149\u670d\u52a1\u5668\u4e0a\u516c\u5171\u90e8\u7f72</a>\uff0c\u8d8a\u7528\u8d8a\u89c9\u5f97\u8fd9\u7c7b\u5de5\u5177\u6ca1\u5fc5\u8981\u90a3\u4e48\u590d\u6742\u3002\u6a21\u578b API \u8bf4\u767d\u4e86\u5c31\u662f\u4e00\u4e2a HTTP \u8bf7\u6c42\u52a0\u4e00\u4e2a SSE \u6d41\uff0c\u5de5\u5177\u65e0\u975e\u662f\u8bfb\u5199\u6587\u4ef6\u548c\u8dd1\u547d\u4ee4\uff0c\u4ea4\u4e92\u754c\u9762\u5c31\u662f\u4e2a\u7ec8\u7aef\uff0c\u8fde TUI \u90fd\u4e0d\u7528\u505a\uff0c\u666e\u901a\u7684\u884c\u5f0f\u4f1a\u8bdd\u5c31\u591f\u3002\u62b1\u7740\u8fd9\u4e2a\u60f3\u6cd5\uff0c\u6700\u8fd1\u7528 Rust \u5199\u4e86\u4e00\u4e2a\u81ea\u5df1\u7684 agent \uff0c\u5c31\u53eb <a href=\"https://github.com/imjiaoyuan/llm\" rel=\"nofollow\">llm</a>\uff0c\u4e00\u4e2a\u9759\u6001\u94fe\u63a5\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u6ca1\u6709\u4efb\u4f55\u8fd0\u884c\u65f6\u4f9d\u8d56\uff0c\u6254\u5230\u673a\u5668\u4e0a\u5c31\u80fd\u8dd1\u3002\u548c\u4e4b\u524d <a href=\"/5xbok/\" rel=\"nofollow\">vibe coding \u535a\u5ba2\u6846\u67b6</a> \u662f\u540c\u4e00\u4e2a\u601d\u8def\uff0c\u6838\u5fc3\u53ea\u505a\u5fc5\u987b\u505a\u7684\u4e8b\uff0c\u5176\u4f59\u7684\u5168\u90e8\u7559\u51fa\u6269\u5c55\u7684\u7f1d\uff0c\u8fd9\u6837\u51fa\u95ee\u9898\u4e5f\u77e5\u9053\u53bb\u54ea\u4fee\u3002</p>\n<h2>\u5b89\u88c5</h2>\n<p>Linux \u548c macOS \u4e0b\u9762\u4e00\u884c\u547d\u4ee4\uff0c\u4e0b\u8f7d\u9884\u7f16\u8bd1\u4e8c\u8fdb\u5236\uff0c\u6821\u9a8c sha256 \u4e4b\u540e\u88c5\u8fdb <code>~/.local/bin</code>\uff0c\u5168\u7a0b\u4e0d\u9700\u8981 root</p>\n<pre><code class=\"language-bash\">curl -fsSL https://jiaoyuan.org/llm/install.sh | sh\n</code></pre>\n<p>PATH \u91cc\u6ca1\u6709\u8fd9\u4e2a\u76ee\u5f55\u7684\u8bdd\u5b89\u88c5\u811a\u672c\u4f1a\u987a\u624b\u52a0\u4e0a\u3002\u91cd\u590d\u6267\u884c\u540c\u4e00\u6761\u547d\u4ee4\u5c31\u662f\u66f4\u65b0\u5668\uff0c\u7248\u672c\u6709\u53d8\u5316\u4f1a\u6253\u5370 <code>updating 0.2.1 -&gt; 0.2.2</code>\uff0c\u6ca1\u53d8\u5316\u5c31\u4e0d\u52a8\uff0c<code>LLM_VERSION</code> \u53ef\u4ee5\u56fa\u5b9a\u67d0\u4e2a release \uff0c<code>LLM_REPO</code> \u53ef\u4ee5\u4ece fork \u88c5\uff0c<code>LLM_FORCE=1</code> \u5f3a\u5236\u91cd\u88c5\u3002Windows \u4e0b\u9762\u4ece PowerShell \u505a\u540c\u6837\u7684\u4e8b</p>\n<pre><code class=\"language-powershell\">irm https://jiaoyuan.org/llm/install.ps1 | iex\n</code></pre>\n<p>Linux \u7528\u7684\u662f\u9759\u6001 musl \u6784\u5efa\uff0c\u540c\u4e00\u4e2a\u4e8c\u8fdb\u5236\u5728\u4efb\u4f55\u53d1\u884c\u7248\u4e0a\u90fd\u80fd\u8dd1\uff0c\u76ee\u524d\u63d0\u4f9b x86_64 \u548c aarch64 \u7684 Linux \uff0cx86_64 \u548c aarch64 \u7684 macOS \uff0c\u8fd8\u6709 x86_64 \u7684 Windows \u3002\u4e4b\u524d\u5728\u66d9\u5149\u670d\u52a1\u5668\u4e0a\u90e8\u7f72 Claude Code \u7684\u65f6\u5019\uff0cCentOS 7 \u7684 glibc \u8001\u5f97\u8fde conda \u90fd\u5f97\u642c\u51fa\u6765\u515c\u5e95\uff0c\u73b0\u5728\u8fd9\u4e2a musl \u4e8c\u8fdb\u5236 scp \u8fc7\u53bb <code>chmod +x</code> \u76f4\u63a5\u5c31\u80fd\u7528\uff0c\u7701\u5fc3\u591a\u4e86\u3002</p>\n<p>\u60f3\u4ece\u6e90\u7801\u7f16\u8bd1\u4e5f\u5f88\u7b80\u5355\uff0c\u88c5\u597d Rust \u5de5\u5177\u94fe\u4ee5\u540e</p>\n<pre><code class=\"language-bash\">git clone https://github.com/imjiaoyuan/llm\ncd llm\ncargo build --release\n</code></pre>\n<p>\u4e8c\u8fdb\u5236\u5728 <code>target/release/llm</code>\u3002\u6240\u6709\u72b6\u6001\u90fd\u653e\u5728 <code>~/.llm</code> \u4e0b\u9762\uff0c\u8bbe\u7f6e <code>LLM_USER_PATH</code> \u53ef\u4ee5\u628a\u6574\u4e2a\u76ee\u5f55\u632a\u8d70\uff0c\u6d4b\u8bd5\u7684\u65f6\u5019\u7279\u522b\u6709\u7528\u3002</p>\n<h2>\u767b\u5f55\u548c\u6a21\u578b\u914d\u7f6e</h2>\n<p>\u7b2c\u4e00\u6b21\u7528\u8fdb\u53bb\u6572 <code>/login</code>\uff0c\u9009\u4e00\u4e2a provider \uff0c\u7c98\u8d34 API key \uff0c\u8f93\u5165\u662f\u9690\u85cf\u7684\uff0c\u7136\u540e\u4ece provider \u7684\u5b9e\u65f6\u6a21\u578b\u5217\u8868\u91cc\u6311\u4e00\u4e2a\u9ed8\u8ba4\u6a21\u578b\uff0c\u5c31\u5b8c\u4e8b\u4e86\u3002\u76ee\u5f55\u91cc\u5185\u7f6e\u4e86 38 \u4e2a provider \u7684\u63a5\u5165\u914d\u7f6e\uff0cAnthropic \u3001OpenAI \u3001DeepSeek \u3001Google \u3001Groq \u3001Mistral \u3001xAI \u3001OpenRouter \u8fd9\u4e9b\u90fd\u6709\uff0cOllama \u3001LM Studio \u3001llama.cpp \u3001vLLM \u4e00\u7c7b\u7684\u672c\u5730\u8fd0\u884c\u65f6\u4e5f\u5728\u3002esc \u968f\u65f6\u53d6\u6d88\uff0c\u4e0d\u4f1a\u5199\u5165\u4efb\u4f55\u4e1c\u897f\u3002</p>\n<p>\u6211\u65e5\u5e38\u6302\u7684\u662f DeepSeek \u3002\u559c\u6b22\u624b\u52a8\u7f16\u8f91\u914d\u7f6e\u7684\u8bdd\uff0c\u5411 <code>~/.llm/config.json</code> \u91cc\u5199\u4e00\u4e2a\u5757\u5c31\u884c</p>\n<pre><code class=\"language-json\">{\n  \"providers\": {\n    \"deepseek\": {\n      \"kind\": \"openai-compat\",\n      \"base_url\": \"https://api.deepseek.com\",\n      \"api_key\": \"${DEEPSEEK_API_KEY}\",\n      \"models\": [\"deepseek-chat\", \"deepseek-reasoner\"]\n    }\n  }\n}\n</code></pre>\n<p><code>kind</code> \u53ea\u6709\u4e24\u79cd\uff0c<code>openai-compat</code> \u548c <code>anthropic</code>\u3002<code>api_key</code> \u53ef\u4ee5\u76f4\u63a5\u5199 key \uff0c\u4e5f\u53ef\u4ee5\u5199 <code>${\u73af\u5883\u53d8\u91cf\u540d}</code>\uff0c\u8bf7\u6c42\u7684\u65f6\u5019\u624d\u53bb\u73af\u5883\u91cc\u8bfb\uff0ckey \u4e0d\u7528\u843d\u5728\u914d\u7f6e\u6587\u4ef6\u91cc\u3002\u540c\u4e00\u4e2a provider \u6302\u4e24\u4e2a\u8d26\u53f7\u5c31 <code>/login</code> \u4e24\u6b21\uff0c\u7b2c\u4e8c\u4e2a\u4f1a\u5efa\u8bae\u53eb <code>NAME-2</code>\uff0c\u4e4b\u540e\u6a21\u578b\u7528 <code>provider/model</code> \u7684\u5b8c\u6574 id \u53bb\u6311\uff0c\u4e24\u8fb9\u90fd\u63d0\u4f9b\u7684\u88f8\u6a21\u578b\u540d\u4f1a\u88ab\u5f53\u4f5c\u6b67\u4e49\u62d2\u7edd\uff0c\u800c\u4e0d\u662f\u6309\u987a\u5e8f\u778e\u731c\u4e00\u4e2a\u3002</p>\n<p>\u6a21\u578b\u5728\u4f1a\u8bdd\u91cc\u7528 <code>/model</code> \u6362\uff0c\u5217\u8868\u662f\u5b9e\u65f6\u62c9\u7684\uff0c\u4f60\u4fdd\u5b58\u8fc7\u7684\u56fa\u5b9a\u5728\u6700\u4e0a\u9762\uff0c<code>/thinking</code> \u5355\u72ec\u8c03\u601d\u8003\u6df1\u5ea6\u3002<code>-m</code> \u548c\u73af\u5883\u53d8\u91cf <code>LLM_MODEL</code> \u53ef\u4ee5\u6309\u6b21\u8986\u76d6\u3002</p>\n<h2>\u57fa\u672c\u7528\u6cd5</h2>\n<p>\u6700\u77ed\u5c31\u4e09\u79cd</p>\n<pre><code class=\"language-bash\">llm                            # \u4ea4\u4e92\u5f0f\u4f1a\u8bdd\nllm \"fix the failing test\"     # \u8dd1\u4e00\u4e2a\u4efb\u52a1\u7136\u540e\u9000\u51fa\ncat error.log | llm \"what broke?\"   # \u63d0\u793a\u8bcd\u4ece\u7ba1\u9053\u6765\n</code></pre>\n<p>\u7ba1\u9053\u8f93\u51fa\u662f\u7eaf\u6587\u672c\uff0c\u6ca1\u6709\u989c\u8272\u6ca1\u6709\u63a7\u5236\u5b57\u7b26\uff0c\u76f4\u63a5\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\u6216\u8005\u63a5\u522b\u7684\u547d\u4ee4\u90fd\u884c\u3002</p>\n<p>\u4ea4\u4e92\u4f1a\u8bdd\u91cc\u8be5\u6709\u7684\u7ec6\u8282\u90fd\u6709\u3002\u4efb\u52a1\u8dd1\u7740\u7684\u65f6\u5019\u968f\u4fbf\u6253\u5b57\uff0c\u6572\u8fdb\u53bb\u7684\u5185\u5bb9\u4f1a\u6392\u961f\uff0c\u5728\u4e0b\u4e00\u4e2a\u5de5\u5177\u8c03\u7528\u7684\u8fb9\u754c\u9001\u8fbe\uff0c\u76f8\u5f53\u4e8e\u8fb9\u8dd1\u8fb9\u8865\u5145\u6307\u793a\uff0c\u4e00\u8f6e\u7ed3\u675f\u8fd8\u6ca1\u6d88\u8d39\u6389\u7684\u81ea\u52a8\u53d8\u6210\u4f60\u7684\u4e0b\u4e00\u6761\u6d88\u606f\u3002ctrl+c \u6216\u8005 esc \u4e2d\u65ad\u5f53\u524d\u4efb\u52a1\u3002<code>!cmd</code> \u76f4\u63a5\u8dd1 shell \u547d\u4ee4\uff0ctab \u8865\u5168\u547d\u4ee4\u540d\u548c\u8def\u5f84\u3002ctrl+v \u628a\u526a\u8d34\u677f\u91cc\u7684\u56fe\u7247\u76f4\u63a5\u8d34\u6210\u9644\u4ef6\uff0c\u526a\u8d34\u677f\u91cc\u6ca1\u6709\u56fe\u7247\u7684\u8bdd\u4f1a\u544a\u8bc9\u4f60\u5b83\u88c5\u7684\u5230\u5e95\u662f\u4ec0\u4e48\u3002\u7c98\u8d34\u8d85\u8fc7 10 \u884c\u6216\u8005 1000 \u5b57\u7b26\u4f1a\u6298\u53e0\u6210\u4e00\u4e2a\u539f\u5b50 token \uff0c\u63d0\u4ea4\u7684\u65f6\u5019\u624d\u5c55\u5f00\uff0c\u4e0d\u4f1a\u628a\u8f93\u5165\u6846\u6491\u7206\u3002</p>\n<p>\u754c\u9762\u672c\u8eab\u6709\u4e00\u4e2a\u523b\u610f\u7684\u51b3\u5b9a\uff0cllm \u4e0d\u662f TUI \u3002codex \u90a3\u7c7b\u5de5\u5177\u7684\u4ea4\u4e92\u662f\u6574\u5c4f\u63a5\u7ba1\u7684 alternate screen \uff0c\u6392\u7248\u786e\u5b9e\u6f02\u4eae\uff0c\u4ee3\u4ef7\u662f\u7ec8\u7aef\u88ab\u5b83\u63a5\u7ba1\uff0c\u8f93\u51fa\u4e0d\u8fdb scrollback \uff0c\u7ffb\u9875\u641c\u7d22\u590d\u5236\u5168\u662f\u5b83\u81ea\u5df1\u5b9e\u73b0\u7684\u4e00\u5957\u952e\u4f4d\uff0c\u9000\u51fa\u4e4b\u540e\u5c4f\u5e55\u6062\u590d\u539f\u6837\uff0c\u521a\u624d\u804a\u4e86\u4ec0\u4e48\u5168\u9760\u4f1a\u8bdd\u6062\u590d\u627e\u56de\u6765\u3002llm \u662f\u666e\u901a\u7684\u884c\u5f0f\u4f1a\u8bdd\uff0c\u56de\u7b54\u9010\u884c\u8ffd\u52a0\u5728\u7ec8\u7aef\u7684\u6b63\u5e38\u7f13\u51b2\u533a\u91cc\uff0c\u56de\u770b\u5386\u53f2\u7528\u7ec8\u7aef\u81ea\u5df1\u7684\u6eda\u52a8\uff0c\u641c\u7d22\u590d\u5236\u662f\u7ec8\u7aef\u539f\u751f\u529f\u80fd\uff0c\u548c\u4f60\u5728 shell \u91cc\u7684\u808c\u8089\u8bb0\u5fc6\u5b8c\u5168\u4e00\u81f4\u3002\u6e32\u67d3\u4e5f\u662f write-once \u7684\uff0c\u56de\u7b54\u533a\u6bcf\u4e2a\u5b57\u8282\u53ea\u5199\u4e00\u6b21\uff0c\u4e0d\u64e6\u9664\u4e0d\u91cd\u7ed8\uff0c\u6240\u4ee5 kitty \u3001tmux \u3001\u7eaf ssh \u751a\u81f3\u4e32\u53e3\u63a7\u5236\u53f0\u4e0b\u9762\u884c\u4e3a\u90fd\u4e00\u6837\u3002\u8fd9\u7c7b\u754c\u9762\u6b63\u7ecf\u7684\u540d\u5b57\u662f REPL \uff0cread-eval-print loop \uff0c\u8bfb\u4e00\u53e5\u6267\u884c\u4e00\u53e5\u6253\u5370\u4e00\u53e5\u518d\u7b49\u4e0b\u4e00\u53e5\uff0cpsql \u3001sqlite3 \u3001python \u7684\u4ea4\u4e92\u6a21\u5f0f\u90fd\u662f\u8fd9\u4e2a\u5f62\u6001\uff0cllm \u7684\u4f1a\u8bdd\u5c31\u662f\u4e00\u4e2a chat REPL \u3002</p>\n<p>\u9644\u4ef6\u4e5f\u53ef\u4ee5\u4ece\u547d\u4ee4\u884c\u7ed9</p>\n<pre><code class=\"language-bash\">llm -a shot.png \"what is wrong here?\"\nllm -a https://example.com/page \"summarise this\"\nllm -a - \"what is this?\" &lt; shot.png\n</code></pre>\n<p>\u56fe\u7247\u3001PDF \u3001wav/mp3 \u548c\u7eaf\u6587\u672c\u6309\u539f\u751f\u5185\u5bb9\u5757\u53d1\u9001\uff0c\u6a21\u578b\u4e0d\u63a5\u53d7\u7684\u683c\u5f0f\u5728\u8bf7\u6c42\u51fa\u673a\u5668\u4e4b\u524d\u5c31\u4f1a\u88ab\u62d2\u7edd\uff0c\u4e0d\u4f1a\u6d6a\u8d39\u4e00\u6b21\u8c03\u7528\u3002\u957f\u5bf9\u8bdd\u53ea\u4fdd\u7559\u6700\u65b0\u7684\u56fe\u7247\u9644\u4ef6\uff0c\u65e7\u7684\u6298\u53e0\u6210\u77ed\u6587\u672c\u8bf4\u660e\uff0c\u4e0d\u4e00\u76f4\u5360\u4e0a\u4e0b\u6587\u3002</p>\n<p>\u8dd1\u5355\u6b21\u4efb\u52a1\u7684\u65f6\u5019\u6709\u51e0\u4e2a\u5e38\u7528 flag</p>\n<pre><code class=\"language-bash\">llm -m deepseek/deepseek-chat \"...\"        # \u8fd9\u6b21\u7528\u54ea\u4e2a\u6a21\u578b\nllm --thinking high \"...\"                  # off | minimal | low | medium | high | xhigh\nllm -o temperature=0.2 -o top_p=0.9 \"...\"  # \u900f\u4f20\u91c7\u6837\u53c2\u6570\nllm -s \"you are a Rust reviewer\" \"...\"     # \u6574\u4e2a\u66ff\u6362\u7cfb\u7edf\u63d0\u793a\u8bcd\nllm --append-system-prompt \"be terse\" \"...\" # \u5728\u7cfb\u7edf\u63d0\u793a\u8bcd\u540e\u9762\u8ffd\u52a0\nllm --tools read,grep \"...\"                # \u8fd9\u6b21\u53ea\u7ed9\u8fd9\u51e0\u4e2a\u5de5\u5177\nllm --json \"...\"                           # \u4e8b\u4ef6\u6d41\u8f93\u51fa\uff0c\u4ee3\u66ff\u7ec8\u7aef\u754c\u9762\n</code></pre>\n<p><code>--thinking</code> \u5728 OpenAI \u517c\u5bb9\u7aef\u70b9\u4e0a\u6620\u5c04\u6210 <code>reasoning_effort</code>\uff0c\u5728 Anthropic \u4e0a\u6620\u5c04\u6210\u601d\u8003\u9884\u7b97\u3002<code>--json</code> \u628a\u754c\u9762\u6362\u6210\u4e00\u884c\u4e00\u4e2a JSON \u5bf9\u8c61\uff0c<code>text</code>\u3001<code>reasoning</code>\u3001<code>tool_start</code>\u3001<code>tool_log</code>\u3001<code>tool_end</code>\u3001<code>turn_end</code> \u52a0\u4e00\u4e2a\u6536\u5c3e\u7684 <code>result</code>\uff0cstdout \u4e0a\u9664\u4e86\u4e8b\u4ef6\u4ec0\u4e48\u90fd\u6ca1\u6709\uff0c\u7ed9\u76d1\u7763\u8fdb\u7a0b\u7528\u7684\uff0c\u7f16\u8f91\u5668\u3001CI \u6d41\u6c34\u7ebf\u6216\u8005\u53e6\u4e00\u4e2a agent \u90fd\u884c\uff0c\u540e\u9762\u8bb2 subagent \u7684\u65f6\u5019\u4f1a\u518d\u9047\u5230\u5b83\u3002</p>\n<h2>\u5185\u7f6e\u5de5\u5177</h2>\n<p>\u5de5\u5177\u4e00\u5171\u516b\u4e2a\uff0c<code>read</code>\u3001<code>write</code>\u3001<code>edit</code>\u3001<code>bash</code>\u3001<code>grep</code>\u3001<code>glob</code>\u3001<code>ls</code>\u3001<code>webfetch</code>\uff0c\u5916\u52a0\u4e00\u4e2a <code>update_plan</code> \u662f agent \u81ea\u5df1\u7684\u591a\u6b65\u9aa4\u6e05\u5355\uff0c\u957f\u4efb\u52a1\u9760\u5b83\u8bb0\u7740\u81ea\u5df1\u505a\u5230\u54ea\u4e00\u6b65\u4e86\u3002\u6ca1\u6709\u66f4\u591a\u4e86\uff0c\u5199\u4ee3\u7801\u8fd9\u4ef6\u4e8b\u4e0a\u8bfb\u5199\u6587\u4ef6\u52a0\u8dd1\u547d\u4ee4\u5df2\u7ecf\u8986\u76d6\u7edd\u5927\u591a\u6570\u573a\u666f\uff0cagent \u81ea\u5df1\u4f1a\u6311\u7740\u7528\uff0c<code>--tools</code> \u53ef\u4ee5\u4e34\u65f6\u6536\u7a84\u3002</p>\n<p><code>read</code> \u662f\u5206\u9875\u8bfb\u5927\u6587\u4ef6\u800c\u4e0d\u662f\u6574\u4e2a\u541e\u8fdb\u53bb\uff0c<code>offset</code> \u548c <code>limit</code> \u6309 2000 \u884c\u7684\u7a97\u53e3\u8d70\uff0c\u4e00\u6b21\u6700\u591a 50KB \uff0c\u5355\u884c\u5c01\u9876 2000 \u5b57\u7b26\uff0c\u4e00\u4e2a\u538b\u7f29\u8fc7\u7684 bundle \u6ca1\u529e\u6cd5\u628a\u4e0a\u4e0b\u6587\u5237\u7206\u3002\u6587\u4ef6\u6ca1\u8bfb\u5b8c\u4f1a\u5e26\u4e00\u53e5 <code>[Showing lines a-b of N. Use offset=...]</code>\uff0cagent \u81ea\u5df1\u77e5\u9053\u63a5\u7740\u7ffb\u3002</p>\n<p>\u78b0\u5230\u4e8c\u8fdb\u5236\u683c\u5f0f <code>read</code> \u4f1a\u76f4\u63a5\u62d2\u7edd\uff0c\u5e76\u63d0\u793a\u8be5\u7528\u54ea\u4e2a\u672c\u5730\u5de5\u5177\uff0cPDF \u7528 <code>pdftotext</code>\uff0cBAM \u548c CRAM \u7528 <code>samtools</code>\uff0cParquet \u3001HDF5 \u7528 <code>duckdb</code>\uff0c\u8001\u7684 Office \u6587\u6863\u7528 <code>libreoffice --headless --convert-to csv</code>\u3002\u8fd9\u4e00\u6761\u5bf9\u751f\u4fe1\u592a\u91cd\u8981\u4e86\uff0c\u52a8\u8f84\u51e0\u4e2a GB \u7684 BAM \u6587\u4ef6\uff0cagent \u8001\u8001\u5b9e\u5b9e\u53bb\u8c03 samtools \u67e5\u5934\u548c\u7d22\u5f15\uff0c\u800c\u4e0d\u662f\u8bd5\u56fe\u628a\u4e8c\u8fdb\u5236\u585e\u8fdb\u4e0a\u4e0b\u6587\u3002\u56fe\u7247\u8d70\u89c6\u89c9\u9644\u4ef6\uff0c\u76f4\u63a5\u53d1\u7ed9\u6a21\u578b\u770b\u3002</p>\n<p><code>edit</code> \u5728\u4e00\u6b21\u8c03\u7528\u91cc\u505a\u4e00\u5904\u6216\u8005\u591a\u5904\u7cbe\u786e\u66ff\u6362\uff0c\u53c2\u6570\u5c31\u662f\u539f\u6587\u548c\u6539\u540e\u7684\u8bdd\uff0c\u5339\u914d\u4e0d\u4e0a\u4f1a\u62a5\u9519\u800c\u4e0d\u662f\u9759\u9ed8\u4e71\u6539\u3002<code>write</code> \u521b\u5efa\u6216\u8005\u6574\u4e2a\u91cd\u5199\u6587\u4ef6\u3002\u4e0a\u4e0b\u6587\u5403\u7d27\u7684\u65f6\u5019\uff0c\u8d85\u957f\u7684\u5de5\u5177\u7ed3\u679c\u4f1a\u88ab\u622a\u5934\u53bb\u5c3e\uff0c\u4e2d\u95f4\u4e22\u6389\u7684\u90e8\u5206\u4f1a\u6ce8\u660e\uff0c\u5b8c\u6574\u5185\u5bb9\u4ecd\u7136\u5728\u4f1a\u8bdd\u65e5\u5fd7\u91cc\uff0c\u6a21\u578b\u9700\u8981\u7684\u65f6\u5019\u91cd\u65b0\u8dd1\u4e00\u904d\u547d\u4ee4\u6216\u8005\u91cd\u65b0\u8bfb\u4e00\u6b21\u6587\u4ef6\u5c31\u56de\u6765\u4e86\u3002</p>\n<p><code>webfetch</code> \u6293\u4e00\u4e2a\u7f51\u9875\u56de\u6765\u53d8\u6210\u6587\u672c\uff0cHTML \u6807\u7b7e\u4f1a\u88ab\u5265\u6389\uff0c\u53ea\u652f\u6301 http \u548c https \uff0c\u4ee3\u7406\u8bbe\u7f6e\u7167\u5e38\u751f\u6548\uff0cagent \u67e5\u6587\u6863\u4e0d\u7528\u5f00 shell \u3002</p>\n<h2>\u6743\u9650\u63a7\u5236</h2>\n<p>agent \u9ed8\u8ba4\u81ea\u7531\u8fd0\u884c\uff0c\u5b83\u81ea\u5df1\u5224\u65ad\u9700\u8981\u505a\u4ec0\u4e48\u5c31\u76f4\u63a5\u505a\u3002\u62e6\u4f4f\u5b83\u7684\u662f\u786c\u62d2\u7edd\u548c\u9ed1\u540d\u5355\uff0c\u800c\u4e0d\u662f\u5230\u5904\u5f39\u7684\u786e\u8ba4\u6846\u3002\u7528\u522b\u7684\u5de5\u5177\u7684\u65f6\u5019\u90a3\u79cd\u6bcf\u6b21\u5199\u6587\u4ef6\u90fd\u8981\u6309\u4e00\u4e0b <code>y</code> \u7684\u8bbe\u8ba1\uff0c\u7528\u4e45\u4e86\u4eba\u5c31\u9ebb\u6728\u4e86\uff0c\u6309\u952e\u53d8\u6210\u808c\u8089\u8bb0\u5fc6\uff0c\u786e\u8ba4\u5c31\u5f62\u540c\u865a\u8bbe\uff0c\u6240\u4ee5\u6211\u5e72\u8106\u4e0d\u505a\u5bbd\u6cdb\u7684\u8be2\u95ee\u6a21\u5f0f\u3002</p>\n<p>\u6574\u4e2a\u68c0\u67e5\u94fe\u6761\u753b\u51fa\u6765\u662f\u8fd9\u6837\u7684\uff0c\u4e00\u6b21 bash \u5de5\u5177\u8c03\u7528\u4ece\u4e0a\u5f80\u4e0b\u8d70\uff0c\u547d\u4e2d\u54ea\u5c42\u5c31\u5728\u54ea\u5c42\u5904\u7406</p>\n<pre><code class=\"language-text\">\u6a21\u578b\u53d1\u51fa bash \u8c03\u7528 \"git push --force origin main\"\n    \u2502\n    \u25bc\n\u250c\u2500 \u786c\u7f16\u7801\u62d2\u7edd\uff0c\u65e0\u6cd5\u5173\u95ed                  \u2500\u2510\n\u2502 sudo/su/doas \uff0cmkfs*/fdisk/dd/shred      \u2502\n\u2502 shutdown/reboot/halt \uff0cfork \u70b8\u5f39         \u2502\n\u2502 \u5199\u8bbe\u5907\u8282\u70b9\uff0crm \u5bf9\u7740 / \u6216\u8005 ~            \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                      \u2502 \u672a\u547d\u4e2d\n                      \u25bc\n\u250c\u2500 \u9ed1\u540d\u5355\u6587\u4ef6\uff0c\u53ea\u52a0\u4e0d\u51cf                  \u2500\u2510\n\u2502 ~/.llm/blacklist   \u5168\u5c40\u751f\u6548             \u2502\n\u2502 .llm/blacklist     \u53ea\u5bf9\u5f53\u524d\u4ed3\u5e93\uff0c\u884c\u4f18\u5148 \u2502\n\u2502 \u547d\u4e2d\u5f39\u63d0\u793a\uff0c\u6309 a \u672c\u6b21\u4f1a\u8bdd\u653e\u884c           \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                      \u2502 \u672a\u547d\u4e2d\n                      \u25bc\n\u250c\u2500 per-tool \u7b56\u7565 config.json             \u2500\u2510\n\u2502 \"git_push\": \"deny\"   \u76f4\u63a5\u62d2             \u2502\n\u2502 \"bash\": \"prompt\"    \u5f39 y/n/a            \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                      \u2502 \u672a\u547d\u4e2d\n                      \u25bc\n                    \u6267\u884c\n</code></pre>\n<p>\u786c\u7f16\u7801\u90a3\u4e00\u5c42\u6539\u914d\u7f6e\u4e5f\u5173\u4e0d\u6389\u3002\u63d0\u6743\u547d\u4ee4 <code>sudo</code>\u3001<code>su</code>\u3001<code>doas</code>\uff0c\u6587\u4ef6\u7cfb\u7edf\u521b\u5efa\u548c\u9500\u6bc1 <code>mkfs*</code>\u3001<code>mkswap</code>\u3001<code>fdisk</code>\u3001<code>parted</code>\u3001<code>dd</code>\u3001<code>shred</code>\u3001<code>wipefs</code>\uff0c\u673a\u5668\u63a7\u5236 <code>shutdown</code>\u3001<code>reboot</code>\u3001<code>poweroff</code>\u3001<code>halt</code>\u3001<code>init</code>\uff0c\u8fd8\u6709 fork \u70b8\u5f39\u3001\u5f80\u771f\u5b9e\u8bbe\u5907\u8282\u70b9\u91cc\u5199\u4e1c\u897f\u3001\u5bf9 <code>/</code> \u6216\u8005 <code>~</code> \u7684 <code>rm</code>\uff0c\u8fd9\u4e9b\u76f4\u63a5\u62d2\u7edd\uff0c\u4efb\u4f55\u914d\u7f6e\u90fd\u6551\u4e0d\u56de\u6765\u3002\u5f80 <code>/dev/sda</code> \u91cc\u5199\u4f1a\u62e6\uff0c<code>2&gt;/dev/null</code> \u8fd9\u79cd\u6ca1\u4e8b\u3002</p>\n<p>\u7b2c\u4e8c\u5c42\u662f\u9ed1\u540d\u5355\u6587\u4ef6\uff0c\u503c\u5f97\u5c55\u5f00\u8bb2\u8bb2\u3002<code>~/.llm/blacklist</code> \u5bf9\u6240\u6709\u9879\u76ee\u751f\u6548\uff0c<code>.llm/blacklist</code> \u653e\u5728\u4ed3\u5e93\u6839\u76ee\u5f55\u53ea\u5bf9\u8fd9\u4e2a\u4ed3\u5e93\u751f\u6548\uff0c\u540c\u540d\u89c4\u5219\u9879\u76ee\u7684\u884c\u4f18\u5148\u3002\u8fd9\u4e00\u5c42\u53ea\u80fd\u5728\u786c\u62d2\u7edd\u4e4b\u4e0a\u505a\u52a0\u6cd5\uff0c\u4f60\u60f3\u653e\u884c\u67d0\u4e2a\u786c\u62d2\u7edd\u662f\u505a\u4e0d\u5230\u7684\uff0c\u786c\u62d2\u7edd\u5c31\u662f\u786c\u62d2\u7edd\u3002</p>\n<p>\u6587\u4ef6\u9996\u6b21\u751f\u6210\u65f6\u81ea\u5e26\u4e24\u6761\u89c4\u5219\u52a0\u4e00\u5806\u8bed\u6cd5\u6ce8\u91ca</p>\n<pre><code class=\"language-text\">rm\ngit push --force*\n</code></pre>\n<p>\u5220\u6389\u6587\u4ef6\u4e0b\u6b21\u542f\u52a8\u5c31\u91cd\u7f6e\u56de\u8fd9\u4e24\u6761\u3002\u6bcf\u884c\u4e00\u4e2a\u89c4\u5219\uff0c\u5199\u6cd5\u6709\u56db\u79cd</p>\n<pre><code class=\"language-text\">deploy                        # \u547d\u4ee4\u8bcd\uff0c\u62e6 deploy x \u3001deploy --all \u3001echo hi | deploy\ngit push --force origin main  # \u5b8c\u6574\u547d\u4ee4\u6bb5\uff0c\u5168\u90e8\u5bf9\u4e0a\u624d\u62e6\nrm -*                        # glob \uff0c\u62e6 rm -rf \u3001rm -r \uff0c\u4f46\u62e6\u4e0d\u4f4f\u88f8 rm\n!git push --force*            # \u53cd\u5411\u653e\u884c\uff0c\u628a\u524d\u9762\u5bf9\u4e0a\u7684\u89c4\u5219\u53c8\u653e\u56de\u6765\n</code></pre>\n<p>\u5339\u914d\u662f\u5bf9 shell \u89e3\u6790\u540e\u7684\u547d\u4ee4\u9010\u6bb5\u505a\u7684\uff0c\u6240\u4ee5\u7ba1\u9053\u540e\u9762\u7684\u6bb5\u4e5f\u80fd\u547d\u4e2d\uff0c<code>echo hi | deploy</code> \u91cc <code>deploy</code> \u4f1a\u88ab\u5355\u72ec\u770b\u5230\u3002<code>!</code> \u5f00\u5934\u7684\u884c\u7528\u6765\u5728\u9ed1\u540d\u5355\u4e0a\u5f00\u53e3\u5b50\uff0c\u6bd4\u5982\u5168\u5c40\u62e6\u4e86 <code>rm -*</code>\uff0c\u9879\u76ee\u91cc\u5199 <code>!rm -rf node_modules</code> \u5c31\u628a\u8fd9\u4e00\u79cd\u653e\u56de\u6765\u4e86\u3002\u666e\u901a\u7684 <code>rm</code> \u9ed8\u8ba4\u4e0d\u62e6\uff0c\u5220\u6587\u4ef6\u672c\u6765\u5c31\u662f\u65e5\u5e38\u5f00\u53d1\u7684\u4e00\u90e8\u5206\uff0c\u771f\u6b63\u5371\u9669\u7684\u662f <code>rm -rf</code> \u6307\u9519\u4e86\u5730\u65b9\uff0c\u9ed8\u8ba4\u89c4\u5219\u62e6\u5f97\u6bd4\u4f60\u60f3\u8c61\u4e2d\u5bbd\u677e\uff0c\u8981\u4e25\u53ef\u4ee5\u81ea\u5df1\u52a0 <code>rm -*</code>\u3002</p>\n<p>\u9ed1\u540d\u5355\u547d\u4e2d\u65f6\u4f1a\u5f39\u63d0\u793a\uff0c\u9ad8\u4eae\u5339\u914d\u5230\u7684\u90a3\u4e00\u884c\u89c4\u5219\uff0c\u53ef\u4ee5\u770b\u5230\u5230\u5e95\u662f\u54ea\u6761\u89c4\u5219\u62e6\u4f4f\u4e86\u4f60\uff0c\u6309 <code>a</code> \u5728\u672c\u6b21\u4f1a\u8bdd\u5185\u653e\u884c\u8fd9\u4e2a\u6a21\u5f0f\uff0c\u540e\u7eed\u540c\u6a21\u5f0f\u7684\u8c03\u7528\u4e0d\u518d\u95ee\u3002</p>\n<p>\u8981\u8bf4\u8bda\u5b9e\u7684\u8bdd\uff0c\u8fd9\u4e2a\u68c0\u67e5\u662f\u8bcd\u6cd5\u5c42\u9762\u7684\uff0c\u5b83\u770b\u5f97\u5230\u7684\u662f\u89e3\u6790\u51fa\u6765\u7684\u547d\u4ee4\u6bb5\uff0c\u770b\u4e0d\u5230\u8fd0\u884c\u65f6\u624d\u62fc\u51fa\u6765\u7684\u4e1c\u897f\uff0c\u6bd4\u5982 <code>cmd=\"rm\"; $cmd -rf /</code> \u8fd9\u79cd\u5c31\u4e0d\u5728\u5b83\u7684\u89c6\u91ce\u91cc\uff0c\u6269\u5c55\u5de5\u5177\u81ea\u5df1 spawn \u7684\u8fdb\u7a0b\u4e5f\u4e0d\u7ecf\u8fc7\u8fd9\u6761\u8def\u3002\u6240\u4ee5\u5b83\u662f\u63d0\u793a\u4e0d\u662f\u7d27\u95ed\u7684\u7262\u7b3c\uff0c\u771f\u8981\u9632\u62a4\u8fd8\u662f\u914d\u5408\u7528\u6237\u6743\u9650\uff0c\u62ff\u65e5\u5e38\u8d26\u53f7\u8dd1 agent \uff0c\u522b\u62ff root \u8dd1\u3002</p>\n<p>\u518d\u7ec6\u7684\u63a7\u5236\u5199\u5728 config.json \u91cc\uff0c\u6bcf\u4e2a\u5de5\u5177\u90fd\u53ef\u4ee5\u5355\u72ec\u7ed9\u7b56\u7565</p>\n<pre><code class=\"language-json\">{\n  \"agent\": {\n    \"tools\": {\"bash\": \"prompt\", \"git_push\": \"deny\"}\n  }\n}\n</code></pre>\n<p><code>allow</code>\u3001<code>deny</code>\u3001<code>prompt</code> \u4e09\u4e2a\u503c\uff0c\u53cc\u5411\u90fd\u884c\uff0c\u8be5\u95ee\u7684\u95ee\uff0c\u8be5\u7981\u7684\u7981\uff0c\u8fd9\u4e00\u5c42\u7684\u4f18\u5148\u7ea7\u6700\u9ad8\u3002</p>\n<h2>\u6269\u5c55\u7cfb\u7edf</h2>\n<p>\u8fd9\u662f\u6211\u6700\u559c\u6b22\u7684\u8bbe\u8ba1\u3002\u4efb\u4f55\u811a\u672c\u5f00\u5934\u52a0\u51e0\u884c\u6ce8\u91ca\uff0c\u5b83\u5c31\u53d8\u6210\u4e86\u4e00\u4e2a\u5de5\u5177\uff0chost \u6bcf\u6b21\u8c03\u7528\u7684\u65f6\u5019\u628a\u5b83 spawn \u8d77\u6765\uff0c\u5582\u53c2\u6570\uff0c\u6536 stdout \u4f5c\u4e3a\u7ed3\u679c</p>\n<pre><code class=\"language-python\">#!/usr/bin/env python3\n# --- llm-tool: wordcount\n# description: count characters, words and lines of a text\n# args: text (string) the text to measure\n# arg-mode: argv\n# interpreter: python3\n# timeout: 10\nimport sys\ntext = sys.argv[1] if len(sys.argv) &gt; 1 else \"\"\nprint(f\"{len(text)} chars \u00b7 {len(text.split())} words\")\n</code></pre>\n<p>\u4e0d\u9700\u8981\u53ef\u6267\u884c\u6743\u9650\uff0c\u58f0\u660e\u4e86 <code>interpreter</code> \u5c31\u7528\u6307\u5b9a\u7684\u89e3\u91ca\u5668\u8dd1\uff0c\u8fd9\u4e00\u62db\u5728 Windows \u4e0a\u540c\u6837\u597d\u4f7f\u3002Python \u3001shell \u3001R \uff0c\u624b\u8fb9\u6709\u4ec0\u4e48\u5c31\u7528\u4ec0\u4e48\u5199\u3002\u53ea\u6709\u4e00\u4e2a\u53c2\u6570\u7684\u65f6\u5019\u52a0\u4e00\u884c <code>arg-mode: argv</code>\uff0c\u53c2\u6570\u5c31\u4ee5\u666e\u901a\u547d\u4ee4\u884c\u53c2\u6570\u7684\u5f62\u5f0f\u8fdb\u6765\uff0c\u4e0d\u7528\u89e3\u6790 JSON \uff0cshell \u811a\u672c\u5199\u8d77\u6765\u6beb\u65e0\u8d1f\u62c5\u3002\u6587\u4ef6\u653e\u8fdb <code>~/.llm/extensions/</code> \u662f\u5168\u5c40\u751f\u6548\uff0c\u653e\u8fdb\u9879\u76ee\u7684 <code>.llm/extensions/</code> \u53ea\u5bf9\u8fd9\u4e2a\u9879\u76ee\u751f\u6548\uff0c\u4e24\u8fb9\u540c\u540d\u7684\u65f6\u5019\u9879\u76ee\u90a3\u4efd\u8d62\uff0c\u6539\u5b8c <code>/reload</code> \u4e00\u4e0b\u5c31\u6302\u4e0a\u4e86\u3002</p>\n<p>\u66f4\u91cd\u7684\u9700\u6c42\u7528\u5e38\u9a7b\u6269\u5c55\u3002\u6ca1\u6709 manifest \u5934\u7684\u6587\u4ef6\u6309\u4f1a\u8bdd\u542f\u52a8\u4e00\u6b21\uff0c\u901a\u8fc7 stdio \u4e00\u884c\u4e00\u4e2a JSON \u548c host \u901a\u4fe1\u3002\u542f\u52a8\u65f6 host \u5148\u53d1 <code>initialize</code>\uff0c\u6269\u5c55\u58f0\u660e\u81ea\u5df1\u63d0\u4f9b\u54ea\u4e9b\u5de5\u5177\u3001\u54ea\u4e9b\u659c\u6760\u547d\u4ee4\u3001\u5173\u5fc3\u54ea\u4e9b\u4e8b\u4ef6\uff0c\u4e4b\u540e\u6a21\u578b\u8c03\u7528\u5de5\u5177\u3001\u7528\u6237\u6572\u547d\u4ee4\u3001\u56de\u5408\u8fb9\u754c\u7684\u65f6\u5019 host \u90fd\u4f1a\u56de\u8c03\u3002\u6574\u4e2a\u534f\u8bae\u53ef\u4ee5\u7528\u4e00\u5c0f\u6bb5 Python \u8bb2\u5b8c</p>\n<pre><code class=\"language-python\">#!/usr/bin/env python3\nimport json, sys\n\ndef reply(obj):\n    sys.stdout.write(json.dumps(obj) + \"\\n\")\n    sys.stdout.flush()\n\nfor line in sys.stdin:\n    req = json.loads(line)\n    if req.get(\"type\") == \"initialize\":\n        reply({\"id\": req[\"id\"], \"result\": {\"tools\": [\n            {\"name\": \"deploy\", \"description\": \"Deploy the current tree\",\n             \"parameters\": {\"type\": \"object\", \"properties\": {}}}],\n            \"commands\": [], \"events\": []}})\n    elif req.get(\"type\") == \"call_tool\":\n        import subprocess\n        out = subprocess.run([\"deploy.sh\"], capture_output=True, text=True)\n        reply({\"id\": req[\"id\"], \"result\": out.stdout or out.stderr})\n    elif req.get(\"type\") == \"shutdown\":\n        break\n</code></pre>\n<p>\u8fd9\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u90e8\u7f72\u5de5\u5177\uff0c\u6838\u5fc3\u4e00\u884c\u90fd\u6ca1\u6539\u3002\u6269\u5c55\u5f80 stderr \u6253\u7684\u4efb\u4f55\u4e1c\u897f\u90fd\u662f\u7ed9\u4eba\u770b\u7684\u901a\u9053\uff0c\u8c03\u7528\u8fdb\u884c\u4e2d\u65f6\u4f1a\u4e00\u884c\u4e00\u884c\u6d41\u8fdb\u8fd9\u6b21\u8c03\u7528\u7684\u5de5\u5177\u65e5\u5fd7\uff0c\u76f8\u5f53\u4e8e\u957f\u4efb\u52a1\u7684\u5b9e\u65f6\u8fdb\u5ea6\uff0c\u4f46\u662f\u4e0d\u4f1a\u6df7\u8fdb\u7ed9\u6a21\u578b\u7684\u7ed3\u679c\u91cc\u3002\u5de5\u5177\u9ed8\u8ba4 120 \u79d2\u8d85\u65f6\uff0c\u8dd1\u6784\u5efa\u6216\u8005\u8dd1\u53e6\u4e00\u4e2a agent \u8fd9\u79cd\u957f\u6d3b\u5728 <code>initialize</code> \u91cc\u81ea\u5df1\u62a5\u4e00\u4e2a\u66f4\u957f\u7684\u671f\u9650\uff0c\u4e0a\u9650\u4e00\u5c0f\u65f6\u3002\u6269\u5c55\u5d29\u4e86\u4f1a\u5728\u4e0b\u6b21\u7528\u5230\u7684\u65f6\u5019\u61d2\u91cd\u542f\uff0c\u4ee3\u4ef7\u662f\u4e22\u4e00\u6b21\u8c03\u7528\uff0c\u4e0d\u662f\u4e22\u6574\u4e2a\u4f1a\u8bdd\u3002</p>\n<p>\u4e8b\u4ef6\u91cc\u6700\u6709\u7528\u7684\u662f <code>tool_call</code>\uff0c\u5b83\u5728\u6bcf\u6b21\u5de5\u5177\u771f\u6b63\u6267\u884c\u4e4b\u524d\u89e6\u53d1\uff0c\u6269\u5c55\u53ef\u4ee5\u62d2\u7edd\u8fd9\u6b21\u8c03\u7528\uff0c\u53ef\u4ee5\u6539\u5199\u5b83\u7684\u53c2\u6570\uff0c\u4e5f\u53ef\u4ee5\u66ff\u5b83\u8df3\u8fc7\u5ba1\u6279\u63d0\u793a\u3002\u6bd4\u5982\u4e0d\u60f3\u8ba9 agent \u5728\u67d0\u4e2a\u6302\u8f7d\u4e86\u7f51\u7edc\u76d8\u7684\u76ee\u5f55\u91cc\u4e71\u5220\u4e1c\u897f\uff0c\u5199\u4e00\u4e2a\u51e0\u884c\u7684\u76d1\u542c\u5c31\u62e6\u4f4f\u4e86\uff0c\u9879\u76ee\u7ea7\u7684 guardrail \u5168\u9760\u8fd9\u6761\u7f1d\uff0c\u6bd4\u4efb\u4f55\u6a21\u5f0f\u5f00\u5173\u90fd\u7cbe\u51c6\u3002<code>tool_result</code> \u4e8b\u4ef6\u66f4\u8fdb\u4e00\u6b65\uff0c\u80fd\u62ff\u5230\u5de5\u5177\u7684\u5b8c\u6574\u8f93\u51fa\u5e76\u6539\u5199\u6a21\u578b\u5b9e\u9645\u8bfb\u5230\u7684\u5185\u5bb9\uff0c\u65e5\u5fd7\u53bb\u91cd\u3001\u654f\u611f\u4fe1\u606f\u8131\u654f\u90fd\u63d2\u5728\u8fd9\u91cc\uff0c\u7ebf\u7a0b\u6587\u4ef6\u91cc\u4ecd\u7136\u4fdd\u7559\u539f\u59cb\u8f93\u51fa\uff0c\u6539\u574f\u4e86\u4e5f\u8d56\u4e0d\u6389\u3002</p>\n<h2>MCP</h2>\n<p>MCP \u6ca1\u6709\u505a\u8fdb\u5185\u6838\uff0c\u800c\u662f\u4f5c\u4e3a\u4e00\u4e2a\u5e38\u9a7b\u6269\u5c55\u5b58\u5728\u3002<code>examples/extensions/<a href=\"http://mcp_bridge.py\" rel=\"nofollow\">mcp_bridge.py</a></code> \u4f1a\u8bfb\u53d6\u653e\u5728\u81ea\u5df1\u65c1\u8fb9\u7684 <code>mcp.json</code>\uff0c\u628a\u91cc\u9762\u6bcf\u4e2a server \u7684\u5de5\u5177\u6302\u8f7d\u6210 <code>server__tool</code> \u5f62\u5f0f\u7684\u5de5\u5177\uff0c\u5ba1\u6279\u77e9\u9635\u7167\u5e38\u9002\u7528\u3002stdio \u548c streamable HTTP \u4e24\u79cd\u4f20\u8f93\u90fd\u652f\u6301\uff0ctoken \u7528 <code>${VAR}</code> \u4ece\u73af\u5883\u53d8\u91cf\u5c55\u5f00\uff0c\u4e0d\u7528\u660e\u6587\u5199\u8fdb\u6587\u4ef6</p>\n<pre><code class=\"language-json\">{\n  \"cloudflare\": {\n    \"type\": \"streamable-http\",\n    \"url\": \"https://mcp.cloudflare.com/mcp\",\n    \"headers\": {\"Authorization\": \"Bearer ${CLOUDFLARE_MCP_TOKEN}\"}\n  },\n  \"fetch\": {\"command\": \"uvx\", \"args\": [\"mcp-server-fetch\"]}\n}\n</code></pre>\n<p>\u628a\u6587\u4ef6\u62f7\u8fdb\u6269\u5c55\u76ee\u5f55\uff0c\u6539\u4e00\u4e0b\u65c1\u8fb9\u7684 <code>mcp.json</code>\uff0c<code>/reload</code> \u5b8c\u4e8b\u3002\u4e00\u4e2a MCP server \u63e1\u624b\u5931\u8d25\u5c31\u8df3\u8fc7\u5b83\u6253\u4e2a\u6697\u8272\u8b66\u544a\uff0c\u5176\u4f59\u7684\u7167\u5e38\u6302\u8f7d\uff0c\u4e0d\u4f1a\u56e0\u4e3a\u4e00\u4e2a\u574f server \u62d6\u6b7b\u6574\u4e2a\u4f1a\u8bdd\u3002</p>\n<h2>subagent</h2>\n<p>subagent \u540c\u6837\u662f\u6269\u5c55\u800c\u4e0d\u662f\u5185\u6838\u7279\u6027\u3002<code>examples/extensions/<a href=\"http://subagent.py\" rel=\"nofollow\">subagent.py</a></code> \u6302\u8f7d\u4e00\u4e2a <code>subagent</code> \u5de5\u5177\uff0cspawn \u4e00\u4e2a\u5b50 <code>llm</code> \u8fdb\u7a0b\uff0c\u8ba9\u5b83\u5728\u81ea\u5df1\u7684\u4e0a\u4e0b\u6587\u7a97\u53e3\u91cc\u5e72\u6d3b\uff0c\u53ea\u628a\u7ed3\u8bba\u4f5c\u4e3a\u5de5\u5177\u7ed3\u679c\u4ea4\u56de\u6765\u3002agent \u7684\u5b9a\u4e49\u5c31\u662f\u5e26 frontmatter \u7684 markdown \u6587\u4ef6\uff0c\u653e\u5728 <code>~/.llm/agents/</code> \u6216\u8005\u9879\u76ee\u7684 <code>.llm/agents/</code> \u4e0b\u9762</p>\n<pre><code class=\"language-markdown\">---\nname: scout\ndescription: read-only scout that locates code and files\ntools: read, grep, glob, ls\n---\nYou are a scout. Locate code and report paths with brief evidence. Do not edit anything.\n</code></pre>\n<p><code>tools</code>\u3001<code>model</code>\u3001<code>thinking</code> \u90fd\u662f\u53ef\u9009\u7684\uff0c\u6b63\u6587\u5c31\u662f\u9644\u52a0\u7684\u7cfb\u7edf\u63d0\u793a\u8bcd\u3002\u4ed3\u5e93\u91cc\u9644\u4e86\u56db\u4e2a\u53ef\u4ee5\u76f4\u63a5\u6284\u7684\u5b9a\u4e49\uff0c<code>scout</code> \u548c <code>reviewer</code> \u53ea\u8bfb\uff0c<code>planner</code> \u53ea\u601d\u8003\u4e0d\u52a8\u624b\uff0c<code>worker</code> \u53ef\u4ee5\u6539\u6587\u4ef6\u53ef\u4ee5\u8dd1\u547d\u4ee4\u3002\u5b50\u8fdb\u7a0b\u901a\u8fc7 <code>--json</code> \u8f93\u51fa\u4e8b\u4ef6\u6d41\uff0c\u6269\u5c55\u628a\u5b83\u8f6c\u6210\u7236\u4f1a\u8bdd\u91cc\u7684\u5b9e\u65f6\u5de5\u5177\u65e5\u5fd7\uff0c\u7b54\u6848\u4ece\u6700\u540e\u7684 <code>result</code> \u5bf9\u8c61\u91cc\u62ff\uff0c\u5b8c\u5168\u4e0d\u7528\u89e3\u6790\u9762\u5411\u4eba\u7c7b\u7684\u6587\u672c\u3002ctrl+c \u4f1a\u6cbf\u7740\u94fe\u8def\u4f20\u4e0b\u53bb\u628a\u5b50\u8fdb\u7a0b\u4e5f\u505c\u6389\uff0c\u6df1\u5ea6\u5b88\u536b\u62d2\u7edd\u5957\u5a03\uff0c\u5b50 agent \u7684\u5de5\u5177\u767d\u540d\u5355\u4e5f\u4e0d\u5305\u542b <code>subagent</code> \u81ea\u5df1\u3002</p>\n<p>\u6838\u5fc3\u5bf9 subagent \u7684\u5b58\u5728\u4e00\u65e0\u6240\u77e5\uff0c\u8fd9\u5c31\u662f\u6269\u5c55\u7cfb\u7edf\u8be5\u6709\u7684\u6837\u5b50\u3002</p>\n<h2>skills \u548c\u63d0\u793a\u8bcd\u6a21\u677f</h2>\n<p>skills \u653e\u5728 <code>~/.llm/skills/</code> \u4e0b\u9762\uff0c\u4e00\u4e2a\u76ee\u5f55\u4e00\u4e2a <code><a href=\"http://SKILL.md\" rel=\"nofollow\">SKILL.md</a></code>\uff0c<code>description</code> \u662f\u6a21\u578b\u5339\u914d\u4efb\u52a1\u7684\u4f9d\u636e\u3002agent \u4f1a\u5728 <code>/help</code> \u91cc\u5217\u51fa\u6240\u6709\u53ef\u7528\u7684 skill \uff0c\u53ef\u4ee5 <code>/skill:name</code> \u624b\u52a8\u8dd1\uff0c\u6a21\u578b\u770b\u4efb\u52a1\u50cf\u7684\u65f6\u5019\u4e5f\u4f1a\u81ea\u5df1\u6311\u3002\u8fd0\u884c\u7684\u65f6\u5019 skill \u62ff\u5230\u81ea\u5df1\u6240\u5728\u76ee\u5f55\u4f5c\u4e3a\u5de5\u4f5c\u76ee\u5f55\uff0c\u91cc\u9762\u5f15\u7528\u7684 <code>references/</code>\u3001<code>scripts/</code> \u548c\u5404\u79cd\u8d44\u6e90\u5728\u54ea\u513f\u542f\u52a8\u90fd\u80fd\u89e3\u6790\u5bf9\u3002\u4e4b\u524d\u5199\u8fc7\u7684\u751f\u4fe1\u9879\u76ee\u68b3\u7406\u63d0\u793a\u8bcd\uff0c\u73b0\u5728\u53ef\u4ee5\u76f4\u63a5\u505a\u6210\u4e00\u4e2a skill \uff0c\u6bcf\u4e2a\u9879\u76ee\u76ee\u5f55\u91cc\u4e00\u6572\u5c31\u8dd1\u3002</p>\n<p>\u63d0\u793a\u8bcd\u6a21\u677f\u89e3\u51b3\u53e6\u4e00\u4e2a\u95ee\u9898\uff0c\u5c31\u662f\u53cd\u590d\u6572\u540c\u6837\u7684\u8bdd\u3002\u628a\u4e00\u4e2a <code>.md</code> \u6587\u4ef6\u653e\u8fdb <code>~/.llm/commands/</code>\uff0c<code>/name</code> \u5c31\u53d8\u6210\u4e86\u4e00\u4e2a\u659c\u6760\u547d\u4ee4\uff0c\u6b63\u6587\u5c31\u662f\u63d0\u793a\u8bcd\uff0cfrontmatter \u91cc\u53ef\u4ee5\u52a0\u4e00\u4e2a\u989d\u5916\u7684 <code>system</code> \u63d0\u793a\u8bcd\uff0c<code>$input</code> \u63a5\u4f4f\u547d\u4ee4\u540d\u540e\u9762\u7684\u6240\u6709\u53c2\u6570\uff0c\u4e24\u8fb9\u90fd\u4f1a\u505a\u66ff\u6362\u3002\u6bd4\u5982\u5199\u4e00\u4e2a <code><a href=\"http://review.md\" rel=\"nofollow\">review.md</a></code>\uff0c\u4e4b\u540e <code>/review src/<a href=\"http://main.rs\" rel=\"nofollow\">main.rs</a></code> \u5c31\u662f\u62ff\u6a21\u677f\u8dd1\u8fd9\u4e2a\u6587\u4ef6\u3002</p>\n<p>\u518d\u5f80\u4e0a\u4e00\u5c42\u662f\u5305\u7ba1\u7406\u3002<code>llm install git:<a href=\"http://github.com/user/repo\" rel=\"nofollow\">github.com/user/repo</a></code> \u628a\u4e00\u4e2a git \u4ed3\u5e93\u514b\u9686\u5230 <code>~/.llm/pkg/</code> \u4e0b\u9762\uff0c\u91cc\u9762\u7684 <code>extensions/</code>\u3001<code>skills/</code>\u3001<code>commands/</code> \u4f1a\u6302\u8fdb\u6b63\u5e38\u7684\u53d1\u73b0\u8def\u5f84\uff0c<code>-l</code> \u88c5\u5230\u9879\u76ee\u672c\u5730\uff0c<code>-g</code> \u662f\u9ed8\u8ba4\u7684\u5168\u5c40\u3002\u4ed3\u5e93\u6839\u4e0a\u4e00\u4e2a <code><a href=\"http://SKILL.md\" rel=\"nofollow\">SKILL.md</a></code> \u4e5f\u7b97\u6570\uff0c\u6574\u4e2a\u4ed3\u5e93\u53d8\u6210\u4e00\u4e2a skill \uff0c\u73b0\u5728\u5927\u591a\u6570\u72ec\u7acb skill \u4ed3\u5e93\u5c31\u662f\u8fd9\u4e2a\u5f62\u72b6\uff0c\u76f4\u63a5\u88c5\u5c31\u80fd\u7528\u3002<code>llm list</code> \u770b\u6bcf\u4e2a\u5305\u5e26\u4e86\u4ec0\u4e48\uff0c<code>llm remove</code> \u5220\u6389\u3002\u6ca1\u6709 npm \u8fd9\u6761\u8def\uff0c\u7eaf git \uff0c\u88c5\u4e4b\u524d\u81ea\u5df1\u5ba1\u4e00\u904d\uff0c\u6bd5\u7adf\u6269\u5c55\u662f\u62ff\u4f60\u7684\u5b8c\u6574\u6743\u9650\u8dd1\u7684\u3002</p>\n<h2>\u4f1a\u8bdd\u7ba1\u7406</h2>\n<p>\u6bcf\u4e2a\u4f1a\u8bdd\u90fd\u5b58\u6210 <code>~/.llm/threads/</code> \u4e0b\u9762\u7684\u4e00\u4e2a JSONL \u6587\u4ef6\uff0c\u6a21\u578b\u3001\u53c2\u6570\u3001\u6bcf\u4e00\u8f6e\u7684 token \u7528\u91cf\u3001\u5de5\u5177\u8c03\u7528\u548c\u7ed3\u679c\u5168\u7a0b\u5728\u6848\uff0c\u968f\u65f6\u56de\u6765\u63a5\u7740\u804a</p>\n<pre><code class=\"language-bash\">llm -c \"and in python?\"       # \u63a5\u7740\u6700\u65b0\u7684\u4f1a\u8bdd\u95ee\uff0c\u5148\u770b\u5f53\u524d\u76ee\u5f55\u518d\u5168\u5c40\u627e\nllm -r                        # \u6d4f\u89c8\u5e76\u6062\u590d\u5386\u53f2\u4f1a\u8bdd\uff0c\u53ef\u4ee5\u8fb9\u6253\u5b57\u8fb9\u8fc7\u6ee4\nllm --session 01ABC... \"...\"  # \u6307\u5b9a\u4e00\u4e2a\uff0c\u77ed\u524d\u7f00\u5c31\u884c\nllm --fork \"...\"              # \u4ece\u5f53\u524d\u4f1a\u8bdd\u5206\u53c9\u4e00\u6761\u65b0\u7684\nllm --no-session \"...\"        # \u8fd9\u6b21\u4e0d\u5b58\nllm export notes.md           # \u628a\u4f1a\u8bdd\u5bfc\u51fa\u6210 markdown\n</code></pre>\n<p>\u4f1a\u8bdd id \u662f ULID \uff0c\u6309\u65f6\u95f4\u6709\u5e8f\u3002\u5bfc\u51fa\u7684 markdown \u91cc\u5de5\u5177\u8c03\u7528\u548c\u7ed3\u679c\u90fd\u5728\u4ee3\u7801\u5757\u91cc\uff0c\u601d\u8003\u8fc7\u7a0b\u6536\u5728\u4e13\u95e8\u7684\u6bb5\u843d\uff0c\u7cfb\u7edf\u63d0\u793a\u8bcd\u4f5c\u4e3a\u9644\u5f55\uff0cattachments \u6309\u540d\u5b57\u548c\u7c7b\u578b\u8bb0\u5f55\u800c\u4e0d\u662f\u585e\u5b57\u8282\uff0c\u76f4\u63a5\u80fd\u5f53\u6587\u6863\u5f52\u6863\u3002</p>\n<h2>\u4e0a\u4e0b\u6587\u548c\u7f51\u7edc</h2>\n<p>\u4e0a\u4e0b\u6587\u7ba1\u7406\u57fa\u672c\u4e0d\u7528\u7ba1\uff0c\u4f46\u7ba1\u5f97\u5f88\u7ec6\u3002\u8ba1\u8d39\u4e0a\u4e0b\u6587\u8d85\u8fc7\u7a97\u53e3\u51cf 16384 \u7684\u65f6\u5019\u89e6\u53d1 compaction \uff0c\u4fdd\u7559\u6700\u8fd1 20k token \uff0c\u628a\u4e22\u6389\u7684\u524d\u7f00\u603b\u7ed3\u6210\u6458\u8981\uff0c\u7a97\u53e3\u5927\u5c0f\u672a\u77e5\u7684\u6a21\u578b\u6309 64k \u8d70\u3002\u5982\u679c\u8bf7\u6c42\u53d1\u51fa\u53bb\u88ab provider \u544a\u77e5\u8d85\u957f\uff0c\u4f1a\u7acb\u523b\u538b\u7f29\u518d\u91cd\u8bd5\uff0c\u4e0d\u4f1a\u8ba9\u4f1a\u8bdd\u4e00\u6b21\u4e00\u6b21\u649e\u540c\u4e00\u5835\u5899\u3002<code>cache_ttl</code> \u53ef\u4ee5\u9009 <code>5m</code> \u6216\u8005 <code>1h</code>\uff0c\u957f\u7684\u90a3\u6863\u5199\u5165\u8ba1\u8d39\u8d35\u4e00\u70b9\uff0c\u4f46\u662f\u4e00\u6b21\u5ba1\u6279\u63d0\u793a\u6216\u8005\u4e00\u8f6e\u957f\u6d4b\u8bd5\u8d85\u8fc7\u4e94\u5206\u949f\u4ee5\u540e\uff0c\u4e0b\u4e00\u8f6e\u5c31\u4e0d\u7528\u91cd\u5199\u6574\u4e2a\u5bf9\u8bdd\u4e86\uff0c\u7b97\u4e0b\u6765\u662f\u5212\u7b97\u7684\u3002</p>\n<p>\u7f51\u7edc\u5c42\u7684\u7ec6\u8282\u90fd\u662f\u8e29\u5751\u6362\u6765\u7684\u3002\u91cd\u8bd5\u5e26\u6b63\u8d1f 10% \u7684\u6296\u52a8\uff0c\u9000\u907f\u4ece 1 \u79d2\u5230 30 \u79d2\uff0c\u8fde\u63a5\u5931\u8d25\u53e6\u6709\u4e00\u5957 5 \u79d2\u5230 60 \u79d2\u7684\u9884\u7b97\uff0c\u670d\u52a1\u5668\u53d1\u4e86 <code>Retry-After</code> \u5c31\u5c0a\u91cd\u5b83\u3002\u6d41\u4e2d\u9014\u65ad\u4e86\u7684\u8bdd\uff0c\u5df2\u7ecf\u4ea7\u51fa\u7684\u90e8\u5206\u7b54\u6848\u4f1a\u4fdd\u7559\u6210\u4e00\u6761\u771f\u6b63\u7684\u6d88\u606f\u63a5\u7740\u7eed\uff0c\u800c\u4e0d\u662f\u6574\u8f6e\u4e22\u6389\u91cd\u6765\uff0c\u6062\u590d\u6b21\u6570\u4e0a\u9650\u4e94\u6b21\u3002\u5b8c\u5168\u6ca1\u6709\u8f93\u51fa\u5c31\u65ad\u6389\u7684\u8bf7\u6c42\u539f\u6837\u91cd\u53d1\uff0c\u56e0\u4e3a\u4ec0\u4e48\u90fd\u6ca1\u4ea4\u51fa\u53bb\uff0c\u91cd\u53d1\u4e0d\u4f1a\u91cd\u590d\u3002300 \u79d2\u6ca1\u6709\u4efb\u4f55\u8f93\u51fa\u7684\u6d41\u6309\u7a7a\u95f2\u9519\u8bef\u5904\u7406\uff0c\u4e0d\u8ba9\u4efb\u52a1\u5e72\u6302\u5728\u90a3\u91cc\u3002\u8bf7\u6c42\u4f53\u8d85\u8fc7 32MB \u4f1a\u88ab\u672c\u5730\u62d2\u7edd\uff0c\u5e76\u4e14\u70b9\u540d\u662f\u54ea\u4e9b\u9644\u4ef6\u628a\u5b83\u6491\u6ee1\u7684\uff0c<code>agent.max_request_bytes</code> \u53ef\u4ee5\u8c03\u4f4e\uff0c\u7f51\u5173\u5728\u524d\u9762\u7684\u65f6\u5019\u7ecf\u5e38\u6bd4 provider \u6587\u6863\u5199\u7684\u4e0a\u9650\u5c0f\u5f97\u591a\u3002</p>\n<p>\u4ee3\u7406\u8d70 <code>ALL_PROXY</code>\u3001<code>HTTPS_PROXY</code>\u3001<code>HTTP_PROXY</code> \u548c <code>NO_PROXY</code>\uff0c\u81ea\u52a8\u751f\u6548\uff0c\u56fd\u5185\u73af\u5883\u5f88\u5b9e\u7528\u3002</p>\n<h2>\u9879\u76ee\u7ed3\u6784</h2>\n<p>\u4ee3\u7801\u7ec4\u7ec7\u6309\u89d2\u8272\u5206\u5c42\uff0c\u4e00\u53e5\u8bdd\u8bf4\u6e05\u695a\u5c31\u662f\u547d\u4ee4\u5c42\u8584\uff0c\u5185\u6838\u5c42\u539a\uff0c\u534f\u8bae\u9002\u914d\u4e00\u5c42\u4e00\u4e2a\u6587\u4ef6</p>\n<pre><code class=\"language-text\">llm/\n\u251c\u2500\u2500 src/\n\u2502   \u251c\u2500\u2500 commands/     # \u5b50\u547d\u4ee4\uff0c\u4e00\u4e2a\u6587\u4ef6\u4e00\u4e2a\uff0cflags \u3001help \u3001\u63a5\u7ebf\n\u2502   \u251c\u2500\u2500 core/         # \u5171\u4eab\u5185\u6838\uff0c\u914d\u7f6e\u3001\u7ebf\u7a0b\u5b58\u50a8\u3001http \u3001\u6e32\u67d3\n\u2502   \u251c\u2500\u2500 providers/    # \u534f\u8bae\u9002\u914d\u5668\uff0copenai-compat \u548c anthropic \u5404\u4e00\u4e2a\uff0c\u52a0\u5171\u4eab\u6d88\u606f\u6a21\u578b\u548c provider \u76ee\u5f55\n\u2502   \u251c\u2500\u2500 agent/        # agent \u9886\u57df\uff0c\u5faa\u73af\u3001\u5de5\u5177\u6ce8\u518c\u8868\u3001\u5ba1\u6279\u89c4\u5219\u3001\u6269\u5c55\u5bbf\u4e3b\n\u2502   \u2514\u2500\u2500 term/         # \u7ec8\u7aef\u9886\u57df\uff0c\u884c\u7f16\u8f91\u3001\u9009\u62e9\u5668\u3001spinner \u3001\u7ec8\u7aef\u5c3a\u5bf8\n\u251c\u2500\u2500 examples/\n\u2502   \u251c\u2500\u2500 extensions/   # \u53ef\u8fd0\u884c\u7684\u6269\u5c55\uff0cwordcount \u3001websearch \u3001mcp_bridge.py \u3001subagent.py \u7b49\n\u2502   \u2514\u2500\u2500 agents/       # \u56db\u4e2a subagent \u5b9a\u4e49\uff0cscout \u3001reviewer \u3001planner \u3001worker\n\u2514\u2500\u2500 docs/\n    \u251c\u2500\u2500 architecture.md   # \u8bf7\u6c42\u8def\u5f84\u3001agent \u5faa\u73af\u3001\u5de5\u5177\u6ce8\u518c\u8868\u3001\u6269\u5c55\u5bbf\u4e3b\u3001\u6e32\u67d3\u5951\u7ea6\n    \u2514\u2500\u2500 extensions.md     # \u63d2\u4ef6\u63a5\u53e3\uff0cmanifest \u5b57\u6bb5\u3001\u6bcf\u4e2a\u6d88\u606f\u548c\u4e8b\u4ef6\u3001tool_call \u95e8\u3001\u8d85\u65f6\n</code></pre>\n<p>\u8fd9\u79cd\u5206\u6cd5\u7684\u597d\u5904\u662f\u6539\u54ea\u91cc\u90fd\u80fd\u7acb\u523b\u627e\u5230\u5730\u65b9\u3002\u52a0\u4e00\u4e2a\u5b50\u547d\u4ee4\u5c31\u662f\u5f80 <code>commands/</code> \u91cc\u653e\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0c\u63a5\u4e00\u4e2a\u65b0\u534f\u8bae\u5c31\u662f\u5f80 <code>providers/</code> \u91cc\u653e\u4e00\u4e2a\u9002\u914d\u5668\uff0cagent \u5faa\u73af\u672c\u8eab\u5728 <code>agent/</code> \u91cc\uff0c\u548c\u7ec8\u7aef\u5448\u73b0\u5b8c\u5168\u89e3\u8026\uff0c<code>--json</code> \u6a21\u5f0f\u4e0b\u6574\u4e2a <code>term/</code> \u90fd\u4e0d\u53c2\u4e0e\u3002\u6d4b\u8bd5\u5168\u90e8\u5185\u8054\u5728\u5404\u6a21\u5757\u7684 <code>#[cfg(test)]</code> \u91cc\uff0c\u5c31\u8fd1\u770b\u884c\u4e3a\uff0c\u5355\u4e2a\u8dd1\u7528 <code>cargo test &lt;name&gt;</code>\u3002</p>\n<p>\u6269\u5c55\u5bbf\u4e3b\u4e5f\u9075\u5faa\u540c\u6837\u7684\u514b\u5236\u3002host \u8d1f\u8d23 spawn \u3001stdio \u3001\u8d85\u65f6\u548c\u5c3a\u5bf8\u4e0a\u9650\uff0c\u6269\u5c55\u81ea\u5df1\u58f0\u660e\u5de5\u5177\u3001\u547d\u4ee4\u548c\u4e8b\u4ef6\uff0c\u6838\u5fc3\u4e0d\u8ba4\u8bc6\u4efb\u4f55\u4e00\u4e2a\u5177\u4f53\u6269\u5c55\uff0cMCP \u6865\u548c subagent \u90fd\u4f4f\u5728 <code>examples/</code> \u91cc\uff0c\u548c\u7528\u6237\u81ea\u5df1\u5199\u7684\u6269\u5c55\u6ca1\u6709\u5730\u4f4d\u5dee\u522b\uff0c\u5220\u6389\u5b83\u4eec\u6838\u5fc3\u7167\u5e38\u7f16\u8bd1\u3002</p>\n<p>\u60f3\u5feb\u901f\u5192\u70df\u4e00\u4e0b\u4e0d\u6539\u81ea\u5df1\u7684\u72b6\u6001</p>\n<pre><code class=\"language-bash\">LLM_USER_PATH=/tmp/x cargo run -- \"smoke test prompt\"\n</code></pre>\n<h2>\u548c pi \u7684\u5bf9\u6bd4</h2>\n<p>\u5199\u7684\u8fc7\u7a0b\u4e2d\u4e3b\u8981\u53c2\u7167\u7684\u5bf9\u8c61\u662f <a href=\"https://github.com/earendil-works/pi\" rel=\"nofollow\">pi</a>\uff0cllm \u7684\u4ea4\u4e92\u4e60\u60ef\u548c compaction \u89c4\u5219\u90fd\u80fd\u770b\u5230\u5b83\u7684\u5f71\u5b50\uff0c\u6269\u5c55\u534f\u8bae\u4e5f\u517c\u5bb9 pi \u7684 API \uff0c\u5199\u597d\u7684\u5de5\u5177\u547d\u4ee4\u94a9\u5b50\u5927\u90e8\u5206\u80fd\u76f4\u63a5\u8d34\u8fc7\u6765\u7528\u3002pi \u672c\u8eab\u505a\u5f97\u5f88\u597d\uff0c\u4f46\u5b83\u662f TypeScript \u6280\u672f\u6808\u7684\uff0c\u6574\u4e2a\u9879\u76ee\u662f\u4e00\u4e2a npm monorepo \uff0c\u9a6e\u7740 pi-ai \u3001pi-agent-core \u3001pi-tui \u4e00\u5927\u5806\u5305\uff0c\u800c\u6211\u4e00\u76f4\u4e0d\u559c\u6b22 ts \u6280\u672f\u6808\u7684\u8f6f\u4ef6\uff0c\u6240\u4ee5\u52a8\u624b\u7528 Rust \u91cd\u5199\u4e86\u4e00\u4e2a\u81ea\u5df1\u7684\uff0c\u7528\u4e0b\u6765 llm \u6bd4 pi \u8fd8\u5feb\u3002</p>\n<p>\u542f\u52a8\u662f\u6700\u76f4\u63a5\u7684\u5dee\u522b\u3002pi \u80cc\u540e\u662f Node.js \u8fd0\u884c\u65f6\uff0c\u51b7\u542f\u52a8\u8981\u8fc7\u4e00\u904d node \u7684\u521d\u59cb\u5316\uff0c\u800c llm \u662f Rust \u7f16\u8bd1\u51fa\u6765\u7684\u5355\u4e8c\u8fdb\u5236\uff0c\u542f\u52a8\u6beb\u79d2\u7ea7\uff0c\u6572\u4e0b\u56de\u8f66\u4f1a\u8bdd\u5c31\u8d77\u6765\u4e86\uff0c\u5185\u5b58\u5360\u7528\u53ef\u4ee5\u5ffd\u7565\uff0c<code>grep</code> \u5927\u76ee\u5f55\u3001<code>read</code> \u5206\u9875\u8bfb\u6587\u4ef6\u8fd9\u4e9b\u5de5\u5177\u5168\u662f\u539f\u751f\u4ee3\u7801\uff0c\u6ca1\u6709\u4e00\u5c42 JS \u8f6c\u63a5\uff0c\u6d41\u5f0f\u8f93\u51fa\u7684\u6bcf\u4e2a\u5b57\u7b26\u76f4\u63a5\u5199 tty \uff0c\u957f\u65f6\u95f4\u8dd1\u4e0b\u6765\u660e\u663e\u66f4\u5b89\u9759\u3002</p>\n<p>\u4f9d\u8d56\u9762\u7684\u95ee\u9898\u66f4\u5b9e\u5728\u3002pi \u88c5\u5b8c\u5e26\u7740\u4e00\u6574\u4e2a node_modules \uff0c\u4e3a\u4e86\u4f9b\u5e94\u94fe\u5b89\u5168\u5b83\u5b98\u65b9\u6587\u6863\u91cc\u4e13\u95e8\u6709\u4e00\u8282\u8bb2\u4f9d\u8d56\u9501\u5b9a\uff0c\u76f4\u63a5\u4f9d\u8d56\u5168\u90e8\u56fa\u5b9a\u7cbe\u786e\u7248\u672c\uff0cshrinkwrap \u3001npm audit \u3001\u751f\u547d\u5468\u671f\u811a\u672c\u767d\u540d\u5355\u4e00\u5957\u5168\u4e0a\uff0c\u53ef\u89c1 ts \u751f\u6001\u4e0b\u8fd9\u5757\u6709\u591a\u8ba9\u4eba\u64cd\u5fc3\u3002llm \u8fd9\u8fb9 musl \u9759\u6001\u94fe\u63a5\uff0c\u4e00\u4e2a\u6587\u4ef6\u6ca1\u6709\u4efb\u4f55\u8fd0\u884c\u65f6\u4f9d\u8d56\uff0c\u6839\u672c\u4e0d\u5b58\u5728\u4f9d\u8d56\u94fe\u53ef\u88ab\u653b\u51fb\u7684\u9762\uff0ccurl \u4e00\u884c\u88c5\u5b8c\uff0cscp \u5230\u670d\u52a1\u5668 <code>chmod +x</code> \u5c31\u80fd\u7528\uff0c\u4e4b\u524d\u5728\u66d9\u5149\u670d\u52a1\u5668\u4e0a\u4e3a\u4e86\u8dd1 agent \u5148\u88c5 node \u518d\u94fe npm \u7684\u7ecf\u5386\u518d\u4e5f\u4e0d\u9700\u8981\u4e86\u3002</p>\n<p>\u6743\u9650\u8bbe\u8ba1\u662f\u7406\u5ff5\u4e0a\u7684\u5206\u91ce\u3002pi \u4e0d\u5185\u7f6e\u6743\u9650\u7cfb\u7edf\uff0c\u6587\u4ef6\u3001\u8fdb\u7a0b\u3001\u7f51\u7edc\u3001\u51ed\u636e\u5168\u9760\u542f\u52a8\u5b83\u7684\u7528\u6237\u6743\u9650\u88f8\u8dd1\uff0c\u5b98\u65b9\u7684\u5efa\u8bae\u662f\u9700\u8981\u9694\u79bb\u5c31\u62ff\u5bb9\u5668\u6216\u8005\u6c99\u7bb1\u5305\u4e00\u5c42\u3002llm \u628a\u8fd9\u9053\u5899\u505a\u5728\u4e86\u91cc\u9762\uff0c\u786c\u62d2\u7edd\u52a0\u9ed1\u540d\u5355\u4e24\u5c42\uff0c\u63d0\u6743\u3001\u6587\u4ef6\u7cfb\u7edf\u9500\u6bc1\u3001\u673a\u5668\u63a7\u5236\u8fd9\u4e9b\u76f4\u63a5\u62e6\u6b7b\uff0c\u666e\u901a\u7684\u65e5\u5e38\u64cd\u4f5c\u53c8\u4e0d\u6253\u65ad\u4f60\u3002\u6211\u4e2a\u4eba\u66f4\u4fe1\u4efb\u540e\u4e00\u79cd\uff0c\u5bb9\u5668\u9694\u79bb\u5bf9\u5927\u591a\u6570\u4eba\u662f\u4e2a\u4e0d\u4f1a\u53bb\u505a\u7684\u53ef\u9009\u9879\uff0c\u800c\u5185\u7f6e\u7684\u786c\u62d2\u7edd\u662f\u6bcf\u6b21\u90fd\u5728\u573a\u7684\u4e8b\u5b9e\u3002</p>\n<p>\u529f\u80fd\u4e0a llm \u4e5f\u505a\u5f97\u66f4\u514b\u5236\u3002pi \u7684\u529f\u80fd\u57fa\u672c\u90fd\u5728\u4e3b\u7a0b\u5e8f\u91cc\uff0cllm \u628a MCP \u3001subagent \u3001websearch \u8fd9\u4e9b\u5168\u90e8\u62c6\u6210\u4e86\u6269\u5c55\uff0c\u6838\u5fc3\u53ea\u7559\u516b\u4e2a\u5185\u7f6e\u5de5\u5177\uff0c\u8868\u9762\u79ef\u5c0f\uff0c\u80fd\u51fa\u9519\u7684\u5730\u65b9\u5c31\u5c11\u3002\u4f1a\u8bdd\u683c\u5f0f\u4e24\u8fb9\u90fd\u662f JSONL \uff0cllm \u7684 <code>--json</code> \u4e8b\u4ef6\u6d41\u8ba9\u5b50\u8fdb\u7a0b\u53ef\u4ee5\u7cbe\u786e\u62ff\u5230\u6bcf\u4e00\u8f6e\u7684 token \u7528\u91cf\uff0c\u76d1\u7763\u8fdb\u7a0b\u8ba1\u8d39\u4e0d\u7528\u89e3\u6790\u4efb\u4f55\u9762\u5411\u4eba\u7c7b\u7684\u6587\u672c\uff0c\u8fd9\u4e00\u70b9\u5728\u5199 subagent \u7684\u65f6\u5019\u7279\u522b\u8212\u670d\u3002</p>\n<h2>\u548c codex \u7684\u5bf9\u6bd4</h2>\n<p>Rust \u9635\u8425\u91cc\u4e5f\u8bd5\u8fc7 <a href=\"https://github.com/openai/codex\" rel=\"nofollow\">codex</a>\uff0c\u8bed\u8a00\u9009\u5bf9\u4e86\uff0c\u4f46\u529f\u80fd\u4e0a\u4e0d\u592a\u884c\u3002</p>\n<p>\u6700\u660e\u663e\u7684\u662f provider \u9762\u7a84\u3002codex \u662f OpenAI \u81ea\u5bb6\u4ea7\u54c1\uff0c\u6a21\u578b\u9009\u62e9\u57fa\u672c\u56f4\u7ed5\u81ea\u5bb6\u63a5\u53e3\u8f6c\uff0c\u7b2c\u4e09\u65b9 provider \u8981\u9760 profile \u624b\u52a8\u914d\u7f6e base_url \u53bb\u517c\u5bb9\uff0c\u914d DeepSeek \u8fd9\u7c7b\u56fd\u4ea7 API \u80fd\u7528\uff0c\u4f46\u4f53\u9a8c\u660e\u663e\u662f\u540e\u5988\u517b\u7684\uff0c\u6a21\u578b\u5217\u8868\u8981\u624b\u5199\uff0c\u5b98\u65b9\u652f\u6301\u6c38\u8fdc\u6392\u5728\u81ea\u5bb6\u540e\u9762\u3002llm \u5185\u7f6e 38 \u4e2a provider \u7684\u63a5\u5165\u914d\u7f6e\uff0c<code>/login</code> \u9009\u5b8c\u5c31\u8dd1\uff0c<code>provider/model</code> \u7684\u547d\u540d\u4e00\u89c6\u540c\u4ec1\uff0c\u8c01\u4e5f\u4e0d\u6bd4\u8c01\u9ad8\u8d35\u3002</p>\n<p>\u6269\u5c55\u6027\u662f\u66f4\u5927\u7684\u5dee\u8ddd\u3002codex \u6ca1\u6709\u63d2\u4ef6\u7cfb\u7edf\uff0c\u5de5\u5177\u5c31\u90a3\u51e0\u4e2a\uff0c\u60f3\u52a0\u4e2a\u81ea\u5df1\u7684\u5de5\u5177\u8981 fork \u6e90\u7801\u6539 Rust \u91cd\u65b0\u7f16\u8bd1\u3002llm \u8fd9\u8fb9\u4efb\u4f55\u811a\u672c\u52a0\u51e0\u884c\u6ce8\u91ca\u5c31\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u5e38\u9a7b\u6269\u5c55\u80fd\u6302\u5de5\u5177\u6302\u547d\u4ee4\u8fd8\u80fd\u62e6 tool_call \uff0cMCP \u548c subagent \u90fd\u662f\u8fd9\u4e2a\u673a\u5236\u957f\u51fa\u6765\u7684\uff0c\u6838\u5fc3\u4e00\u4e2a\u5b57\u8282\u6ca1\u6539\u3002\u8fd9\u4e2a\u5dee\u522b\u65e5\u5e38\u7528\u8d77\u6765\u5c31\u662f\u5929\u58e4\u4e4b\u522b\uff0c\u522b\u4eba\u7684\u5de5\u5177\u518d\u5168\uff0c\u4e5f\u4e0d\u53ef\u80fd\u9884\u5224\u4f60\u9879\u76ee\u91cc\u90a3\u4e2a\u5947\u602a\u7684\u9700\u6c42\u3002</p>\n<p>\u4f1a\u8bdd\u7ba1\u7406\u4e5f\u5355\u8584\u3002codex \u7684 resume \u80fd\u627e\u56de\u4e0a\u6b21\u5bf9\u8bdd\uff0c\u4f46\u6ca1\u6709 <code>--fork</code> \u5206\u53c9\u3001\u6ca1\u6709\u5bfc\u51fa markdown \u3001\u6ca1\u6709 <code>--json</code> \u4e8b\u4ef6\u6d41\u7ed9\u76d1\u7763\u8fdb\u7a0b\u6d88\u8d39\uff0c\u4f1a\u8bdd\u5c31\u662f\u4f1a\u8bdd\uff0c\u4e0d\u662f\u80fd\u88ab\u7a0b\u5e8f\u63a5\u7eed\u64cd\u4f5c\u7684\u6570\u636e\u3002llm \u7684\u7ebf\u7a0b\u662f\u7eaf JSONL \uff0c\u6bcf\u8f6e\u5e26 token \u7528\u91cf\uff0c\u5bfc\u51fa\u3001\u5206\u53c9\u3001\u88ab\u53e6\u4e00\u4e2a agent \u5f53\u5b50\u8fdb\u7a0b\u9a71\u52a8\u90fd\u662f\u539f\u751f\u80fd\u529b\u3002</p>\n<p>\u754c\u9762\u5f62\u6001\u4e0a\u4e5f\u6709\u4e00\u7b14\u3002codex \u7684\u4ea4\u4e92\u662f ratatui \u5199\u7684\u6574\u5c4f TUI \uff0c\u597d\u5904\u662f\u6392\u7248\u89c4\u6574\uff0c\u4ee3\u4ef7\u662f\u8f93\u51fa\u4e0d\u8fdb scrollback \uff0c\u7ffb\u9875\u641c\u7d22\u5f97\u5b66\u5b83\u81ea\u5df1\u7684\u952e\u4f4d\uff0c\u7ec8\u7aef\u91cc\u5176\u4ed6\u5de5\u4f5c\u6d41\u7684\u4e60\u60ef\u5168\u4e0d\u901a\u7528\u3002llm \u662f\u884c\u5f0f\u7684\uff0c\u4f1a\u8bdd\u5c31\u644a\u5728\u6b63\u5e38\u7f13\u51b2\u533a\u91cc\uff0c\u5f80\u4e0a\u6eda\u5c31\u662f\u5168\u90e8\u5386\u53f2\uff0c\u7ba1\u9053\u63a5\u51fa\u53bb\u53c8\u662f\u7eaf\u6587\u672c\uff0c\u540c\u4e00\u4e2a\u4e1c\u897f\u65e2\u662f\u7ed9\u4eba\u770b\u7684\u4e5f\u662f\u7ed9\u7a0b\u5e8f\u8bfb\u7684\u3002</p>\n<p>\u7136\u540e\u662f\u4f53\u611f\u3002codex \u80cc\u9760\u5927\u5382\uff0c\u542f\u52a8\u8981\u8bfb\u914d\u7f6e\u8981\u63e1\u624b\uff0c\u6bd4 pi \u5feb\u4f46\u6bd4 llm \u6162\uff0c\u4ea4\u4e92\u53cd\u9988\u4e5f\u4e0d\u5982\u81ea\u5df1\u5199\u7684\u8ddf\u624b\uff0c\u6bd5\u7adf\u5927\u9879\u76ee\u7684\u91cd\u5fc3\u4e0d\u5728\u8fd9\u79d1\u7ec6\u8282\u4e0a\u3002\u8fd8\u6709\u5c31\u662f\u5b83\u7ed1\u5b9a OpenAI \u751f\u6001\u7684\u601d\u8def\u51b3\u5b9a\u4e86\u5b83\u66f4\u50cf\u4e00\u4e2a\u4ea7\u54c1\u800c\u4e0d\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u4ea7\u54c1\u7684\u529f\u80fd\u8fb9\u754c\u7531\u5b98\u65b9\u5b9a\u4e49\uff0c\u5de5\u5177\u7684\u8fb9\u754c\u7531\u4f7f\u7528\u8005\u5b9a\u4e49\uff0c\u6211\u60f3\u8981\u540e\u8005\u3002</p>\n<h2>\u6d4b\u8bd5\u60c5\u51b5</h2>\n<p>\u6211\u4e3b\u8981\u5728 Arch Linux \u4e0a\u6d4b\u8bd5\uff0c\u6eda\u66f4\u5f88\u5feb\uff0c\u5185\u6838\u3001\u7ec8\u7aef\u3001Wayland \u73af\u5883\u4e00\u76f4\u5728\u53d8\uff0c\u7528\u4e0b\u6765\u6ca1\u6709\u4efb\u4f55\u95ee\u9898\u3002Kitty \u548c Konsole \u91cc\u4ea4\u4e92\u4f1a\u8bdd\u3001steering \u3001\u526a\u8d34\u677f\u8d34\u56fe\u3001\u659c\u6760\u547d\u4ee4\u90fd\u6b63\u5e38\uff0cfish \u548c bash \u4e0b\u9762\u7ba1\u9053\u548c\u91cd\u5b9a\u5411\u4e5f\u6ca1\u6709\u78b0\u5230\u8fc7\u5751\u3002</p>\n<p>macOS \u548c Windows \u6211\u624b\u5934\u6ca1\u6709\u957f\u671f\u4f7f\u7528\u7684\u673a\u5668\uff0cprebuilt \u76ee\u6807\u90fd\u7f16\u8bd1\u4e86\uff0c\u5b89\u88c5\u811a\u672c\u4e5f\u90fd\u5728\uff0c\u4f46\u662f\u8bbe\u6ca1\u8bbe\u5bf9\u53ea\u6709\u771f\u673a\u77e5\u9053\u3002\u611f\u5174\u8da3\u7684\u670b\u53cb\u53ef\u4ee5\u5e2e\u5fd9\u6d4b\u8bd5\u4e00\u4e0b\u8fd9\u4e24\u4e2a\u5e73\u53f0\uff0c\u78b0\u5230\u95ee\u9898\u76f4\u63a5\u53bb <a href=\"https://github.com/imjiaoyuan/llm/issues\" rel=\"nofollow\">GitHub Issues</a> \u5f00\u4e00\u4e2a\uff0c\u9644\u4e0a\u5e73\u53f0\u3001\u7ec8\u7aef\u548c\u590d\u73b0\u6b65\u9aa4\u5c31\u884c\u3002</p>\n<h2>\u4e3a\u4ec0\u4e48\u81ea\u5df1\u5199</h2>\n<p>\u4e4b\u524d\u5728 <a href=\"/074s9/\" rel=\"nofollow\">AI paradox</a> \u90a3\u7bc7\u91cc\u5199\u8fc7\uff0c\u5de5\u5177\u8d8a\u987a\u624b\u4eba\u8d8a\u61d2\u5f97\u601d\u8003\u3002\u4f46\u4e00\u4e2a\u81ea\u5df1\u5199\u7684 agent \u6070\u597d\u662f\u89e3\u836f\uff0c\u6bcf\u4e00\u884c\u4e3a\u4ec0\u4e48\u8fd9\u4e48\u5199\u3001\u6bcf\u4e2a\u9519\u8bef\u4e3a\u4ec0\u4e48\u8fd9\u4e48\u62a5\uff0c\u6211\u90fd\u6e05\u695a\u3002\u6a21\u578b\u8bf7\u6c42\u5931\u8d25\u4e86\uff0c\u6211\u77e5\u9053\u662f\u91cd\u8bd5\u9884\u7b97\u7528\u5c3d\u8fd8\u662f\u4e0a\u4e0b\u6587\u8d85\u957f\uff0c\u5de5\u5177\u88ab\u62d2\u4e86\uff0c\u6211\u77e5\u9053\u662f\u786c\u62d2\u7edd\u3001\u9ed1\u540d\u5355\u8fd8\u662f per-tool \u7b56\u7565\uff0c\u6269\u5c55\u6ca1\u6302\u4e0a\uff0c<code>/status</code> \u4f1a\u544a\u8bc9\u6211\u539f\u56e0\u3002\u8fd9\u79cd\u786e\u5b9a\u611f\u7528\u522b\u4eba\u7684\u9ed1\u76d2\u5de5\u5177\u662f\u6362\u4e0d\u6765\u7684\u3002</p>\n<p>Rust \u52a0 musl \u7684\u7ec4\u5408\u8fd8\u987a\u624b\u89e3\u51b3\u4e86\u90e8\u7f72\u95ee\u9898\uff0c\u542f\u52a8\u6beb\u79d2\u7ea7\uff0c\u5185\u5b58\u5360\u7528\u53ef\u4ee5\u5ffd\u7565\uff0c\u4e00\u4e2a\u6587\u4ef6\u4ece\u6700\u65b0\u7684 Arch \u5230\u8001\u6389\u7259\u7684 CentOS 7 \u901a\u5403\uff0c\u518d\u4e5f\u4e0d\u7528\u4e3a\u4e86\u4e00\u53f0\u670d\u52a1\u5668\u5355\u72ec\u6298\u817e\u73af\u5883\u3002</p>\n<p>\u9879\u76ee\u5728 GitHub \uff0c<a href=\"https://github.com/imjiaoyuan/llm\" rel=\"nofollow\">imjiaoyuan/llm</a>\uff0cMIT \u534f\u8bae\uff0c\u611f\u5174\u8da3\u7684\u53ef\u4ee5\u88c5\u4e00\u4e2a\u73a9\u73a9\uff0c\u4e60\u60ef\u7ec8\u7aef\u5de5\u4f5c\u6d41\u7684\u4eba\u5e94\u8be5\u4f1a\u89c9\u5f97\u987a\u624b\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/asset", 
        "name": "asset", 
        "avatar": "https://cdn.v2ex.com/gravatar/202562a5520f17261988e09667551cf4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244926", 
      "title": "\u5728\u6d4f\u89c8\u5668\u8fd0\u884c\u9b54\u517d\u4e89\u9738 3 (Warcraft III)", 
      "id": "https://www.v2ex.com/t/1244926", 
      "date_published": "2026-09-26T13:15:54+00:00", 
      "content_html": "\u770b\u5230 <a target=\"_blank\" href=\"https://www.v2ex.com/t/1244870\">https://www.v2ex.com/t/1244870</a> \u548c <a target=\"_blank\" href=\"https://www.v2ex.com/t/1244710\">https://www.v2ex.com/t/1244710</a> \uff0c\u611f\u89c9\u6700\u8fd1 Web \u7aef\u6709\u610f\u601d\u7684\u9879\u76ee\u8d8a\u6765\u8d8a\u591a\u4e86\uff0c\u5fcd\u4e0d\u4f4f\u5148\u7ed9\u5927\u5bb6\u5206\u4eab\u4e00\u4e0b\u56e2\u961f\u6700\u8fd1\u7684\u4f5c\u54c1\u3002<br /><br />\u53ef\u4ee5 1920 * 1080 60hz \u6d41\u7545\u8fd0\u884c\uff0c\u652f\u6301 DotA \u7b49\u81ea\u5b9a\u4e49\u5730\u56fe<br /><br />demo:<br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/8jjItLa.jpeg\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/8jjItLa.jpeg\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/TwryWyn.jpeg\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/TwryWyn.jpeg\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/5x5Gug6.jpeg\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/5x5Gug6.jpeg\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br /><br />\u7531\u4e8e\u4e00\u4e9b\u539f\u56e0\u8fd8\u6682\u65f6\u6ca1\u6709\u516c\u5f00\u90e8\u7f72\uff0c\u60f3\u4f53\u9a8c\u7684\u670b\u53cb\u53ef\u4ee5\u7559\u4e2a\u8054\u7cfb\u65b9\u5f0f :) <br /><br />P.S. \u672c\u9879\u76ee\u6682\u672a\u4f7f\u7528 Opus 5.5"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hanliang", 
        "name": "hanliang", 
        "avatar": "https://cdn.v2ex.com/gravatar/b94a5d5f93c2f3ba6afc4fda52948b72?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244921", 
      "title": "MatrixMedia v0.11.6\uff1a\u793e\u533a PR \u5b9e\u73b0\u89c6\u9891\u53f7\u81ea\u52a8\u6302\u8f7d\u5c0f\u7a0b\u5e8f\u77ed\u5267/\u5267\u96c6\uff0c\u53d1\u5e03\u5931\u8d25\u81ea\u52a8\u622a\u56fe", 
      "id": "https://www.v2ex.com/t/1244921", 
      "date_published": "2026-09-26T12:28:25+00:00", 
      "content_html": "MatrixMedia \u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u591a\u5e73\u53f0\u89c6\u9891\u77e9\u9635\u53d1\u5e03\u5de5\u5177\uff08 Electron + Puppeteer \uff09\u3002                                                                   <br />                                                                                                                                            <br /> \u521a\u53d1\u5e03 v0.11.6 \uff0c\u6838\u5fc3\u529f\u80fd\u6765\u81ea\u793e\u533a\u8d21\u732e\u8005 ababa00 \u7684 PR\uff1a\u89c6\u9891\u53f7\u53d1\u5e03\u65f6\u81ea\u52a8\u6302\u8f7d\u5c0f\u7a0b\u5e8f\u77ed\u5267\u548c\u89c6\u9891\u53f7\u539f\u751f\u5267\u96c6\uff0cGUI/CLI/HTTP/MCP \u56db\u6761\u8def\u5f84\u5168\u6253\u901a\uff0cCLI <br /> \u7528 --sph-drama-id / --sph-series-id \u4f20\u5267\u540d\u5373\u53ef\u3002\u505a\u77ed\u5267\u77e9\u9635\u5206\u53d1\u7684\u5e94\u8be5\u61c2\u8fd9\u4e2a\u4ef7\u503c\u2014\u2014\u6302\u8f7d\u5931\u8d25\u4e0d\u4f1a\u8bef\u62a5\u6210\u529f\uff0c\u4f1a\u81ea\u52a8\u8f6c\u5b58\u8349\u7a3f\uff0c\u9000\u51fa\u7801 4             <br /> \u63d0\u793a\u4eba\u5de5\u786e\u8ba4\u3002                                                                                                                             <br />                                                                                                                                            <br /> \u6280\u672f\u4e0a\u8e29\u4e86\u4e0d\u5c11\u89c6\u9891\u53f7\u53d1\u5e03\u9875\u7684\u5751\uff1ashadow DOM \u7a7f\u900f\u3001antd \u56fa\u5b9a\u5217\u7684\u9690\u85cf\u514b\u9686\u884c\u3001\u5f39\u7a97\u906e\u7f69\u6b8b\u7559\u541e\u6389\u300c\u4fdd\u5b58\u8349\u7a3f\u300d\u6309\u94ae\uff0c\u5b9e\u73b0\u7ec6\u8282\u90fd\u5199\u5728\u4ed3\u5e93             <br /> docs/<a target=\"_blank\" href=\"http://sph-links.md\" rel=\"nofollow noopener\">sph-links.md</a> \u91cc\u3002\u8fd1\u671f\u7248\u672c\u8fd8\u52a0\u4e86\u53d1\u5e03\u5931\u8d25\u81ea\u52a8\u622a\u56fe\uff08\u70b9\u5931\u8d25\u6b21\u6570\u56de\u770b\u73b0\u573a\uff09\u548c macOS arm64 \u6253\u5305\u3002                                            <br />                                                                                                                                            <br /> \u9879\u76ee GPL-2.0 \uff0cStar 850+\uff0c\u6b22\u8fce\u8bd5\u7528\u548c\u63d0 PR \u3002                                                                                                 <br />                                                                                                                                            <br /> <a target=\"_blank\" href=\"https://github.com/hanliang97/MatrixMedia\" rel=\"nofollow noopener\">https://github.com/hanliang97/MatrixMedia</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rustiiiiii", 
        "name": "rustiiiiii", 
        "avatar": "https://cdn.v2ex.com/avatar/7fca/3012/650294_large.png?m=1790349416"
      }, 
      "url": "https://www.v2ex.com/t/1244916", 
      "date_modified": "2026-09-26T12:00:38+00:00", 
      "content_html": "<p>\u6700\u8fd1\u6bcf\u5929\u90fd\u662f\u65b0\u6a21\u578b\u3001\u65b0\u5de5\u5177\u53d1\u5e03\u3002\u6211\u60f3\u53cd\u7740\u505a\u4e00\u4e2a\uff1a\u4e0d\u6536\u5f55\u521a\u4e0a\u7ebf\u7684\uff0c\u6536\u5f55\u540e\u6765\u6ca1\u4e86\u7684\u3002</p>\n<p>\u4e8e\u662f\u505a\u4e86\u4e2a <a href=\"https://weusedthis.com/zh/\" rel=\"nofollow\">We Used This \uff08\u6211\u4eec\u7528\u8fc7\u5b83\uff09</a>\uff0c\u4e00\u4e2a AI \u4ea7\u54c1\u6b7b\u4ea1\u76ee\u5f55\u3002</p>\n<p>\u540d\u5b57\u6709\u70b9\u635f\uff0c\u4e0d\u8fc7\u4e0d\u662f\u60f3\u5632\u7b11\u8c01\u3002\u65b0\u4ea7\u54c1\u4e0a\u7ebf\u7684\u65f6\u5019\u633a\u70ed\u95f9\uff0c\u505c\u670d\u5f80\u5f80\u5c31\u5269\u4e00\u5c01\u90ae\u4ef6\u3001\u4e00\u6761\u516c\u544a\u3002\u60f3\u7ed9\u8fd9\u4e9b\u4e1c\u897f\u7559\u4e2a\u5730\u65b9\uff0c\u4e5f\u8ba9\u7528\u8fc7\u7684\u4eba\u80fd\u804a\u4e24\u53e5\u3002</p>\n<p>\u50cf Cortana \u3001Humane Ai Pin \u7684\u6d88\u8d39\u8005\u670d\u52a1\uff0c\u8fd8\u6709\u4ece ChatGPT \u91cc\u9000\u5f79\u7684 GPT-4o \uff0c\u90fd\u5728\u91cc\u9762\u3002\u5927\u5382\u4e5f\u9003\u4e0d\u8fc7\u3002\u5148\u6536\u85cf\u3001\u4ee5\u540e\u518d\u8bd5\uff0c\u7ed3\u679c\u4ea7\u54c1\u5148\u8d70\u4e86\u2026\u2026</p>\n<p>\u505a\u4e86\u4e2a 3D \u5730\u7403\uff0c\u628a\u4ea7\u54c1\u7684\u4f4d\u7f6e\u70b9\u4eae\u3002\u4e5f\u53ef\u4ee5\u76f4\u63a5\u641c\u540d\u5b57\uff0c\u770b\u5b83\u539f\u6765\u5e72\u4ec0\u4e48\u3001\u4ec0\u4e48\u65f6\u5019\u4e0a\u7ebf\u3001\u4ec0\u4e48\u65f6\u5019\u544a\u522b\uff0c\u987a\u4fbf\u7b97\u7b97\u6d3b\u4e86\u591a\u4e45\u3002</p>\n<p><img alt=\"We Used This \u5730\u7403\u5c55\u793a\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ph-files.imgix.net/e6e3fabd-9654-45e5-9571-30a780f04977.png?auto=compress,format&amp;fit=max&amp;w=1600\"/></p>\n<p><img alt=\"We Used This \u4ea7\u54c1\u76ee\u5f55\u5c55\u793a\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ph-files.imgix.net/a6a7dcd4-c2b3-47ba-981a-f8d76e68532e.png?auto=compress,format&amp;fit=max&amp;w=1600\"/></p>\n<p><em>\u8fd9\u4e24\u5f20\u662f AI \u505a\u7684\u5ba3\u4f20\u56fe\uff0c\u5b9e\u9645\u9875\u9762\u4ee5\u7f51\u7ad9\u4e3a\u51c6\u3002</em></p>\n<p>\u7f51\u7ad9\u91cc\u653e\u4e86\u70b9\u9ed1\u8272\u5e7d\u9ed8\uff0c\u4e5f\u7559\u4e86\u5199\u56de\u5fc6\u7684\u5730\u65b9\u3002\u4e0d\u7528\u6ce8\u518c\u5c31\u80fd\u901b\uff0c\u7559\u56de\u5fc6\u9700\u8981\u767b\u5f55\u3002</p>\n<p>\u6709\u4e9b\u53ea\u662f\u67d0\u4e2a\u7248\u672c\u9000\u5f79\uff0c\u6709\u4e9b\u662f\u5ba3\u5e03\u4e86\u505c\u670d\u4f46\u8fd8\u6ca1\u5230\u65e5\u671f\uff0c\u8fd9\u4e9b\u4f1a\u5355\u72ec\u6807\u6e05\u695a\uff0c\u514d\u5f97\u7ed9\u4eba\u63d0\u524d\u9001\u8d70\u3002</p>\n<p>\u57fa\u7840\u4ea7\u54c1\u6e05\u5355\u4e5f\u5f00\u6e90\u4e86\uff0c\u53ef\u4ee5\u8865\u5145\u6f0f\u6389\u7684\u4ea7\u54c1\u3002\u5f00\u6e90\u7684\u662f\u8fd9\u4efd\u6e05\u5355\uff0c\u7f51\u7ad9\u4ee3\u7801\u548c\u5b8c\u6574\u8d44\u6599\u6682\u65f6\u6ca1\u5f00\u653e\u3002</p>\n<p><a href=\"https://github.com/leontloveless/dead-ai-products\" rel=\"nofollow\">https://github.com/leontloveless/dead-ai-products</a></p>\n<p>\u4f60\u4eec\u7528\u8fc7\u7684 AI \u4ea7\u54c1\u91cc\uff0c\u6709\u6ca1\u6709\u54ea\u4e2a\u5df2\u7ecf\u6ca1\u4e86\u3001\u4f46\u8fd8\u633a\u60f3\u5ff5\u7684\uff1f</p>\n", 
      "date_published": "2026-09-26T11:57:24+00:00", 
      "title": "\u6bcf\u5929\u90fd\u6709 AI \u65b0\u54c1\u53d1\u5e03\uff0c\u6211\u505a\u4e86\u4e2a AI \u4ea7\u54c1\u5893\u5730", 
      "id": "https://www.v2ex.com/t/1244916"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/1010115121", 
        "name": "1010115121", 
        "avatar": "https://cdn.v2ex.com/gravatar/9fbafaaf81d98776fa6b92a84f0d5e7f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244910", 
      "title": "\u505a\u4e86\u4e00\u4e2a AI \u5ba4\u5185\u8bbe\u8ba1\u5de5\u5177\uff0c\u4e0a\u4f20\u623f\u95f4\u7167\u7247\u5c31\u80fd\u751f\u6210\u88c5\u4fee\u6548\u679c\u56fe", 
      "id": "https://www.v2ex.com/t/1244910", 
      "date_published": "2026-09-26T11:11:07+00:00", 
      "content_html": "<p>\u6700\u8fd1\u505a\u4e86\u4e00\u4e2a ai \u5de5\u5177\uff1a<strong>HomeAI.design</strong></p>\n<p><a href=\"https://homeai.design/\" rel=\"nofollow\">https://homeai.design/</a></p>\n<p>\u4e3b\u8981\u662f\u89e3\u51b3\u4e00\u4e2a\u5f88\u7b80\u5355\u7684\u9700\u6c42\uff1a</p>\n<p>\u88c5\u4fee\u6216\u8005\u91cd\u65b0\u5e03\u7f6e\u623f\u95f4\u7684\u65f6\u5019\uff0c\u8111\u5b50\u91cc\u5176\u5b9e\u5f88\u96be\u60f3\u8c61\u300c\u6362\u4e00\u79cd\u88c5\u4fee\u98ce\u683c\u4e4b\u540e\u5230\u5e95\u957f\u4ec0\u4e48\u6837\u300d\u3002</p>\n<p>\u6240\u4ee5\u6211\u505a\u4e86\u4e00\u4e2a AI \u5ba4\u5185\u8bbe\u8ba1\u5de5\u5177\uff0c\u57fa\u672c\u6d41\u7a0b\u5c31\u662f\uff1a</p>\n<p>\u4e0a\u4f20\u4e00\u5f20\u81ea\u5df1\u7684\u623f\u95f4\u7167\u7247 \u2192 \u9009\u62e9\u559c\u6b22\u7684\u88c5\u4fee\u98ce\u683c \u2192 AI \u751f\u6210\u65b0\u7684\u5ba4\u5185\u6548\u679c\u56fe\u3002</p>\n<p>\u76ee\u524d\u4e3b\u8981\u652f\u6301\u5ba2\u5385\u3001\u5367\u5ba4\u3001\u53a8\u623f\u3001\u536b\u751f\u95f4\u7b49\u5e38\u89c1\u7a7a\u95f4\uff0c\u4e5f\u505a\u4e86\u4e00\u4e9b\u4e0d\u540c\u7684\u8bbe\u8ba1\u98ce\u683c\uff0c\u53ef\u4ee5\u62ff\u540c\u4e00\u4e2a\u623f\u95f4\u53cd\u590d\u751f\u6210\uff0c\u5bf9\u6bd4\u4e0d\u540c\u65b9\u6848\u3002</p>\n<p>\u6211\u81ea\u5df1\u89c9\u5f97\u8fd9\u79cd\u5de5\u5177\u771f\u6b63\u6709\u7528\u7684\u573a\u666f\uff0c\u4e0d\u4e00\u5b9a\u662f\u76f4\u63a5\u62ff\u751f\u6210\u56fe\u53bb\u88c5\u4fee\uff0c\u800c\u662f<strong>\u88c5\u4fee\u4e4b\u524d\u5148\u5feb\u901f\u770b\u770b\u4e0d\u540c\u65b9\u5411\u7684\u6548\u679c</strong>\u3002</p>\n<p>\u6bd4\u5982\u539f\u6765\u7684\u623f\u95f4\u4e0d\u52a8\uff1a</p>\n<ul>\n<li>\u770b\u770b\u73b0\u4ee3\u7b80\u7ea6\u662f\u4ec0\u4e48\u611f\u89c9</li>\n<li>\u6362\u6210\u65e5\u5f0f / \u5317\u6b27\u98ce\u4f1a\u600e\u4e48\u6837</li>\n<li>\u4e0d\u540c\u914d\u8272\u5927\u6982\u662f\u4ec0\u4e48\u6548\u679c</li>\n<li>\u88c5\u4fee\u524d\u5148\u627e\u627e\u7075\u611f</li>\n</ul>\n<p>\u6574\u4e2a\u9879\u76ee\u4e5f\u662f\u6211\u6700\u8fd1\u505a AI \u63a5\u53e3\u7684\u4e00\u6b21\u5c1d\u8bd5\uff0c\u8fd8\u5728\u7ee7\u7eed\u4f18\u5316\u751f\u6210\u6548\u679c\u548c\u4ea7\u54c1\u7ec6\u8282\u3002</p>\n<p>V2EX \u4e0a\u5f00\u53d1\u8005\u6bd4\u8f83\u591a\uff0c\u4e5f\u60f3\u542c\u542c\u5927\u5bb6\u771f\u5b9e\u610f\u89c1\uff1a</p>\n<p><strong>\u8fd9\u79cd\u4ea7\u54c1\u4f60\u4eec\u4f1a\u5728\u4ec0\u4e48\u573a\u666f\u4e0b\u7528\uff1f</strong></p>\n<p>\u6216\u8005\u5927\u5bb6\u89c9\u5f97\u73b0\u5728\u8fd9\u79cd AI \u5ba4\u5185\u8bbe\u8ba1\u5de5\u5177\uff0c\u6700\u5e94\u8be5\u89e3\u51b3\u4f46\u76ee\u524d\u8fd8\u6ca1\u89e3\u51b3\u597d\u7684\u95ee\u9898\u662f\u4ec0\u4e48\uff1f</p>\n<p>\u4e5f\u4f1a\u6697\u5f71\u63d0\u63d0\u5efa\u8bae\uff01\ud83d\ude04</p>\n<p>\ud83d\udc49 <a href=\"https://homeai.design/\" rel=\"nofollow\">https://homeai.design/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/alexjoker467", 
        "name": "alexjoker467", 
        "avatar": "https://cdn.v2ex.com/avatar/1721/45a3/767692_large.png?m=1790408541"
      }, 
      "url": "https://www.v2ex.com/t/1244909", 
      "title": "\u4f7f\u7528 gpt6-sol \u70e7\u4e86 2000 \u4e07 token \u7ed9\u6211\u81ea\u5df1\u7684\u535a\u5ba2\u7f51\u7ad9\u9996\u9875\u653e\u4e86\u4e2a\u9ed1\u6d1e", 
      "id": "https://www.v2ex.com/t/1244909", 
      "date_published": "2026-09-26T10:58:45+00:00", 
      "content_html": "<p>\u9884\u89c8\u5730\u5740\uff1a <a href=\"http://alexjoker.top/\" rel=\"nofollow\">http://alexjoker.top/</a></p>\n<p><img alt=\"\u56fe\u7247\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://alexjoker-blog.oss-cn-guangzhou.aliyuncs.com/7ee4fe23b19cab3b7b504f949746b0a3.jpg\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wac81", 
        "name": "wac81", 
        "avatar": "https://cdn.v2ex.com/avatar/00b5/46d4/27559_large.png?m=1765469424"
      }, 
      "url": "https://www.v2ex.com/t/1244908", 
      "title": "harness \u4e5f\u81ea\u5df1\u5f00\u53d1\u4e86\uff0c\u540e\u9762\u53ef\u4ee5\u4e0d\u4f7f\u7528\u4efb\u4f55\u522b\u4eba\u7684 harness \u4e86\uff0c\u4e0d\u4e60\u60ef", 
      "id": "https://www.v2ex.com/t/1244908", 
      "date_published": "2026-09-26T10:34:12+00:00", 
      "content_html": "<p>3 \u7aef\u684c\u9762\u7248\u4e0b\u8f7d\u5730\u5740\u5982\u4e0b\uff0c\u6b22\u8fce\u9009\u7528\n<a href=\"https://yanshutech.com/miniharness.html\" rel=\"nofollow\">https://yanshutech.com/miniharness.html</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/alexjoker467", 
        "name": "alexjoker467", 
        "avatar": "https://cdn.v2ex.com/avatar/1721/45a3/767692_large.png?m=1790408541"
      }, 
      "url": "https://www.v2ex.com/t/1244905", 
      "title": "\u505a\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5728\u5185\u7f51\u73af\u5883\u4e0b\u4f7f\u7528\u7684 ai\uff08\u6a21\u578b\u6587\u4ef6\u4e00\u952e\u5bfc\u5165\u5373\u53ef\u4f7f\u7528\uff09", 
      "id": "https://www.v2ex.com/t/1244905", 
      "date_published": "2026-09-26T10:26:00+00:00", 
      "content_html": "<p>\u7531\u4e8e\u672c\u4eba\u7684\u5de5\u4f5c\u73af\u5883\u5904\u4e8e\u79bb\u7ebf\u65ad\u7f51\u53c8\u6709\u70b9\u4fdd m \u7684\u72b6\u6001\uff0c\u5e72\u4ec0\u4e48\u4e8b\u60c5\u90fd\u5f88\u8d39\u52b2\u3002\u5f97\u76ca\u4e8e\u73b0\u5728\u79d1\u6280\u7684\u53d1\u5c55\u548c\u7956\u56fd\u7684\u5f3a\u5927\uff0c\u8ba9\u6211\u6709\u673a\u4f1a\u53bb\u5b9e\u73b0\u4e00\u4e2a\u53ef\u4ee5\u5728\u5185\u7f51\u73af\u5883\u4e0b\u79bb\u7ebf\u90e8\u7f72\u7684 AI \u3002</p>\n<p>\u4e3b\u673a\u4ece <code>9090</code> \u63d0\u4f9b\u5165\u53e3\u3002\u804a\u5929\u3001\u56fe\u7247\u7406\u89e3\u548c Embedding \u901a\u8fc7 Ollama \u8fd0\u884c\uff1b\u56fe\u7247\u751f\u6210\u5219\u7528\u5355\u72ec\u7684\u672c\u5730\u56fe\u7247\u8fd0\u884c\u7ec4\u4ef6\u3002\u5e73\u65f6\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u5de5\u4f5c\u53f0\u91cc\u5bf9\u8bdd\u3001\u95ee\u6587\u4ef6\u548c\u8d44\u6599\u5e93\u3001\u8bc6\u56fe\u3001\u751f\u6210\u6216\u4fee\u6539\u56fe\u7247\uff0c\u4e5f\u80fd\u67e5\u770b\u4e3b\u673a\u72b6\u6001\u3002</p>\n<p>\u591a\u4eba\u4e00\u8d77\u7528\u65f6\uff0c\u9ed8\u8ba4\u6700\u591a\u63a5\u7eb3\u4e94\u6761\u6d3b\u8dc3\u8bf7\u6c42\uff1a\u4e24\u6761\u540c\u65f6\u63a8\u7406\uff0c\u53e6\u5916\u4e09\u6761\u6392\u961f\u3002\u6a21\u578b\u6743\u91cd\u4e0d\u968f\u5b89\u88c5\u5305\u63d0\u4f9b\uff0c\u9700\u8981\u6309\u81ea\u5df1\u7684\u673a\u5668\u548c\u7528\u9014\u51c6\u5907\u3002Windows \u5b8c\u6574\u7248\u5e26\u56fe\u7247\u8fd0\u884c\u7ec4\u4ef6\uff1b Ubuntu \u7684\u56fe\u7247\u751f\u6210\u8fd8\u5f97\u53e6\u5907\u517c\u5bb9\u7cfb\u7edf\u73af\u5883\u7684 Linux <code>sd-server</code>\u3002\u8fd9\u90e8\u5206\u76ee\u524d\u786e\u5b9e\u6bd4\u804a\u5929\u591a\u4e00\u9053\u51c6\u5907\u6b65\u9aa4\u3002</p>\n<p>\u5f53\u524d\u6b63\u5f0f\u7248\u662f v1.2.0 \uff0c\u63d0\u4f9b Windows 10/11 x86_64 \u548c Ubuntu 22.04 x86_64 \u5b8c\u6574\u5b89\u88c5\u5305\u3002\u670d\u52a1\u662f\u7ed9\u53ef\u4fe1\u5c40\u57df\u7f51\u7528\u7684\uff0c\u8bf7\u4e0d\u8981\u628a <code>9090</code>\u3001Ollama \u6216\u56fe\u7247\u8fd0\u884c\u7ec4\u4ef6\u7aef\u53e3\u76f4\u63a5\u66b4\u9732\u5230\u516c\u7f51\uff1b\u6a21\u578b\u80fd\u4e0d\u80fd\u8dd1\u3001\u901f\u5ea6\u5982\u4f55\uff0c\u4e5f\u53d6\u51b3\u4e8e\u5177\u4f53\u6a21\u578b\u548c\u673a\u5668\u914d\u7f6e\u3002</p>\n<p>\u4ed3\u5e93\u3001\u5b89\u88c5\u8bf4\u660e\u548c\u6a21\u578b\u517c\u5bb9\u8303\u56f4\uff1a</p>\n<ul>\n<li>GitHub\uff1a <a href=\"https://github.com/ReDChicagOTypewriteR/ShotAI\" rel=\"nofollow\">https://github.com/ReDChicagOTypewriteR/ShotAI</a></li>\n<li>v1.2.0 \u4e0b\u8f7d\uff1a <a href=\"https://github.com/ReDChicagOTypewriteR/ShotAI/releases/tag/v1.2.0\" rel=\"nofollow\">https://github.com/ReDChicagOTypewriteR/ShotAI/releases/tag/v1.2.0</a></li>\n<li>\u5b89\u88c5\u8bf4\u660e\uff1a <a href=\"https://github.com/ReDChicagOTypewriteR/ShotAI/blob/main/docs/INSTALLATION.md\" rel=\"nofollow\">https://github.com/ReDChicagOTypewriteR/ShotAI/blob/main/docs/INSTALLATION.md</a></li>\n<li>\u652f\u6301\u7684\u6a21\u578b\uff1a <a href=\"https://github.com/ReDChicagOTypewriteR/ShotAI/blob/main/docs/SUPPORTED_MODELS.md\" rel=\"nofollow\">https://github.com/ReDChicagOTypewriteR/ShotAI/blob/main/docs/SUPPORTED_MODELS.md</a></li>\n</ul>\n<p><img alt=\"ShotAI \u5c40\u57df\u7f51\u90e8\u7f72\u793a\u610f\u56fe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://alexjoker-blog.oss-cn-guangzhou.aliyuncs.com/project/ShotAI.png\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hashtome", 
        "name": "hashtome", 
        "avatar": "https://cdn.v2ex.com/avatar/61c2/b35f/345150_large.png?m=1786097690"
      }, 
      "url": "https://www.v2ex.com/t/1244898", 
      "title": "\u6211\u7684 Touch Bar \u5403\u7070\u591a\u5e74\uff0c\u7528 Claude Code \u505a\u4e86\u4e2a\u53ea\u5e72\u4e00\u4ef6\u4e8b\u7684 Dock", 
      "id": "https://www.v2ex.com/t/1244898", 
      "date_published": "2026-09-26T09:40:16+00:00", 
      "content_html": "<p>\u6709 Touch Bar \u7684 MacBook Pro \uff0c\u8fd9\u5757\u5c0f\u5c4f\u5e55\u5e73\u65f6\u57fa\u672c\u5728\u5403\u7070\u3002\u6211\u4e00\u76f4\u60f3\u8ba9\u5b83\u663e\u793a Dock \u91cc\u7684 App \uff0c\u70b9\u4e00\u4e0b\u5c31\u5207\u6362\uff0c\u8bd5\u4e86\u597d\u51e0\u4e2a\u73b0\u6210\u7684\u8f6f\u4ef6\uff0c\u8981\u4e48\u529f\u80fd\u592a\u591a\u592a\u590d\u6742\uff0c\u8981\u4e48\u7528\u7740\u7528\u7740\u5c31\u4e0d\u7a33\u5b9a\uff08 Touch Bar \u7a81\u7136\u6ca1\u4e86\u3001\u70b9\u4e86\u6ca1\u53cd\u5e94\uff09\u3002</p>\n<p>\u800c\u4e14\u6211\u7684 Dock \u672c\u6765\u5c31\u5360\u7740\u5c4f\u5e55\u7a7a\u95f4\uff0cTouch Bar \u5374\u4e00\u76f4\u7a7a\u7740\uff0c\u633a\u53ef\u60dc\u7684\u3002</p>\n<p>\u6240\u4ee5\u6211\u5e72\u8106\u7528 Claude Code \u81ea\u5df1\u505a\u4e86\u4e00\u4e2a\uff0c\u7b2c\u4e00\u4e2a\u80fd\u7528\u7684\u7248\u672c\u4e00\u4e0a\u5348\u5c31\u51fa\u6765\u4e86\uff0c\u540e\u9762\u53c8\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u6253\u78e8\u7a33\u5b9a\u6027\u3002\u540d\u5b57\u53eb <strong>DockTouchBar</strong>\uff0c\u53ea\u5e72\u4e00\u4ef6\u4e8b\uff1a\u628a Dock \u653e\u5230 Touch Bar \u4e0a\u3002</p>\n<p><img alt=\"DockTouchBar on a MacBook Pro\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/hooosberg/DockTouchBar/main/assets/photos/desk.jpg\"/></p>\n<h2>\u5b83\u80fd\u505a\u4ec0\u4e48</h2>\n<ul>\n<li>Touch Bar \u4e0a\u5e38\u9a7b\u663e\u793a Dock \u91cc\u7684 App \uff0c\u987a\u5e8f\u548c\u7cfb\u7edf Dock \u4e00\u81f4\uff0c\u8fd0\u884c\u4e2d\u7684\u6709\u5c0f\u5706\u70b9</li>\n<li>\u5355\u51fb\u5207\u6362\uff1b App \u7684\u7a97\u53e3\u5728\u522b\u7684\u684c\u9762\u65f6\uff0c\u4f1a\u50cf\u70b9\u7cfb\u7edf Dock \u4e00\u6837\u81ea\u52a8\u5207\u8fc7\u53bb</li>\n<li>\u53cc\u51fb\u9690\u85cf\uff0c\u957f\u6309\u9000\u51fa\uff08\u957f\u6309\u65f6\u53f3\u8fb9\u7f18\u6709\u201c\u6b63\u5728\u5173\u95ed\u2026\u201d\u5012\u8ba1\u65f6\uff0c\u624b\u6307\u4e0d\u4f1a\u6321\u4f4f\uff09</li>\n<li>\u7761\u7720\u5524\u9192\u3001\u9501\u5c4f\u89e3\u9501\u4e4b\u540e\u81ea\u52a8\u6062\u590d</li>\n<li>\u6700\u53f3\u7aef\u6709\u4e2a\u5c0f\u773c\u775b\uff1a\u70b9\u4e00\u4e0b\u6682\u65f6\u628a Touch Bar \u8fd8\u7ed9\u7cfb\u7edf\uff08\u4eae\u5ea6\u3001\u97f3\u91cf\uff09\uff0c\u8fc7\u4e00\u4f1a\u513f\u81ea\u52a8\u56de\u6765\u3002\u8fd9\u662f\u7ed9\u201c\u5c4f\u5e55\u4eae\u5ea6\u88ab\u8c03\u5230\u5168\u9ed1\u201d\u8fd9\u79cd\u60c5\u51b5\u515c\u5e95\u7684</li>\n<li>\u6ca1\u6709\u5c0f\u7ec4\u4ef6\uff0c\u4e0d\u8054\u7f51\uff0c\u6ca1\u6709\u7edf\u8ba1</li>\n</ul>\n<p><img alt=\"Touch Bar \u4e0a\u7684 Dock\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/hooosberg/DockTouchBar/main/assets/photos/dock.jpg\"/></p>\n<h2>\u51e0\u4e2a\u5b9e\u6d4b\u6570\u5b57</h2>\n<p>\u5728\u6211\u7684 M1 MacBook Pro \uff08 macOS 27 \uff09\u4e0a\uff0c\u5f00\u7740 Dock \u7a7a\u95f2\u65f6\uff1aCPU 0.0%\uff0c\u5185\u5b58\u7ea6 34 MB \uff0c\u6574\u4e2a App \u7ea6 1650 \u884c Swift \uff0c\u6ca1\u6709\u7b2c\u4e09\u65b9\u4f9d\u8d56\u3002Intel \u7684 Mac \u6211\u6ca1\u6709\u673a\u5668\uff0c\u53ea\u5728 Rosetta \u4e0b\u786e\u8ba4\u80fd\u542f\u52a8\uff0c\u6240\u4ee5\u6ca1\u6cd5\u4fdd\u8bc1\u3002</p>\n<h2>\u4e00\u4e9b\u5751</h2>\n<p>Touch Bar \u4e0a\u8ba9\u540e\u53f0 App \u5e38\u9a7b\u53ea\u80fd\u7528\u7cfb\u7edf\u7684\u79c1\u6709\u63a5\u53e3\uff0c\u6240\u4ee5\u5b83\u4e0a\u4e0d\u4e86 App Store \uff0c\u6211\u7528 Developer ID \u7b7e\u540d\u5e76\u505a\u4e86 Apple \u516c\u8bc1\uff0cDMG \u653e\u5728 GitHub Releases \u3002\u53e6\u5916\u201c\u8fde\u7eed\u5feb\u901f\u70b9\u51fb\u4e0d\u4e71\u201d\u82b1\u4e86\u6211\u6700\u591a\u65f6\u95f4\uff1a\u5207\u684c\u9762\u6709\u52a8\u753b\uff0c\u52a8\u753b\u671f\u95f4\u7cfb\u7edf\u4f1a\u76f4\u63a5\u4e22\u6389\u65b0\u7684\u5207\u6362\u8bf7\u6c42\uff0c\u63a5\u53e3\u5374\u8fd8\u8fd4\u56de\u6210\u529f\u3002\u6700\u540e\u6ca1\u7528\u56fa\u5b9a\u7b49\u5f85\uff0c\u6539\u6210\u770b\u7ed3\u679c\uff08\u524d\u53f0 App \u548c\u5f53\u524d\u684c\u9762\u5bf9\u4e0d\u5bf9\uff09\uff0c\u4e0d\u5bf9\u5c31\u91cd\u8bd5\u3002\u8fd9\u90e8\u5206\u7684\u6392\u67e5\u8fc7\u7a0b\u6211\u90fd\u5199\u8fdb\u5f00\u53d1\u65e5\u8bb0\u4e86\u3002</p>\n<h2>\u94fe\u63a5</h2>\n<ul>\n<li>GitHub \uff08\u6e90\u7801 + \u516c\u8bc1 DMG \uff09\uff1a <a href=\"https://github.com/hooosberg/DockTouchBar\" rel=\"nofollow\">https://github.com/hooosberg/DockTouchBar</a></li>\n<li>\u4ea7\u54c1\u9875\u548c\u5f00\u53d1\u65e5\u8bb0\uff1a <a href=\"https://hooosberg.com/apps/docktouchbar/\" rel=\"nofollow\">https://hooosberg.com/apps/docktouchbar/</a></li>\n</ul>\n<p>\u6e90\u7801\u662f\u516c\u5f00\u7684\uff0c\u4e2a\u4eba\u4f7f\u7528\u514d\u8d39\uff0c\u5546\u7528\u9700\u8981\u53e6\u884c\u6388\u6743\uff08 PolyForm Noncommercial \uff09\u3002</p>\n<p>\u6709 Touch Bar \u7684\u670b\u53cb\u53ef\u4ee5\u8bd5\u8bd5\uff0c\u9047\u5230\u95ee\u9898\u6216\u8005\u60f3\u8981\u7684\u529f\u80fd\uff0c\u6b22\u8fce\u76f4\u63a5\u56de\u5e16\u6216\u8005\u63d0 Issue \u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Branlice", 
        "name": "Branlice", 
        "avatar": "https://cdn.v2ex.com/gravatar/997a2197b7a701b3c0a4dba3a8032847?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244889", 
      "title": "\u4e2a\u4eba\u51c6\u5907\u4e70\u4e2a AI \u4ea7\u54c1\uff08\u9664\u786c\u4ef6\u5916\uff0c\u53ef\u4ee5\u662f\u4efb\u4f55\u9762\u5ba2\u5f62\u5f0f\uff09\uff0c\u5373\u4f7f\u6ca1\u6709\u591a\u5c11\u7528\u6237\u57fa\u6570\u4e5f\u53ef\u4ee5\u3002", 
      "id": "https://www.v2ex.com/t/1244889", 
      "date_published": "2026-09-26T08:45:09+00:00", 
      "content_html": "\u6211\u81ea\u5df1\u5e0c\u671b\u8d2d\u4e70\u4e2a AI \u4ea7\u54c1\uff0c\u53ef\u4ee5\u662f\u76f8\u5bf9\u7a33\u5b9a\u7684 Web \u4ea7\u54c1\u6216\u5176\u4ed6\u5f62\u5f0f\u7684\u4ea7\u54c1\uff0c\u76ee\u524d\u7c7b\u76ee\u6682\u65f6\u6ca1\u6709\u5b9a\uff08\u53ea\u8981\u771f\u6b63\u5728\u89e3\u51b3\u4e00\u4e2a\u9886\u57df\u7684\u5b9e\u9645\u95ee\u9898\u5c31\u53ef\u4ee5\uff09\uff0c\u81f3\u4e8e\u7528\u6237 / \u6570\u636e\u73b0\u5728\u57fa\u6570\u4e00\u822c\u4e5f\u6ca1\u5173\u7cfb\uff08\u6211\u4eec\u56e2\u961f\u975e\u5e38\u64c5\u957f\u8425\u9500\u65b9\u9762\uff09\u3002<br /><br />\u51fa\u8d44\u5f62\u5f0f\uff1a<br />\u4e2a\u4eba\u5168\u6b3e\uff0c\u770b\u5b8c\u5408\u9002\u540e\u4e00\u6b21\u6027\u4ea4\u4ed8\uff0c\u521d\u6b65\u9884\u7b97\u5728 1W-60W \u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/coding4fun", 
        "name": "coding4fun", 
        "avatar": "https://cdn.v2ex.com/gravatar/3d6d64b9ac101953c78de74b35e6668f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244868", 
      "date_modified": "2026-09-26T04:36:35+00:00", 
      "content_html": "<p>\u5927\u5bb6\u597d\uff0c\u505a\u4e86 <strong>Muqun</strong>\uff1a\u7ed9\u672c\u673a coding agent \u7528\u7684\u624b\u673a / \u5e73\u677f\u7aef\u3002iOS \u548c Android \u7684 3.0 \u90fd\u5df2\u7ecf\u8fc7\u5ba1\u4e0a\u67b6\u4e86\u3002</p>\n<p>\u6211\u4eec\u60f3\u505a\u7684\u4e0d\u662f\u53c8\u4e00\u4e2a\u901a\u7528 AI \u58f3\uff0c\u800c\u662f<strong>\u4f60\u81ea\u5df1\u7684\u4e13\u5c5e\u4e2a\u4eba\u7a7a\u95f4</strong>\uff1a\u4eba\u79bb\u5f00\u5de5\u4f4d\uff0c\u5de5\u4f5c\u8fd8\u5728\u53e3\u888b\u91cc\u7684\u90a3\u5757\u5c4f\u5e55\u4e0a\u7ee7\u7eed\uff0c\u800c\u4e14\u90a3\u5757\u5c4f\u5e55\u770b\u8d77\u6765\u3001\u7528\u8d77\u6765\u90fd\u50cf\u4f60\u7684\uff0c\u800c\u4e0d\u662f\u79df\u6765\u7684\u4eea\u8868\u76d8\u3002</p>\n<p>\u5177\u4f53\u662f\u4e09\u4ef6\u4e8b\u53e0\u5728\u4e00\u8d77\u3002</p>\n<h2>\u4e00\u3001\u7a7a\u95f4\u5728\u4f60\u8fd9\u8fb9</h2>\n<p>\u5f88\u591a\u540c\u5b66\u7684 Claude Code / Codex / OpenCode \u4e4b\u7c7b agent \u8dd1\u5728\u81ea\u5df1\u7684 Mac / Linux \u4e0a\u3002\u4eba\u4e00\u79bb\u5f00\uff0c\u6388\u6743\u5f39\u7a97\u3001\u7ec8\u7aef\u8f93\u51fa\u3001\u4f1a\u8bdd\u8fdb\u5ea6\u5c31\u53ea\u80fd\u7b49\u56de\u53bb\u518d\u770b\u3002</p>\n<p>Muqun \u7684\u601d\u8def\u5f88\u7b80\u5355\uff1aagent \u7ee7\u7eed\u7559\u5728\u4f60\u81ea\u5df1\u7684\u673a\u5668\u4e0a\uff0c\u624b\u673a\u53ea\u662f\u9065\u63a7\u7aef\u3002\u7535\u8111\u4e0a\u8dd1\u4e00\u4e2a\u81ea\u6258\u7ba1 <strong>Gateway</strong>\uff0c\u624b\u673a\u626b\u7801\u914d\u5bf9\uff1b\u6ca1\u6709 Muqun \u8d26\u53f7\uff0c\u4e5f\u6ca1\u6709\u6211\u4eec\u7684\u4e91\u4e2d\u7ee7\u3002</p>\n<p>\u672c\u673a\uff1a</p>\n<pre><code>curl -fsSL https://muqun.dev/gateway.sh | sh\nmuqun-gateway manage\n</code></pre>\n<p>\u7136\u540e\u5728 App \u91cc\u626b\u4e8c\u7ef4\u7801\u3001\u8f93\u5165\u77ed\u7801\u5373\u53ef\u3002\u540c\u7f51\u53ef\u4ee5\u76f4\u8fde\uff1b\u51fa\u95e8\u7528 Tailscale \u4e4b\u7c7b\u79c1\u6709\u7f51\u7edc\u4f1a\u66f4\u7a33\u3002\u76ee\u524d\u9700\u8981 tmux \u6216 Herdr \uff1b Windows \u8fd8\u6ca1\u652f\u6301\u3002</p>\n<h2>\u4e8c\u3001\u6837\u5b50\u4e5f\u662f\u4f60\u7684\uff08\u4e3a\u4ec0\u4e48\u8ba4\u771f\u505a\u81ea\u5b9a\u4e49\u4e3b\u9898\uff09</h2>\n<p>\u5de5\u5177\u8d8a\u6765\u8d8a\u80fd\u5e72\uff0c\u754c\u9762\u5374\u8d8a\u6765\u8d8a\u50cf\u540c\u4e00\u5957\u4eea\u8868\u76d8\u3002Agent \u4e00\u5929\u8981\u966a\u4f60\u5f88\u591a\u6b21\u6743\u9650\u786e\u8ba4\u3001\u770b\u4e00\u957f\u4e32 tool call\u2014\u2014\u5982\u679c\u5c4f\u5e55\u6c38\u8fdc\u662f\u522b\u4eba\u7684\u9ed8\u8ba4\u76ae\u80a4\uff0c\u5de5\u4f5c\u4f1a\u53d8\u6210\u5728\u4e00\u95f4\u79df\u6765\u7684\u529e\u516c\u5ba4\u91cc\u52a0\u73ed\uff1a\u80fd\u5e72\u6d3b\uff0c\u4f46\u4e0d\u5c5e\u4e8e\u4f60\u3002</p>\n<p>AI \u65f6\u4ee3\u66f4\u660e\u663e\u7684\u4e00\u70b9\u662f\uff1a\u65f6\u95f4\u82b1\u5728\u300c\u770b\u548c\u51b3\u5b9a\u300d\u4e0a\u7684\u6bd4\u4f8b\u53d8\u9ad8\u4e86\u3002\u4f60\u4e0d\u4e00\u5b9a\u5728\u6572\u4ee3\u7801\uff0c\u66f4\u591a\u662f\u5728\u626b\u4f1a\u8bdd\u3001\u8ba4\u5de5\u5177\u5361\u7247\u3001\u70b9\u5141\u8bb8 / \u62d2\u7edd\u3002\u8fd9\u65f6\u5019\u754c\u9762\u4e0d\u53ea\u662f\u76ae\u80a4\uff0c\u800c\u662f\u4f60\u548c agent \u4e4b\u95f4\u7684\u5de5\u4f5c\u53f0\u3002\u989c\u8272\u3001\u5bc6\u5ea6\u3001\u63d2\u753b\u3001\u78c1\u8d34\u600e\u4e48\u6446\uff0c\u4f1a\u5f71\u54cd\u4f60\u613f\u4e0d\u613f\u610f\u591a\u770b\u4e00\u773c\u3001\u80fd\u4e0d\u80fd\u5feb\u901f\u8ba4\u51fa\u300c\u8fd9\u662f\u6211\u7684\u54ea\u4e2a\u9879\u76ee\u300d\u3002</p>\n<p>\u6240\u4ee5\u6211\u4eec\u628a theme \u505a\u6210\u6574\u7ad9\u53ef\u6362\uff0c\u4e0d\u53ea\u662f\u6362\u4e2a\u5f3a\u8c03\u8272\uff1a\u8272\u677f\u3001\u7d20\u6750\u3001\u78c1\u8d34\u3001\u7ec8\u7aef\u989c\u8272\u53ef\u4ee5\u4e00\u8d77\u8d70\u3002\u4f60\u613f\u610f\u6781\u7b80\u5c31\u6781\u7b80\uff0c\u613f\u610f\u82b1\u4e00\u70b9\u5c31\u82b1\u4e00\u70b9\u2014\u2014\u624b\u673a\u4ece\u53e3\u888b\u91cc\u638f\u51fa\u6765\u65f6\uff0c\u5e94\u8be5\u8fd8\u662f\u4f60\u7684\u73af\u5883\u3002</p>\n<p>\u81ea\u5b9a\u4e49\u4e0d\u662f\u4e3a\u4e86\u70ab\u6280\uff0c\u662f\u4e3a\u4e86\u5728\u300c\u6a21\u578b\u5f88\u5f3a\u3001\u4ea7\u54c1\u957f\u5f97\u5f88\u50cf\u300d\u7684\u65f6\u5019\uff0c\u628a\u6240\u6709\u6743\u7559\u5728\u4eba\u8fd9\u8fb9\uff1aagent \u8dd1\u5728\u4f60\u673a\u5668\u4e0a\uff0c\u754c\u9762\u4e5f\u957f\u5f97\u50cf\u4f60\u7684\u5de5\u4f4d\u3002</p>\n<h2>\u4e09\u3001\u773c\u775b\u4e5f\u5c3d\u91cf\u4e0d\u5f80\u5916\u770b</h2>\n<p>\u4e3a\u4e86\u628a\u9690\u79c1\u505a\u5f7b\u5e95\uff0cApp \u91cc<strong>\u6ca1\u6709\u63a5\u5165\u7edf\u8ba1\u5206\u6790 / \u57cb\u70b9 SDK</strong>\uff0c\u4e5f\u6ca1\u6709\u5e7f\u544a SDK \u3002\u6211\u4eec\u5b81\u53ef\u4e0d\u770b\u300c\u8c01\u70b9\u4e86\u54ea\u4e2a\u6309\u94ae\u300d\uff0c\u4e5f\u4e0d\u628a\u4f7f\u7528\u6570\u636e\u9001\u53bb\u7b2c\u4e09\u65b9\u3002App Store \u9690\u79c1\u6807\u7b7e\u662f Data Not Collected \u8fd9\u4e00\u8def\u3002\u80fd\u672c\u673a\u89e3\u51b3\u7684\uff0c\u5c31\u4e0d\u7ecf\u8fc7\u6211\u4eec\u7684\u670d\u52a1\u5668\u3002</p>\n<h2>3.0 \u91cc\u8fd8\u80fd\u76f4\u63a5\u7528\u5230\u7684</h2>\n<ul>\n<li>\u91cd\u65b0\u505a\u7684 Home \uff0c\u65b9\u4fbf\u56de\u6700\u8fd1\u4f1a\u8bdd\u3001\u5207 Gateway</li>\n<li>\u4e13\u95e8\u7ed9 <strong>OpenCode</strong> \u7684\u5de5\u4f5c\u53f0\uff1a\u4f1a\u8bdd\u3001tool call \u3001diff \u3001\u6743\u9650\u8be2\u95ee</li>\n<li>\u624b\u673a\u4e0a\u5904\u7406 agent \u6743\u9650\uff08\u5141\u8bb8 / \u603b\u662f\u5141\u8bb8 / \u62d2\u7edd\uff09\uff0c\u9501\u5c4f\u4e5f\u80fd\u56de</li>\n<li>\u771f\u7ec8\u7aef\u955c\u50cf\uff08\u4e0d\u662f\u622a\u56fe OCR \uff09\uff0cSSH \u3001\u6587\u4ef6\u3001Git \u53d8\u66f4\u4e5f\u80fd\u770b</li>\n<li>\u4e3b\u9898\uff1a\u6574\u7ad9\u6362\u76ae\u80a4</li>\n</ul>\n<h2>\u5546\u4e1a\u6a21\u5f0f</h2>\n<p>\u4e00\u6b21\u4e70\u65ad\uff0c\u65e0\u8ba2\u9605\u3001\u65e0\u5185\u8d2d\uff1b Gateway \u5f00\u6e90\u3002\u9650\u65f6 iOS \u7248\u514d\u8d39\u4e0b\u8f7d\u53ea\u5230\u6708\u5e95\u3002\u94b1\u4e3b\u8981\u7528\u6765\u628a\u5f00\u53d1\u548c\u7ef4\u62a4\u7ee7\u7eed\u505a\u4e0b\u53bb\u3002</p>\n<h2>\u94fe\u63a5</h2>\n<ul>\n<li>\u5b98\u7f51\uff1a <a href=\"https://muqun.dev\" rel=\"nofollow\">https://muqun.dev</a></li>\n<li>Gateway\uff1a <a href=\"https://github.com/osuki-dev/muqun-gateway\" rel=\"nofollow\">https://github.com/osuki-dev/muqun-gateway</a></li>\n<li>iOS\uff1a <a href=\"https://apps.apple.com/app/id6793419283\" rel=\"nofollow\">https://apps.apple.com/app/id6793419283</a></li>\n<li>Android\uff1a <a href=\"https://play.google.com/store/apps/details?id=dev.osuki.muqun\" rel=\"nofollow\">https://play.google.com/store/apps/details?id=dev.osuki.muqun</a></li>\n</ul>\n<p>\u6b22\u8fce\u62cd\u7816\u3002\u5c24\u5176\u60f3\u542c\uff1a\u4f60\u4eec\u628a\u624b\u673a\u5f53\u6210\u300c\u4e2a\u4eba\u5de5\u4f5c\u7a7a\u95f4\u300d\u65f6\uff0c\u6700\u5728\u610f\u4e3b\u9898\u3001\u6743\u9650\u6d41\uff0c\u8fd8\u662f\u7ec8\u7aef\u672c\u8eab\uff1f</p>\n", 
      "date_published": "2026-09-26T04:29:26+00:00", 
      "title": "Muqun 3.0\uff1a\u624b\u673a\u4e0a\u770b\u7ba1\u672c\u673a coding agent\uff08OpenCode / \u7ec8\u7aef / SSH\uff0c\u65e0\u4e91\u4e2d\u7ee7\uff09", 
      "id": "https://www.v2ex.com/t/1244868"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/QianXigua", 
        "name": "QianXigua", 
        "avatar": "https://cdn.v2ex.com/avatar/c5f9/1e0f/800600_large.png?m=1788923138"
      }, 
      "url": "https://www.v2ex.com/t/1244865", 
      "title": "\u6211\u7528 Jev \u505a\u4e86\u4e2a\u5c0f\u7ea2\u4e66\u706b\u7206\u7684\u300c\u4f60\u7684\u9886\u5bfc\u4eba\u683c\u300d\u5c0f\u7ec4\u4ef6,", 
      "id": "https://www.v2ex.com/t/1244865", 
      "date_published": "2026-09-26T04:00:57+00:00", 
      "content_html": "<p>Jev \u771f\u7684\u5f88\u9002\u5408\u8fd9\u79cd\u660e\u786e\u7684\u5c0f\u5224\u65ad\uff1a\u8f93\u5165\u4e00\u53e5\u539f\u8bdd\uff0c\u76f4\u63a5\u8fd4\u56de\u7a0b\u5e8f\u53ef\u7528\u7684\u4eba\u683c\u5206\u7c7b\uff0c\u4e0d\u7528\u89e3\u6790\u6a21\u578b\u7684\u957f\u56de\u590d\u3002</p>\n<p>\u300c\u5bf9\u9f50\u4e0b\u9897\u7c92\u5ea6\u300d\u2192 \u62fc\u8c46\u5927\u5e08</p>\n<p>\u300c\u4f60\u7684\u601d\u8003\u5728\u54ea\u91cc\uff1f\u300d\u2192 \u82cf\u683c\u62c9\u5e95</p>\n<p>\u300c\u5341\u5206\u949f\u540e\u53d1\u6211\u300d\u2192 \u6025\u6025\u56fd\u738b</p>\n<p>\u6b22\u8fce\u8ba9\u4f60\u7684\u9886\u5bfc\u51fa\u6218\ud83d\udc47</p>\n<p><a href=\"https://xhslink.cn/o/1RDZCiMFvXV\" rel=\"nofollow\">https://xhslink.cn/o/1RDZCiMFvXV</a></p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://p.ipic.vip/bydzzw.jpg\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vnex", 
        "name": "vnex", 
        "avatar": "https://cdn.v2ex.com/gravatar/1dc01ed3b808b96d37451b2e7ad264ed?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244859", 
      "date_modified": "2026-09-26T03:21:23+00:00", 
      "content_html": "<p>\u7f51\u5740: <a href=\"https://aidevpush.com/auth/register/?accessCode=EqnjxAFBXL\" rel=\"nofollow\">https://www.aidevpush.com</a> \uff08\u4f60\u53ef\u4ee5\u4ece beta \u7248\u4e2d\u76f4\u63a5\u83b7\u5f97\u63d2\u4ef6\u6e90\u7801\uff09<br/>\n\u63d2\u4ef6\u7f51\u5740: <a href=\"https://chromewebstore.google.com/detail/%E4%BA%91%E7%AB%AFcoding-%E8%87%AA%E5%8A%A8%E5%88%9B%E6%96%B0%E5%8A%A9%E6%89%8B/piokpdkhnfegkfpcmpjfndocaimepkgk?hl=zh-CN&amp;utm_source=ext_sidebar\" rel=\"nofollow\">https://chromewebstore.google.com/detail/%E4%BA%91%E7%AB%AFcoding-%E8%87%AA%E5%8A%A8%E5%88%9B%E6%96%B0%E5%8A%A9%E6%89%8B/piokpdkhnfegkfpcmpjfndocaimepkgk?hl=zh-CN&amp;utm_source=ext_sidebar</a><br/>\n\u4f7f\u7528\u89c6\u9891:\nB \u7ad9: <a href=\"https://www.bilibili.com/video/BV1wQhD6bEUh/?spm_id_from=333.1387.homepage.video_card.click&amp;vd_source=73dca8dc9410f9cd8bd6b9a42a7e0a84\" rel=\"nofollow\">https://www.bilibili.com/video/BV1wQhD6bEUh/?spm_id_from=333.1387.homepage.video_card.click&amp;vd_source=73dca8dc9410f9cd8bd6b9a42a7e0a84</a></p>\n<p>\u63d2\u4ef6\u914d\u7f6e:</p>\n<p><img alt=\"\u63d2\u4ef6\u914d\u7f6e\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/E6Sk1IL1.png\"/></p>\n<p>\u4f7f\u7528\u6548\u679c:</p>\n<p><img alt=\"\u4f7f\u7528\u6548\u679c\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/m6xyW591.png\"/></p>\n<p>\u63d0\u793a\u8bcd\u8c03\u6574:\n<img alt=\"\u63d0\u793a\u8bcd\u8c03\u6574\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/qL7z4PlC.png\"/></p>\n<p>\u6574\u4f53\u65b9\u6848\u662f\u8ba9\u5927\u6a21\u578b\uff0c\u5bf9\u7528\u6237\u9009\u62e9\u7684\u533a\u57df\u8fdb\u884c\u4f18\u5316\uff0c\u5982\u679c\u611f\u89c9\u6548\u679c\u4e0d\u6ee1\u610f\u7684\u8bdd\uff0c\u53ef\u4ee5\u81ea\u884c\u66f4\u6362\u63d0\u793a\u8bcd,\u6765\u4f18\u5316\u6548\u679c</p>\n", 
      "date_published": "2026-09-26T03:18:34+00:00", 
      "title": "\u4e00\u4e2a\u5e2e\u4f60\u6316\u6398\u7f51\u7ad9\u4f18\u5316\u70b9\u7684 Chrome \u63d2\u4ef6 (\u53ef\u81ea\u7531\u63a5\u5165\u667a\u80fd\u4f53\u6a21\u578b)", 
      "id": "https://www.v2ex.com/t/1244859"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ShawnHacks", 
        "name": "ShawnHacks", 
        "avatar": "https://cdn.v2ex.com/avatar/b372/492f/746548_large.png?m=1788201644"
      }, 
      "url": "https://www.v2ex.com/t/1244847", 
      "title": "\u514d\u8d39 Twitter \u5de5\u5177\u7ad9\u66f4\u6362\u4e86\u4e3b\u57df\u540d\uff0c\u652f\u6301\u4e0b\u8f7d\u89c6\u9891\uff0c\u4e0b\u8f7d\u56fe\u7247\uff0c\u4e0b\u8f7d\u63a8\u6587\u548c\u7ebf\u7a0b\u7b49\u7b49\u8d85\u8fc7 40 \u4e2a\u5c0f\u5de5\u5177", 
      "id": "https://www.v2ex.com/t/1244847", 
      "date_published": "2026-09-26T02:22:05+00:00", 
      "content_html": "<p>\u514d\u8d39 Twitter \u5de5\u5177\u7ad9\u66f4\u6362\u4e86\u4e3b\u57df\u540d\uff0c\u6700\u65b0\u57df\u540d\u662f\uff1a <a href=\"https://twiflux.com\" rel=\"nofollow\">https://twiflux.com</a> \uff0c\u4e0b\u8f7d\u89c6\u9891\uff0c\u4e0b\u8f7d\u56fe\u7247\uff0c\u4e0b\u8f7d\u63a8\u6587\u548c\u7ebf\u7a0b\u7b49\u7b49\u8d85\u8fc7 40 \u4e2a\u5c0f\u5de5\u5177</p>\n<p>\u4e4b\u524d\u7684\u57df\u540d <a href=\"https://twimate.com\" rel=\"nofollow\">https://twimate.com</a> \u4e5f\u8fd8\u53ef\u4ee5\u7528\u3002</p>\n<p>\u4f7f\u7528\u548c\u53cd\u9988\u95ee\u9898\uff0c\u53cd\u9988\u5de5\u5177\u9700\u6c42\uff0c\u90fd\u6b22\u8fce</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/RyuUSeI233", 
        "name": "RyuUSeI233", 
        "avatar": "https://cdn.v2ex.com/gravatar/ae0b418ae715ae46110d101d3347b0f7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244846", 
      "title": "Piko\uff1a\u9ad8\u6027\u80fd\u3001\u591a\u5e73\u53f0\u7684 PikPak \u5ba2\u6237\u7aef", 
      "id": "https://www.v2ex.com/t/1244846", 
      "date_published": "2026-09-26T02:17:05+00:00", 
      "content_html": "<p>\u7528 KMP \u6413\u4e86\u4e00\u4e2a\u7b2c\u4e09\u65b9 PikPak \u5ba2\u6237\u7aef\n\u652f\u6301\u5b89\u5353\u548c Windows \uff0c\u5728\u5b89\u5353\u4e0a\u662f\u539f\u751f\u5e94\u7528\uff0cWindows \u6027\u80fd\u4e5f\u4e0d\u9519</p>\n<p>GitHub\uff1a <a href=\"https://github.com/NihilDigit/piko\" rel=\"nofollow\">https://github.com/NihilDigit/piko</a></p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/NihilDigit/piko/main/docs/showcase/platforms.jpg\"/></p>\n<p>\u652f\u6301\uff1a</p>\n<ul>\n<li>\u5e76\u53d1\u516b\u8fde\u63a5\u4e0b\u8f7d\uff0c\u63d0\u9ad8\u5f31\u7f51\u4e0b\u4f20\u8f93\u901f\u5ea6</li>\n<li>\u79bb\u7ebf\u4e0b\u8f7d\u65f6\u81ea\u52a8\u6392\u9664\u5e7f\u544a\u6587\u4ef6\uff0c\u89e3\u6790\u5408\u96c6\u6587\u4ef6\u65b9\u4fbf\u6311\u9009\u5185\u5bb9</li>\n<li>\u79bb\u7ebf\u4e0b\u8f7d\u652f\u6301\u90e8\u5206\u8f6c\u5b58 <del>\uff08\u4e0b\u5b8c\u81ea\u52a8\u5220\u6389\uff09</del></li>\n<li>\u622a\u53d6\u89c6\u9891\u90e8\u5206\u7247\u6bb5</li>\n</ul>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/NihilDigit/piko/main/docs/showcase/parsing.jpg\"/></p>\n<ul>\n<li>\u79bb\u7ebf\u4e0b\u8f7d\u652f\u6301\u5b8c\u6574\u9884\u89c8</li>\n<li>\u652f\u6301\u67e5\u770b\u8d26\u53f7\u4f20\u8f93\u914d\u989d\u4fe1\u606f</li>\n<li>\u5f88 MD \u7684\u64ad\u653e\u5668</li>\n<li>Windows on ARM \u539f\u751f\u6784\u5efa</li>\n<li>And more...</li>\n</ul>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/NihilDigit/piko/main/docs/showcase/preview.jpg\"/></p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/NihilDigit/piko/main/docs/showcase/player.jpg\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/st2udio", 
        "name": "st2udio", 
        "avatar": "https://cdn.v2ex.com/avatar/2359/8b71/177689_large.png?m=1518250428"
      }, 
      "url": "https://www.v2ex.com/t/1244845", 
      "title": "\u505a\u4e86\u4e2a AI \u4ea7\u54c1\uff1a\u8ddf 100 \u4f4d\u53e4\u4eba\u804a\u5929\uff0c\u731c\u51fa\u4ed6\u662f\u8c01\u3002", 
      "id": "https://www.v2ex.com/t/1244845", 
      "date_published": "2026-09-26T02:04:40+00:00", 
      "content_html": "<p>\u4eba\u7269\u5168\u90e8\u9690\u53bb\u59d3\u540d\uff0cAI \u626e\u6f14\uff0c\u8bf4\u8bdd\u5e26\u7740\u4ed6\u672c\u4eba\u7684\u8bed\u6c14\u3002</p>\n<p>\u4f60\u95ee\uff0c\u4ed6\u7b54\uff0c\u7ebf\u7d22\u5c31\u85cf\u5728\u5bf9\u8bdd\u91cc\u3002</p>\n<p>\u731c\u5bf9\u4e86\uff0c\u4ed6\u4f1a\u9001\u4f60\u4e00\u4ef6\u6545\u7269\uff0c\u4ece\u771f\u5b9e\u6587\u732e\u91cc\u6458\u7684\u3002</p>\n<p>\u60f3\u4e86\u89e3\u4e00\u4e2a\u5386\u53f2\u4eba\u7269\uff0c\u53ef\u4ee5\u76f4\u63a5\u8ddf\u4ed6\u672c\u4eba\u804a\u3002</p>\n<p><a href=\"https://apps.apple.com/us/app/%E6%97%B6%E7%A9%BA%E5%9B%9E%E9%9F%B3/id6802930227\" rel=\"nofollow\">https://apps.apple.com/us/app/\u65f6\u7a7a\u56de\u97f3/id6802930227</a></p>\n<p>\u63a5\u5165\u7684 DeepSeek</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/shonky", 
        "name": "shonky", 
        "avatar": "https://cdn.v2ex.com/avatar/fe99/bf9e/227043_large.png?m=1790383864"
      }, 
      "url": "https://www.v2ex.com/t/1244832", 
      "title": "\u5199\u4e86\u4e2a\u7ed9 X\u201c\u8131\u6c34\u201d\u7684\u6d4f\u89c8\u5668\u63d2\u4ef6\uff1a Noiseless\uff0c\u5c1d\u8bd5\u7528 LLM \u8fc7\u6ee4\u4fe1\u606f\u566a\u58f0", 
      "id": "https://www.v2ex.com/t/1244832", 
      "date_published": "2026-09-26T01:06:02+00:00", 
      "content_html": "<p>\u6211\u5e73\u65f6\u559c\u6b22\u5237 X\uff08Twitter\uff09\uff0c\u6709\u65f6\u5019\u770b\u89c1\u4e00\u4e2a\u535a\u4e3b\u5206\u4eab\u7684\u4fe1\u606f\uff0c\u535a\u4e3b\u8bf4\u7684\u5f88\u597d\u542c\uff0c\u5f53\u65f6\u7b2c\u4e00\u65f6\u95f4\u6211\u4e5f\u5f88\u6fc0\u52a8\uff0c\u7ed3\u679c\u540e\u9762\u7814\u7a76\uff0c\u53d1\u73b0\u535a\u4e3b\u6ce8\u6c34\u4e86\u5f88\u591a\uff0c\u5b9e\u9645\u6ca1\u90a3\u4e48\u597d\u7528\u3002</p>\n<p>\u7f51\u4e0a\u6709\u5f88\u591a\u90fd\u662f\u8fd9\u6837\u7684\u60c5\u51b5\uff0c\u535a\u4e3b\u53d1\u5356\u5bb6\u79c0\u7684\u4fe1\u606f\uff0c\u81ea\u5df1\u4e00\u7528\u5c31\u662f\u4e70\u5bb6\u79c0\u4e86\u3002</p>\n<p>\u7136\u540e\u6211\u5c31\u5728\u60f3\uff0c\u80fd\u4e0d\u80fd\u7528\u5927\u6a21\u578b\u63d0\u524d\u68c0\u6d4b\u4e0b\u63a8\u6587\u7684\u53ef\u4fe1\u5ea6\u60c5\u51b5\uff0c\u5206\u6790\u4fe1\u606f\u7684\u8d28\u91cf\u5982\u4f55\u3002</p>\n<p>\u6210\u679c\uff1aChrome \u6269\u5c55 \u2014\u2014 <strong>Noiseless</strong>\uff0c\u4e3b\u8981\u7528\u6765\u5e2e\u7f51\u9875\u6587\u672c\u201c\u8131\u6c34\u201d\uff0c\u6700\u540e\u7684\u6548\u679c\u5c31\u662f\u52a0\u5f3a\u7248\u7684 @Grok\uff0c\u9700\u8981\u81ea\u5df1\u63d0\u4f9b API\uff0c\u6211\u8fd9\u91cc\u9762\u52a0\u7684\u90fd\u662f\u80fd\u514d\u8d39\u6ce8\u518c\u83b7\u53d6\u7684\uff0c\u4e00\u822c\u7528 Google Gemini \u5c31\u884c\u3002</p>\n<p>\u5148\u58f0\u660e\uff0c\u672c\u4eba\u5e76\u65e0\u7f16\u7a0b\u57fa\u7840\uff0c\u7eaf\u9760 Gemini \u6765\u505a\u7684\uff0c\u7528\u4e86\u5927\u6982 5 \u5929\u7684\u65f6\u5019\uff0c\u5199\u4ee3\u7801\u3001\u6d4b\u8bd5\u7136\u540e\u4e0a\u67b6\u4e86\u8c37\u6b4c\u6269\u5c55\u5546\u5e97\u3002</p>\n<p>\u6211\u60f3\u65e0\u8bba\u662f\u81ea\u5df1\u5199\u8fd8\u662f AI \u5199\uff0c\u53ea\u8981\u80fd\u89e3\u51b3\u95ee\u9898\uff0c\u90fd\u662f\u597d\u4e8b\u3002</p>\n<p>\u6b64\u6269\u5c55\u4ee3\u7801\u5df2\u5728 github \u4e0a\u5f00\u6e90:<a href=\"https://github.com/Jackroro/noiseless-extension\" rel=\"nofollow\">https://github.com/Jackroro/noiseless-extension</a></p>\n<hr/>\n<h3>\u4e3b\u8981\u505a\u4e86\u4e24\u4ef6\u4e8b</h3>\n<ol>\n<li>\n<p><strong>\u4fe1\u606f\u964d\u566a</strong>\uff1a\n\u67d4\u6027\u6298\u53e0\u63a8\u7279\u5e7f\u544a/\u63a8\u5e7f\u5185\u5bb9\uff0c\u4e5f\u53ef\u81ea\u5df1\u6dfb\u52a0\u5173\u952e\u8bcd\u5c4f\u853d\u3002</p>\n</li>\n<li>\n<p><strong>\u4fe1\u606f\u8d28\u91cf\u8bc4\u4f30</strong>\uff1a\n\u540e\u53f0\u63a5\u5165 LLM \u5bf9\u5185\u5bb9\u8fdb\u884c\u5206\u6790\uff0c\u4ece\u4e8b\u5b9e\u53ef\u9a8c\u8bc1\u5ea6\u3001\u89c2\u70b9\u53ef\u4fe1\u5ea6\u548c\u89c2\u70b9\u53ef\u884c\u6027\u7efc\u5408\u8bc4\u5b9a\u3002</p>\n</li>\n</ol>\n<hr/>\n<h3>\u5173\u4e8e\u9690\u79c1\u4e0e\u8c03\u7528\u5b9e\u73b0</h3>\n<p>\u5728\u505a\u8fd9\u4e2a\u63d2\u4ef6\u65f6\u6211\u81ea\u5df1\u6700\u4ecb\u610f\u7684\u4e5f\u662f\u9690\u79c1\u548c\u6027\u80fd\uff1a</p>\n<ul>\n<li><strong>\u4e0d\u5e38\u9a7b\u540e\u53f0\u626b\u63cf</strong>\uff1a\u4e0d\u4f1a\u80e1\u4e71\u8bfb\u53d6\u5168\u9875\u9762\u7684\u9690\u79c1\u6570\u636e\uff0c\u53ea\u6709\u4e3b\u52a8\u9009\u89e6\u53d1\u65f6\u624d\u4f1a\u5904\u7406\u3002</li>\n<li><strong>\u7eaf\u7cb9\u7684\u6587\u672c\u5904\u7406</strong>\uff1a\u63d0\u53d6\u6587\u672c\u4e0a\u4e0b\u6587\u4ea4\u7ed9\u5927\u6a21\u578b\u505a\u63a8\u7406\u5206\u6790\uff0c\u4e0d\u7559\u5b58\u7528\u6237\u4e2a\u4eba\u5386\u53f2\uff0c\u4e5f\u4e0d\u641e\u5947\u5947\u602a\u602a\u7684\u8de8\u7ad9\u8ffd\u8e2a\u3002</li>\n<li>\u76ee\u524d\u4ea7\u54c1\u521a\u4e0a\u7ebf Chrome Web Store\uff0c\u4ea4\u4e92\u548c Prompt \u8fd8\u5728\u6301\u7eed\u6253\u78e8\u3002</li>\n</ul>\n<hr/>\n<h3>\u4f53\u9a8c\u5730\u5740\u4e0e\u53cd\u9988</h3>\n<ul>\n<li><strong>Chrome \u5546\u5e97\u5730\u5740</strong>\uff1a <a href=\"https://chromewebstore.google.com/detail/noiseless-%E7%A4%BE%E4%BA%A4%E4%BF%A1%E6%81%AF%E9%99%8D%E5%99%AA%E4%B8%8E%E9%80%BB%E8%BE%91%E9%80%8F%E9%95%9C/oclbiembnjgdallabkghocomhjnfnbje\" rel=\"nofollow\">https://chromewebstore.google.com/detail/noiseless-%E7%A4%BE%E4%BA%A4%E4%BF%A1%E6%81%AF%E9%99%8D%E5%99%AA%E4%B8%8E%E9%80%BB%E8%BE%91%E9%80%8F%E9%95%9C/oclbiembnjgdallabkghocomhjnfnbje</a></li>\n<li>\uff08\u5982\u679c\u80fd\u987a\u624b\u5728\u5546\u5e97\u7559\u4e2a\u771f\u5b9e\u8bc4\u4ef7\u5c31\u66f4\u611f\u6fc0\u4e86\uff09</li>\n</ul>\n<p>\u76ee\u524d\u4e3b\u8981\u662f\u81ea\u7528 + \u521a\u53d1\u5e03\u72b6\u6001\uff0cPrompt \u5bf9\u957f\u6587\u672c\u8fb9\u754c\u60c5\u51b5\u7684\u8986\u76d6\u3001\u4e0d\u540c\u5e73\u53f0\u7684\u6392\u7248\u517c\u5bb9\u80af\u5b9a\u8fd8\u6709\u4e0d\u5c11\u7c97\u7cd9\u7684\u5730\u65b9\u3002</p>\n<p>\u5927\u5bb6\u5728\u8bd5\u7528\u8fc7\u7a0b\u4e2d\u5982\u679c\u6709\u4efb\u4f55 Bug\u3001Prompt \u8c03\u4f18\u5efa\u8bae\uff0c\u6216\u8005\u89c9\u5f97\u54ea\u4e9b\u529f\u80fd\u7eaf\u5c5e\u9e21\u808b\uff0c\u6b22\u8fce\u5728\u8bc4\u8bba\u533a\u968f\u65f6\u62cd\u7816\uff0c\u6211\u90fd\u4f1a\u8ba4\u771f\u8bb0\u5f55\u548c\u8ddf\u8fdb\u8fed\u4ee3\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qixo3469", 
        "name": "qixo3469", 
        "avatar": "https://cdn.v2ex.com/gravatar/411b1149d77730e58d66d5637d00307f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244827", 
      "title": "\u505a\u4e86\u4e2a\u514d\u8d39\u5f00\u6e90\u7684 AI \u4ea4\u6613\u5de5\u4f5c\u53f0", 
      "id": "https://www.v2ex.com/t/1244827", 
      "date_published": "2026-09-26T00:06:20+00:00", 
      "content_html": "<p>Desic Terminal \u2014\u2014 \u5f00\u6e90\u7684 AI \u539f\u751f OKX \u6c38\u7eed\u5408\u7ea6\u4ea4\u6613\u7ec8\u7aef</p>\n<p><img alt=\"\u4ea4\u6613\u5de5\u4f5c\u53f0\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/6v45d995.png\"/></p>\n<p>AI \u81ea\u52a8\u5316\u4ea4\u6613</p>\n<p>\u00b7 \u4ea4\u6613\u7406\u5ff5\u505a\u6210\u4e86\u53ef\u4ee5\u81ea\u5df1\u6539\u7684 skill \u6587\u4ef6\u3002\u4f60\u6309\u81ea\u5df1\u7684\u6846\u67b6\u6539\u3002\n\u00b7 \u652f\u6301\u591a Agent \u7f16\u6392\n\u00b7 \u4ea4\u6613\u590d\u76d8\u3001\u6bcf\u65e5\u5e02\u573a\u590d\u76d8\u90fd\u6709\uff0c\u4f1a\u7559\u4e0b\u8fd0\u884c\u8bb0\u5f55\u548c\u4ed3\u4f4d\u590d\u76d8\u3002</p>\n<p>\u7b56\u7565\u4ea4\u6613 / \u56de\u6d4b\u7cfb\u7edf</p>\n<p>\u00b7 Python \u7b56\u7565\u811a\u672c\u3002\u4e0d\u7528\u4f1a\u5199\u4ee3\u7801\u2014\u2014\u628a\u7b56\u7565\u63cf\u8ff0\u6e05\u695a\uff0cAI \u5e2e\u4f60\u5199\u6210\u811a\u672c\u3002\n\u00b7 \u5199\u5b8c\u76f4\u63a5\u8dd1\u5386\u53f2\u56de\u6d4b\u3002</p>\n<p>\u56fe\u8868\u5feb\u6377\u4ea4\u6613</p>\n<p>\u00b7 AI \u53ef\u4ee5\u7528\u81ea\u7136\u8bed\u8a00\u5199\u56fe\u8868\u6307\u6807\n\u00b7 \u4e3b\u89c2\u4ea4\u6613\u53ef\u4ee5\u5728\u56fe\u4e0a\u76f4\u63a5\u4e0b\u5355\uff0c\u4f4e\u5ef6\u8fdf\u3002</p>\n<p>\u987a\u5e26\u8fd8\u6709\u5e02\u573a\u96f7\u8fbe\uff1a\u4e0d\u53d7\u81ea\u9009\u5217\u8868\u9650\u5236\uff0c\u626b\u5168\u5e02\u573a live USDT \u6c38\u7eed\uff0c\n\u8f93\u51fa\u6392\u540d\u3001\u5206\u7c7b\u5f3a\u5f31\u3001\u5e02\u573a\u5bbd\u5ea6\u548c\u8bc4\u5206\u5f52\u56e0\uff0c\u5e76\u4fdd\u7559 1/5/20 \u65e5\u7684\u70b9\u65f6\u9a8c\u8bc1\u3002</p>\n<p><img alt=\"\u5e02\u573a\u96f7\u8fbe\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/90E7e5kD.png\"/></p>\n<p>\u5f00\u6e90\uff08 MIT \uff09\uff1a <a href=\"https://github.com/xiazhi88/Desic-Terminal\" rel=\"nofollow\">https://github.com/xiazhi88/Desic-Terminal</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/duanyoushi", 
        "name": "duanyoushi", 
        "avatar": "https://cdn.v2ex.com/gravatar/b2ca634c4f8127557c0f99fb15ff51bd?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244819", 
      "title": "\u627e\u5de5\u4f5c\u592a\u96be\u4e86\uff0c\u62ff\u7ec3\u624b\u505a\u7684\u7f51\u7ad9\u6bdb\u9042\u81ea\u8350\u4e0b", 
      "id": "https://www.v2ex.com/t/1244819", 
      "date_published": "2026-09-25T20:12:14+00:00", 
      "content_html": "\u5927\u5bb6\u597d\uff0c\u6211\u662f\u4e00\u540d\u5e94\u5c4a\u6bd5\u4e1a\u751f\uff08\u7b97\u662f\u5427\uff0c\u53bb\u5e74\u6bd5\u4e1a\uff0c\u4eca\u5e74\u90fd\u5728\u72ec\u7acb\u5f00\u53d1\uff0c\u6ca1\u6709\u4ea4\u793e\u4fdd\uff0c\u5e94\u8be5\u4e5f\u7b97\u5e94\u5c4a\u6bd5\u4e1a\u751f\u8d44\u683c\uff09\u3002\u6700\u8fd1\u627e\u5de5\u4f5c\u4e00\u76f4\u4e0d\u987a\uff0c\u60f3\u501f\u8fd9\u4e2a\u5e16\u5b50\u6bdb\u9042\u81ea\u8350\u4e00\u4e0b\uff0c\u4e5f\u60f3\u542c\u542c\u5927\u5bb6\u7684\u5efa\u8bae\u3002<br /><br />\u5148\u8bf4\u8bf4\u8fd1\u51b5\uff1aBoss \u76f4\u8058\u4e0a\u6295\u4e86\u5f88\u591a\u7b80\u5386\uff0c\u57fa\u672c\u6ca1\u4ec0\u4e48\u56de\u97f3\u3002\u6295\u7740\u6295\u7740\u81ea\u5df1\u4e5f\u5f00\u59cb\u8ff7\u832b\uff1a\u662f\u7ee7\u7eed\u627e\u5f00\u53d1\u5c97\uff0c\u8fd8\u662f\u8f6c\u6d4b\u8bd5\uff0c\u751a\u81f3\u53bb\u505a\u9500\u552e\u4f1a\u4e0d\u4f1a\u66f4\u597d\u627e\u4e00\u4e9b\uff1f\u8fd8\u662f\u60f3\u505a\u8ddf\u5f00\u53d1\u3001\u7f51\u7ad9\u76f8\u5173\u7684\u5de5\u4f5c\uff0c\u8de8\u5883\u7535\u5546\u3001\u72ec\u7acb\u7ad9\u65b9\u5411\u4e5f\u53ef\u4ee5\u3002\u6211\u5bf9 AI \u76f8\u5173\u7684\u6280\u672f\u548c\u884c\u4e1a\u6bd4\u8f83\u611f\u5174\u8da3\uff0c\u5e73\u65f6\u4e5f\u559c\u6b22\u6298\u817e\u8fd9\u4e9b\u4e1c\u897f\u3002\u72ec\u7acb\u5f00\u53d1\u5feb 1 \u5e74\u7684\u7ecf\u9a8c\u4e86\u3002\u505a\u8fc7\u7f51\u7ad9\u3001APP \uff08 Flutter \u5f00\u53d1\uff09\u3002<br /><br />\u6240\u4ee5\u60f3\u62ff\u4e00\u4e2a\u81ea\u5df1\u505a\u7684\u7f51\u7ad9\u6765\u6bdb\u9042\u81ea\u8350\uff1a<br /><br /><a target=\"_blank\" href=\"https://vidkiss.com\" rel=\"nofollow noopener\">https://vidkiss.com</a><br /><br />\u8fd9\u662f\u4e00\u4e2a AI \u89c6\u9891\u751f\u6210\u7f51\u7ad9\uff1a\u5199\u4e00\u6bb5\u63cf\u8ff0\u6216\u8005\u4f20\u4e00\u5f20\u56fe\uff0c\u9009\u4e2a\u6a21\u578b\uff0c\u5c31\u80fd\u751f\u6210\u4e00\u6bb5\u77ed\u89c6\u9891\uff0c\u4e5f\u80fd\u751f\u6210\u56fe\u7247\u3002<br /><br />\u5b9e\u8bdd\u8bf4\uff1a<br /><br />\u5b83\u672c\u8d28\u4e0a\u5c31\u662f\u628a\u73b0\u6210\u7684 AI \u6a21\u578b\u63a5\u5230\u4e00\u8d77\uff0c\u6ca1\u4ec0\u4e48\u6280\u672f\u58c1\u5792\u3002\u6211\u4e5f\u77e5\u9053\u8fd9\u7c7b\u7ad9\u5728 V \u7ad9\u4e0d\u592a\u53d7\u5f85\u89c1\u3002\u4ee3\u7801\u5927\u90e8\u5206\u662f\u7528 Claude \u548c Codex \u5199\u7684\uff0c\u6211\u4e3b\u8981\u8d1f\u8d23\u60f3\u6e05\u695a\u8981\u505a\u4ec0\u4e48\u3001\u62c6\u4efb\u52a1\u3001\u6d4b\u8bd5\u548c\u9a8c\u6536 [\u6309\u5b9e\u9645\u6539] \u3002\u505a\u5b83\u4e3b\u8981\u662f\u4e3a\u4e86\u7ec3\u624b\uff0c\u770b\u770b\u81ea\u5df1\u80fd\u4e0d\u80fd\u628a\u4e00\u4e2a\u4ea7\u54c1\u4ece\u96f6\u505a\u5230\u4e0a\u7ebf\uff1b\u4e5f\u60f3\u8bd5\u8bd5\u5b83\u80fd\u4e0d\u80fd\u5e2e\u6211\u627e\u5230\u5de5\u4f5c\u3002<br /><br />\u73b0\u5728\u6ce8\u518c\u767b\u5f55\u3001\u751f\u6210\u3001\u652f\u4ed8\u3001\u5185\u5bb9\u5ba1\u6838\u3001\u4e0a\u7ebf\u90e8\u7f72\u8fd9\u4e00\u6574\u5957\u90fd\u8dd1\u901a\u4e86\u3002\u5b83\u4e5f\u7b97\u662f\u4e00\u4e2a\u9762\u5411\u6d77\u5916\u7684\u72ec\u7acb\u7ad9\uff1a\u82f1\u6587\u754c\u9762\uff0c\u7528 Stripe \u6536\u6b3e\uff0c\u4e5f\u5728\u6162\u6162\u505a SEO \u548c\u5916\u94fe\u3002<br /><br />\u60f3\u8bf7\u5927\u5bb6\u5e2e\u51e0\u4e2a\u5fd9\uff1a<br /><br />1.\u6709\u7a7a\u7684\u8bdd\u4e0a\u53bb\u70b9\u4e00\u70b9\uff0c\u54ea\u91cc\u96be\u7528\u3001\u54ea\u91cc\u6709 bug \uff0c\u76f4\u63a5\u56de\u5e16\u544a\u8bc9\u6211\u3002\u6ce8\u518c\u4f1a\u9001 120 \u70b9\uff0c\u591f\u8dd1\u4e00\u6761 Veo 3.1 \u89c6\u9891\u3002\u5982\u679c\u6ca1\u5230\u8d26\uff08\u540c\u4e00\u4e2a\u7f51\u7edc\u51fa\u53e3\u53ea\u53d1\u4e00\u6b21\uff09\uff0c\u7559\u4e2a\u90ae\u7bb1\uff0c\u6211\u624b\u52a8\u8865\u3002<br />2.\u5e2e\u6211\u51fa\u51fa\u4e3b\u610f\uff1a\u50cf\u6211\u8fd9\u79cd\u60c5\u51b5\uff0c\u662f\u7ee7\u7eed\u6295\u5f00\u53d1\uff0c\u8fd8\u662f\u5148\u4ece\u6d4b\u8bd5\u6216\u8005\u522b\u7684\u5c97\u4f4d\u8fdb\u53bb\uff1f\u7b80\u5386\u4e0a\u653e\u4e00\u4e2a\u7528 AI \u505a\u7684\u9879\u76ee\uff0c\u662f\u52a0\u5206\u8fd8\u662f\u51cf\u5206\uff1f\u9664\u4e86 Boss \u76f4\u8058\uff0c\u5e94\u5c4a\u751f\u8fd8\u6709\u54ea\u4e9b\u6e20\u9053\u6bd4\u8f83\u597d\uff1f<br />3.\u5982\u679c\u4f60\u4eec\u56e2\u961f\u5728\u62db\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u72ec\u7acb\u7ad9\u6216\u8005\u8de8\u5883\u7535\u5546\u76f8\u5173\u7684\u5c97\u4f4d\uff0c\u4e5f\u975e\u5e38\u6b22\u8fce\u4ecb\u7ecd\uff0c\u80fd\u5185\u63a8\u5c31\u66f4\u611f\u8c22\u4e86\u3002<br /><br />\u8054\u7cfb\u90ae\u7bb1\uff1a hello@vidkiss.com<br /><br />\u8c22\u8c22\u5927\u5bb6\u613f\u610f\u770b\u5b8c\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ZIXT", 
        "name": "ZIXT", 
        "avatar": "https://cdn.v2ex.com/avatar/4edd/acae/96565_large.png?m=1790362577"
      }, 
      "url": "https://www.v2ex.com/t/1244816", 
      "date_modified": "2026-09-25T18:59:45+00:00", 
      "content_html": "<p>\u7b49\u7b49\uff01AI \u8d8a\u5f00\u8d8a\u591a\uff0c\u6211\u600e\u4e48\u66f4\u5fd9\u4e86 \ud83e\udd2f</p>\n<p>\u8fd9\u4e2a\u4f1a\u8bdd\u7b49\u786e\u8ba4\uff0c\u90a3\u4e2a\u4f1a\u8bdd\u7b49\u56de\u590d\uff0c\u4f1a\u8bdd\u5207\u4e86\u4e00\u5708\uff0c\u53c8\u5fd8\u4e86\u8c01\u8fd8\u5728\u7b49\u6211\uff0c\u6211\u6709\u70b9\u8c03\u5ea6\u4e0d\u8fc7\u6765\u6211\u81ea\u5df1\u4e86 \ud83d\ude2b</p>\n<p>\u6240\u4ee5\u6211\u505a\u4e86 Que \u2014\u2014 \u901a\u8fc7\u7edf\u4e00\u7684\u5f85\u5904\u7406 Agent \u4f1a\u8bdd\u961f\u5217\u8c03\u5ea6\u4eba\u7c7b\u6709\u9650\u7684\u6ce8\u610f\u529b\uff0c\u8ba9 Agent \u6392\u961f\u6765\u627e\u4f60\uff0c\u4e0d\u5fc5\u5206\u5fc3\u60e6\u8bb0\u8fd8\u6709\u54ea\u4e2a Agent \u5728\u7b49\u4f60\u3002</p>\n<p>\u4f60\u53ef\u4ee5\u5728\u7ec8\u7aef\u5361\u7247\u4e2d\u76f4\u63a5\u64cd\u4f5c\u4e3b\u6d41 CLI Agent \u5de5\u5177\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u901a\u77e5\u5361\u7247\u63a5\u6536\u5916\u90e8 Agent \u4f1a\u8bdd\u7684\u901a\u77e5 \u2014\u2014 Que \u4f1a\u5c06\u5404\u8272 Agent \u5361\u7247\u90fd\u6c47\u5165\u540c\u4e00\u6761\u961f\u5217\u8ba9\u4f60\u6162\u6162\u5904\u7406\u3002</p>\n<p>\u66f4\u591a\u8be6\u60c5&amp;\u4e0b\u8f7d\uff1a<a href=\"https://github.com/ZIXT233/Que\" rel=\"nofollow\">GitHub - Que</a></p>\n<p><img alt=\"Que \u6f14\u793a\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://raw.githubusercontent.com/ZIXT233/Que/main/docs/assets/queue-demo.gif\"/></p>\n", 
      "date_published": "2026-09-25T18:57:23+00:00", 
      "title": "Que \u2014\u2014 \u8ba9 Agent \u6392\u961f\u6765\u627e\u4f60", 
      "id": "https://www.v2ex.com/t/1244816"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vinthuy", 
        "name": "vinthuy", 
        "avatar": "https://cdn.v2ex.com/gravatar/411d7989df5b94a5d805908547e34861?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244811", 
      "title": "\u81ea\u5efa\u9700\u6c42\u7cfb\u7edf\uff1a\u8fdb\u6765\u5148\u5206\u8bca\uff0c\u62ff\u4e0d\u51c6\u7684\u624d\u8fdb\u5f85\u529e", 
      "id": "https://www.v2ex.com/t/1244811", 
      "date_published": "2026-09-25T17:46:05+00:00", 
      "content_html": "<p>\u56e2\u961f\u91cc\u6700\u70e6\u7684\u4e0d\u662f\u300c\u7f3a\u770b\u677f\u300d\uff0c\u662f\u9700\u6c42\u4ece\u7fa4\u91cc/\u90ae\u4ef6/\u53e3\u5934\u6d8c\u8fdb\u6765\u65f6\uff0c\u7c7b\u578b\u3001\u4f18\u5148\u7ea7\u3001\u662f\u5426\u91cd\u590d\u5168\u9760\u4eba\u8089\u5206\u3002</p>\n<p>Reqmango \u662f\u5f00\u6e90\u7684<strong>\u81ea\u5efa\u9879\u76ee\u7ba1\u7406</strong>\uff1a\u65b0\u9700\u6c42\u5148\u8d70 Intake \u5206\u8bca\uff08\u7c7b\u578b / \u4f18\u5148\u7ea7 / \u7591\u4f3c\u91cd\u590d\u5efa\u8bae\uff09\uff0c\u62ff\u4e0d\u51c6\u7684\u518d\u4eba\u5de5\u5904\u7406\uff1b AI \u5d4c\u5728 Issue / Intake / Cycle \u91cc\uff0c\u6570\u636e\u5728\u81ea\u5df1\u7684\u673a\u5668\u4e0a\u3002</p>\n<p><strong>\u4e00\u952e\u8bd5\u7528\uff1a</strong></p>\n<pre><code class=\"language-bash\">git clone https://gitcode.com/yongfeng9m-/reqmanpy.git reqmango\ncd reqmango\ncp .env.example .env\ndocker compose up --build\n</code></pre>\n<p>\u6d4f\u89c8\u5668\u6253\u5f00 http://localhost<br/>\n\u8d26\u53f7\uff1a<code>demo@example.com</code> / <code>demo1234</code><br/>\n\uff08\u53ef\u9009\uff09.env \u91cc\u914d <code>AI_API_KEY</code> \u540e\u91cd\u542f\uff0c\u624d\u80fd\u770b\u5230 AI \u5206\u8bca\u5efa\u8bae\u3002</p>\n<p><strong>\u6f14\u793a\uff1a</strong> Intake \u63d0\u4ea4 \u2192 \u5206\u8bca\u961f\u5217\u63a5\u53d7/\u62d2\u7edd<br/>\n<a href=\"https://raw.githubusercontent.com/vinthuy/reqmango/master/docs/assets/demo.gif\" rel=\"nofollow\">https://raw.githubusercontent.com/vinthuy/reqmango/master/docs/assets/demo.gif</a></p>\n<p><strong>\u4e00\u5206\u949f\u8d70\u67e5\uff1a</strong> \u767b\u5f55 \u2192 \u9879\u76ee\u8bbe\u7f6e \u2192 \u5206\u8bca \u2192\u300c\u5165\u53e3\u8868\u5355\u94fe\u63a5\u300d\u63d0\u4ea4\u4e00\u6761\u9700\u6c42 \u2192 \u56de\u5230\u961f\u5217\u70b9\u63a5\u53d7/\u62d2\u7edd\u3002</p>\n<p><strong>\u6b22\u8fce\u5171\u5efa\uff1a</strong></p>\n<p>\u56fd\u5185\u4e3b\u573a\uff1a <a href=\"https://gitcode.com/yongfeng9m-/reqmanpy\" rel=\"nofollow\">https://gitcode.com/yongfeng9m-/reqmanpy</a><br/>\n\u56fd\u9645\u955c\u50cf\uff1a <a href=\"https://github.com/vinthuy/reqmango\" rel=\"nofollow\">https://github.com/vinthuy/reqmango</a></p>\n<ul>\n<li>\u7b5b\u9009\u82af\u7247 i18n\uff1a <a href=\"https://github.com/vinthuy/reqmango/issues/3\" rel=\"nofollow\">https://github.com/vinthuy/reqmango/issues/3</a></li>\n<li>Compose \u9996\u542f\u8bf4\u660e\uff1a <a href=\"https://github.com/vinthuy/reqmango/issues/9\" rel=\"nofollow\">https://github.com/vinthuy/reqmango/issues/9</a></li>\n<li>\u6b22\u8fce\u603b\u89c8\uff1a <a href=\"https://github.com/vinthuy/reqmango/issues/13\" rel=\"nofollow\">https://github.com/vinthuy/reqmango/issues/13</a></li>\n</ul>\n<p>\u8d21\u732e\u6307\u5357\uff1a <a href=\"https://gitcode.com/yongfeng9m-/reqmanpy/blob/master/CONTRIBUTING-zh.md\" rel=\"nofollow\">https://gitcode.com/yongfeng9m-/reqmanpy/blob/master/CONTRIBUTING-zh.md</a></p>\n<p>MIT \u3002\u5c0f\u6b65 PR \u6700\u6b22\u8fce\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/myyang1997", 
        "name": "myyang1997", 
        "avatar": "https://cdn.v2ex.com/gravatar/11b9bc47ede29c8c07d956bc401d1f84?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244805", 
      "title": "\u505a\u4e86\u4e2a\u80bd\u8ba1\u7b97\u5668\uff0c\u53cc\u6a21\u5f0f\u662f\u4ed6\u6700\u5927\u7684\u4eae\u70b9\u3002", 
      "id": "https://www.v2ex.com/t/1244805", 
      "date_published": "2026-09-25T15:49:31+00:00", 
      "content_html": "\u505a\u4e86\u4e2a\u5c0f\u5de5\u5177\u7ad9\uff0c\u80bd\u8ba1\u7b97\u5668\uff1a <a target=\"_blank\" href=\"https://peptidecal.net\" rel=\"nofollow noopener\">https://peptidecal.net</a><br /><br />\u4e00\u53e5\u8bdd\u8bf4\u660e\uff1a\u628a\u74f6\u8eab\u4e0a\u7684\u6570\u5b57\uff08\u74f6\u91cd + \u52a0\u6c34\u91cf\uff09\u6362\u7b97\u6210 U-100 \u9488\u7ba1\u7684\u523b\u5ea6\u3002<br /><br /><br />\u4e3a\u4ec0\u4e48\u505a\uff1f<br /><br />\u76f4\u8bf4\uff1a\u8fd9\u4e2a\u9700\u6c42\u5df2\u7ecf\u6709\u4e00\u5806\u5de5\u5177\u4e86\u3002\u6211\u641c\u7684\u65f6\u5019\u7ffb\u4e86\u524d\u51e0\u4e2a\uff0c\u529f\u80fd\u4e0a\u786e\u5b9e\u90fd\u5dee\u4e0d\u591a\u2014\u2014\u586b\u74f6\u91cd\u3001\u586b\u52a0\u6c34\u91cf\u3001\u586b\u4f60\u81ea\u5df1\u8981\u7684\u5242\u91cf\uff0c\u51fa\u9488\u7ba1\u523b\u5ea6\u3002<br /><br />\u4f46\u7ffb\u4e86\u4e00\u5708\u80bd\u7528\u6237\u7684\u771f\u5b9e\u53cd\u9988\uff0c\u5f88\u591a\u4eba\u90fd\u8fd8\u5361\u5728\u201c\u8981\u52a0\u591a\u5c11\u6c34\u6765\u590d\u6eb6\u201c\u7684\u8fd9\u4e00\u6b65\uff0c\u6240\u4ee5\u9996\u9875\u7684\u8ba1\u7b97\u5668\u505a\u6210\u4e86\u4e00\u4e2a\u53cc\u6a21\u5f0f\u7684\u7248\u672c\uff1a<br /><br />- \u8fd8\u6ca1\u6709\u590d\u6eb6\u7684\uff1a\u9002\u5408\u8fd8\u672a\u590d\u6eb6\u7684\u7528\u6237\u3002\u8f93\u5165\u74f6\u5185\u603b\u91cf\u548c\u60f3\u6ce8\u5c04\u7684\u91cf\u540e\uff0c\u5de5\u5177\u4f1a\u7ed9\u51fa\u4e00\u4e2a\u5efa\u8bae\u52a0\u6c34\u91cf\uff08\u4ee5\u53ca\u5bf9\u5e94\u6d53\u5ea6\uff09\uff0c\u5e76\u663e\u793a\u6700\u7ec8\u8981\u62bd\u53d6\u6ce8\u5c04\u7684\u6beb\u5347\u6570\u4ee5\u53ca U-100 \u4e0a\u7684\u523b\u5ea6\u3002<br /><br />- \u5df2\u590d\u6eb6\u7684\uff1a\u9002\u5408\u5df2\u590d\u6eb6\uff0c\u77e5\u9053\u52a0\u6c34\u91cf\uff08\u6216\u5df2\u77e5\u6d53\u5ea6\uff09\u7684\u7528\u6237\u3002\u8f93\u5165\u60f3\u6ce8\u5c04\u7684\u91cf\u540e\uff0c\u5de5\u5177\u4f1a\u76f4\u63a5\u6362\u7b97\u51fa\u76ee\u6807\u91cf\u5bf9\u5e94\u7684 \u62bd\u53d6\u6beb\u5347\u6570\u548c U-100 \u6ce8\u5c04\u5668\u523b\u5ea6\u3002<br /><br />\u5206\u6210\u4e24\u6761\u5165\u53e3\uff0c\u9ed8\u8ba4\u7528\u6237\u8fd8\u6ca1\u6709\u52a0\u6c34\u3002\u800c\u4e0d\u662f\u585e\u8fdb\u4e00\u4e2a\u8868\u5355\u8ba9\u4f60\u81ea\u5df1\u5224\u65ad\u8be5\u586b\u54ea\u4e2a\u3002<br /><br /><br /><br />\u9759\u6001\u7ad9\uff0cCloudflare Workers \u6258\u7ba1\uff0c\u7eaf vanilla JS \uff0c\u6ca1\u6709\u6846\u67b6\u3002\u8ba1\u7b97\u94fe\u662f\u56fa\u5b9a\u7684\uff1amg \uff08\u80bd\uff09\u2192 mL \uff08\u6db2\u4f53\uff09\u2192 units \uff08\u9488\u7ba1\u523b\u5ea6\uff09\uff0c\u6539\u524d\u9762\u4e00\u4e2a\u503c\u540e\u9762\u987a\u7740\u53d8\u3002<br /><br />\u7ad9\u70b9\u521a\u4e0a\u7ebf\uff0c\u5c24\u5176\u60f3\u542c\u542c\u5927\u5bb6\u5bf9\u4e0b\u9762\u51e0\u70b9\u7684\u610f\u89c1\uff1a<br /><br />1. \u4e24\u79cd\u6a21\u5f0f\u662f\u5426\u5bb9\u6613\u7406\u89e3\uff1f<br />2. \u6362\u7b97\u903b\u8f91\u4e0a\u6709\u6ca1\u6709\u6211\u6ca1\u60f3\u5230\u7684\u8fb9\u754c\u60c5\u51b5\uff1f<br />3. \u624b\u673a\u4e0a\u7684\u8f93\u5165\u548c\u9605\u8bfb\u6709\u6ca1\u6709\u4e0d\u987a\u624b\u7684\u5730\u65b9\uff1f<br /><br /><br />\u6b22\u8fce\u62cd\u7816\u3002\u7814\u7a76\u7528\u9014\uff0c\u4e0d\u6784\u6210\u533b\u7597\u5efa\u8bae\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xhzone", 
        "name": "xhzone", 
        "avatar": "https://cdn.v2ex.com/avatar/79a5/6049/594918_large.png?m=1790344164"
      }, 
      "url": "https://www.v2ex.com/t/1244795", 
      "title": "\u4e3a\u4e86\u5c11\u88c5\u51e0\u4e2a Mac \u5c0f\u5de5\u5177\uff0c\u6211\u628a\u81ea\u5df1\u7684\u9700\u6c42\u505a\u8fdb\u4e86 OmniDock", 
      "id": "https://www.v2ex.com/t/1244795", 
      "date_published": "2026-09-25T14:29:25+00:00", 
      "content_html": "<h1>\u4e3a\u4e86\u5c11\u88c5\u51e0\u4e2a Mac \u5c0f\u5de5\u5177\uff0c\u6211\u628a\u81ea\u5df1\u7684\u9700\u6c42\u505a\u8fdb\u4e86 OmniDock</h1>\n<p>\u5927\u5bb6\u597d\uff0c\u6211\u505a\u4e86\u4e2a\u53eb OmniDock \u7684 Mac \u5de5\u5177\uff0c\u60f3\u653e\u51fa\u6765\u7ed9\u5927\u5bb6\u8bd5\u8bd5\u3002</p>\n<p>\u6211\u5e73\u65f6\u7ecf\u5e38\u5728 Windows \u548c Mac \u4e4b\u95f4\u6765\u56de\u5de5\u4f5c\u3002\u6709\u4e9b Windows \u7684\u64cd\u4f5c\u548c\u7cfb\u7edf\u884c\u4e3a\u6bd4\u8f83\u5408\u6211\u7684\u4e60\u60ef\uff0c\u6362\u5230 Mac \u65f6\uff0c\u4e5f\u60f3\u7ee7\u7eed\u8fd9\u4e48\u7528\u3002</p>\n<p>\u6bd4\u5982\uff0c\u9f20\u6807\u653e\u5230\u5e94\u7528\u56fe\u6807\u4e0a\uff0c\u5148\u770b\u770b\u5b83\u5f00\u7740\u54ea\u4e9b\u7a97\u53e3\uff1b\u518d\u6b21\u70b9\u51fb\u56fe\u6807\uff0c\u628a\u773c\u524d\u6682\u65f6\u4e0d\u7528\u7684\u7a97\u53e3\u6536\u8d77\u6765\uff1b\u9700\u8981\u4e24\u4e2a\u7a97\u53e3\u5e76\u6392\u7684\u65f6\u5019\uff0c\u7528\u5feb\u6377\u952e\u6446\u597d\uff0c\u4e0d\u7528\u6765\u56de\u62d6\u3002</p>\n<p>\u6211\u5c31\u60f3\uff0c\u80fd\u4e0d\u80fd\u628a\u8fd9\u4e9b\u7528\u987a\u624b\u7684\u64cd\u4f5c\u5728 Mac \u4e0a\u9002\u914d\u4e00\u4e0b\uff1f\u8fd9\u6837\u6362\u4e2a\u7cfb\u7edf\u5de5\u4f5c\u65f6\uff0c\u4e00\u4e9b\u4e0b\u610f\u8bc6\u7684\u52a8\u4f5c\u8fd8\u80fd\u63a5\u5f97\u4e0a\uff0c\u5207\u6362\u8d77\u6765\u4e5f\u81ea\u7136\u4e00\u70b9\u3002</p>\n<p>\u8fd9\u4e9b\u9700\u6c42\u5df2\u7ecf\u6709\u4e0d\u5c11\u5de5\u5177\u5728\u89e3\u51b3\u3002</p>\n<p>\u6bd4\u5982 <a href=\"https://alt-tab.app/\" rel=\"nofollow\">AltTab</a> \u53ef\u4ee5\u770b\u7740\u7f29\u7565\u56fe\u5207\u6362\u7a97\u53e3\uff0c<a href=\"https://github.com/ejbills/DockDoor\" rel=\"nofollow\">DockDoor</a> \u53ef\u4ee5\u5728 Dock \u4e0a\u60ac\u505c\u9884\u89c8\u7a97\u53e3\u3002\u8c03\u6574\u7a97\u53e3\u4f4d\u7f6e\u548c\u5927\u5c0f\u6709 <a href=\"https://rectangleapp.com/\" rel=\"nofollow\">Rectangle</a>\uff0c\u627e\u56de\u4e4b\u524d\u590d\u5236\u7684\u5185\u5bb9\u6709 <a href=\"https://maccy.app/\" rel=\"nofollow\">Maccy</a>\u3002</p>\n<p>\u5b83\u4eec\u5404\u6709\u4fa7\u91cd\u3002\u4e0d\u8fc7\uff0c\u5982\u679c\u8fd9\u51e0\u6837\u529f\u80fd\u6211\u90fd\u60f3\u8981\uff0c\u5c31\u53ef\u80fd\u8981\u88c5\u51e0\u6b3e\u8f6f\u4ef6\u3002</p>\n<p>\u6211\u81ea\u5df1\u7684\u9700\u6c42\u53c8\u6ca1\u6709\u90a3\u4e48\u590d\u6742\uff0c\u5f88\u591a\u65f6\u5019\u53ea\u7528\u5f97\u5230\u5176\u4e2d\u6bd4\u8f83\u5e38\u89c1\u7684\u90a3\u4e9b\u64cd\u4f5c\u3002\u65e2\u7136\u8981\u505a\uff0c\u5c31\u628a\u8fd9\u4e9b\u5e38\u7528\u7684\u90e8\u5206\u653e\u5230\u4e00\u8d77\uff0c\u4e5f\u7701\u5f97\u4e3a\u4e86\u4e0d\u540c\u7684\u5c0f\u9700\u6c42\u518d\u53bb\u627e\u5de5\u5177\u3002</p>\n<p>OmniDock \u5c31\u662f\u8fd9\u6837\u505a\u51fa\u6765\u7684\u3002\u76ee\u524d\u6709\u8fd9\u4e9b\u529f\u80fd\uff1a</p>\n<ul>\n<li>\u9f20\u6807\u505c\u5728 Dock \u56fe\u6807\u4e0a\u67e5\u770b\u7a97\u53e3\u9884\u89c8\uff0c\u70b9\u9009\u7a97\u53e3\u5207\u8fc7\u53bb\uff0c\u4e5f\u652f\u6301\u7a97\u53e3\u7ea7\u5feb\u6377\u5207\u6362\u3002</li>\n<li>\u518d\u6b21\u70b9\u51fb\u5f53\u524d\u5e94\u7528\u7684 Dock \u56fe\u6807\u6765\u9690\u85cf\u5b83\uff0c\u9700\u8981\u65f6\u518d\u70b9\u56de\u6765\u3002</li>\n<li>\u7ed9\u5e38\u7528\u5e94\u7528\u8bbe\u7f6e\u5168\u5c40\u5feb\u6377\u952e\u3002</li>\n<li>\u7528\u5feb\u6377\u952e\u6216\u62d6\u62fd\u628a\u7a97\u53e3\u653e\u5230\u534a\u5c4f\u3001\u56db\u89d2\u3001\u4e09\u5206\u5c4f\u7b49\u4f4d\u7f6e\u3002</li>\n<li>\u4fdd\u5b58\u3001\u641c\u7d22\u672c\u5730\u526a\u8d34\u677f\u5386\u53f2\u3002\u9ed8\u8ba4\u5173\u95ed\uff0c\u6709\u9700\u8981\u518d\u5f00\u3002</li>\n<li>\u5728\u652f\u6301\u7684 Finder \u4f4d\u7f6e\u901a\u8fc7\u53f3\u952e\u590d\u5236\u8def\u5f84\u3001\u65b0\u5efa\u6587\u4ef6\uff0c\u4ee5\u53ca\u624b\u52a8\u6536\u8d77\u4e0d\u5e38\u7528\u7684\u83dc\u5355\u680f\u56fe\u6807\u3002</li>\n</ul>\n<p>\u8fd9\u91cc\u6709\u4e2a\u533a\u522b\u9700\u8981\u8bf4\u6e05\u695a\uff1amacOS \u7684\u201c\u9690\u85cf\u5e94\u7528\u201d\u4f1a\u628a\u8fd9\u4e2a\u5e94\u7528\u7684\u7a97\u53e3\u4e00\u8d77\u85cf\u8d77\u6765\uff0c\u548c\u6700\u5c0f\u5316\u4e00\u4e2a\u7a97\u53e3\u4e0d\u4e00\u6837\u3002\u6240\u4ee5\u8fd9\u4e9b\u64cd\u4f5c\u662f\u5728 Mac \u4e0a\u505a\u9002\u914d\uff0c\u5177\u4f53\u884c\u4e3a\u4e0d\u4f1a\u548c Windows \u5b8c\u5168\u76f8\u540c\u3002\u7a97\u53e3\u9884\u89c8\u4e5f\u4f1a\u53d7\u6743\u9650\u548c\u7a97\u53e3\u72b6\u6001\u5f71\u54cd\uff0c\u5b98\u7f51\u91cc\u6709\u5bf9\u5e94\u8bf4\u660e\u3002</p>\n<p>\u6211\u5e0c\u671b OmniDock \u80fd\u628a\u5206\u6563\u5728\u51e0\u7c7b\u5de5\u5177\u91cc\u7684\u5e38\u7528\u529f\u80fd\u96c6\u4e2d\u8d77\u6765\uff0c\u8ba9\u6709\u7c7b\u4f3c\u9700\u6c42\u7684\u4eba\u5c11\u88c5\u51e0\u4e2a\u8f6f\u4ef6\u3002</p>\n<p>\u5bf9\u6211\u81ea\u5df1\u6765\u8bf4\uff0c\u6700\u60f3\u89e3\u51b3\u7684\u8fd8\u662f\u6765\u56de\u5207\u6362\u7cfb\u7edf\u65f6\u7684\u90a3\u70b9\u4e0d\u4e60\u60ef\uff1a\u6362\u53f0\u7535\u8111\u7ee7\u7eed\u5de5\u4f5c\uff0c\u4e00\u4e9b\u5e38\u7528\u64cd\u4f5c\u4e0d\u7528\u8ddf\u7740\u91cd\u65b0\u9002\u5e94\u3002</p>\n<p>\u76ee\u524d\u53ef\u4ee5\u514d\u8d39\u4e0b\u8f7d\uff0c\u6e90\u7801\u5728 GitHub \u3002\u6211\u628a\u529f\u80fd\u5f55\u6210\u4e86\u4e00\u6bb5\u89c6\u9891\uff0c\u611f\u5174\u8da3\u53ef\u4ee5\u5148\u770b\u770b\uff1a</p>\n<ul>\n<li><a href=\"https://omnidock.app/zh/\" rel=\"nofollow\">\u5b98\u7f51\u4e0e\u4e0b\u8f7d</a></li>\n<li><a href=\"https://github.com/quanzhankeji/OmniDock\" rel=\"nofollow\">GitHub \u6e90\u7801</a></li>\n<li><a href=\"https://youtu.be/Y7r74VQ9Olc\" rel=\"nofollow\">\u5b8c\u6574\u529f\u80fd\u6f14\u793a</a></li>\n</ul>\n<p>\u4e5f\u60f3\u95ee\u95ee\u540c\u6837\u5728 Windows \u548c Mac \u4e4b\u95f4\u6765\u56de\u7528\u7684\u670b\u53cb\uff0c\u4f60\u4eec\u6700\u5e0c\u671b\u4e24\u8fb9\u4fdd\u6301\u4e00\u81f4\u7684\u662f\u54ea\u4e2a\u64cd\u4f5c\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/IdealistYu", 
        "name": "IdealistYu", 
        "avatar": "https://cdn.v2ex.com/avatar/e4c7/025c/655120_large.png?m=1790344496"
      }, 
      "url": "https://www.v2ex.com/t/1244791", 
      "date_modified": "2026-09-25T13:57:48+00:00", 
      "content_html": "<p>\u6628\u665a\u95f2\u7684\u6ca1\u4e8b\uff0c\u53d7\u597d\u591a\u5e74\u524d\u65e5\u672c\u5236\u53bf\u7b49\u7ea7\uff0c\u65e5\u672c\u5236\u9738\u548c\u4e2d\u56fd\u5236\u9738\u7684\u542f\u53d1\uff0cvibe \u4e86\u4e2a\u5730\u7ea7\u5e02\u7248\u672c\u7684\u4e2d\u56fd\u5236\u9738\u3002</p>\n<p><a href=\"https://china.loveyou.moe/\" rel=\"nofollow\">https://china.loveyou.moe/</a></p>\n<p>\u5e0c\u671b\u6709\u751f\u4e4b\u5e74\u6211\u4e5f\u80fd\u8d70\u904d\u5168\u56fd\u3002</p>\n<p><img alt=\"1790344412513.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://picui.ogmua.cn/s1/2026/09/25/6ab67cfce9657.webp\"/></p>\n", 
      "date_published": "2026-09-25T13:55:47+00:00", 
      "title": "\u5e0c\u671b\u6709\u751f\u4e4b\u5e74\u8d70\u904d\u5168\u56fd\uff01", 
      "id": "https://www.v2ex.com/t/1244791"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Yeoman", 
        "name": "Yeoman", 
        "avatar": "https://cdn.v2ex.com/gravatar/571bda577fcc569e80e8672d4f83442c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244790", 
      "title": "\u901b\u8bba\u575b\u6709\u4e2a\u7075\u611f\uff0c vibe \u4e86\u4e2a\u65b0\u601d\u8def\u7684 FIRE \u8ba1\u7b97\u5668", 
      "id": "https://www.v2ex.com/t/1244790", 
      "date_published": "2026-09-25T13:40:12+00:00", 
      "content_html": "<p><a href=\"https://zyeoman.github.io/fireme/\" rel=\"nofollow\">https://zyeoman.github.io/fireme/</a></p>\n<p>\u539f\u7406\u662f\u8ba1\u7b97\u5b58\u591f\u591a\u5c11\u94b1\uff0c\u5c31\u53ef\u4ee5\u9760\u8fd9\u7b14\u94b1\u7ed9\u81ea\u5df1\u53d1 30 \u5e74\u5de5\u8d44\u3002</p>\n<p>\u8fd9 30 \u5e74\u5de5\u8d44\u6309\u524d\u5341\u5e74\u6bcf\u5e74\u6da8 5%\uff0c\u4e2d\u5341\u5e74\u6bcf\u5e74\u6da8 3.5%\uff0c\u540e\u5341\u5e74\u6bcf\u5e74\u6da8 2.5%\u3002\u8d77\u85aa\u53ef\u4ee5\u7528\u9884\u8bbe\u5168\u56fd\u975e\u79c1\u8425\u5355\u4f4d\u5e73\u5747\u5e74\u85aa\u6216\u8005\u522b\u7684\u3002</p>\n<p>\u4e5f\u53ef\u4ee5\u770b\u6210\u4e70\u65ad\u81ea\u5df1\u4e00\u8f88\u5b50\u9700\u8981\u82b1\u7684\u94b1\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/NightCatS", 
        "name": "NightCatS", 
        "avatar": "https://cdn.v2ex.com/avatar/9474/ddf3/171312_large.png?m=1790450467"
      }, 
      "url": "https://www.v2ex.com/t/1244788", 
      "date_modified": "2026-09-25T13:39:01+00:00", 
      "content_html": "<p>\ud83e\udd6e \u5927\u5bb6\u4e2d\u79cb\u5feb\u4e50\uff5e</p>\n<p>\ud83c\udfa7 \u5efa\u8bae\u5927\u5bb6\u6253\u5f00\u58f0\u97f3 <a href=\"https://c.linsenx.com/\" rel=\"nofollow\">https://c.linsenx.com/</a> </p>\n<p>\u6240\u6709\u753b\u9762\u4ee5\u53ca\u58f0\u97f3\u5747\u7531 Opus5.5 \u7f16\u5199\u4ee3\u7801\u751f\u6210\uff0c\u65e0\u56fe\u50cf\u7d20\u6750</p>\n<p><img alt=\"\u5343\u91cc\u5171\u5a75\u5a1f\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img.linsenx.com/v2ex/lanterns-retina.jpg\"/></p>\n<p><img alt=\"\u4eca\u5915\u662f\u4f55\u5e74\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img.linsenx.com/v2ex/palace-retina.jpg\"/></p>\n<p><img alt=\"\u628a\u9152\u95ee\u9752\u5929\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img.linsenx.com/v2ex/toast-retina.jpg\"/></p>\n", 
      "date_published": "2026-09-25T13:30:31+00:00", 
      "title": "\u524d\u7aef\u4e4b\u795e Opus 5.5 \u505a\u4e86\u4e00\u5f20\u4e2d\u79cb\u8d3a\u5361\uff0c\u770b\u5b8c\u6211\u762b\u5750\u4e86", 
      "id": "https://www.v2ex.com/t/1244788"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Viyozc", 
        "name": "Viyozc", 
        "avatar": "https://cdn.v2ex.com/avatar/eaf2/1a31/795236_large.png?m=1790341381"
      }, 
      "url": "https://www.v2ex.com/t/1244784", 
      "title": "AI \u7239 10 \u5206\u949f\u5e2e\u6211\u4e0a\u67b6\u7684\u4e00\u4e2a\u62fc\u8c46\u5de5\u5177\u7ad9\uff0c\u6211\u662f\u4e2a\u5e9f\u4eba", 
      "id": "https://www.v2ex.com/t/1244784", 
      "date_published": "2026-09-25T13:08:50+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://i.imgur.com/YAjqB3n.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/YAjqB3n.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br />\u60f3\u505a\u4e00\u4e2a\u62fc\u8c46\u5de5\u5177\uff0c\u7136\u540e\u53d1\u4e86\u4e2a 20 \u5b57\u4ee5\u5185\u7684\u63d0\u793a\u8bcd\uff0c\u5c31\u4e00\u6b21\u6210\u578b\uff0c\u5173\u952e\u662f\u6211\u5f88\u6ee1\u610f\u3002<br />\u5e74\u4e0a\u767e\u7ad9 So Easy \uff0c\u867d\u7136\u4e00\u76f4\u4e3a\u7231\u53d1\u7535<br />\u4f53\u9a8c\u5730\u5740\uff1a <a target=\"_blank\" href=\"https://gridbead.com/\" rel=\"nofollow noopener\">https://gridbead.com/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ashita", 
        "name": "ashita", 
        "avatar": "https://cdn.v2ex.com/avatar/57c9/05ba/173883_large.png?m=1786893901"
      }, 
      "url": "https://www.v2ex.com/t/1244782", 
      "title": "\u505a\u4e86\u4e00\u4e2a\u514d\u8d39\u5f00\u6e90\u7684\u622a\u56fe\u5de5\u5177 Kiri\uff0c\u652f\u6301\u6807\u6ce8\u3001\u672c\u5730 OCR \u548c\u5f55\u5c4f", 
      "id": "https://www.v2ex.com/t/1244782", 
      "date_published": "2026-09-25T12:45:15+00:00", 
      "content_html": "<p>\u5927\u5bb6\u597d\uff0c\u5206\u4eab\u4e00\u4e0b\u6211\u505a\u7684\u5c0f\u5de5\u5177 Kiri \uff0c\u514d\u8d39\u5f00\u6e90\uff0c\u652f\u6301 macOS \u548c Windows \u3002</p>\n<p>\u5e73\u65f6\u622a\u4e2a\u56fe\u3001\u6807\u4e00\u4e0b\u91cd\u70b9\uff0c\u6216\u8005\u4ece\u56fe\u7247\u91cc\u590d\u5236\u4e00\u6bb5\u6587\u5b57\uff0c\u5c31\u53ef\u4ee5\u7528\u5b83\u3002\u6309\u5feb\u6377\u952e\u540e\u9009\u7a97\u53e3\u6216\u6846\u4e00\u5757\u533a\u57df\uff0c\u622a\u56fe\u53ef\u4ee5\u52a0\u7bad\u5934\u3001\u6587\u5b57\u548c\u9a6c\u8d5b\u514b\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u8bc6\u522b\u6587\u5b57\uff0c\u6216\u8005\u5f55\u6210 MP4 / GIF \u3002</p>\n<p>\u622a\u56fe\u548c\u5f55\u5c4f\u4f1a\u653e\u8fdb\u672c\u5730\u56fe\u5e93\uff0c\u53ef\u4ee5\u6309\u540d\u5b57\u3001\u6807\u7b7e\u67e5\u627e\u3002OCR \u9ed8\u8ba4\u5728\u672c\u673a\u8fd0\u884c\uff1b\u5982\u679c\u81ea\u5df1\u914d\u7f6e\u4e86\u8fdc\u7a0b OCR \uff0c\u6bcf\u6b21\u4e0a\u4f20\u524d\u4e5f\u9700\u8981\u786e\u8ba4\u3002</p>\n<p>\u5b98\u7f51\u653e\u4e86\u64cd\u4f5c\u6f14\u793a\uff0c\u53ef\u4ee5\u5148\u770b\u770b\u7528\u8d77\u6765\u662f\u4ec0\u4e48\u6837\uff1a</p>\n<ul>\n<li>\u5b98\u7f51\u4e0e\u6f14\u793a\uff1a <a href=\"https://kiri.yuxino.cn/zh/#demo\" rel=\"nofollow\">https://kiri.yuxino.cn/zh/#demo</a></li>\n<li>\u6e90\u7801\uff1a <a href=\"https://github.com/yuxino/kiri\" rel=\"nofollow\">https://github.com/yuxino/kiri</a></li>\n<li>\u4e0b\u8f7d\uff1a <a href=\"https://github.com/yuxino/kiri/releases/latest\" rel=\"nofollow\">https://github.com/yuxino/kiri/releases/latest</a></li>\n</ul>\n<p>\u76ee\u524d\u9700\u8981 macOS 14+ \u6216 Windows 11 x64 \u3002macOS \u5b89\u88c5\u5305\u8fd8\u6ca1\u6709 Apple \u516c\u8bc1\uff0c\u9996\u6b21\u6253\u5f00\u53ef\u80fd\u8981\u5230\u300c\u9690\u79c1\u4e0e\u5b89\u5168\u6027\u300d\u91cc\u70b9\u300c\u4ecd\u8981\u6253\u5f00\u300d\uff1b Windows \u5b89\u88c5\u5305\u4e5f\u6ca1\u6709 Authenticode \u7b7e\u540d\uff0c\u53ef\u80fd\u4f1a\u9047\u5230 SmartScreen \u63d0\u793a\u3002</p>\n<p>\u8fd9\u4e2a\u5c0f\u5de5\u5177\u82b1\u4e86\u4e0d\u5c11\u65f6\u95f4\u6253\u78e8\uff0c\u5e0c\u671b\u5927\u5bb6\u7528\u7740\u987a\u624b (\u02f6\u1d54 \u1d55 \u1d54\u02f6) \u6709\u4e0d\u987a\u624b\u7684\u5730\u65b9\uff0c\u6b22\u8fce\u544a\u8bc9\u6211\uff0c\u6700\u597d\u5e26\u4e0a\u7cfb\u7edf\u7248\u672c\u548c\u590d\u73b0\u6b65\u9aa4\uff0c\u6211\u4f1a\u7ee7\u7eed\u6539\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/blp205769", 
        "name": "blp205769", 
        "avatar": "https://cdn.v2ex.com/gravatar/c1ad52950b6b0e92b1a2394580d8b47c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244781", 
      "title": "\u5f00\u6e90\u4e86\u4e00\u4e2a\u900f\u660e\u684c\u9762\u8ba1\u5212\u8f6f\u4ef6 DeskPlan\uff1a\u62d6\u5165\u6587\u4ef6\u5b89\u6392\u4efb\u52a1\uff0c\u5de5\u4f5c\u65f6\u4e0d\u6321\u7a97\u53e3", 
      "id": "https://www.v2ex.com/t/1244781", 
      "date_published": "2026-09-25T12:35:20+00:00", 
      "content_html": "<p>\u5206\u4eab\u4e00\u4e0b\u81ea\u5df1\u7684\u684c\u9762\u8ba1\u5212\u8f6f\u4ef6 <strong>DeskPlan \uff08\u65e5\u5e8f\uff09</strong>\uff0cMIT \u5f00\u6e90\uff0c\u652f\u6301 Windows \u3001macOS \u548c Linux \uff0c\u4e2d\u82f1\u6587\u754c\u9762\u3002</p>\n<p>\u60f3\u89e3\u51b3\u7684\u662f\u4e00\u4e2a\u5f88\u5c0f\u7684\u9700\u6c42\uff1a\u8ba1\u5212\u7559\u5728\u684c\u9762\u4e0a\uff0c\u80fd\u968f\u65f6\u770b\u5230\u4e0b\u4e00\u4ef6\u4e8b\uff0c\u4f46\u4e0d\u8981\u76d6\u4f4f\u6b63\u5728\u5de5\u4f5c\u7684\u7a97\u53e3\uff0c\u4e5f\u4e0d\u60f3\u4e3a\u4e86\u8bb0\u5f55\u5f85\u529e\u5148\u6ce8\u518c\u8d26\u53f7\u3002</p>\n<p><a href=\"https://asoming.github.io/deskplan/zh-CN/#demo\" rel=\"nofollow\">\u4ea7\u54c1\u4e3b\u9875\u4e0e 15 \u79d2\u771f\u5b9e\u5e94\u7528\u6f14\u793a</a> \u00b7 <a href=\"https://github.com/asoming/deskplan\" rel=\"nofollow\">GitHub \u6e90\u7801</a> \u00b7 <a href=\"https://github.com/asoming/deskplan/releases/latest\" rel=\"nofollow\">\u4e0b\u8f7d\u5b89\u88c5\u5305</a></p>\n<p><img alt=\"DeskPlan \u65e5\u5e8f\u771f\u5b9e\u754c\u9762\uff0c\u4f7f\u7528\u793a\u4f8b\u4efb\u52a1\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://asoming.github.io/deskplan/assets/planner-zh-CN.png\"/></p>\n<p>\u76ee\u524d\u53ef\u4ee5\u8fd9\u6837\u7528\uff1a</p>\n<ul>\n<li><strong>\u6587\u4ef6\u76f4\u63a5\u53d8\u6210\u8ba1\u5212</strong>\uff1a\u62d6\u5165\u6587\u4ef6\u3001\u6587\u4ef6\u5939\u6216 <code>.code-workspace</code> \u521b\u5efa\u4efb\u52a1\uff0c\u4e5f\u53ef\u4ee5\u5173\u8054\u5230\u5df2\u6709\u4efb\u52a1\u3002\u53ea\u8bb0\u5f55\u8def\u5f84\uff0c\u4e0d\u79fb\u52a8\u6216\u4e0a\u4f20\u539f\u6587\u4ef6\u3002</li>\n<li><strong>\u56db\u6863\u5904\u7406\u4f18\u5148\u7ea7</strong>\uff1a\u9a6c\u4e0a\u505a\u3001\u5c3d\u5feb\u505a\u3001\u6309\u8ba1\u5212\u505a\u3001\u5148\u653e\u7740\uff0c\u989c\u8272\u4e0d\u540c\u3002\u5c3d\u5feb\u505a\u7684\u4efb\u52a1\u8ddd\u622a\u6b62\u65f6\u95f4\u4e0d\u8d85\u8fc7 48 \u5c0f\u65f6\uff0c\u4f1a\u81ea\u52a8\u663e\u793a\u5728\u9a6c\u4e0a\u505a\u3002\u8fd9\u91cc\u662f\u56db\u6863\u4f18\u5148\u7ea7\uff0c\u4e0d\u662f\u91cd\u8981\u6027 \u00d7 \u7d27\u6025\u6027\u7684\u53cc\u8f74\u77e9\u9635\u3002</li>\n<li><strong>\u4eca\u5929\u4e0e\u672c\u5468</strong>\uff1a\u4eca\u5929\u6311\u51fa\u6700\u91cd\u8981\u7684\u4e09\u4ef6\u4e8b\uff1b\u672c\u5468\u53ef\u4ee5\u62d6\u52a8\u5b89\u6392\u65e5\u671f\u3001\u586b\u5199\u9884\u8ba1\u8017\u65f6\u3002\u8ba1\u5212\u65e5\u671f\u548c\u622a\u6b62\u65e5\u671f\u5206\u5f00\u3002</li>\n<li><strong>\u5b89\u9759\u7559\u5728\u684c\u9762</strong>\uff1a\u80cc\u666f\u548c\u6587\u5b57\u900f\u660e\u5ea6\u72ec\u7acb\u53ef\u8c03\uff1b\u7a97\u53e3\u4f4d\u4e8e\u684c\u9762\u4e4b\u4e0a\u3001\u666e\u901a\u5e94\u7528\u4e4b\u4e0b\u3002\u4fa7\u680f\u9f20\u6807\u505c\u7559\u624d\u51fa\u73b0\uff0c\u4e5f\u80fd\u7f29\u6210\u5c0f\u7a97\uff1b\u6258\u76d8\u5e38\u9a7b\uff0c\u4e0d\u5360\u4efb\u52a1\u680f\u3002</li>\n<li><strong>\u672c\u5730\u4f18\u5148</strong>\uff1a\u65e0\u9700\u8d26\u53f7\uff0c\u4efb\u52a1\u53ef\u79bb\u7ebf\u4f7f\u7528\uff1b\u6709\u5b50\u6e05\u5355\u3001\u91cd\u590d\u4efb\u52a1\u3001\u53ef\u9009\u63d0\u9192\u3001\u5907\u4efd\u548c\u5bfc\u51fa\u3002\u542f\u7528\u66f4\u65b0\u68c0\u67e5\u6216\u4e0b\u8f7d\u65f6\u4f1a\u8fde\u63a5 GitHub \uff0c\u5b89\u88c5\u91cd\u542f\u7531\u81ea\u5df1\u9009\u62e9\u3002</li>\n</ul>\n<p>\u4f8b\u5982\uff0c\u53ef\u4ee5\u62d6\u5165\u4e00\u4e2a\u9879\u76ee\u6587\u4ef6\u5939\uff0c\u8bbe\u7f6e\u4ea4\u4ed8\u65e5\u671f\uff0c\u518d\u62c6\u6210\u300c\u6574\u7406\u8d44\u6599 \u2192 \u5b8c\u6210\u521d\u7a3f \u2192 \u68c0\u67e5\u4ea4\u4ed8\u300d\uff1b\u6bcf\u5929\u53ea\u628a\u4eca\u5929\u51c6\u5907\u505a\u7684\u90e8\u5206\u6392\u8fdb\u8ba1\u5212\u3002</p>\n<p>\u4e5f\u8bf4\u660e\u4e00\u4e0b\u5f53\u524d\u8fb9\u754c\uff1a\u8fd8\u6ca1\u6709\u4e91\u540c\u6b65\u3001\u56e2\u961f\u534f\u4f5c\u6216\u7cfb\u7edf\u65e5\u5386\u53cc\u5411\u540c\u6b65\uff1b\u9644\u4ef6\u5907\u4efd\u53ea\u5305\u542b\u8def\u5f84\uff0c\u4e0d\u5305\u542b\u6587\u4ef6\u672c\u4f53\u3002Linux \u4f7f\u7528 X11 / XWayland \uff0c\u7a97\u53e3\u884c\u4e3a\u4f1a\u53d7\u684c\u9762\u73af\u5883\u5f71\u54cd\uff1b Windows \u5b89\u88c5\u5305\u5c1a\u672a\u7b7e\u540d\uff0cmacOS \u4f7f\u7528\u4e34\u65f6\u7b7e\u540d\u4e14\u672a\u516c\u8bc1\uff0c\u9996\u6b21\u6253\u5f00\u53ef\u80fd\u6709\u7cfb\u7edf\u63d0\u793a\uff0c\u5177\u4f53\u89c1\u4ed3\u5e93\u5b89\u88c5\u8bf4\u660e\u3002</p>\n<p>\u6b22\u8fce\u8bd5\u7528\uff0c\u4e5f\u60f3\u542c\u542c\u5927\u5bb6\u5bf9\u300c\u653e\u5728\u684c\u9762\u4e0a\u662f\u5426\u771f\u80fd\u51cf\u5c11\u6253\u6270\u300d\u7684\u53cd\u9988\u3002\u5982\u679c\u9047\u5230\u7a97\u53e3\u5c42\u7ea7\u3001\u6258\u76d8\u6216\u62d6\u5165\u6587\u4ef6\u7684\u95ee\u9898\uff0c\u9644\u4e0a\u7cfb\u7edf\u3001\u684c\u9762\u73af\u5883\u548c\u590d\u73b0\u6b65\u9aa4\u4f1a\u5f88\u6709\u5e2e\u52a9\u3002\u4ed3\u5e93\u91cc\u4e5f\u6574\u7406\u4e86\u51e0\u4e2a\u6587\u6863\u4e0e\u517c\u5bb9\u6027\u7684\u5c0f\u4efb\u52a1\uff0c\u6b22\u8fce\u4e00\u8d77\u5b8c\u5584\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/welcomezhangjun", 
        "name": "welcomezhangjun", 
        "avatar": "https://cdn.v2ex.com/gravatar/6c141658c49b29ba2626b67f2346b13f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244780", 
      "title": "\u505a\u4e86\u4e2a\u7ed9 AI \u5e94\u7528\u7528\u7684\u7ed3\u6784\u5316\u51b3\u7b56 API\uff1a Jev", 
      "id": "https://www.v2ex.com/t/1244780", 
      "date_published": "2026-09-25T12:29:16+00:00", 
      "content_html": "<p>\u597d\u4e45\u6ca1\u505a\u7f51\u7ad9\u4e86\uff0c\u6700\u8fd1 Jevai \u6bd4\u8f83\u706b\uff0c\u5c1d\u8bd5\u591a\u4e86\u4e00\u4e2a\u5224\u65ad\u7ed3\u679c\u7684\u6a21\u578b\u7f51\u7ad9\uff0c</p>\n<p>Jev\uff1a\u628a\u4e00\u6bb5\u6587\u672c\u6216 JSON \u4f5c\u4e3a\u4e0a\u4e0b\u6587\uff0c\u4e00\u6b21\u63d0\u51fa\u591a\u4e2a\u5206\u7c7b\u3001\u8bc4\u5206\u6216\u662f\u975e\u5224\u65ad\u95ee\u9898\uff0c\u518d\u62ff\u7ed3\u6784\u5316\u7ed3\u679c\u548c\u6982\u7387\u63a5\u5165\u81ea\u5df1\u7684\u4e1a\u52a1\u903b\u8f91\u3002\n\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u4e00\u5f20\u5de5\u5355\u53ef\u4ee5\u540c\u65f6\u95ee\uff1a</p>\n<ul>\n<li>\u7528\u6237\u5728\u53cd\u9988\u54ea\u7c7b\u95ee\u9898\uff1f</li>\n<li>\u7d27\u6025\u7a0b\u5ea6\u6709\u591a\u9ad8\uff1f</li>\n<li>\u662f\u5426\u9700\u8981\u4eba\u5de5\u5904\u7406\uff1f\n\u8fd4\u56de\u503c\u53ef\u4ee5\u7528\u4e8e\u5206\u6d41\u3001\u6392\u961f\u6216\u89e6\u53d1\u4eba\u5de5\u5ba1\u6838\u3002\u5177\u4f53\u600e\u4e48\u6267\u884c\u4ecd\u7531\u81ea\u5df1\u7684\u4ee3\u7801\u51b3\u5b9a\uff1b\u6d89\u53ca\u4ed8\u6b3e\u3001\u5220\u9664\u7b49\u654f\u611f\u64cd\u4f5c\uff0c\u4e5f\u5e94\u8be5\u4fdd\u7559\u5e94\u7528\u4fa7\u7684\u6743\u9650\u63a7\u5236\u548c\u786e\u8ba4\u6d41\u7a0b\u3002\n\u76ee\u524d\u6709\u5728\u7ebf Playground \uff0c\u53ef\u4ee5\u514d\u8d39\u8bd5\u8dd1\uff1b API \u652f\u6301 REST \u548c Python SDK \u3002\u6587\u672c\u3001JSON \u5bf9\u8c61\u548c\u6587\u672c\u6570\u7ec4\u90fd\u53ef\u4ee5\u4f5c\u4e3a\u8f93\u5165\uff0c\u56fe\u7247\u3001\u97f3\u9891\u3001\u89c6\u9891\u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u3002Playground \u7684\u793a\u4f8b\u7ed3\u679c\u53ea\u662f\u5c55\u793a\u683c\u5f0f\uff0c\u5b9e\u9645\u6548\u679c\u9700\u8981\u7528\u81ea\u5df1\u7684\u6570\u636e\u9a8c\u8bc1\u3002\n\u9879\u76ee\u5730\u5740\uff1a<a href=\"https://bestjevai.com/\" rel=\"nofollow\">Jev \u5b98\u7f51</a>\n\u8bf4\u660e\u4e00\u4e0b\uff1a\u8fd9\u662f\u72ec\u7acb\u8fd0\u8425\u7684 Jev Playground \u548c API \u7f51\u5173\uff0c\u901a\u8fc7 OpenRouter \u63a5\u5165\uff0c\u5e76\u975e TypeSafe AI \u5b98\u65b9\u7f51\u7ad9\u3002\n\u6b22\u8fce\u62cd\u7816\u4e5f\u6b22\u8fce\u70b9\u8d5e\uff1a\u4f60\u4eec\u5728\u81ea\u5df1\u7684 AI \u5e94\u7528\u91cc\uff0c\u54ea\u4e9b\u5224\u65ad\u73b0\u5728\u8fd8\u9760\u89e3\u6790\u6a21\u578b\u7684\u81ea\u7136\u8bed\u8a00\u56de\u7b54\uff1f\u5982\u679c\u7528\u7ed3\u6784\u5316\u7ed3\u679c\u63a5\u8fdb\u53bb\uff0c\u6700\u5e0c\u671b\u5148\u89e3\u51b3\u4ec0\u4e48\u573a\u666f\uff1f</li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mqx", 
        "name": "mqx", 
        "avatar": "https://cdn.v2ex.com/avatar/1f5f/a780/673712_large.png?m=1787934204"
      }, 
      "url": "https://www.v2ex.com/t/1244774", 
      "title": "\u89e3\u538b\u7684\u9b54\u6cd5\u5c0f\u6e38\u620f", 
      "id": "https://www.v2ex.com/t/1244774", 
      "date_published": "2026-09-25T11:56:13+00:00", 
      "content_html": "<p>\u7b80\u4ecb\uff1a\u4e00\u4e2a\u89e3\u538b\u7684\u9b54\u6cd5\u5c0f\u6e38\u620f\uff0c\u75af\u72c2\u70b9\u51fb\u6280\u80fd\u5c31\u884c\uff0c\u54c8\u54c8\u54c8\uff0c\u6b22\u8fce\u6765\u73a9</p>\n<p>\u6e38\u620f\u5730\u5740\uff1a <a href=\"https://j3vbqdmdw2bc.meoo.pub/\" rel=\"nofollow\">https://j3vbqdmdw2bc.meoo.pub/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Facilis", 
        "name": "Facilis", 
        "avatar": "https://cdn.v2ex.com/gravatar/5fd3c8bf7607fe5df2844eb8defccbb6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1244773", 
      "title": "PaperPhonePlus \u548c PaperPhoneLite \u7aef\u5bf9\u7aef\u52a0\u5bc6\u5373\u65f6\u901a\u8baf", 
      "id": "https://www.v2ex.com/t/1244773", 
      "date_published": "2026-09-25T11:42:31+00:00", 
      "content_html": "\u5b98\u65b9\u7f51\u7ad9\uff1a <a target=\"_blank\" href=\"https://paperphone.app\" rel=\"nofollow noopener\">https://paperphone.app</a><br />\u8fd9\u4e24\u4e2a\u9879\u76ee\u5df2\u7ecf\u7a33\u5b9a\u53ef\u7528<br /><br />PaperPhonePlus<br />iOS \u53ef\u5728 app store \u76f4\u63a5\u4e0b\u8f7d\uff08\u6ca1\u4e0a\u67b6\u4e2d\u56fd\u533a\uff0c\u9700\u8981\u5916\u533a\u82f9\u679c id \uff09<br />Android \u53ef\u5728 Google Play \u76f4\u63a5\u4e0b\u8f7d<br />MacOS \u53ef\u5728 GitHub \u7684 release \u9875\u9762\u4e0b\u8f7d<br />Win \u53ef\u5728 GitHub \u7684 release \u9875\u9762\u4e0b\u8f7d<br />\u5b98\u65b9\u670d\u52a1\u5668 https://619.chat<br /><br />PaperPhoneLite<br />iOS \u53ef\u5728 app store \u76f4\u63a5\u4e0b\u8f7d\uff08\u6ca1\u4e0a\u67b6\u4e2d\u56fd\u533a\uff0c\u9700\u8981\u5916\u533a\u82f9\u679c id \uff09<br />Android \u53ef\u5728 GitHub \u7684 release \u9875\u9762\u4e0b\u8f7d<br />MacOS \u53ef\u5728 GitHub \u7684 release \u9875\u9762\u4e0b\u8f7d<br />Win \u53ef\u5728 GitHub \u7684 release \u9875\u9762\u4e0b\u8f7d<br />\u5b98\u65b9\u670d\u52a1\u5668 http://piwlgftybcoeyoda3r7mjuzhk2kyszkiqw75m4afi57zszjujce3n6id . onion<br /><br />\u8bda\u9080\u5927\u4f6c\u4eec\u8bd5\u7528\uff0c\u6ca1\u6709\u4efb\u4f55\u8d39\u7528\u3002"
    }
  ]
}