96SEO 2026-07-04 00:56 6
Zuo过 AI Agent 的dou知道,系统提示词是Zui关键的"魔法调料"。但这碗调料有个尴尬的问题:要么太少,要么太多。
这种设计有两个关键点:

每次聊天开始时系统dou会重新扫描 AGENTS_DIR,发现可用的 Skill。
说实话,这种Zuo法有点取巧,但hen有效。
项目源码github.com/oliyg/expre…
整体架构如下:
Frontmatter 解析器没有用 YAML 库,而是手写了一个轻量解析:
光有程序化的加载还不够,还需要一套管理接口。Skills Module 提供了三个 RESTful 接口:
prepareCall: => { return { ...settings, instructions: `${settings.instructions}
${buildSkillsPrompt}`, experimental_context: { chatId: options.chatId, metadata: options.metadata }, };},
这里有个重要的设计决策拼接的是 instructions 而非 system 提示词。在 Vercel AI SDK 中,instructions 是动态注入的——它在每次 prepareCall 时重新生成,而 system 提示词在 Agent 构造函数中就固定了。这意味着 Agent 的基座身份是固定的,但可用的技Neng列表Ke以随每次请求动态变化。
关联阅读
Ru果把 AI Agent 比作一个开发者,那么 Skills 就是它随时Ke以翻开的手册——不需要把所有手册背下来但知道哪本手册放在哪里、什么时候该翻开它。
Skills 系统和子智Neng体系统是互补关系:
export function stripFrontmatter: string { const match = content.match; return match ? content.slice.trim : content.trim;}
Strip 后的内容就是纯粹的领域指令,作为工具执行结果返回给 Agent,进入 Agent 的上下文。
~/.agents/skills/├── python-developer/│ ├── SKILL.md│ └── scripts/│ └── lint.sh├── react-optimizer/│ ├── SKILL.md│ └── templates/│ └── component.tsx└── data-analyst/ └── SKILL.md
SKILL.md 的格式借鉴了静态站点生成器的 Frontmatter 惯例:
loadSkill: tool.describe, }), execute: async => { const skills = await discoverSkills; const skill = skills.find => s.name.toLowerCase === name.toLowerCase ); if { return { error: `Skill '${name}' not found` }; } const skillFile = path.join; const content = await readFileSync; const body = stripFrontmatter; return { skillDirectory: skill.path, content: body, // 核心:去掉 frontmatter 后的正文 }; },}),
这个工具的设计原则是"Zui简接口"
为嘛有些网站就是不收录呢?哈,说实话,这事儿挺复杂的。你得kankan是不是robots.txt挡住了蜘蛛,还有网站结构、内容质量...
文件名编码的 Latin1/UTF-8 问题浏览器上传中文文件名时Chrome 会按 Latin1 编码发送。fixFileNameEncoding 尝试解码,Ru果结果包含 � 则保持原样。这个方案不是 %100 完美,但在实践中覆盖了 %90以上的场景。
用户 : "分析这个项目的 Python 代码质量并修复问题 "主 Agent : → 发现需要 python-developer skill → 调用 loadSkill 获取代码规范 → 创建子任务 : ├── 子 Agent A : 检查 src/ 目录 ├── 子 Agent B : 检查 tests/ 目录 └── 子 Agent C : 检查 setup.py 和 requirements.txt → 汇果,输出整改报告
. 踩坑记录
Frontmatter 解析器的换行符差异
开发时发现一个坑:SKILL.md 在不同操作系统上换行符不同。正则用了 \r?
来处理:
export function parseFrontmatter { const match = content.match\r?
---/); // 按行解析 key : value const frontmatter : Record <string , string> = {}; for ) { const colonIndex = line.indexOf; const key = line.slice.trim; const value = line.slice.trim; frontmatter = value; } return { name : frontmatter.name , description : frontmatter.description }; }
...
两个 discoverSkills 调用 一次在 chat.service.ts 中,一次在 loadSkill 工具执行时。为什么不是复用结果?因为用户可Neng在上一次列表构建后上传了新的 Skill,第二次扫描确保获取Zui新状态。害,你说这算不算有点浪费资源?但咱就是说这点浪费值得,geng灵活嘛!
...
┌─────────────────────────────────────────────────────┐ │ 聊天请求 │ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────┐ │ │ │ chat.service.ts │ │ │ │ discoverSkills → 扫描文件系统 │ │ │ │ 返回 SkillMetadata│ │ │ └──────────────────┬───────────────────────────┘ │ │ │ │ │ ▼ │...
└─────────────────────────────────────────────────────┘
...
. 为什么选 ZIP 而不是 Git 或直接上传目录?| 方式 | 优点 | 缺点 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ZIP 上传 | 简单,浏览器原生支持,单个文件传输 | 需要解压校验 | ||||||||||||||||||||||||||||
| Git 仓库同步 | 版本控制,协作方便 | 需要 Git 权限,部署复杂 | ||||||||||||||||||||||||||||
| 目录映射 | 开发时直接修改 | 无法在管理界面上传哦,你懂的!所以才选ZIP啦~哈!新手友好!对吧!你kan,其实这些个选择就像是在不同的道路上选一条开车回家,你得考虑路况、油耗啥的……说实话,选择ZIP真是个折中方案,但对于咱这个小项目来说够用就行,对吧!所以为啥不用Git呢?主要是咱没那么多协作开发的需求呗,而且还得搞权限啥的,头疼~直接目录映射倒是开发阶段爽歪歪,可线上环境你总不Neng让用户直接改服务器文件吧,不安全呐~所以Zui后还是决定用ZIP上传,一劳多得,既简单又实用,Zui关键的是够用!你说是不是这个理?哈哈哈~反正我是这么想的……你呢?你觉得咋样?反正我觉得挺好的……至少目前没啥大问题……呃,那个那个,我刚才好像跑题了……啊,对了说到为啥选ZIP……其实主要是因为简单方便嘛……嗯,就这样吧~哈!别较真啊,有事儿评论区聊~拜~
...
代价是增加了磁盘 IO,但 Skills 目录通常只有十几个子目录,这几十毫秒的开销相对于 LLM 的推理延迟而言Ke以忽略。
标签:
按需
SEO优化服务概述作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
百度官方合作伙伴
白帽SEO技术
数据驱动优化
效果长期稳定
SEO优化核心服务网站技术SEO
内容优化服务
外链建设策略
SEO服务方案对比
SEO优化实施流程我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践: 1
网站诊断分析全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。 2
关键词策略制定基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。 3
技术优化实施解决网站技术问题,优化网站结构,提升页面速度和移动端体验。 4
内容优化建设创作高质量原创内容,优化现有页面,建立内容更新机制。 5
外链建设推广获取高质量外部链接,建立品牌在线影响力,提升网站权威度。 6
数据监控调整持续监控排名、流量和转化数据,根据效果调整优化策略。 SEO优化常见问题
SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。
SEO优化效果数据基于我们服务的客户数据统计,平均优化效果如下: +85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期
行业案例 - 制造业
行业案例 - 电商
行业案例 - 教育
为什么选择我们的SEO服务专业团队
数据驱动
透明合作
我们的SEO服务理念我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。 提交需求或反馈Demand feedback |