{"id":1782,"date":"2026-04-26T00:00:00","date_gmt":"2026-04-25T16:00:00","guid":{"rendered":"https:\/\/www.liujh168.com\/index.php\/2026\/04\/26\/20260426-003\/"},"modified":"2026-04-26T00:00:00","modified_gmt":"2026-04-25T16:00:00","slug":"20260426-003","status":"publish","type":"post","link":"https:\/\/www.liujh168.com\/index.php\/2026\/04\/26\/20260426-003\/","title":{"rendered":"AI \u5982\u4f55\u6539\u53d8\u4e16\u754c\uff1aSkill\u3001MCP\u3001CLI \u7684\u67b6\u6784\u5206\u5c42\u4e0e\u534f\u4f5c"},"content":{"rendered":"<h1 id=\"ai-skillmcpcli\">AI \u5982\u4f55\u6539\u53d8\u4e16\u754c\uff1aSkill\u3001MCP\u3001CLI \u7684\u67b6\u6784\u5206\u5c42\u4e0e\u534f\u4f5c<\/h1>\n<h2 id=\"_1\">\u5f15\u8a00\uff1a\u4e00\u4e2a\u770b\u4f3c&#8221;\u91cd\u590d&#8221;\u7684\u95ee\u9898<\/h2>\n<p>\u5982\u679c\u4f60\u521a\u63a5\u89e6 AI Agent \u7684 Skill \u548c MCP \u673a\u5236\uff0c\u5927\u6982\u7387\u4f1a\u4ea7\u751f\u8fd9\u6837\u7684\u7591\u95ee\uff1a<\/p>\n<p><!--more--><\/p>\n<blockquote>\n<p>&#8220;Skill \u4e0d\u5c31\u662f\u4e2a\u80fd\u8dd1\u811a\u672c\u7684\u6587\u4ef6\u5939\u5417\uff1f\u548c CLI \u6709\u4ec0\u4e48\u533a\u522b\uff1fMCP \u4e0d\u4e5f\u662f\u8c03\u8fdc\u7a0b\u5de5\u5177\u5417\uff1f\u8fd9\u4e09\u8005\u96be\u9053\u4e0d\u662f\u5728\u91cd\u590d\u9020\u8f6e\u5b50\uff1f&#8221;<\/p>\n<\/blockquote>\n<p>\u8fd9\u4e2a\u76f4\u89c9\u975e\u5e38\u5408\u7406 \u2014\u2014 \u5355\u770b\u4ee3\u7801\u548c\u6700\u7ec8\u6267\u884c\uff0c\u5b83\u4eec\u7684\u5e95\u5c42\u786e\u5b9e\u90fd\u843d\u5728&#8221;\u8dd1\u4e00\u6bb5\u4ee3\u7801&#8221;\u4e0a\u3002\u4f46\u628a\u89c6\u89d2\u62c9\u9ad8\uff0c\u4e09\u8005\u89e3\u51b3\u7684\u662f\u5b8c\u5168\u4e0d\u540c\u5c42\u6b21\u7684\u95ee\u9898\u3002\u672c\u6587\u7528\u4e00\u4e2a\u6781\u7b80\u7684 Skill Demo \u4f5c\u4e3a\u8d77\u70b9\uff0c\u9010\u5c42\u62c6\u89e3\u8fd9\u4e09\u8005\u7684\u5b9a\u4f4d\u3001\u533a\u522b\u548c\u5171\u5b58\u903b\u8f91\u3002<\/p>\n<hr \/>\n<h2 id=\"skill-demo\">\u4e00\u3001Skill \u662f\u4ec0\u4e48 \u2014\u2014 \u4e00\u4e2a\u6781\u7b80 Demo<\/h2>\n<p>\u5148\u8bf4\u6e05 Skill \u957f\u4ec0\u4e48\u6837\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u5b8c\u6574\u7684 <code>project_env<\/code> \u6280\u80fd\uff0c\u529f\u80fd\u53ea\u6709\u4e00\u53e5\u8bdd\uff1a<strong>\u68c0\u67e5 PyTorch \u9879\u76ee\u73af\u5883\u662f\u5426\u5c31\u7eea<\/strong>\u3002<\/p>\n<h3 id=\"_2\">\u76ee\u5f55\u7ed3\u6784<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code>project_env\/\n\u251c\u2500\u2500 SKILL.md   # \u7ed9 AI \u770b\u7684&quot;\u8bf4\u660e\u4e66&quot;\n\u2514\u2500\u2500 main.py    # \u771f\u6b63\u5e72\u6d3b\u7684\u811a\u672c\n<\/code><\/pre>\n<\/div>\n<h3 id=\"skillmd\">SKILL.md<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code>---\nname: project_env\n<span class=\"gu\">description: \u68c0\u67e5\u672c PyTorch \u9879\u76ee\u7684\u8fd0\u884c\u73af\u5883\u662f\u5426\u5c31\u7eea<\/span>\n<span class=\"gu\">---<\/span>\n\n<span class=\"gh\"># \u73af\u5883\u68c0\u67e5\u6280\u80fd<\/span>\n\n\u4e00\u53e5\u8bdd\uff1a\u68c0\u67e5 Python\u3001PyTorch\u3001CUDA\u3001\u9879\u76ee\u4f9d\u8d56\u662f\u5426\u5c31\u7eea\u3002\n\n<span class=\"gu\">## \u4f7f\u7528\u793a\u4f8b<\/span>\n\n<span class=\"gs\">**\u8f93\u5165\uff1a**<\/span> <span class=\"sb\">`\u68c0\u67e5\u73af\u5883`<\/span>\n<span class=\"gs\">**\u8f93\u51fa\uff1a**<\/span>\n&gt;&gt;&gt; \u6280\u80fd [project_env] \u5f00\u59cb\u6267\u884c\nPython: 3.10.x\nPyTorch: 2.4.x\nCUDA \u53ef\u7528: True\n\u9879\u76ee\u4f9d\u8d56: requirements.txt (12 \u4e2a\u5305)\n&gt;&gt;&gt; \u6280\u80fd [project_env] \u6267\u884c\u5b8c\u6bd5\n\n<span class=\"gu\">## \u5de5\u4f5c\u539f\u7406\uff08\u6781\u7b80\u89e3\u91ca\uff09<\/span>\n\n\u7528\u6237\u8bf4&quot;\u68c0\u67e5\u73af\u5883&quot;\n  \u2192 AI \u5339\u914d\u5230 project_env \u6280\u80fd\n  \u2192 AI \u8bfb\u53d6 SKILL.md\uff0c\u7406\u89e3\u6280\u80fd\u7684\u610f\u56fe\n  \u2192 AI \u6267\u884c main.py\n  \u2192 \u811a\u672c\u8f93\u51fa\u7ed3\u679c\n  \u2192 AI \u5c06\u7ed3\u679c\u5448\u73b0\u7ed9\u7528\u6237\n\n<span class=\"gu\">## \u6587\u4ef6\u7ed3\u6784<\/span>\n\nproject_env\/\n\u251c\u2500\u2500 SKILL.md   \u2190 AI \u8bfb\u8fd9\u4e2a\u6587\u4ef6\u6765\u7406\u89e3\u6280\u80fd\n\u2514\u2500\u2500 main.py    \u2190 \u6280\u80fd\u88ab\u8c03\u7528\u65f6\u6267\u884c\u8fd9\u4e2a\u811a\u672c\n<\/code><\/pre>\n<\/div>\n<h3 id=\"mainpy\">main.py<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code><span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"nf\">run<\/span><span class=\"p\">():<\/span>\n    <span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">sys<\/span>\n\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;&gt;&gt;&gt; \u6280\u80fd [project_env] \u5f00\u59cb\u6267\u884c&quot;<\/span><span class=\"p\">)<\/span>\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&quot;Python: <\/span><span class=\"si\">{<\/span><span class=\"n\">sys<\/span><span class=\"o\">.<\/span><span class=\"n\">version<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n        <span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">torch<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&quot;PyTorch: <\/span><span class=\"si\">{<\/span><span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">__version__<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&quot;CUDA \u53ef\u7528: <\/span><span class=\"si\">{<\/span><span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">cuda<\/span><span class=\"o\">.<\/span><span class=\"n\">is_available<\/span><span class=\"p\">()<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">except<\/span> <span class=\"ne\">ImportError<\/span><span class=\"p\">:<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;PyTorch: \u672a\u5b89\u88c5&quot;<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">os<\/span>\n    <span class=\"n\">req<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">dirname<\/span><span class=\"p\">(<\/span><span class=\"vm\">__file__<\/span><span class=\"p\">),<\/span> <span class=\"s2\">&quot;..&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;..&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;..&quot;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&quot;requirements.txt&quot;<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">exists<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">with<\/span> <span class=\"nb\">open<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">encoding<\/span><span class=\"o\">=<\/span><span class=\"s2\">&quot;utf-8&quot;<\/span><span class=\"p\">)<\/span> <span class=\"k\">as<\/span> <span class=\"n\">f<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">sum<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span> <span class=\"k\">for<\/span> <span class=\"n\">_<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">f<\/span><span class=\"p\">)<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&quot;\u9879\u76ee\u4f9d\u8d56: requirements.txt (<\/span><span class=\"si\">{<\/span><span class=\"n\">count<\/span><span class=\"si\">}<\/span><span class=\"s2\"> \u4e2a\u5305)&quot;<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;\u9879\u76ee\u4f9d\u8d56: \u672a\u627e\u5230 requirements.txt&quot;<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;&gt;&gt;&gt; \u6280\u80fd [project_env] \u6267\u884c\u5b8c\u6bd5&quot;<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"k\">if<\/span> <span class=\"vm\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"s2\">&quot;__main__&quot;<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">run<\/span><span class=\"p\">()<\/span>\n<\/code><\/pre>\n<\/div>\n<h3 id=\"_3\">\u5b9e\u9645\u8fd0\u884c\u7ed3\u679c<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code><span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"w\"> <\/span><span class=\"n\">\u6280\u80fd<\/span><span class=\"w\"> <\/span><span class=\"o\">[<\/span><span class=\"n\">project_env<\/span><span class=\"o\">]<\/span><span class=\"w\"> <\/span><span class=\"n\">\u5f00\u59cb\u6267\u884c<\/span>\n<span class=\"nl\">Python<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mf\">3.14.3<\/span>\n<span class=\"nl\">PyTorch<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mf\">2.11.0<\/span><span class=\"o\">+<\/span><span class=\"n\">cpu<\/span>\n<span class=\"n\">CUDA<\/span><span class=\"w\"> <\/span><span class=\"nl\">\u53ef\u7528<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"k\">False<\/span>\n<span class=\"nl\">\u9879\u76ee\u4f9d\u8d56<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"n\">requirements<\/span><span class=\"p\">.<\/span><span class=\"n\">txt<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"mi\">23<\/span><span class=\"w\"> <\/span><span class=\"n\">\u4e2a\u5305<\/span><span class=\"p\">)<\/span>\n<span class=\"o\">&gt;&gt;&gt;<\/span><span class=\"w\"> <\/span><span class=\"n\">\u6280\u80fd<\/span><span class=\"w\"> <\/span><span class=\"o\">[<\/span><span class=\"n\">project_env<\/span><span class=\"o\">]<\/span><span class=\"w\"> <\/span><span class=\"n\">\u6267\u884c\u5b8c\u6bd5<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u5230\u8fd9\u91cc\uff0c\u4f60\u5f88\u53ef\u80fd\u89c9\u5f97\uff1a&#8221;\u8fd9\u548c\u4e00\u4e2a\u666e\u901a Python \u811a\u672c\u6709\u4ec0\u4e48\u533a\u522b\uff1f&#8221;<\/p>\n<p><strong>\u662f\u7684\uff0c\u5355\u770b\u5de5\u5177\u4ee3\u7801\u672c\u8eab\uff0c\u6ca1\u6709\u4efb\u4f55\u533a\u522b\u3002<\/strong> \u4f46\u5173\u952e\u4e0d\u5728\u4e8e\u5de5\u5177\uff0c\u800c\u5728\u4e8e\u5de5\u5177\u88ab\u8c01\u3001\u4ee5\u4ec0\u4e48\u65b9\u5f0f\u53d1\u73b0\u548c\u8c03\u7528\u3002<\/p>\n<hr \/>\n<h2 id=\"skill-vs-cli\">\u4e8c\u3001Skill vs CLI \u2014\u2014 &#8220;\u8c03\u7528\u65b9\u5f0f\u53d8\u4e86&#8221;\u672c\u8eab\u5c31\u662f\u9769\u547d<\/h2>\n<h3 id=\"21\">2.1 \u9002\u914d\u65b9\u5411\u7684\u53cd\u8f6c<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code>\u4f20\u7edf CLI\uff1a   \u4eba \u2500\u2500\u5fc5\u987b\u9002\u5e94\u2500\u2500\u2192 \u5de5\u5177\u7684\u8bed\u6cd5\u548c\u53c2\u6570\n                           \u2191\n                      \u4eba\u505a\u9002\u914d\u5de5\u4f5c\n\n\u6280\u80fd\u6a21\u5f0f\uff1a   \u4eba \u2500\u2500\u8bf4\u610f\u56fe\u2500\u2500\u2192 AI \u2500\u2500\u9002\u914d\u2500\u2500\u2192 \u5de5\u5177\n                                     \u2191\n                               AI \u505a\u9002\u914d\u5de5\u4f5c\n<\/code><\/pre>\n<\/div>\n<p>CLI \u7684\u8c03\u7528\u94fe\u8def\u662f<strong>\u4eba \u2192 \u8bb0\u53c2\u6570 \u2192 \u6572\u547d\u4ee4 \u2192 \u89e3\u8bfb\u8f93\u51fa<\/strong>\uff0c\u6bcf\u4e00\u6b65\u90fd\u9700\u8981\u4eba\u7684\u8ba4\u77e5\u53c2\u4e0e\u3002<\/p>\n<p>Skill \u7684\u8c03\u7528\u94fe\u8def\u662f<strong>\u4eba \u2192 \u8bf4\u610f\u56fe \u2192 AI \u8bfb\u8bf4\u660e\u4e66 \u2192 AI \u6267\u884c \u2192 AI \u89e3\u8bfb\u7ed3\u679c<\/strong>\u3002\u9002\u914d\u6210\u672c\u7684\u627f\u62c5\u8005\u4ece\u4eba\u53d8\u6210\u4e86\u7cfb\u7edf\u3002<\/p>\n<h3 id=\"22\">2.2 \u5386\u53f2\u4e0a\u6bcf\u6b21\u90fd\u5982\u6b64<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u65f6\u4ee3<\/th>\n<th>\u5de5\u5177\u672c\u8d28<\/th>\n<th>\u4ea4\u4e92\u65b9\u5f0f<\/th>\n<th>\u9002\u914d\u8005<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DOS<\/td>\n<td>\u7a0b\u5e8f\u8fd8\u662f\u7a0b\u5e8f<\/td>\n<td>\u547d\u4ee4\u884c<\/td>\n<td>\u4eba<\/td>\n<\/tr>\n<tr>\n<td>GUI \u684c\u9762<\/td>\n<td>\u7a0b\u5e8f\u8fd8\u662f\u7a0b\u5e8f<\/td>\n<td>\u9f20\u6807\u70b9\u51fb\u3001\u7a97\u53e3<\/td>\n<td>\u4eba\uff08\u95e8\u69db\u964d\u4f4e\u4f46\u4ecd\u5728\uff09<\/td>\n<\/tr>\n<tr>\n<td>\u641c\u7d22\u5f15\u64ce<\/td>\n<td>\u6570\u636e\u8fd8\u662f\u6570\u636e<\/td>\n<td>\u5173\u952e\u8bcd<\/td>\n<td>\u4eba<\/td>\n<\/tr>\n<tr>\n<td>\u79fb\u52a8\u4e92\u8054\u7f51<\/td>\n<td>\u7a0b\u5e8f\u8fd8\u662f\u7a0b\u5e8f<\/td>\n<td>\u89e6\u6478\u3001\u8bed\u97f3<\/td>\n<td>\u4eba<\/td>\n<\/tr>\n<tr>\n<td><strong>AI Agent + Skill<\/strong><\/td>\n<td><strong>\u7a0b\u5e8f\u8fd8\u662f\u7a0b\u5e8f<\/strong><\/td>\n<td><strong>\u610f\u56fe\u8868\u8fbe<\/strong><\/td>\n<td><strong>AI<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6bcf\u6b21\u4ea4\u4e92\u65b9\u5f0f\u7684\u8dc3\u8fc1\uff0c\u9a71\u52a8\u5b83\u7684\u90fd\u4e0d\u662f&#8221;\u5de5\u5177\u4ee3\u7801\u53d8\u9ad8\u7ea7\u4e86&#8221;\uff0c\u800c\u662f\u9002\u914d\u8d1f\u62c5\u7684\u8f6c\u79fb\u3002\u8fd9\u4e00\u8f6e\u7684\u4e0d\u540c\u5728\u4e8e\uff1a\u9002\u914d\u8005\u4ece\u4eba\u53d8\u6210\u4e86 AI\uff0c\u8fd9\u662f\u8d28\u53d8\u800c\u4e0d\u4ec5\u4ec5\u662f\u91cf\u53d8\u3002<\/p>\n<h3 id=\"23\">2.3 \u53e6\u4e00\u4e2a\u88ab\u4f4e\u4f30\u7684\u53d8\u5316\uff1a\u5de5\u5177\u7ec4\u5408\u7684\u81ea\u7531\u5ea6<\/h3>\n<p>\u72ec\u7acb CLI \u5de5\u5177\u8981\u534f\u4f5c\uff0c\u4eba\u9700\u8981\u5b66\u6bcf\u4e2a\u5de5\u5177\u7684\u63a5\u53e3\u3001\u5199\u80f6\u6c34\u811a\u672c\u3002\u4f46\u5f53 AI \u540c\u65f6\u6301\u6709\u591a\u4e2a Skill \u7684\u8bf4\u660e\u4e66\u540e\uff0c\u53ef\u4ee5<strong>\u4e34\u573a\u7f16\u6392\u7ec4\u5408<\/strong>\uff1a<\/p>\n<div class=\"highlight\">\n<pre><span><\/span><code>\u7528\u6237\uff1a&quot;\u68c0\u67e5\u73af\u5883\u6ca1\u95ee\u9898\u540e\uff0c\u8dd1\u4e00\u904d\u6240\u6709\u793a\u4f8b\u811a\u672c\uff0c\u628a\u5931\u8d25\u7684\u5217\u51fa\u6765&quot;\n\nAI \u5185\u90e8\u7f16\u6392\uff1a\n  project_env \u2192 \u904d\u5386 examples\/*.py \u2192 \u6536\u96c6\u62a5\u9519 \u2192 \u751f\u6210\u62a5\u544a\n<\/code><\/pre>\n<\/div>\n<p>\u4e24\u4e2a Skill \u7684\u4f5c\u8005\u4ece\u672a\u8003\u8651\u8fc7\u5f7c\u6b64\u7684\u5b58\u5728\uff0c\u4f46 AI \u5728\u73b0\u573a\u628a\u5b83\u4eec\u7f1d\u5230\u4e86\u4e00\u8d77\u3002\u8fd9\u662f CLI \u72ec\u7acb\u8fd0\u884c\u65e0\u6cd5\u505a\u5230\u7684\u3002<\/p>\n<hr \/>\n<h2 id=\"skill-vs-mcp\">\u4e09\u3001Skill vs MCP \u2014\u2014 \u4e0d\u540c\u5c42\u6b21\u7684\u5206\u5de5<\/h2>\n<p>\u5f53\u7406\u89e3\u4e86 Skill \u4e4b\u540e\uff0c\u4e0b\u4e00\u4e2a\u81ea\u7136\u7684\u95ee\u9898\u662f\uff1a<strong>MCP \u53c8\u662f\u4ec0\u4e48\uff1f\u548c Skill \u6709\u4ec0\u4e48\u4e0d\u540c\uff1f<\/strong><\/p>\n<h3 id=\"31\">3.1 \u4e09\u8005\u5b9a\u4f4d\u901f\u89c8<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u7ef4\u5ea6<\/th>\n<th>CLI<\/th>\n<th>Skill<\/th>\n<th>MCP<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u672c\u8d28<\/strong><\/td>\n<td>\u5de5\u5177\u7684\u539f\u59cb\u63a5\u53e3<\/td>\n<td>\u5de5\u5177\u7684 AI \u8bf4\u660e\u4e66<\/td>\n<td>\u5de5\u5177\u7684\u6807\u51c6\u5316\u534f\u8bae<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8c01\u7528<\/strong><\/td>\n<td>\u4eba<\/td>\n<td>AI\uff08\u901a\u8fc7\u8bfb SKILL.md\uff09<\/td>\n<td>AI\uff08\u901a\u8fc7\u534f\u8bae\u89c4\u8303\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u4f5c\u7528\u57df<\/strong><\/td>\n<td>\u5355\u6b21\u6267\u884c<\/td>\n<td>\u9879\u76ee\u7ea7\u3001\u4e0a\u4e0b\u6587\u7ed1\u5b9a<\/td>\n<td>\u8de8\u9879\u76ee\u3001\u670d\u52a1\u7ea7<\/td>\n<\/tr>\n<tr>\n<td><strong>\u53d1\u73b0\u673a\u5236<\/strong><\/td>\n<td>\u4eba\u77e5\u9053\u5b83\u5b58\u5728<\/td>\n<td>AI \u626b\u63cf\u76ee\u5f55\u5339\u914d<\/td>\n<td>\u534f\u8bae\u63e1\u624b\u6ce8\u518c<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8f93\u5165\u8f93\u51fa<\/strong><\/td>\n<td>\u547d\u4ee4\u884c\u53c2\u6570<\/td>\n<td>\u6587\u672c\u6d41<\/td>\n<td>\u7ed3\u6784\u5316 JSON<\/td>\n<\/tr>\n<tr>\n<td><strong>\u53ef\u7ec4\u5408\u6027<\/strong><\/td>\n<td>\u4eba\u624b\u52a8\u7f16\u6392<\/td>\n<td>AI \u81ea\u52a8\u7f16\u6392<\/td>\n<td>AI \u81ea\u52a8\u7f16\u6392<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8de8\u9879\u76ee\u590d\u7528<\/strong><\/td>\n<td>\u590d\u5236\u7c98\u8d34<\/td>\n<td>\u9700\u62f7\u8d1d\u5230\u6bcf\u4e2a\u9879\u76ee<\/td>\n<td>\u4e00\u6b21\u90e8\u7f72\u5230\u5904\u53ef\u7528<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"32\">3.2 \u6838\u5fc3\u5dee\u5f02<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code>Skill\uff08\u672c\u5730\u7248\uff09:\n  \u9879\u76ee\u91cc\u653e\u811a\u672c + \u8bf4\u660e\u4e66\n  AI \u770b\u5230\u540e\uff1a\u8bfb \u2192 \u8dd1 \u2192 \u89e3\u8bfb\n\nMCP\uff08\u534f\u8bae\u7248\uff09:\n  \u8fdc\u7a0b\u670d\u52a1\u5b9e\u73b0\u6807\u51c6\u534f\u8bae\n  AI \u770b\u5230\u540e\uff1a\u901a\u8fc7\u534f\u8bae\u8c03\u7528 \u2192 \u83b7\u53d6\u7ed3\u6784\u5316\u7ed3\u679c\n<\/code><\/pre>\n<\/div>\n<h3 id=\"33\">3.3 \u4e3a\u4ec0\u4e48\u4e0d\u662f&#8221;\u9009\u4e00\u4e2a\u5c31\u884c&#8221;<\/h3>\n<p>\u4e09\u8005\u89e3\u51b3\u7684\u662f<strong>\u4e0d\u540c\u5c42\u6b21<\/strong>\u7684\u95ee\u9898\uff1a<\/p>\n<div class=\"highlight\">\n<pre><span><\/span><code>\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \u5c42\u6b21         \u89e3\u51b3\u4ec0\u4e48          \u600e\u4e48\u89e3\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  CLI       \u5de5\u5177&quot;\u80fd\u4e0d\u80fd\u8dd1&quot;    \u53c2\u6570\u5b9a\u4e49\u3001\u5165\u53e3\n  Skill     \u5de5\u5177&quot;AI \u4f1a\u4e0d\u4f1a\u7528&quot;  \u8bf4\u660e\u4e66\u3001\u4e0a\u4e0b\u6587\n  MCP       \u5de5\u5177&quot;AI \u80fd\u4e0d\u80fd\u627e\u5230&quot; \u534f\u8bae\u3001\u6ce8\u518c\u3001\u6807\u51c6\u5316\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n<\/code><\/pre>\n<\/div>\n<p>\u4e00\u4e2a\u6bd4\u55bb\uff1a<\/p>\n<blockquote>\n<p><strong>CLI \u662f\u63d2\u5ea7<\/strong>\uff08\u901a\u7535\u6807\u51c6\uff09<br \/>\n<strong>Skill \u662f\u7535\u5668\u8bf4\u660e\u4e66<\/strong>\uff08\u544a\u8bc9 AI \u8fd9\u4e2a\u7535\u5668\u600e\u4e48\u7528\uff09<br \/>\n<strong>MCP \u662f\u7269\u8054\u7f51\u534f\u8bae<\/strong>\uff08\u8ba9\u7535\u5668\u80fd\u88ab\u8fdc\u7a0b\u53d1\u73b0\u548c\u63a7\u5236\uff09<\/p>\n<\/blockquote>\n<p>\u4f60\u7684\u5fae\u6ce2\u7089\u9762\u677f\uff08CLI\uff09\u4e00\u76f4\u90fd\u5728\uff0c\u667a\u80fd\u5bb6\u5c45 App\uff08MCP\uff09\u8ba9\u5b83\u80fd\u88ab\u8fdc\u7a0b\u8c03\u7528\uff0c\u800c\u7535\u5668\u8bf4\u660e\u4e66\uff08Skill\uff09\u8ba9\u65b0\u6765\u7684\u7ba1\u5bb6\uff08AI\uff09\u77e5\u9053\u8fd9\u4e1c\u897f\u662f\u52a0\u70ed\u98df\u7269\u7684\u3002<strong>\u4e09\u6837\u4e1c\u897f\u89e3\u51b3\u4e09\u4e2a\u4e0d\u540c\u95ee\u9898\uff0c\u4e0d\u5b58\u5728\u8c01\u66ff\u4ee3\u8c01\u3002<\/strong><\/p>\n<h3 id=\"34\">3.4 \u4e09\u8005\u7684\u5408\u7406\u5171\u5b58<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code><span class=\"err\">\u4e00\u4e2a\u5178\u578b\u7684<\/span><span class=\"w\"> <\/span><span class=\"n\">AI<\/span><span class=\"w\"> <\/span><span class=\"err\">\u7f16\u7a0b\u52a9\u624b\u67b6\u6784\uff1a<\/span>\n\n<span class=\"n\">MCP<\/span><span class=\"w\"> <\/span><span class=\"err\">\u5c42<\/span><span class=\"p\">:<\/span><span class=\"w\">    <\/span><span class=\"err\">\u2502<\/span><span class=\"w\"> <\/span><span class=\"n\">GitHub<\/span><span class=\"w\"> <\/span><span class=\"n\">MCP<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2502<\/span><span class=\"w\"> <\/span><span class=\"err\">\u6570\u636e\u5e93<\/span><span class=\"w\"> <\/span><span class=\"n\">MCP<\/span><span class=\"w\"> <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2502<\/span><span class=\"w\"> <\/span><span class=\"err\">\u81ea\u5b9a\u4e49<\/span><span class=\"w\"> <\/span><span class=\"n\">MCP<\/span><span class=\"w\"> <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">  <\/span><span class=\"p\">(<\/span><span class=\"err\">\u8fdc\u7aef\u670d\u52a1<\/span><span class=\"p\">)<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">  <\/span><span class=\"p\">(<\/span><span class=\"err\">\u8fdc\u7aef\u670d\u52a1<\/span><span class=\"p\">)<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">  <\/span><span class=\"p\">(<\/span><span class=\"err\">\u672c\u5730\u670d\u52a1<\/span><span class=\"p\">)<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span>\n<span class=\"w\">                  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">                  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">                  <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">                    <\/span><span class=\"n\">AI<\/span><span class=\"w\"> <\/span><span class=\"err\">\u7f16\u6392\u5c42<\/span><span class=\"w\">                        <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">  <\/span><span class=\"err\">\u540c\u65f6\u6301\u6709\u5168\u90e8<\/span><span class=\"w\"> <\/span><span class=\"k\">tool<\/span><span class=\"w\"> <\/span><span class=\"n\">list<\/span><span class=\"err\">\uff0c\u6309\u9700\u8c03\u5ea6<\/span><span class=\"w\">                    <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"w\">           <\/span><span class=\"err\">\u2514\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\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span>\n<span class=\"w\">                  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">                   <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"n\">Skill<\/span><span class=\"w\"> <\/span><span class=\"err\">\u5c42<\/span><span class=\"p\">:<\/span><span class=\"w\">  <\/span><span class=\"err\">\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2510<\/span><span class=\"w\">    <\/span><span class=\"err\">\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2510<\/span>\n<span class=\"w\">          <\/span><span class=\"err\">\u2502<\/span><span class=\"w\"> <\/span><span class=\"n\">project_env<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">    <\/span><span class=\"err\">\u2502<\/span><span class=\"w\"> <\/span><span class=\"n\">code_check<\/span><span class=\"w\">  <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2190<\/span><span class=\"w\"> <\/span><span class=\"err\">\u9879\u76ee\u4e13\u5c5e\uff0c\u643a\u5e26\u9879\u76ee\u4e0a\u4e0b\u6587<\/span>\n<span class=\"w\">          <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span><span class=\"w\">    <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span>\n<span class=\"w\">                 <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">                  <\/span><span class=\"err\">\u2502<\/span>\n<span class=\"n\">CLI<\/span><span class=\"w\"> <\/span><span class=\"err\">\u5c42<\/span><span class=\"p\">:<\/span><span class=\"w\">   <\/span><span class=\"err\">\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2510<\/span>\n<span class=\"w\">          <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">        <\/span><span class=\"n\">python<\/span><span class=\"w\"> <\/span><span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"n\">py<\/span><span class=\"w\"> <\/span><span class=\"o\">...<\/span><span class=\"w\">       <\/span><span class=\"err\">\u2502<\/span><span class=\"w\">   <\/span><span class=\"err\">\u2190<\/span><span class=\"w\"> <\/span><span class=\"err\">\u6700\u7ec8\u90fd\u662f\u6267\u884c\u547d\u4ee4<\/span>\n<span class=\"w\">          <\/span><span class=\"err\">\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/span>\n<\/code><\/pre>\n<\/div>\n<p><strong>MCP \u56de\u7b54&#8221;AI \u80fd\u63a5\u89e6\u54ea\u4e9b\u5de5\u5177&#8221;<\/strong>\uff08\u6a2a\u5411\u6269\u5c55\uff09\uff0c<strong>Skill \u56de\u7b54&#8221;\u5728\u8fd9\u4e2a\u9879\u76ee\u91cc\u5de5\u5177\u662f\u4ec0\u4e48\u3001\u600e\u4e48\u7528&#8221;<\/strong>\uff08\u7eb5\u5411\u6df1\u5ea6\uff09\uff0c<strong>CLI \u662f\u5b83\u4eec\u5171\u540c\u7684\u6267\u884c\u57fa\u7840<\/strong>\u3002\u4e0d\u662f\u91cd\u590d\uff0c\u662f\u5206\u5c42\u3002<\/p>\n<hr \/>\n<h2 id=\"ai\">\u56db\u3001AI \u6539\u53d8\u5916\u90e8\u4e16\u754c\u7684\u5b8c\u6574\u80fd\u529b\u77e9\u9635<\/h2>\n<p>Skill \u548c MCP \u53ea\u662f AI \u5de5\u5177\u7bb1\u91cc\u9760\u4e0a\u5c42\u7684\u4e24\u4e2a\u5c01\u88c5\u3002AI \u771f\u6b63\u89e6\u8fbe\u7269\u7406\u4e16\u754c\u7684\u65b9\u5f0f\u8fdc\u4e0d\u6b62\u8fd9\u4e24\u6761\u8def\u5f84\uff1a<\/p>\n<h3 id=\"41\">4.1 \u516d\u5c42\u80fd\u529b<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u5c42\u7ea7<\/th>\n<th>\u65b9\u5f0f<\/th>\n<th>\u5f62\u6001\u793a\u4f8b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u6587\u4ef6\u7cfb\u7edf<\/strong><\/td>\n<td>\u8bfb\/\u5199\/\u5220\/\u641c\u6587\u4ef6<\/td>\n<td>\u521b\u5efa main.py\u3001\u4fee\u6539\u914d\u7f6e<\/td>\n<\/tr>\n<tr>\n<td><strong>\u7ec8\u7aef\u547d\u4ee4<\/strong><\/td>\n<td>\u6267\u884c\u4efb\u610f shell \u547d\u4ee4<\/td>\n<td>pip install\u3001git push\u3001docker up<\/td>\n<\/tr>\n<tr>\n<td><strong>\u7f51\u7edc\u8bf7\u6c42<\/strong><\/td>\n<td>HTTP\/API \u8c03\u7528\u5916\u90e8\u670d\u52a1<\/td>\n<td>GitHub API\u3001Slack Webhook<\/td>\n<\/tr>\n<tr>\n<td><strong>\u4ee3\u7801\u751f\u6210<\/strong><\/td>\n<td>\u5236\u9020\u65b0\u5de5\u5177\u5e76\u843d\u5730<\/td>\n<td>\u751f\u6210\u811a\u624b\u67b6\u4ee3\u7801\u3001\u521b\u5efa\u65b0\u6a21\u5757<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6d4f\u89c8\u5668\u64cd\u4f5c<\/strong><\/td>\n<td>\u64cd\u4f5c DOM\u3001\u586b\u8868\u5355<\/td>\n<td>\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u64cd\u4f5c\u65e0 API \u7684\u7cfb\u7edf<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6570\u636e\u5e93\/OS<\/strong><\/td>\n<td>\u8bfb\u5199\u6570\u636e\u3001\u7ba1\u7406\u8fdb\u7a0b<\/td>\n<td>\u67e5\u65e5\u5fd7\u3001\u542f\u505c\u670d\u52a1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"42-skill-mcp\">4.2 Skill \u548c MCP \u5728\u8fd9\u5f20\u56fe\u91cc\u7684\u4f4d\u7f6e<\/h3>\n<div class=\"highlight\">\n<pre><span><\/span><code>                         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                         \u2502  \u5916\u90e8\u670d\u52a1     \u2502\n                         \u2502  (GitHub,    \u2502\n                         \u2502   Slack,     \u2502\n                         \u2502   \u6570\u636e\u5e93)    \u2502\n                         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                                \u2502 HTTP \/ API\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  \u7528\u6237     \u2502    \u2502      \u2502   \u2502  \u7f51\u7edc\u8bf7\u6c42     \u2502\n\u2502 &quot;\u68c0\u67e5\u73af\u5883&quot;\u251c\u2500\u2500\u2500\u2192\u2502  AI  \u251c\u2500\u2500\u2192\u2502  requests     \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2502      \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                \u2502      \u2502\n                \u2502      \u251c\u2500\u2500\u2192\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                \u2502      \u2502   \u2502  \u7ec8\u7aef\u547d\u4ee4     \u2502  \u2192 git, pip, docker...\n                \u2502      \u2502   \u2502  subprocess   \u2502\n                \u2502      \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                \u2502      \u2502\n                \u2502      \u251c\u2500\u2500\u2192\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                \u2502      \u2502   \u2502  \u6587\u4ef6\u7cfb\u7edf     \u2502  \u2192 \u8bfb\/\u5199\/\u5220\/\u641c\n                \u2502      \u2502   \u2502  open\/fwrite  \u2502\n                \u2502      \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                \u2502      \u2502\n                \u2502      \u251c\u2500\u2500\u2192\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                \u2502      \u2502   \u2502  \u4ee3\u7801\u751f\u6210     \u2502  \u2192 \u521b\u9020\u65b0\u6587\u4ef6\/\u5de5\u5177\n                \u2502      \u2502   \u2502  Write()      \u2502\n                \u2502      \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                \u2502      \u2502\n                \u2502      \u251c\u2500\u2500\u2192\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                \u2502      \u2502   \u2502  Skill        \u2502  \u2190 \u7ed9\u4e0a\u9762\u56db\u6761\u914d\u8bf4\u660e\u4e66\n                \u2502      \u2502   \u2502  (\u9879\u76ee\u7ea7\u5c01\u88c5) \u2502\n                \u2502      \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                \u2502      \u2502\n                \u2502      \u2514\u2500\u2500\u2192\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                \u2502          \u2502  MCP          \u2502  \u2190 \u7ed9\u7f51\u7edc\u8bf7\u6c42\u914d\u534f\u8bae\n                \u2502          \u2502  (\u6807\u51c6\u534f\u8bae)   \u2502\n                \u2502          \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n<\/div>\n<h3 id=\"43\">4.3 \u5404\u5c42\u7684\u89d2\u8272\u5b9a\u4f4d<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u5c42<\/th>\n<th>\u89d2\u8272<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6587\u4ef6\u7cfb\u7edf \/ Shell \/ HTTP<\/td>\n<td><strong>\u5e95\u5c42\u80fd\u529b<\/strong> \u2014 AI \u771f\u6b63\u6539\u53d8\u4e16\u754c\u7684\u7269\u7406\u901a\u9053<\/td>\n<\/tr>\n<tr>\n<td>Skill<\/td>\n<td><strong>\u9879\u76ee\u7ea7\u77e5\u8bc6\u5c01\u88c5<\/strong> \u2014 \u8ba9 AI \u77e5\u9053\u5728\u8fd9\u4e2a\u9879\u76ee\u91cc\u8be5\u600e\u4e48\u7528\u5e95\u5c42\u80fd\u529b<\/td>\n<\/tr>\n<tr>\n<td>MCP<\/td>\n<td><strong>\u8de8\u9879\u76ee\u534f\u8bae\u5c01\u88c5<\/strong> \u2014 \u8ba9 AI \u7528\u7edf\u4e00\u65b9\u5f0f\u5bf9\u63a5\u5916\u90e8\u670d\u52a1<\/td>\n<\/tr>\n<tr>\n<td>\u4ee3\u7801\u751f\u6210<\/td>\n<td><strong>\u521b\u9020\u65b0\u80fd\u529b<\/strong> \u2014 AI \u81ea\u5df1\u9020\u5de5\u5177\uff0c\u6539\u53d8\u80fd\u529b\u7684\u8fb9\u754c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 id=\"_4\">\u4e94\u3001\u4e00\u4e2a\u6280\u80fd\u7684\u5185\u90e8\u53c2\u6570\u6d41<\/h2>\n<p>\u4ee5 <code>project_env<\/code> \u4e3a\u4f8b\uff0c\u4ece\u7528\u6237\u8f93\u5165\u5230\u7ed3\u679c\u663e\u793a\u7684\u5b8c\u6574\u94fe\u8def\uff1a<\/p>\n<div class=\"highlight\">\n<pre><span><\/span><code>\u7528\u6237: &quot;\u68c0\u67e5\u73af\u5883&quot;\n  \u2502\n  \u25bc\nAI \u626b\u63cf .trae\/skills\/ \u76ee\u5f55\n  \u2502\n  \u251c\u2500 \u547d\u4e2d project_env\uff08SKILL.md name \u5339\u914d\uff09\n  \u2502\n  \u25bc\nAI \u8bfb\u53d6 SKILL.md\n  \u2502\n  \u251c\u2500 \u77e5\u9053\u529f\u80fd\uff1a\u68c0\u67e5 Python\/PyTorch\/CUDA\/\u4f9d\u8d56\n  \u2502\n  \u25bc\nAI \u6267\u884c python main.py\n  \u2502\n  \u25bc\n\u811a\u672c\u8f93\u51fa\uff1a\n  Python: 3.14.3\n  PyTorch: 2.11.0+cpu\n  CUDA \u53ef\u7528: False\n  \u9879\u76ee\u4f9d\u8d56: requirements.txt (23 \u4e2a\u5305)\n  \u2502\n  \u25bc\nAI \u89e3\u8bfb\u7ed3\u679c \u2192 \u5448\u73b0\u7ed9\u7528\u6237\n<\/code><\/pre>\n<\/div>\n<p>\u5bf9\u4e8e\u53c2\u6570\u66f4\u590d\u6742\u7684 Skill\uff08\u6bd4\u5982\u524d\u9762\u7684 <code>test_skill<\/code> \u652f\u6301 <code>--show-hidden<\/code>\u3001<code>--sort-by<\/code>\uff09\uff0c\u6d41\u7a0b\u4e00\u6837\uff1a<\/p>\n<div class=\"highlight\">\n<pre><span><\/span><code>\u7528\u6237: &quot;\u6280\u80fd\u6d4b\u8bd5 examples --sort-by size&quot;\n  \u2502\n  \u25bc\nAI \u7406\u89e3\u4e3a: python main.py examples --sort-by size\n  \u2502\n  \u25bc\nargparse \u89e3\u6790\u53c2\u6570 \u2192 list_directory() \u51fd\u6570 \u2192 \u8fd4\u56de\u7ed3\u679c\n<\/code><\/pre>\n<\/div>\n<p>\u65e0\u8bba\u662f\u96f6\u53c2\u6570\u8fd8\u662f\u591a\u53c2\u6570\uff0c<strong>AI \u90fd\u5728\u4e2d\u95f4\u5145\u5f53\u4e86\u7ffb\u8bd1\u5b98\u7684\u89d2\u8272<\/strong>\u2014\u2014\u628a\u4eba\u8bdd\u7ffb\u8bd1\u6210\u811a\u672c\u80fd\u61c2\u7684\u53c2\u6570\u7ec4\u5408\u3002<\/p>\n<hr \/>\n<h2 id=\"_5\">\u516d\u3001\u6280\u80fd\u76ee\u5f55\u53ef\u4ee5\u88c5\u4ec0\u4e48<\/h2>\n<p>\u4e00\u4e2a\u6280\u80fd\u76ee\u5f55\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5fae\u578b\u5de5\u4f5c\u7a7a\u95f4\u3002\u9664\u4e86 <code>SKILL.md<\/code> \u548c <code>main.py<\/code>\uff0c\u5e38\u89c1\u7684\u6587\u4ef6\u7c7b\u578b\u6709\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6587\u4ef6\u7c7b\u578b<\/th>\n<th>\u793a\u4f8b<\/th>\n<th>\u4f5c\u7528<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u914d\u7f6e\u6587\u4ef6<\/strong><\/td>\n<td><code>config.json<\/code> \/ <code>config.yaml<\/code><\/td>\n<td>\u6280\u80fd\u7684\u9ed8\u8ba4\u53c2\u6570\u3001\u5f00\u5173<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8f85\u52a9\u811a\u672c<\/strong><\/td>\n<td><code>utils.py<\/code> \/ <code>helpers.py<\/code><\/td>\n<td>main.py \u5f15\u7528\u7684\u516c\u5171\u51fd\u6570<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6a21\u677f\u6587\u4ef6<\/strong><\/td>\n<td><code>report.md<\/code> \/ <code>email.html<\/code><\/td>\n<td>\u8f93\u51fa\u683c\u5f0f\u5316\u6a21\u677f<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6d4b\u8bd5\u811a\u672c<\/strong><\/td>\n<td><code>test_main.py<\/code><\/td>\n<td>\u6280\u80fd\u81ea\u8eab\u7684\u5355\u5143\u6d4b\u8bd5<\/td>\n<\/tr>\n<tr>\n<td><strong>\u4f9d\u8d56\u58f0\u660e<\/strong><\/td>\n<td><code>requirements.txt<\/code><\/td>\n<td>\u6280\u80fd\u4e13\u5c5e\u7684\u7b2c\u4e09\u65b9\u5305<\/td>\n<\/tr>\n<tr>\n<td><strong>\u6570\u636e\u6587\u4ef6<\/strong><\/td>\n<td><code>rules.csv<\/code> \/ <code>schema.json<\/code><\/td>\n<td>\u89c4\u5219\u3001\u6620\u5c04\u8868\u7b49\u53c2\u8003\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td><strong>\u793a\u4f8b\u8d44\u6e90<\/strong><\/td>\n<td><code>sample_input.txt<\/code><\/td>\n<td>\u6f14\u793a\u7528\u7684\u8f93\u5165\u8f93\u51fa\u6837\u4f8b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e00\u4e2a\u590d\u6742\u7684&#8221;\u4ee3\u7801\u8d28\u91cf\u68c0\u67e5&#8221;\u6280\u80fd\u53ef\u80fd\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<div class=\"highlight\">\n<pre><span><\/span><code>code_check\/\n\u251c\u2500\u2500 SKILL.md\n\u251c\u2500\u2500 main.py\n\u251c\u2500\u2500 config.yaml\n\u251c\u2500\u2500 checks\/\n\u2502   \u251c\u2500\u2500 pep8.py\n\u2502   \u251c\u2500\u2500 complexity.py\n\u2502   \u2514\u2500\u2500 naming.py\n\u251c\u2500\u2500 templates\/\n\u2502   \u2514\u2500\u2500 report.md\n\u251c\u2500\u2500 rules\/\n\u2502   \u2514\u2500\u2500 ignore_list.txt\n\u2514\u2500\u2500 tests\/\n    \u2514\u2500\u2500 test_checks.py\n<\/code><\/pre>\n<\/div>\n<hr \/>\n<h2 id=\"_6\">\u4e03\u3001\u7ed3\u8bed<\/h2>\n<p>\u56de\u5230\u6700\u5f00\u59cb\u7684\u4e09\u4e2a\u7591\u95ee\uff1a<\/p>\n<p><strong>&#8220;Skill \u548c CLI \u6709\u4f55\u533a\u522b\uff0c\u662f\u5426\u91cd\u590d\uff1f&#8221;<\/strong><\/p>\n<p>CLI \u662f\u5de5\u5177\u7684\u6267\u884c\u63a5\u53e3\uff0cSkill \u662f\u5728\u5176\u4e0a\u52a0\u4e86\u4e00\u672c AI \u53ef\u8bfb\u7684\u8bf4\u660e\u4e66\u3002\u6ca1\u6709\u8bf4\u660e\u4e66\uff0cAI \u4e0d\u77e5\u9053\u5de5\u5177\u7684\u5b58\u5728\u548c\u7528\u6cd5\uff1b\u6ca1\u6709 CLI\uff0c\u8bf4\u660e\u4e66\u6ca1\u6709\u53ef\u9a71\u52a8\u7684\u4e1c\u897f\u3002<strong>\u5b83\u4eec\u662f&#8221;\u65b9\u5411\u76d8&#8221;\u548c&#8221;\u9a7e\u9a76\u6307\u5357&#8221;\u7684\u5173\u7cfb\uff0c\u4e0d\u662f\u91cd\u590d\u3002<\/strong><\/p>\n<p><strong>&#8220;Skill \u548c MCP \u6709\u4f55\u533a\u522b\uff0c\u4e3a\u4f55\u8981\u5e76\u5b58\uff1f&#8221;<\/strong><\/p>\n<p>Skill \u89e3\u51b3&#8221;\u5728\u8fd9\u4e2a\u9879\u76ee\u91cc AI \u8be5\u600e\u4e48\u7528\u8fd9\u4e2a\u5de5\u5177&#8221;\uff0cMCP \u89e3\u51b3&#8221;AI \u5982\u4f55\u53d1\u73b0\u548c\u5bf9\u63a5\u4e00\u4e2a\u6807\u51c6\u5316\u7684\u8fdc\u7a0b\u5de5\u5177&#8221;\u3002Skill \u662f\u9879\u76ee\u7ea7\u3001\u4e0a\u4e0b\u6587\u7ed1\u5b9a\u7684\uff0cMCP \u662f\u8de8\u9879\u76ee\u3001\u534f\u8bae\u6807\u51c6\u5316\u7684\u3002<strong>\u4e00\u4e2a\u662f\u672c\u5730\u8bf4\u660e\u4e66\uff0c\u4e00\u4e2a\u662f\u8fdc\u7a0b\u534f\u8bae\u6807\u51c6\u2014\u2014\u5404\u7ba1\u4e00\u5c42\u3002<\/strong><\/p>\n<p><strong>&#8220;\u9664\u4e86 MCP \u548c Skill\uff0cAI \u8fd8\u6709\u54ea\u4e9b\u65b9\u5f0f\u6539\u53d8\u5916\u90e8\u4e16\u754c\uff1f&#8221;<\/strong><\/p>\n<p>\u6587\u4ef6\u8bfb\u5199\u3001Shell \u6267\u884c\u3001HTTP \u8c03\u7528\u3001\u4ee3\u7801\u751f\u6210\u3001\u6d4f\u89c8\u5668\u64cd\u4f5c\u2014\u2014\u8fd9\u4e94\u8005\u662f AI \u6539\u53d8\u4e16\u754c\u7684<strong>\u5e95\u5c42\u7269\u7406\u901a\u9053<\/strong>\u3002Skill \u548c MCP \u53ea\u662f\u5728\u8fd9\u4e94\u4e2a\u901a\u9053\u4e4b\u4e0a\u52a0\u4e86<strong>\u77e5\u8bc6\u5c42\u548c\u534f\u8bae\u5c42<\/strong>\uff0c\u8ba9 AI \u77e5\u9053&#8221;\u4ec0\u4e48\u65f6\u5019\u8be5\u8d70\u54ea\u6761\u901a\u9053\u3001\u600e\u4e48\u8d70\u3001\u8d70\u5230\u54ea\u91cc\u7b97\u6210\u529f&#8221;\u3002<\/p>\n<p><strong>\u6700\u7ec8\u4e00\u53e5\u8bdd\uff1a\u5e95\u5c42\u80fd\u529b\u662f&#8221;\u624b\u811a&#8221;\uff0cSkill \u662f&#8221;\u4f7f\u7528\u624b\u518c&#8221;\uff0cMCP \u662f&#8221;\u901a\u8baf\u534f\u8bae&#8221;\uff0c\u4ee3\u7801\u751f\u6210\u662f&#8221;\u9020\u65b0\u5de5\u5177\u7684\u80fd\u529b&#8221;\u3002\u56db\u8005\u5404\u53f8\u5176\u804c\uff0c\u5171\u540c\u6784\u6210\u4e86 AI \u4e0e\u5916\u90e8\u4e16\u754c\u4ea4\u4e92\u7684\u5b8c\u6574\u56fe\u666f\u3002<\/strong><\/p>\n<hr \/>\n<p><em>\u672c\u6587\u57fa\u4e8e Trae IDE \u7684\u6280\u80fd\u7cfb\u7edf\u5b9e\u9645\u5f00\u53d1\u7ecf\u9a8c\u64b0\u5199\u3002\u6587\u4e2d demo \u4ee3\u7801\u53ef\u5728\u9879\u76ee <code>.trae\/skills\/<\/code> \u76ee\u5f55\u4e0b\u67e5\u770b\u3002<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI \u5982\u4f55\u6539\u53d8\u4e16\u754c\uff1aSkill\u3001MCP\u3001CLI \u7684\u67b6\u6784\u5206\u5c42\u4e0e\u534f\u4f5c \u5f15\u8a00\uff1a\u4e00\u4e2a\u770b\u4f3c&#8221;\u91cd\u590d&#038;#8221 &hellip; <a href=\"https:\/\/www.liujh168.com\/index.php\/2026\/04\/26\/20260426-003\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cAI \u5982\u4f55\u6539\u53d8\u4e16\u754c\uff1aSkill\u3001MCP\u3001CLI \u7684\u67b6\u6784\u5206\u5c42\u4e0e\u534f\u4f5c\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,49,48],"tags":[51,50,54],"class_list":["post-1782","post","type-post","status-publish","format-standard","hentry","category-ai","category-49","category-48","tag-mcp","tag-skill","tag-54"],"_links":{"self":[{"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/posts\/1782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/comments?post=1782"}],"version-history":[{"count":0,"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/posts\/1782\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/media?parent=1782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/categories?post=1782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liujh168.com\/index.php\/wp-json\/wp\/v2\/tags?post=1782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}