惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
H
Help Net Security
博客园_首页
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
S
Security @ Cisco Blogs
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
WordPress大学
WordPress大学
C
Cisco Blogs
G
Google Developers Blog
N
News and Events Feed by Topic
P
Palo Alto Networks Blog
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
博客园 - 聂微东
Security Latest
Security Latest
Security Archives - TechRepublic
Security Archives - TechRepublic
O
OpenAI News
云风的 BLOG
云风的 BLOG
IT之家
IT之家
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
小众软件
小众软件
Scott Helme
Scott Helme
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 最新话题
Microsoft Azure Blog
Microsoft Azure Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
F
Fortinet All Blogs
The Last Watchdog
The Last Watchdog

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第10章:导入导出、命令行与自动化 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第17章:与 Qt VTK Python pythonOCC 生态集成 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw 第07章:参数化表达式与Spreadsheet 第08章:装配设计Assembly 第06章:Part工作台与几何内核 第05章:PartDesign实体特征建模 第04章:草图Sketcher约束建模 第02章:安装版本与工作环境配置 第03章:界面工作台与基础操作 第01章:项目全景与学习路线 第十二章:插件开发、研究功能与最佳实践 第十章:定时任务与自动化(Cron) 第七章:技能、记忆与自学习闭环 第八章:MCP 集成与上下文文件 第六章:工具系统与终端后端 第五章:模型供应商与配置体系 Hermes Agent 教程目录 第十一章:语音、视觉、浏览器与子代理协作 第四章:CLI/TUI 与会话管理 第十二章:学习路线、实战方案与最佳实践 第十一章:源码结构、开发调试与插件开发 第十章:自动化、远程访问、日志与排障 第九章:Control UI、节点、Canvas 与语音能力 第七章:工具、技能、插件与能力扩展 第八章:安全模型、访问控制与沙箱实践 第六章:Agent 工作区、会话与多智能体路由 第五章:多通道消息接入与聊天平台配置 第四章:配置体系、模型接入与认证管理 第三章:Gateway 架构、协议与运行机制 第二章:安装、环境准备与快速上手 第一章:OpenClaw 项目概览与核心定位 oh-my-openagent 教程目录 09-命令模型回退与配置参考 10-实战案例最佳实践与故障排除 05-工作模式-Ultrawork-Prometheus-Atlas 08-Hooks与MCP系统 06-Category与Skill系统 07-核心工具链 04-智能体全景详解 03-安装与环境配置 02-整体架构与多模型编排机制 01-项目简介与核心理念 01-项目概览与学习路线 02-安装部署与工具适配 03-Skill机制与using-superpowers 05-TDD系统化调试与完成前验证 04-需求澄清方案设计与计划编写 07-并行智能体子智能体与Git-Worktree 第六章:代码审查、反馈处理与分支收尾 08-中国特色Skills与本土团队落地 第23章:FreeCAD-Python-API Clipper2 C# 源码解读教程 第19章:PolyTree 多边形树结构 第20章:实际应用与最佳实践 第18章:Minkowski 和与差 第17章:RectClip 矩形裁剪优化 第16章:ClipperOffset 偏移类详解 第15章:填充规则详解 第14章:布尔运算执行流程 第13章:ClipperD 浮点裁剪类 第11章:OutRec 与 OutPt 输出结构 第9章:Active 活动边结构 第10章:Vertex 顶点与 LocalMinima 局部极小值 第12章:Clipper64 裁剪类详解 第7章:高精度运算与128位整数 第8章:ClipperBase 基类详解 第5章:枚举类型与常量定义 第6章:InternalClipper 内部工具类 第2章:核心数据结构 - Point64、PointD 第3章:路径与多边形表示 - Path64、PathD、Paths64、PathsD 第4章:矩形边界 - Rect64、RectD
09-MCP构建工作流执行与自定义Skill
我才是银古 · 2026-05-04 · via 博客园 - 我才是银古

第九章:MCP 构建、工作流执行与自定义 Skill

9.1 扩展类 Skills 的定位

除了通用工程流程和中文团队规范,superpowers-zh 还提供三类扩展能力:

  • mcp-builder:指导构建生产级 Model Context Protocol Server。
  • workflow-runner:在 AI 工具内执行 agency-orchestrator YAML 多角色工作流。
  • writing-skills:系统化编写和验证新的 Skill。

这三者让 superpowers-zh 不只是在当前项目中规范 AI 行为,还能扩展 AI 的外部能力、协作角色和方法论库。

9.2 MCP 是什么

MCP(Model Context Protocol)是一种让 AI 助手连接外部工具、资源和提示模板的协议。mcp-builder 将 MCP 原语分成三类:

原语 用途 示例
Tools AI 主动调用的有副作用函数 搜索、创建 Issue、删除文件
Resources AI 只读访问的数据源 users://{id}/profile
Prompts 预定义交互模板 代码审查模板、需求澄清模板

选择原则:执行操作用 Tool,读取数据用 Resource,引导交互用 Prompt。

9.3 MCP Server 项目结构

TypeScript 项目推荐结构:

my-mcp-server/
├── src/
│   ├── index.ts
│   ├── tools/
│   ├── resources/
│   └── lib/
├── tests/
├── package.json
└── tsconfig.json

Python 项目推荐结构:

my-mcp-server/
├── src/my_mcp_server/
│   ├── server.py
│   ├── tools/
│   └── lib/
├── tests/
└── pyproject.toml

关键思想是把 MCP 注册和业务逻辑分离。Tool handler 应尽量调用可单元测试的纯函数或服务封装,而不是把所有逻辑写在注册代码里。

9.4 Tool 设计原则

命名

  • 使用 snake_case
  • 动词开头,例如 search_userscreate_issuedelete_file
  • 名称自解释,因为 AI 会根据名称选择工具。

参数

  • 每个参数有类型和描述。
  • 可选参数提供合理默认值。
  • 用枚举代替布尔开关,减少歧义。
  • 限制范围,例如 limit 最小 1 最大 100。

描述

描述应说明用途、返回内容和限制:

根据姓名或邮箱搜索用户。返回 ID、姓名、邮箱列表。模糊匹配,最多 50 条。

AI 是否正确调用工具,很大程度取决于名称和描述是否清晰。

9.5 MCP 错误处理与安全

mcp-builder 强调:永远不要让服务器因外部调用失败而崩溃。错误处理应:

  1. 用 try/catch 包裹外部调用。
  2. 返回可操作错误信息。
  3. 设置 isError: true
  4. 区分参数错误、权限不足、资源不存在、服务不可用。

安全方面重点关注:

  • SQL 查询使用参数化,禁止拼接用户输入。
  • 文件路径防止 ../ 路径遍历。
  • 命令执行优先用 execFile,避免 shell 注入。
  • API Key 通过环境变量传入,不写入源码。
  • 日志和返回值做敏感信息脱敏。
  • 危险操作增加确认参数,例如 confirm: true

9.6 MCP 测试策略

推荐三层测试:

单元测试

测试业务函数,不依赖 MCP Transport。

集成测试

使用 MCP SDK Client 调用 Server,验证工具注册、参数、返回格式和错误路径。

MCP Inspector

使用 Inspector 交互式查看工具、资源和调用结果:

npx @modelcontextprotocol/inspector node dist/index.js

测试至少覆盖正常路径、异常路径、边界值和外部服务失败。

9.7 MCP 调试注意事项

MCP 使用 stdio 通信时,不能随意 console.log,否则可能破坏协议流。调试应输出到 stderr 或使用 SDK 日志机制。

常见问题:

症状 可能原因 处理方式
启动无响应 transport 未连接 检查 server.connect()
Tool 不出现 注册顺序错误 先注册再 connect
AI 不调用 Tool 名称和描述不清 改善描述和参数说明
参数总错 Schema 模糊 增加 .describe() 和枚举
调用超时 外部服务慢 加超时、缓存和错误信息

9.8 workflow-runner 的作用

workflow-runner 让 AI 工具在当前会话中运行 agency-orchestrator 风格 YAML 工作流。它适用于:

  • 用户提供 .yaml 工作流文件。
  • 用户要求多个角色协作完成任务。
  • 项目安装了 agency-agents-zh 角色库。

它的特点是不需要额外 API Key,当前会话中的 LLM 依次扮演工作流中的角色。

9.9 YAML 工作流结构

典型字段:

name: "工作流名称"
agents_dir: "agency-agents-zh"
inputs:
  - name: topic
    required: true
steps:
  - id: analyze
    role: "product/product-manager"
    task: "分析 {{topic}} 的用户价值"
    output: product_analysis
  - id: architecture
    role: "engineering/architect"
    task: "基于 {{product_analysis}} 给出架构建议"
    depends_on: [analyze]

workflow-runner 会解析 inputs、steps、depends_on,做拓扑排序,逐层执行。没有依赖关系的同层步骤可并行执行。

9.10 工作流执行产物

执行完成后,结果保存到:

.ao-output/<工作流名称>-<日期>/
├── steps/
│   ├── 1-analyze.md
│   └── 2-architecture.md
├── summary.md
└── metadata.json

这让多角色协作结果可追踪、可复盘,而不是只存在聊天记录中。

9.11 writing-skills:如何编写新 Skill

writing-skills 的核心观点是:编写 Skill 就是把 TDD 应用于流程文档。

流程如下:

  1. 找到 AI 当前会犯错的真实场景。
  2. 编写压力测试或示例任务,观察没有 Skill 时的失败行为。
  3. 编写 Skill 文档,明确触发条件、流程、红线和检查清单。
  4. 再次运行场景,观察 AI 是否遵守流程。
  5. 如果 AI 仍绕过规则,补充更明确的约束。
  6. 重构 Skill 文档,使其更简洁、可执行。

也就是说,不要为了「看起来有用」而写 Skill。应先证明它解决了一个可复现的 AI 行为问题。

9.12 新 Skill 的内容结构

推荐结构:

---
name: your-skill-name
description: 何时使用这个 Skill
---

# 标题

## 概述

说明解决什么问题。

## 何时使用

列出触发场景和不适用场景。

## 流程

按步骤描述必须执行的动作。

## 红线

列出绝不允许的行为。

## 示例

给出正反例。

## 检查清单

完成前逐项确认。

好的 Skill 应该教 AI「怎么干活」,而不是写某个框架教程。

9.13 本章小结

mcp-builder 扩展 AI 能调用的外部能力,workflow-runner 扩展 AI 的多角色协作方式,writing-skills 扩展方法论本身。掌握这三者后,你不仅能使用 superpowers-zh,还能围绕团队实际问题持续扩展它。