从PAI项目学到的Agent Skill模板:5分钟搭建个人代理工作流
danielmiessler 的 Personal_AI_Infrastructure 项目两天涨了1.5万星,核心思路是把AI代理当作基础组件来组装。但大多数人克隆下来后不知道从哪开始——项目更多是目录结构和配置骨架,缺一个开箱即用的Agent Skill示例。
我把它翻译成自己习惯的「Skill封装」方式:定义触发条件 → 写系统指令 → 挂载工具和记忆 → 设定输出格式。下面直接给模板,你改下角色和工具就能跑。

这个Skill解决什么问题
个人需要AI代理处理日常事务(信息聚合、文档总结、日程协调),但每次都要重新写Prompt,且无法复用之前的配置。这个Skill提供一个标准化的代理启动器,你只需修改两处变量(角色描述、工具列表)就能得到一个自主决策的Agent。
触发条件与适用场景
- 触发方式:系统时间触发(每日特定时段)或事件触发(新文件/新消息)。
- 适用场景:个人信息助理、研究简报生成、代码审查代理、写作辅助。
- 不适用:需要高实时性或低延迟(100ms以下)的场景。
完整Skill结构(SKILL.md)
这是你项目里应该有的SKILL.md文件,包含了Agent的定义、触发规则和系统Prompt。
name: personal_agent_starter
description: 可复用的个人AI代理技能,自行设定角色和工具
trigger:
type: cron
schedule: "0 9 * * *" # 每天早上9点自动执行
context: "用户日常任务代理"
models:
main: "gpt-4o" # 推理模型
fast: "gpt-4o-mini" # 轻量模型(用于工具调用过滤)
tools:
- search_web
- read_file
- write_file
- calendar_query # 自行注册的函数
memory:
type: vector_semantic
path: ./personal_knowledge
steps:
- step: gather_context
prompt: "读取用户最近3条未读消息和日历事件"
- step: decide_action
prompt: "根据上下文决定下一步动作"
- step: execute
prompt: "调用工具完成行动并输出结果"
output_format: markdown_report
---
# 系统提示
你是一个个人AI代理,能力边界由以下工具和知识库定义。
每次交互请先思考:
1. 用户真正需要什么?
2. 手头有哪些工具可用?
3. 是否需要补充信息?
工具列表:
- search_web(query): 返回最新网络结果摘要
- read_file(path): 读取本地文件内容
- write_file(path, content): 写入文件
- calendar_query(date): 查询指定日期的日历事件
内存:记住用户偏好和历史操作。
输出格式:
```markdown
## 动作报告
- 目标:...
- 使用工具:...
- 结果:...
- 下一步建议:...
如果无法完成,明确告知用户缺少哪些权限或工具。
## 实际案例演示
假设你是一名技术写作者,需要每天整理AI领域新闻并写入本地的“daily_brief.md”。
**Skill启动后**,Agent会自动执行:
1. 调用`calendar_query`查看今天是否有会议冲突
2. 调用`search_web("AI startups funding today")`抓取最新信息
3. 调用`read_file("./daily_brief.md")`获取已有内容,避免重复
4. 用`write_file`追加新内容
效果:每天早上打开文件就看到一份结构化简报。
## 差Prompt vs 好Prompt
### 差 Prompt
你是一个AI代理,帮我收集今天AI新闻并保存到文件。
- **问题**:没定义工具、没限制步骤、输出格式随意。模型可能自行捏造数据,也可能拒绝执行(没有文件写入权限)。
### 好 Prompt(来自上面SKILL.md)
```markdown
你是一个个人AI代理,能力边界由以下工具定义:
- search_web(query): 返回最新网络结果
- write_file(path, content): 写入文件
步骤:1. 搜索今天AI融资新闻;2. 按分类整理;3. 写入./daily_brief.md。
输出格式:Markdown,包含来源链接。
如果搜索失败或写入失败,请说明原因。
- 效果:模型明确知道调用什么、如何输出、失败怎么处理。无需猜测。
为什么好Prompt有效?因为Agent的“智力”很大程度来自边界清晰。差Prompt给了无限自由,模型容易偏离轨道;好Prompt把决策空间缩小到工具和步骤内,反而更容易产生可靠结果。
复用与组合技巧
- 更换角色:将system prompt第一句改成“你是一个xxx”,比如“你是一个代码审查代理”。
- 增删工具:工具列表决定了能力。注意每个工具要写签名(参数+返回值)。
- 组合多个Skill:在SKILL.md的
trigger中嵌套另一个Skill的调用,形成管道。比如“先执行信息收集Skill,再执行摘要Skill”。 - 多模型分配:复杂推理用gpt-4o,简单工具筛选用gpt-4o-mini节省成本。
变体1:研究写作Agent
修改角色为“研究助理”,工具添加“read_paper()”“generate_bib()”。
变体2:日程管家
角色为“日程管家”,工具添加“calendar_create_event()”“send_email()”,触发条件改为“当收到新邮件通知”。
变体3:代码审查Agent
角色为“高级开发者”,工具添加“git_diff()”“eslint()”。
最后说两句
Personal_AI_Infrastructure 的方向是对的——把AI代理当成模块化的基础设施,但它的价值不是仓库里的代码,而是你基于它提炼出来的工作流模板。上面这个Skill设计,我用了10分钟写完,你改两处就能跑。拿到自己的项目里,你才真正拥有了“个人AI基础设施”。
别只当读者,动手改一两行就变成你自己的了。