OpenClaw 通过集成Prompts.chat创建高质量对话
·
目的
集成 prompts.chat 开源提示词库,为 AI 对话提供丰富的提示词模板。
📊 执行摘要
结论
✅ 可以集成 - prompts.chat 与 OpenClaw 具有良好的集成潜力,主要通过以下方式:
- MCP 协议集成 - prompts.chat 提供 MCP 服务器,OpenClaw 支持 MCP 客户端
- API 调用集成 - prompts.chat 提供 REST API,可在 OpenClaw 技能中调用
- 技能融合 - 将 prompts.chat 提示词融入 OpenClaw 技能系统
- 本地数据同步 - 下载 prompts.chat 数据集本地使用
🔍 技术方案分析
方案 1: MCP 协议集成(推荐)⭐⭐⭐⭐⭐
prompts.chat MCP 能力
prompts.chat 提供标准的 MCP (Model Context Protocol) 服务器:
{
"mcpServers": {
"prompts.chat": {
"url": "https://prompts.chat/api/mcp"
}
}
}
OpenClaw MCP 支持
OpenClaw 支持通过 MCP 协议连接外部服务:
- 支持 MCP 客户端功能
- 可配置外部 MCP 服务器
- 支持工具调用和数据交换
集成方法
步骤 1: 配置 MCP 连接
在 OpenClaw 配置中添加 MCP 服务器:
{
"mcp": {
"servers": {
"prompts": {
"url": "https://prompts.chat/api/mcp",
"enabled": true
}
}
}
}
步骤 2: 创建提示词检索技能
# prompts_chat_mcp.py
import requests
class PromptsChatMCP:
def __init__(self, api_url="https://prompts.chat/api/mcp"):
self.api_url = api_url
def search_prompts(self, query, category=None):
"""搜索提示词"""
params = {"q": query}
if category:
params["category"] = category
response = requests.get(f"{self.api_url}/prompts", params=params)
return response.json()
def get_prompt_by_id(self, prompt_id):
"""获取单个提示词"""
response = requests.get(f"{self.api_url}/prompts/{prompt_id}")
return response.json()
def list_categories(self):
"""获取所有类别"""
response = requests.get(f"{self.api_url}/categories")
return response.json()
优势:
- ✅ 标准化协议
- ✅ 实时数据访问
- ✅ 支持搜索和过滤
- ✅ 官方支持
劣势:
- ⚠️ 依赖网络连接
- ⚠️ API 速率限制
方案 2: REST API 集成 ⭐⭐⭐⭐
prompts.chat API 端点
GET https://prompts.chat/api/prompts
GET https://prompts.chat/api/prompts/{id}
GET https://prompts.chat/api/categories
POST https://prompts.chat/api/prompts/search
OpenClaw 技能实现
#!/usr/bin/env python3
"""
prompts_chat_skill.py - prompts.chat 提示词检索技能
"""
import requests
import json
from pathlib import Path
class PromptsChatSkill:
"""prompts.chat 提示词技能"""
def __init__(self, cache_dir="~/.openclaw/workspace/cache/prompts"):
self.api_base = "https://prompts.chat/api"
self.cache_dir = Path(cache_dir).expanduser()
self.cache_dir.mkdir(parents=True, exist_ok=True)
def search_prompts(self, query, limit=10):
"""
搜索提示词
Args:
query: 搜索关键词
limit: 返回数量限制
Returns:
list: 提示词列表
"""
cache_file = self.cache_dir / f"search_{query}.json"
# 尝试从缓存读取
if cache_file.exists():
with open(cache_file, 'r', encoding='utf-8') as f:
return json.load(f)
# API 调用
try:
response = requests.get(
f"{self.api_base}/prompts",
params={"q": query, "limit": limit},
timeout=10
)
data = response.json()
# 缓存结果
with open(cache_file, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
return data
except Exception as e:
print(f"搜索失败:{e}")
return []
def get_prompt_template(self, prompt_id):
"""
获取提示词模板
Args:
prompt_id: 提示词 ID
Returns:
str: 提示词模板
"""
try:
response = requests.get(
f"{self.api_base}/prompts/{prompt_id}",
timeout=10
)
data = response.json()
return data.get('prompt', '')
except Exception as e:
print(f"获取失败:{e}")
return ""
def list_categories(self):
"""获取所有类别"""
try:
response = requests.get(f"{self.api_base}/categories", timeout=10)
return response.json()
except Exception as e:
print(f"获取类别失败:{e}")
return []
def apply_prompt(self, prompt_id, **kwargs):
"""
应用提示词到 OpenClaw 会话
Args:
prompt_id: 提示词 ID
**kwargs: 提示词参数
"""
template = self.get_prompt_template(prompt_id)
if template:
# 格式化提示词
formatted = template.format(**kwargs)
return formatted
return ""
# 使用示例
if __name__ == "__main__":
skill = PromptsChatSkill()
# 搜索提示词
results = skill.search_prompts("marketing")
print(f"找到 {len(results)} 个提示词")
# 获取类别
categories = skill.list_categories()
print(f"类别:{categories}")
方案 3: 本地数据集集成 ⭐⭐⭐⭐⭐
下载 prompts.chat 数据集
prompts.chat 提供完整数据集下载:
# CSV 格式
wget https://raw.githubusercontent.com/f/prompts.chat/main/prompts.csv
# Hugging Face 数据集
pip install datasets
python -c "
from datasets import load_dataset
dataset = load_dataset('fka/prompts.chat')
print(dataset)
"
OpenClaw 本地技能实现
#!/usr/bin/env python3
"""
prompts_local.py - 本地 prompts.chat 数据集技能
"""
import csv
import json
from pathlib import Path
from typing import List, Dict, Optional
class LocalPromptsSkill:
"""本地提示词技能(无需 API)"""
def __init__(self, data_path="~/.openclaw/workspace/data/prompts.csv"):
self.data_path = Path(data_path).expanduser()
self.prompts = []
self._load_data()
def _load_data(self):
"""加载 CSV 数据"""
if not self.data_path.exists():
print(f"数据文件不存在:{self.data_path}")
return
with open(self.data_path, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
self.prompts = list(reader)
print(f"已加载 {len(self.prompts)} 个提示词")
def search(self, query: str, limit: int = 10) -> List[Dict]:
"""
搜索提示词
Args:
query: 搜索关键词
limit: 返回数量
Returns:
匹配的提示词列表
"""
query_lower = query.lower()
results = []
for prompt in self.prompts:
title = prompt.get('act', '').lower()
prompt_text = prompt.get('prompt', '').lower()
if query_lower in title or query_lower in prompt_text:
results.append(prompt)
if len(results) >= limit:
break
return results
def get_by_category(self, category: str, limit: int = 10) -> List[Dict]:
"""
按类别获取提示词
Args:
category: 类别名称
limit: 返回数量
Returns:
提示词列表
"""
results = []
category_lower = category.lower()
for prompt in self.prompts:
title = prompt.get('act', '').lower()
if category_lower in title:
results.append(prompt)
if len(results) >= limit:
break
return results
def get_random(self, count: int = 1) -> List[Dict]:
"""
随机获取提示词
Args:
count: 数量
Returns:
随机提示词列表
"""
import random
return random.sample(self.prompts, min(count, len(self.prompts)))
def export_to_json(self, output_path: str):
"""导出为 JSON"""
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(self.prompts, f, ensure_ascii=False, indent=2)
print(f"已导出到:{output_path}")
# 使用示例
if __name__ == "__main__":
skill = LocalPromptsSkill()
# 搜索
results = skill.search("writer")
for r in results:
print(f"- {r.get('act')}: {r.get('prompt')[:50]}...")
# 按类别
marketing = skill.get_by_category("marketing", limit=5)
print(f"\n营销类提示词:{len(marketing)} 个")
方案 4: OpenClaw 技能系统融合 ⭐⭐⭐⭐⭐
创建 prompts-chat 技能包
~/.openclaw/workspace/skills/prompts-chat-integration/
├── SKILL.md
├── scripts/
│ ├── prompts_search.py # 提示词搜索
│ ├── prompts_apply.py # 提示词应用
│ └── sync_prompts.py # 数据同步
├── data/
│ └── prompts.csv # 本地数据集
└── references/
└── prompt-library.md # 提示词库文档
SKILL.md 示例
---
name: prompts-chat-integration
description: |
集成 prompts.chat 提示词库到 OpenClaw。
提供提示词搜索、应用、管理功能。
Use when: (1) 需要 AI 提示词,(2) 搜索特定场景提示词,
(3) 应用提示词到当前会话,(4) 管理提示词库。
---
# Prompts.chat Integration
## 快速开始
```bash
# 搜索提示词
python scripts/prompts_search.py "marketing copy"
# 应用提示词
python scripts/prompts_apply.py --id 123 --apply
# 同步最新数据
python scripts/sync_prompts.py
功能
1. 提示词搜索
from prompts_search import PromptsSearch
search = PromptsSearch()
results = search.search("code review")
for r in results:
print(f"{r['title']}: {r['prompt']}")
2. 提示词应用
from prompts_apply import PromptsApply
apply = PromptsApply()
prompt = apply.get_prompt(123)
apply.apply_to_session(prompt)
3. 数据同步
# 从 prompts.chat 同步最新数据
python scripts/sync_prompts.py --source github
# 从 Hugging Face 同步
python scripts/sync_prompts.py --source huggingface
数据集
本地数据集位置:~/.openclaw/workspace/skills/prompts-chat-integration/data/prompts.csv
数据源:
- GitHub: https://raw.githubusercontent.com/f/prompts.chat/main/prompts.csv
- Hugging Face: https://huggingface.co/datasets/fka/prompts.chat
提示词类别
- 写作助手
- 编程助手
- 学习辅导
- 商业分析
- 创意创作
- 健康建议
- 旅行规划
- 生活建议
API 参考
详见 references/prompt-library.md
---
## 🧪 实践测试
### 测试 1: 下载数据集
```bash
# 创建数据目录
mkdir -p ~/.openclaw/workspace/data
# 下载 prompts.csv
curl -o ~/.openclaw/workspace/data/prompts.csv \
https://raw.githubusercontent.com/f/prompts.chat/main/prompts.csv
# 验证
wc -l ~/.openclaw/workspace/data/prompts.csv
测试 2: 创建集成技能
# 创建技能目录
mkdir -p ~/.openclaw/workspace/skills/prompts-chat-integration/{scripts,data,references}
# 复制数据集
cp ~/.openclaw/workspace/data/prompts.csv \
~/.openclaw/workspace/skills/prompts-chat-integration/data/
测试 3: 实现搜索功能
创建 scripts/prompts_search.py(使用上面的 LocalPromptsSkill 类)
cd ~/.openclaw/workspace/skills/prompts-chat-integration
python scripts/prompts_search.py "marketing"
测试 4: 集成到 OpenClaw 会话
在 OpenClaw 中加载技能:
# 在 OpenClaw 会话中
import sys
sys.path.insert(0, '/Users/jerry/.openclaw/workspace/skills/prompts-chat-integration/scripts')
from prompts_search import LocalPromptsSkill
skill = LocalPromptsSkill()
results = skill.search("code review")
# 应用提示词到当前会话
for r in results[:3]:
print(f"提示词:{r.get('act')}")
print(f"内容:{r.get('prompt')[:100]}...")
print()
📊 集成方案对比
| 方案 | 实时性 | 依赖网络 | 速率限制 | 推荐度 |
|---|---|---|---|---|
| MCP 协议 | ⭐⭐⭐⭐⭐ | 是 | 是 | ⭐⭐⭐⭐⭐ |
| REST API | ⭐⭐⭐⭐⭐ | 是 | 是 | ⭐⭐⭐⭐ |
| 本地数据集 | ⭐⭐⭐ | 否 | 否 | ⭐⭐⭐⭐⭐ |
| 技能融合 | ⭐⭐⭐⭐ | 可选 | 可选 | ⭐⭐⭐⭐⭐ |
🎯 推荐实施方案
阶段 1: 本地数据集集成(立即实施)
- 下载 prompts.csv 到本地
- 创建 LocalPromptsSkill 类
- 实现搜索和过滤功能
- 测试基本功能
阶段 2: API 集成(可选)
- 配置 prompts.chat API 访问
- 实现实时搜索
- 添加缓存机制
- 处理速率限制
阶段 3: MCP 集成(长期)
- 等待 OpenClaw 完整 MCP 支持
- 配置 MCP 服务器连接
- 实现工具调用
- 测试端到端流程
📁 推荐文件结构
~/.openclaw/workspace/
├── data/
│ └── prompts.csv # 主数据集
├── skills/
│ └── prompts-chat-integration/ # 集成技能
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── prompts_search.py
│ │ ├── prompts_apply.py
│ │ └── sync_prompts.py
│ ├── data/
│ │ └── prompts.csv
│ └── references/
│ └── prompt-library.md
└── cache/
└── prompts/ # API 缓存
✅ 下一步行动
-
立即下载数据集
curl -o ~/.openclaw/workspace/data/prompts.csv \ https://raw.githubusercontent.com/f/prompts.chat/main/prompts.csv -
创建集成技能
mkdir -p ~/.openclaw/workspace/skills/prompts-chat-integration -
实现搜索功能
- 复制 LocalPromptsSkill 代码
- 测试搜索功能
-
测试应用提示词
- 在 OpenClaw 会话中加载技能
- 搜索并应用提示词
🔗 相关资源
- prompts.chat GitHub: https://github.com/f/prompts.chat
- Hugging Face 数据集:https://huggingface.co/datasets/fka/prompts.chat
- prompts.chat API 文档:https://prompts.chat/docs/api
- OpenClaw 技能文档:~/.nvm/versions/node/v22.22.0/lib/node_modules/openclaw/docs/
- MCP 协议:https://modelcontextprotocol.io
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)