AI 技能系统
模块概述
版本: v0.37.6 状态: ✅ 已实现 最后更新: 2026-02-17
AI 技能系统提供 90 个桌面内置技能 (100% Handler 覆盖) + 28 个 Android 技能、统一工具注册表、10 个演示模板以及 Agent Skills 开放标准支持。通过统一注册表聚合 FunctionCaller (60+ 工具)、MCP (8 服务器) 和 Skills (90 技能) 三大工具系统,为 AI 提供结构化的技能感知能力。
核心特性
- 90 个桌面内置技能: 全部配备可执行 handler,100% Handler 覆盖率,覆盖 18+ 大类别
- 28 个 Android 技能: 12 个本地 Handler + 8 个文档型 + 8 个 PC 远程委托 (REMOTE)
- 统一工具注册表: 聚合 3 大工具系统,每个工具都有技能元数据
- Agent Skills 开放标准: 13 个扩展字段完整支持
- 10 个演示模板: 展示技能组合能力的可运行模板
- PC 远程委托: Android 通过 remoteSkillName 映射委托桌面端执行技能
- 名称标准化: kebab-case ↔ snake_case 自动桥接
1. 架构设计
1.1 整体架构图
┌──────────────────────────────────────────────────────────────────┐
│ 前端 (Vue3) │
├──────────────────────────────────────────────────────────────────┤
│ ToolsExplorerPage │ DemoTemplatesPage │ SkillsUI │
│ ↓ ↓ ↓ │
│ Pinia Store: unified-tools.ts │
└──────────────────────────────────────────────────────────────────┘
↕ IPC (6+4 handlers)
┌──────────────────────────────────────────────────────────────────┐
│ 主进程 (Electron) │
├──────────────────────────────────────────────────────────────────┤
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ UnifiedToolRegistry (529行) │ │
│ │ ┌──────────┐ ┌──────────────┐ ┌──────────────────┐ │ │
│ │ │Function │ │ MCP Tool │ │ Skill Registry │ │ │
│ │ │ Caller │ │ Adapter │ │ (90 skills) │ │ │
│ │ │ (60+) │ │ (8 servers) │ │ │ │ │
│ │ └──────────┘ └──────────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ ToolSkillMapper │ MCPSkillGenerator │ DemoTemplateLoader │ │
│ └────────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ unified-tools-ipc.js (6) │ template-ipc (4) │ │
│ └────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘1.2 四层技能加载
优先级 (高→低):
┌─────────────────────────────────────────┐
│ Layer 3: workspace │ ← <project>/.chainlesschain/skills/
│ Layer 2: managed │ ← ~/.chainlesschain/skills/
│ Layer 1: marketplace │ ← 插件市场安装的技能
│ Layer 0: bundled (90个内置) │ ← skills/builtin/
└─────────────────────────────────────────┘
高层同名技能覆盖低层1.3 工具-技能映射流程
1. FunctionCaller 工具 ──────────────────→ UnifiedToolRegistry
2. MCP 工具 ──→ MCPSkillGenerator ──────→ UnifiedToolRegistry (自动技能)
3. SkillRegistry 技能 ──────────────────→ UnifiedToolRegistry (链接工具)
4. 未覆盖工具 ──→ ToolSkillMapper ──────→ UnifiedToolRegistry (默认分组)2. 90 个桌面内置技能 (100% Handler 覆盖)
2.1 技能分类总览
所有 90 个技能均配备可执行 Handler,按功能分为 18+ 大类别:
| 类别 | 技能数 | 技能名 |
|---|---|---|
| 自动化 | 4 | browser-automation, computer-use, workflow-automation, voice-commander |
| 数据 | 4 | web-scraping, data-analysis, chart-creator, csv-processor |
| 知识 | 5 | memory-management, smart-search, context-loader, research-agent, codebase-qa |
| 远程 | 1 | remote-control |
| 安全 | 4 | security-audit, vulnerability-scanner, crypto-toolkit, password-generator |
| DevOps | 5 | devops-automation, env-doctor, release-manager, log-analyzer, system-monitor |
| 开发 | 15 | code-review, git-commit, explain-code, repo-map, refactor, onboard-project, lint-and-fix, project-scaffold, mcp-server-generator, architect-mode, commit-splitter, screenshot-to-code, diff-previewer, task-decomposer, code-runner |
| 文档 | 2 | doc-generator, markdown-enhancer |
| 测试 | 4 | test-generator, api-tester, test-and-fix, bugbot |
| 分析 | 6 | performance-optimizer, dependency-analyzer, impact-analyzer, rules-engine, git-history-analyzer, fault-localizer |
| AI | 4 | prompt-enhancer, auto-context, multi-model-router, image-generator |
| Office | 5 | pdf-toolkit, doc-converter, excel-analyzer, pptx-creator, doc-comparator |
| 媒体 | 7 | audio-transcriber, video-toolkit, subtitle-generator, tts-synthesizer, media-metadata, image-editor, ocr-scanner |
| 知识管理 | 2 | knowledge-graph, query-enhancer, memory-insights |
| 系统 | 4 | backup-manager, performance-profiler, env-file-manager, network-diagnostics |
| 数据导出 | 2 | data-exporter, template-renderer |
| 工具 | 8 | file-compressor, json-yaml-toolkit, regex-playground, http-client, snippet-library, clipboard-manager, text-transformer, color-picker |
| 其他 | 8 | word-generator, code-translator, dead-code-eliminator, changelog-generator, mock-data-generator, i18n-manager, db-migration, research-agent |
2.1.1 Android 28 技能
| 类型 | 技能数 | 技能名 |
|---|---|---|
| LOCAL | 12 | code-review, explain-code, summarize, translate, refactor, unit-test, debug, quick-note, email-draft, meeting-notes, daily-planner, text-improver |
| DOC | 8 | git-commit, code-complete, api-docs, regex-helper, sql-helper, json-formatter, markdown-helper, chat-template |
| REMOTE | 8 | pc-screenshot→computer-use, pc-file-search→smart-search, pc-run-command→remote-control, pc-open-url→browser-automation, pc-clipboard→remote-control, pc-system-info→remote-control, pc-git-status→remote-control, pc-processes→remote-control |
2.2 SKILL.md 结构 (Agent Skills 开放标准)
每个技能通过 SKILL.md 文件定义,使用 YAML frontmatter + Markdown body:
---
name: browser-automation
description: Automate browser tasks
version: 1.0.0
category: automation
user-invocable: true
tags: [browser, automation, web]
# Agent Skills 标准扩展字段
tools:
- browser-navigate
- browser-click
- browser-type
- browser-screenshot
instructions: |
Use this skill to automate browser tasks...
examples:
- Navigate to a URL and take a screenshot
- Fill in a web form automatically
dependencies:
- browser-automation
input-schema:
type: object
properties:
url: { type: string }
output-schema:
type: object
properties:
result: { type: string }
model-hints:
recommended: ["claude-3-opus", "gpt-4"]
cost: low
author: ChainlessChain Team
license: MIT
handler: ./handler.js
requires:
bins: []
env: []
os: [win32, darwin, linux]
---
# Browser Automation
Markdown body with detailed usage instructions...2.3 Agent Skills 开放标准 - 13 个扩展字段
| 字段 | 类型 | 说明 |
|---|---|---|
tools | string[] | 技能注册的工具列表 |
instructions | string | 技能使用指南 |
examples | string[] | 使用示例 |
dependencies | string[] | 依赖的其他技能 |
input-schema | object | 输入参数 JSON Schema |
output-schema | object | 输出参数 JSON Schema |
model-hints | object | 推荐/排除的 LLM 模型 |
cost | string | 执行成本级别 (low/medium/high) |
author | string | 技能作者 |
license | string | 许可证 |
homepage | string | 主页链接 |
repository | string | 仓库链接 |
capabilities | string[] | 技能能力声明 |
2.4 Handler 执行模型
// handler.js 契约
module.exports = {
// 可选: 初始化
async init(skill) {
// 获取依赖、建立连接等
},
// 必须: 执行逻辑
async execute(task, context, skill) {
// task.input - 用户输入
// context.tools - 可用工具
// skill.getDefinition() - 技能定义
return { success: true, result: "..." };
},
};3. 统一工具注册表 (UnifiedToolRegistry)
3.1 核心类 (unified-tool-registry.js, 529 行)
聚合三大工具系统,为每个工具附加技能元数据。
绑定接口:
const registry = new UnifiedToolRegistry();
registry.bindFunctionCaller(functionCaller); // 导入 60+ 内置工具
registry.bindMCPAdapter(mcpToolAdapter); // 监听 MCP 服务器连接
registry.bindSkillRegistry(skillRegistry); // 读取技能元数据
await registry.initialize(); // 聚合并构建映射统一工具结构 (UnifiedTool):
{
name: 'browser_click', // 工具名 (snake_case)
description: 'Click an element', // 工具描述
parameters: { ... }, // JSON Schema 参数
source: 'builtin', // 来源: builtin|mcp|skill-handler|builtin-skill|mcp-auto|tool-group
skillName: 'browser-automation', // 所属技能
skillCategory: 'automation', // 技能类别
instructions: '...', // 使用指南 (来自技能)
examples: ['...'], // 使用示例 (来自技能)
tags: ['browser', 'click'], // 标签
available: true // 是否可用
}技能清单结构 (SkillManifestEntry):
{
name: 'browser-automation',
displayName: 'Browser Automation',
description: 'Automate browser tasks',
category: 'automation',
instructions: '...',
examples: ['...'],
toolNames: ['browser_click', 'browser_navigate', ...],
source: 'builtin-skill',
version: '1.0.0',
tags: ['browser', 'automation']
}3.2 ToolSkillMapper (tool-skill-mapper.js, 198 行)
自动将 FunctionCaller 中未被 SKILL.md 覆盖的工具分组到默认技能类别。
10 个默认技能分组:
| 技能分组 | 类别 | 匹配工具 |
|---|---|---|
| file-operations | core | file_reader, file_writer, file_editor |
| code-generation | development | html_generator, css_generator, js_generator |
| git-operations | development | git_status, git_log, git_diff |
| data-processing | data | json_parser, yaml_parser, csv_parser, data_analyzer |
| image-processing | media | image_resize, vision_analyze |
| office-documents | productivity | tool_word_generate, tool_excel_generate, tool_ppt_generate |
| code-execution | development | sandbox_execute, python_run |
| tts-voice | media | tts_generate |
| image-generation | media | imagegen_create |
| memory-recall | ai | memgpt_store, memgpt_retrieve |
3.3 MCPSkillGenerator (mcp-skill-generator.js, 108 行)
MCP 服务器连接时自动生成 SkillManifestEntry。
生成逻辑:
- 使用社区注册中心的
skillInstructions/skillExamples(如果有) - 否则从工具列表自动生成 instructions
- 从工具 inputSchema 自动生成 examples
- 技能命名:
mcp-{serverName} - 工具名标准化:
browser-click→browser_click
3.4 名称标准化
SKILL.md 定义 (kebab-case) ←→ FunctionCaller (snake_case)
browser-click ←→ browser_click
browser-navigate ←→ browser_navigate
visual-click ←→ visual_click4. 演示模板系统
4.1 DemoTemplateLoader (demo-template-loader.js, 235 行)
从 src/main/templates/{category}/ 目录自动发现和加载演示模板。
4 个演示类别:
| 类别 | 模板数 | 说明 |
|---|---|---|
| automation | 3 | web-form-autofill, batch-screenshot, data-extraction-pipeline |
| ai-workflow | 3 | ai-research-assistant, daily-report-generator, code-review-pipeline |
| knowledge | 2 | personal-knowledge-base, meeting-notes-manager |
| remote | 2 | multi-device-sync, remote-desktop-monitor |
4.2 模板结构
{
"id": "tpl_demo_web_form_autofill",
"name": "web_form_autofill",
"display_name": "Web Form Auto-Fill",
"description": "Automatically navigate to a URL and fill form fields",
"icon": "📝",
"category": "automation",
"tags": ["browser", "form", "automation"],
"project_type": "workflow",
"prompt_template": "Navigate to {{targetUrl}} and fill the {{formType}} form...",
"variables_schema": [
{
"key": "targetUrl",
"label": "Target URL",
"type": "string",
"required": true
},
{
"key": "formType",
"label": "Form Type",
"type": "select",
"options": ["login", "registration", "contact"]
}
],
"is_builtin": true,
"skills_used": ["browser-automation", "workflow-automation"],
"difficulty": "beginner",
"execution_engine": "skill"
}4.3 IPC 接口
| Handler | 参数 | 说明 |
|---|---|---|
template:get-demos | - | 获取所有演示模板 |
template:get-demo-by-skill | skillName | 按技能筛选模板 |
template:preview-demo | templateId | 预览模板详情 |
template:run-demo | templateId, variables | 渲染模板并执行 |
5. IPC 接口
5.1 统一工具 IPC (6 个)
| Handler | 参数 | 说明 |
|---|---|---|
tools:get-all-with-skills | - | 获取所有工具 + 技能元数据 |
tools:get-skill-manifest | - | 获取所有技能清单 |
tools:get-by-skill | skillName | 按技能获取工具列表 |
tools:search-unified | keyword | 搜索工具 (名称/描述/标签/技能) |
tools:get-tool-context | toolName | 获取工具上下文 (技能指南/示例) |
tools:refresh-unified | - | 刷新统一注册表 |
响应格式:
{
success: true,
data: [...], // 工具或技能数组
count: 85 // 结果数量
}6. 前端实现
6.1 ToolsExplorerPage (ToolsExplorerPage.vue, 485 行)
路由: #/tools/explorer
功能:
- 统计栏: 总工具数、总技能数、内置数量、MCP 数量
- 筛选器: 来源(全部/内置/MCP/技能)、类别下拉
- 搜索: 关键词搜索工具名称、描述、标签、技能名
- 技能分组视图: 可折叠面板,每个技能下展示工具卡片
- 未分组工具区: 没有技能的工具
- 刷新按钮: 重新初始化统一注册表
6.2 DemoTemplatesPage (DemoTemplatesPage.vue, 479 行)
路由: #/demo-templates
功能:
- 类别标签: 全部/自动化/AI工作流/知识管理/远程控制
- 难度筛选: 全部/入门/中级/高级
- 搜索: 关键词搜索模板名称、描述、标签、技能
- 模板卡片: 图标、名称、描述、技能标签、类别
- 预览弹窗: 模板详情 + 变量输入 + "运行演示"按钮
- 运行演示: 渲染模板变量,复制到剪贴板或发送到 AI 对话
6.3 Pinia Store (unified-tools.ts, 206 行)
interface State {
tools: UnifiedTool[]; // 所有工具
skills: SkillManifest[]; // 所有技能
loading: boolean;
error: string | null;
searchKeyword: string;
filterSource: string; // 来源筛选
filterCategory: string; // 类别筛选
}
// Getters
categories; // 唯一技能类别
sources; // 唯一工具来源
filteredTools; // 筛选后的工具
filteredSkills; // 筛选后的技能
stats; // 统计摘要
// Actions
loadAll(); // 加载全部工具和技能
search(keyword); // 后端搜索
refresh(); // 刷新注册表7. 核心文件清单
| 文件 | 行数 | 说明 |
|---|---|---|
src/main/ai-engine/unified-tool-registry.js | 529 | 统一工具注册表核心 |
src/main/ai-engine/tool-skill-mapper.js | 198 | 工具-技能自动映射 |
src/main/ai-engine/unified-tools-ipc.js | 136 | 6 个 IPC 处理器 |
src/main/mcp/mcp-skill-generator.js | 108 | MCP 技能自动生成 |
src/main/templates/demo-template-loader.js | 235 | 演示模板加载器 |
src/main/ai-engine/cowork/skills/skill-md-parser.js | 363 | Agent Skills 标准解析器 |
src/main/ai-engine/cowork/skills/markdown-skill.js | 224 | Markdown 技能实现 |
src/main/ai-engine/cowork/skills/index.js | - | 4 层技能加载器 |
src/main/ai-engine/cowork/skills/skills-ipc.js | - | 17 个 Skills IPC |
src/renderer/pages/ToolsExplorerPage.vue | 485 | 工具浏览器页面 |
src/renderer/pages/DemoTemplatesPage.vue | 479 | 演示模板页面 |
src/renderer/stores/unified-tools.ts | 206 | 统一工具 Pinia Store |
Handler 文件 (90 个可执行技能, 100% 覆盖率):
所有 90 个内置技能目录 (skills/builtin/{skill-name}/) 均包含 handler.js 和 SKILL.md。
代表性 Handler 文件 (按类别):
| 类别 | 代表技能 | 说明 |
|---|---|---|
| 自动化 | browser-automation, computer-use | 浏览器/桌面操作自动化 |
| 知识 | memory-management, smart-search | 持久记忆/混合搜索 |
| Office | pdf-toolkit, excel-analyzer | 文档处理/分析 |
| 媒体 | video-toolkit, ocr-scanner | 音视频/图像处理 |
| 开发 | repo-map, lint-and-fix | 代码分析/修复 |
| 安全 | crypto-toolkit, password-generator | 加密工具/密码生成 |
| 系统 | system-monitor, backup-manager | 系统监控/备份 |
| AI | prompt-enhancer, multi-model-router | 提示词增强/多模型路由 |
| 工具 | json-yaml-toolkit, color-picker | 开发工具/设计辅助 |
8. Context Engineering 集成
8.1 技能分组工具序列化
统一工具注册表与 Context Engineering 系统集成,在构建 LLM 提示词时按技能对工具进行分组序列化:
[Skills Context]
## browser-automation (automation)
Instructions: Use this skill to automate browser tasks...
Tools: browser_click, browser_navigate, browser_type, browser_screenshot
## memory-management (knowledge)
Instructions: Use this skill to manage persistent memory...
Tools: memory_write, memory_search, memory_read_daily8.2 KV-Cache 优化
- 技能分组信息作为静态内容放在提示词前部,提高 KV-Cache 命中率
- 工具定义按名称确定性排序,保证缓存一致性
- 仅序列化当前可用工具,减少 Token 消耗
9. 与现有模块的关系
Skills System (v0.29.0)
↓ 扩展
AI Skills System (v0.37.6)
├── 90 桌面内置技能 (100% Handler 覆盖, 扩展自 3→8→15→30→90)
├── 28 Android 技能 (12 Handler + 8 Doc + 8 Remote)
├── UnifiedToolRegistry (聚合 FunctionCaller + MCP + Skills)
├── Agent Skills Open Standard (13 扩展字段)
├── PC Remote Delegation (remoteSkillName 映射)
└── Demo Templates (10 个演示模板)
关联模块:
- FunctionCaller (60+ 工具) → UnifiedToolRegistry
- MCP Integration (8 servers) → MCPSkillGenerator → UnifiedToolRegistry
- Browser Automation (v0.29.0) → browser-automation 技能
- Computer Use (v0.33.0) → computer-use 技能
- Remote Control (v0.33.0) → remote-control 技能
- Permanent Memory (v0.26.2) → memory-management 技能
- Hybrid Search (v0.26.2) → smart-search 技能
- Context Engineering (v0.29.0) → 技能分组工具序列化
- Android Skills (v0.37.0) → 28 技能 (12 Handler + 8 Doc + 8 Remote)
- PC Remote Delegation (v0.37.2) → remoteSkillName 映射
- Office/Media Skills (v0.37.3-v0.37.6) → 30 文档/媒体/系统/工具技能最后更新: 2026-02-17 (v0.37.6)
