搭建个人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 就是一个 独立的、可文档化、可版本控制、可组合的功能单元。它定义了三件事:
- 触发条件:什么场景下激活这个技能(关键词、文件类型、手势等)
- 输入输出规范:需要什么数据,返回什么格式
- 执行逻辑:调哪个模型、用什么 prompt、后处理规则
当所有任务都变成 Skill,你就不再是“临时写提示词”,而是在搭建自己的 AI 工具箱。
2. Skill 的触发条件和适用场景
触发条件就是 什么时候自动或手动调用这个 Skill。我把常见触发分成三类:
| 类型 | 示例 | 适用场景 |
|------|------|----------|
| 关键词匹配 | 输入 /review 加代码段 | 代码审查、文档总结 |
| 文件事件 | 监听 .ts 文件保存 | 自动格式检查、测试生成 |
| 会话标签 | 在对话开头写 #code-review | 分类管理长期对话 |
你不需要全部实现,只要选一种最简单的方式让你的 AI 前端(比如 ChatGPT、Claude、自己写的终端工具)能识别。我推荐用 关键词匹配,零依赖,任何平台都能做。
适用场景:任何你一周重复超过 2 次且流程稳定的任务。比如代码审查、Commit 信息生成、PR 描述生成、日志分析、日报周报、文档翻译、API 文档生成。
3. 完整 Skill 结构(SKILL.md 示例)
以下是我自己项目中用的 SKILL.md 模板,直接复制到你的技能文件夹里,改参数就能用。
# 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:
请审查这段 TypeScript 代码,告诉我有没有问题。
结果: AI 可能给你一堆风格建议(“建议用 const 代替 let”)、忽略真正的逻辑漏洞,或者输出泛泛的“整体良好”。
好 Prompt(基于 SKILL.md 模板):
/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 格式):
- 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:
code-review审查代码commit-message基于审查结果生成 Commit 信息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 的概念让这件事变得可维护。

写在最后
Personal_AI_Infrastructure 的精髓不是某个复杂框架,而是 给自己建立一套任务拆分和复用的习惯。今天你从 code-review 技能开始,明天可以添加 meeting-minutes、refactor-planner、test-generator。当你的技能库超过 10 个,你会发现 AI 不再是一次性对话,而是一个可以编排的、稳定的员工。
我的建议是:不要追求大而全的基础设施,先写一个 50 行的 SKILL.md,用上一个星期再迭代。 你的个人 AI 基础设施就从这里生根。