搭建个人AI技能栈:1小时上手可复用模块

最近 GitHub 上有个仓库火了——danielmiessler/Personal_AI_Infrastructure,一天新增近 1.5 万星。它强调构建一套能放大人类能力的 Agent 基础设施。但很多人看完 repository 会问:我到底该写什么代码?怎么落地?

我的看法:别被「基础设施」四个字唬住。它的核心思想是:把日常需要 AI 完成的重复任务,拆成一个个 稳定可复用的技能(Skill),然后用统一接口调度。今天我不介绍仓库代码,而是直接给你一个能抄的模板,让你在 1 小时内搭建自己的个人 AI 技能栈。

1. 这个 Skill 解决什么具体问题

你有没有这样的经历?

  • 每次让 AI 审查代码,都要重新描述“忽略 typo、只看逻辑问题、给出风险等级”
  • 让 AI 写周报,每次都要重复“用 bullet point、突出数据变化、不超过 300 字”
  • 想组合多个 AI 任务(先总结会议纪要,再提取待办,然后排序),每次都手动粘贴结果

问题根源:没有把任务封装成可复用的技能模块。

一个 Skill 就是一个 独立的、可文档化、可版本控制、可组合的功能单元。它定义了三件事:

  1. 触发条件:什么场景下激活这个技能(关键词、文件类型、手势等)
  2. 输入输出规范:需要什么数据,返回什么格式
  3. 执行逻辑:调哪个模型、用什么 prompt、后处理规则

当所有任务都变成 Skill,你就不再是“临时写提示词”,而是在搭建自己的 AI 工具箱。

2. Skill 的触发条件和适用场景

触发条件就是 什么时候自动或手动调用这个 Skill。我把常见触发分成三类:
| 类型 | 示例 | 适用场景 |
|------|------|----------|
| 关键词匹配 | 输入 /review 加代码段 | 代码审查、文档总结 |
| 文件事件 | 监听 .ts 文件保存 | 自动格式检查、测试生成 |
| 会话标签 | 在对话开头写 #code-review | 分类管理长期对话 |

你不需要全部实现,只要选一种最简单的方式让你的 AI 前端(比如 ChatGPT、Claude、自己写的终端工具)能识别。我推荐用 关键词匹配,零依赖,任何平台都能做。

适用场景:任何你一周重复超过 2 次且流程稳定的任务。比如代码审查、Commit 信息生成、PR 描述生成、日志分析、日报周报、文档翻译、API 文档生成。

3. 完整 Skill 结构(SKILL.md 示例)

以下是我自己项目中用的 SKILL.md 模板,直接复制到你的技能文件夹里,改参数就能用。

yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
# SKILL.md - 代码审查技能

name: code-review
version: 1.2.0
description: 对代码段进行结构化审查,输出风险等级和修改建议
author: zhouyihang

# 触发条件
trigger:
  type: keyword
  keywords: ["/review", "/cr", "code-review"]
  # 也可支持文件扩展名触发:extensions: [".ts", ".js", ".py"]

# 输入定义
inputs:
  code:
    type: string
    description: 待审查的代码块
    required: true
  context:
    type: string
    description: 代码的上下文(如项目类型、架构简述)
    required: false
  focus:
    type: enum
    values: ["security", "performance", "logic", "all"]
    default: "all"
    description: 审查重点

# 输出格式
output:
  format: markdown
  structure:
    - risk_level: "high / medium / low"
    - summary: "总体评价"
    - issues:
        - line: 行号或代码片段
          severity: "critical / major / minor"
          description: "问题描述"
          suggestion: "修复建议"
    - recommendations:
        - priority: "必改 / 建议 / 可忽略"
          action: "具体操作步骤"

# 执行逻辑
steps:
  - role: "system"
    prompt: "你是一位高级代码审查者。请根据 {focus} 方向审查代码,只讨论逻辑问题和潜在缺陷,忽略风格和拼写。输出严格遵循 output.structure 格式。"
  - role: "user"
    prompt: |
      代码上下文:{context}
      审查重点:{focus}
      代码:
      ```
      {code}
      ```
  - post_process:
      - extract_json: true
      - validate_risk_level: true

为什么这样写有效?

  • 将输入、输出、步骤显式分离,AI 不会跑偏
  • 输出格式强制结构化,后续可以自动化处理(比如接入 CI流水线)
  • focus 参数让技能适用于不同场景,避免每次重写审查标准

4. 实际案例演示:从差 Prompt 到好 Skill

假设你想让 AI 审查一段 TypeScript 代码。

差 Prompt:

text
1
请审查这段 TypeScript 代码,告诉我有没有问题。

结果: AI 可能给你一堆风格建议(“建议用 const 代替 let”)、忽略真正的逻辑漏洞,或者输出泛泛的“整体良好”。

好 Prompt(基于 SKILL.md 模板):

text
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/code-review focus=logic context=这是一个实时聊天服务的消息处理模块

async function processMessage(msg: Message) {
  const userId = msg.userId;
  if (!userId) {
    return;
  }
  const user = await db.findUser(userId);
  if (!user) {
    logger.warn('User not found');
    return;
  }
  const result = await ai.moderate(msg.content);
  if (result.flagged) {
    await msg.delete();
  }
  await msg.save({status: 'processed'});
}

AI 输出(按 Skill 格式):

markdown
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- risk_level: medium
- summary: 基本流程正确,但存在一处潜在数据竞争和错误处理缺失。
- issues:
    - line: "const result = await ai.moderate(msg.content)"
      severity: major
      description: "msg.content 可能为 undefined,导致 ai.moderate 抛异常"
      suggestion: "添加 !msg.content 的提前返回"
    - line: "await msg.delete()"
      severity: critical
      description: "delete 后仍然执行 save,导致状态不一致"
      suggestion: "在 delete 后直接 return 或使用事务"
- recommendations:
    - priority: 必改
      action: "在 processMessage 开始处添加 if(msg.content==null) return"
    - priority: 建议
      action: "考虑使用 try-catch 包裹异步调用,避免未捕获的 rejection"

效果差异: 差 Prompt 给的是泛泛建议,好 Prompt 给出了可操作的行号、严重级别和修复步骤。原因在于 Skill 模板对输出格式做了硬性规定,并且 focus=logic 只关注逻辑,不分散精力。

5. 复用和组合技巧

单个 Skill 是砖,多个 Skill 组合就是楼。

技巧一:Skill 管道
你可以写一个调度器,依次调用多个 Skill:

  1. code-review 审查代码
  2. commit-message 基于审查结果生成 Commit 信息
  3. release-note 将多个 Commit 汇总成发布说明

每个 Skill 的输出格式都固定为 JSON,管道直接传递。

技巧二:参数化复用
修改 focus 参数就可以将同一个 code-review 技能用于不同用途:

  • focus=security → 只检查 SQL 注入、XSS、权限问题
  • focus=performance → 检查循环效率、缓存缺失
  • focus=all → 全量审查

这样你不需要为每个重点写一个独立的 Skill。

技巧三:与 CI/CD 集成
将 SKILL.md 里的输出格式解析为 CI 检查的指标。例如 GitHub Actions 中检测到 risk_level high 则阻止合并。你需要写一个 20 行的 Node.js 脚本解析 Markdown 中的 risk_level,但 Skills 的概念让这件事变得可维护。


AI skill stack modular architecture


写在最后

Personal_AI_Infrastructure 的精髓不是某个复杂框架,而是 给自己建立一套任务拆分和复用的习惯。今天你从 code-review 技能开始,明天可以添加 meeting-minutesrefactor-plannertest-generator。当你的技能库超过 10 个,你会发现 AI 不再是一次性对话,而是一个可以编排的、稳定的员工。

我的建议是:不要追求大而全的基础设施,先写一个 50 行的 SKILL.md,用上一个星期再迭代。 你的个人 AI 基础设施就从这里生根。