Loading...
Loading...
Compare original and translation side by side
Skill by ara.so — Hermes Skills collection.
由ara.so提供的Skill — Hermes Skills合集。
| Concept | English | Description |
|---|---|---|
| 工作区 | Workspace | Agent's working directory |
| 灵魂 | SOUL.md | Defines agent personality and boundaries |
| 操作手册 | AGENTS.md | Agent's operational instructions |
| 记忆 | Memory | Persistent context and preferences |
| 技能 | Skill | Reusable knowledge packages |
| 工具 | Tool | Specific capabilities (file ops, search, messaging) |
| 频道 | Channel | Platform connectors (Telegram, Feishu, Discord) |
| 提示词 | Prompt | User instructions to agent |
| 定时任务 | Cron Job | Scheduled automation |
| 心跳 | Heartbeat | Periodic status checks and reports |
| 子智能体 | Sub-agent | Parallel agent spawning |
| 概念 | English | Description |
|---|---|---|
| 工作区 | Workspace | Agent的工作目录 |
| 灵魂 | SOUL.md | 定义Agent的个性与边界 |
| 操作手册 | AGENTS.md | Agent的操作指南 |
| 记忆 | Memory | 持久化上下文与偏好设置 |
| 技能 | Skill | 可复用的知识包 |
| 工具 | Tool | 特定能力(文件操作、搜索、消息发送) |
| 频道 | Channel | 平台连接器(Telegram、飞书、Discord) |
| 提示词 | Prompt | 用户向Agent发出的指令 |
| 定时任务 | Cron Job | 定时自动化任务 |
| 心跳 | Heartbeat | 定期状态检查与报告 |
| 子智能体 | Sub-agent | 并行Agent生成 |
undefinedundefinedundefinedundefinedawesome-openclaw-usecases-zh/
├── README.md # Main index with 50+ use cases
├── CONTRIBUTING.md # Contribution guidelines
├── AGENT-GUIDE.md # Guide for AI agents to use this repo
├── usecases/
│ ├── cn-*.md # China-specific use cases (23)
│ ├── *.md # International use cases (27)
│ └── images/ # Screenshots and diagrams
└── templates/
└── usecase-template.md # Standard use case formatawesome-openclaw-usecases-zh/
├── README.md # 包含50+用例的主索引
├── CONTRIBUTING.md # 贡献指南
├── AGENT-GUIDE.md # AI Agent使用本仓库的指南
├── usecases/
│ ├── cn-*.md # 中国特有用例(23个)
│ ├── *.md # 国际用例(27个)
│ └── images/ # 截图与图表
└── templates/
└── usecase-template.md # 标准用例模板cn-feishu-ai-assistant.mdcn-feishu-lark-cli.mdcn-dingtalk-ai-assistant.mdcn-wecom-ai-assistant.mdcn-xiaohongshu-automation.mdcn-wechat-mp-automation.mdpodcast-production-pipeline.mdcn-a-share-monitor.mdearnings-tracker.mdcompetitive-intelligence.mdcn-internet-research-30days.mdhf-papers-research-discovery.mdarxiv-paper-reader-latex-writer.mdcn-office-automation.mdmeeting-notes-action-items.mdmulti-channel-customer-service.mdcn-ecommerce-multi-agent.mdcustom-morning-brief.mddigital-persona-distillation.mdcn-multi-agent-operating-system.mdagent-swarm-dev-team.mdmultica-managed-agents.mdcn-feishu-ai-assistant.mdcn-feishu-lark-cli.mdcn-dingtalk-ai-assistant.mdcn-wecom-ai-assistant.mdcn-xiaohongshu-automation.mdcn-wechat-mp-automation.mdpodcast-production-pipeline.mdcn-a-share-monitor.mdearnings-tracker.mdcompetitive-intelligence.mdcn-internet-research-30days.mdhf-papers-research-discovery.mdarxiv-paper-reader-latex-writer.mdcn-office-automation.mdmeeting-notes-action-items.mdmulti-channel-customer-service.mdcn-ecommerce-multi-agent.mdcustom-morning-brief.mddigital-persona-distillation.mdcn-multi-agent-operating-system.mdagent-swarm-dev-team.mdmultica-managed-agents.md---
difficulty: ⭐ (copy-paste) | ⭐⭐ (config needed) | ⭐⭐⭐ (technical)
platform: [feishu|dingtalk|wecom|xiaohongshu|...]
tags: [automation, content-creation, ...]
------
difficulty: ⭐ (复制粘贴即可) | ⭐⭐ (需配置) | ⭐⭐⭐ (技术型)
platform: [feishu|dingtalk|wecom|xiaohongshu|...]
tags: [automation, content-creation, ...]
---undefinedundefinedcn-feishu-ai-assistant.md// Install official Feishu SDK
npm install @larksuiteoapi/node-sdk
// Initialize bot
const lark = require('@larksuiteoapi/node-sdk');
const client = new lark.Client({
appId: process.env.FEISHU_APP_ID,
appSecret: process.env.FEISHU_APP_SECRET,
});
// Handle incoming messages
app.post('/webhook', async (req, res) => {
const { event } = req.body;
if (event.type === 'message') {
const { message_id, content } = event.message;
const userInput = JSON.parse(content).text;
// Send to OpenClaw agent
const response = await openclawAgent.process(userInput);
// Reply in Feishu
await client.im.message.reply({
message_id,
content: JSON.stringify({ text: response }),
msg_type: 'text',
});
}
res.json({ ok: true });
});cn-dingtalk-ai-assistant.mdundefinedcn-feishu-ai-assistant.md// Install official Feishu SDK
npm install @larksuiteoapi/node-sdk
// Initialize bot
const lark = require('@larksuiteoapi/node-sdk');
const client = new lark.Client({
appId: process.env.FEISHU_APP_ID,
appSecret: process.env.FEISHU_APP_SECRET,
});
// Handle incoming messages
app.post('/webhook', async (req, res) => {
const { event } = req.body;
if (event.type === 'message') {
const { message_id, content } = event.message;
const userInput = JSON.parse(content).text;
// Send to OpenClaw agent
const response = await openclawAgent.process(userInput);
// Reply in Feishu
await client.im.message.reply({
message_id,
content: JSON.stringify({ text: response }),
msg_type: 'text',
});
}
res.json({ ok: true });
});cn-dingtalk-ai-assistant.mdundefined# Process with OpenClaw
response = openclaw_agent.process(content)
# Reply
dingtalk_client.send_text_message(
message.sender_id,
response
)
return AckMessage.STATUS_OK# Process with OpenClaw
response = openclaw_agent.process(content)
# Reply
dingtalk_client.send_text_message(
message.sender_id,
response
)
return AckMessage.STATUS_OKundefinedundefinedcn-feishu-lark-cli.mdcn-feishu-lark-cli.mdundefinedundefined
**OpenClaw Skill Integration**:
```markdown
**OpenClaw Skill集成**:
```markdownlark_cli_searchlark_cli_calendarlark_cli_messagelark_cli_searchlark_cli_calendarlark_cli_messagelark-cli docx search --keyword "AI Agent" --limit 3lark-cli docx get --doc-id {id}undefinedlark-cli docx search --keyword "AI Agent" --limit 3lark-cli docx get --doc-id {id}undefinedcn-a-share-monitor.mdcn-a-share-monitor.mdundefinedundefined# Get sector money flow
sectors = ak.stock_sector_fund_flow_rank(indicator="今日")
top_sectors = sectors.head(5)
return {
"sh_index": {
"close": latest['close'],
"change": latest['close'] - latest['open'],
"volume": latest['volume']
},
"top_sectors": top_sectors.to_dict('records')
}return {
"gainers": gainers[['code', 'name', 'pct_chg']].to_dict('records'),
"losers": losers[['code', 'name', 'pct_chg']].to_dict('records')
}# Get sector money flow
sectors = ak.stock_sector_fund_flow_rank(indicator="今日")
top_sectors = sectors.head(5)
return {
"sh_index": {
"close": latest['close'],
"change": latest['close'] - latest['open'],
"volume": latest['volume']
},
"top_sectors": top_sectors.to_dict('records')
}return {
"gainers": gainers[['code', 'name', 'pct_chg']].to_dict('records'),
"losers": losers[['code', 'name', 'pct_chg']].to_dict('records')
}undefinedundefinedcn-multi-agent-operating-system.mdcn-multi-agent-operating-system.mdundefinedundefined
**Implementation Example**:
```javascript
// Coordinator agent prompt
const coordinatorPrompt = `
You are a coordinator. When given a task:
1. Break it into subtasks
2. Assign each to a specialist sub-agent:
- @researcher for data collection
- @writer for content creation
- @publisher for distribution
3. Collect results and synthesize
4. Return final output
Current task: Create and publish a Xiaohongshu post about OpenClaw
`;
// Spawn sub-agents
const researchResult = await spawnAgent('researcher', {
task: 'Find trending OpenClaw use cases',
tools: ['perplexity_search', 'github_trending']
});
const content = await spawnAgent('writer', {
task: 'Write Xiaohongshu post',
context: researchResult,
tools: ['markdown_formatter', 'emoji_suggester']
});
const published = await spawnAgent('publisher', {
task: 'Publish to Xiaohongshu',
content: content,
tools: ['xiaohongshu_api']
});
**实现示例**:
```javascript
// Coordinator agent prompt
const coordinatorPrompt = `
你是一名协调者。收到任务时:
1. 将任务拆解为子任务
2. 将每个子任务分配给专业子Agent:
- @researcher 负责数据收集
- @writer 负责内容创作
- @publisher 负责分发
3. 收集结果并整合
4. 返回最终输出
当前任务:创建一篇关于OpenClaw的小红书笔记并发布
`;
// Spawn sub-agents
const researchResult = await spawnAgent('researcher', {
task: '查找热门OpenClaw用例',
tools: ['perplexity_search', 'github_trending']
});
const content = await spawnAgent('writer', {
task: '撰写小红书笔记',
context: researchResult,
tools: ['markdown_formatter', 'emoji_suggester']
});
const published = await spawnAgent('publisher', {
task: '发布至小红书',
content: content,
tools: ['xiaohongshu_api']
});cn-xiaohongshu-automation.mdcn-xiaohongshu-automation.mdundefinedundefined# Create note
note = client.create_note(
title=title,
desc=content,
image_ids=image_ids,
tags=tags,
post_time=None, # Publish immediately, or set timestamp
is_private=False
)
return note['note_id']# Create note
note = client.create_note(
title=title,
desc=content,
image_ids=image_ids,
tags=tags,
post_time=None, # 立即发布,或设置时间戳
is_private=False
)
return note['note_id']undefinedundefinedcn-wechat-mp-automation.mdcn-wechat-mp-automation.mdundefinedundefinedhtml = markdown2.markdown(md_content, extras=['fenced-code-blocks'])
# Apply WeChat styling
styled_html = f"""
<section style="font-size: 16px; color: #333;">
{html}
</section>
"""
return styled_htmlresult = client.material.add_news(articles)
return result['media_id']html = markdown2.markdown(md_content, extras=['fenced-code-blocks'])
# 应用微信样式
styled_html = f"""
<section style="font-size: 16px; color: #333;">
{html}
</section>
"""
return styled_htmlresult = client.material.add_news(articles)
return result['media_id']undefinedundefinedmeeting-notes-action-items.mdmeeting-notes-action-items.md// Get meeting transcript from Feishu
const getMeetingTranscript = async (meetingId) => {
const response = await fetch(
`https://open.feishu.cn/open-apis/vc/v1/meetings/${meetingId}/recording`,
{
headers: {
Authorization: `Bearer ${process.env.FEISHU_TENANT_TOKEN}`,
},
}
);
const data = await response.json();
return data.data.recording_url;
};
// Download and transcribe
const transcription = await whisperAPI.transcribe(recordingUrl);
// OpenClaw processes transcript
const prompt = `
Analyze this meeting transcript and generate:
1. Summary (3-5 sentences)
2. Key decisions made
3. Action items with owners and deadlines
4. Follow-up questions
Transcript:
${transcription}
`;
const analysis = await openclawAgent.process(prompt);
// Create Feishu tasks automatically
for (const actionItem of analysis.action_items) {
await feishuClient.task.create({
summary: actionItem.task,
due_date: actionItem.deadline,
assignee: actionItem.owner,
});
}// Get meeting transcript from Feishu
const getMeetingTranscript = async (meetingId) => {
const response = await fetch(
`https://open.feishu.cn/open-apis/vc/v1/meetings/${meetingId}/recording`,
{
headers: {
Authorization: `Bearer ${process.env.FEISHU_TENANT_TOKEN}`,
},
}
);
const data = await response.json();
return data.data.recording_url;
};
// Download and transcribe
const transcription = await whisperAPI.transcribe(recordingUrl);
// OpenClaw processes transcript
const prompt = `
分析这份会议转录内容,生成:
1. 总结(3-5句话)
2. 做出的关键决策
3. 带负责人和截止日期的行动项
4. 后续问题
转录内容:
${transcription}
`;
const analysis = await openclawAgent.process(prompt);
// 自动创建飞书任务
for (const actionItem of analysis.action_items) {
await feishuClient.task.create({
summary: actionItem.task,
due_date: actionItem.deadline,
assignee: actionItem.owner,
});
}digital-persona-distillation.mddigital-persona-distillation.mdundefinedundefinedconn = sqlite3.connect('WeChat/Msg/Multi/MSG0.db')
cursor = conn.cursor()
cursor.execute("""
SELECT strftime('%Y-%m-%d', CreateTime, 'unixepoch'),
Message, IsSender
FROM MSG
WHERE Type = 1 -- Text messages only
ORDER BY CreateTime DESC
LIMIT 10000
""")
messages = cursor.fetchall()
return [{'date': m[0], 'text': m[1], 'is_sender': m[2]}
for m in messages]conn = sqlite3.connect('WeChat/Msg/Multi/MSG0.db')
cursor = conn.cursor()
cursor.execute("""
SELECT strftime('%Y-%m-%d', CreateTime, 'unixepoch'),
Message, IsSender
FROM MSG
WHERE Type = 1 -- 仅文本消息
ORDER BY CreateTime DESC
LIMIT 10000
""")
messages = cursor.fetchall()
return [{'date': m[0], 'text': m[1], 'is_sender': m[2]}
for m in messages]undefinedundefinedundefinedundefinedundefinedundefinedimport time
from functools import wraps
def rate_limit(calls_per_minute=60):
min_interval = 60.0 / calls_per_minute
last_called = [0.0]
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
elapsed = time.time() - last_called[0]
if elapsed < min_interval:
time.sleep(min_interval - elapsed)
result = func(*args, **kwargs)
last_called[0] = time.time()
return result
return wrapper
return decorator
@rate_limit(calls_per_minute=50)
def call_feishu_api():
# Your API call
passimport time
from functools import wraps
def rate_limit(calls_per_minute=60):
min_interval = 60.0 / calls_per_minute
last_called = [0.0]
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
elapsed = time.time() - last_called[0]
if elapsed < min_interval:
time.sleep(min_interval - elapsed)
result = func(*args, **kwargs)
last_called[0] = time.time()
return result
return wrapper
return decorator
@rate_limit(calls_per_minute=50)
def call_feishu_api():
# Your API call
passdef get_stock_data(symbol, retries=3):
try:
return ak.stock_zh_a_hist(symbol=symbol)
except Exception as e:
if retries > 0:
time.sleep(2)
return get_stock_data(symbol, retries - 1)
else:
# Fallback to manual data source
return fetch_from_tushare(symbol)def get_stock_data(symbol, retries=3):
try:
return ak.stock_zh_a_hist(symbol=symbol)
except Exception as e:
if retries > 0:
time.sleep(2)
return get_stock_data(symbol, retries - 1)
else:
# Fallback to manual data source
return fetch_from_tushare(symbol)import browser_cookie3
def refresh_cookie(domain):
"""Auto-refresh cookie from browser"""
cookies = browser_cookie3.chrome(domain_name=domain)
cookie_str = '; '.join([f'{c.name}={c.value}' for c in cookies])
return cookie_strimport browser_cookie3
def refresh_cookie(domain):
"""从浏览器自动刷新Cookie"""
cookies = browser_cookie3.chrome(domain_name=domain)
cookie_str = '; '.join([f'{c.name}={c.value}' for c in cookies])
return cookie_strundefinedundefined// In AGENTS.md
memory_strategy: {
coordinator: "workspace/memory/coordinator.json",
researcher: "workspace/memory/researcher.json",
writer: "workspace/memory/writer.json",
}
// Code
async function saveAgentMemory(agentName, data) {
const memoryPath = `workspace/memory/${agentName}.json`;
await fs.writeFile(memoryPath, JSON.stringify(data, null, 2));
}// In AGENTS.md
memory_strategy: {
coordinator: "workspace/memory/coordinator.json",
researcher: "workspace/memory/researcher.json",
writer: "workspace/memory/writer.json",
}
// Code
async function saveAgentMemory(agentName, data) {
const memoryPath = `workspace/memory/${agentName}.json`;
await fs.writeFile(memoryPath, JSON.stringify(data, null, 2));
}with open('output.txt', 'w', encoding='utf-8') as f:
f.write(chinese_content)try:
result = feishu_api.call()
except Exception as e:
logger.error(f"Feishu API failed: {e}")
result = fallback_method()# Good
prompt = "请总结这篇文章的要点"
# Less effective with Chinese LLMs
prompt = "Please summarize the key points of this article"with open('output.txt', 'w', encoding='utf-8') as f:
f.write(chinese_content)try:
result = feishu_api.call()
except Exception as e:
logger.error(f"Feishu API调用失败: {e}")
result = fallback_method()# 推荐
prompt = "请总结这篇文章的要点"
# 对中文LLM效果较差
prompt = "Please summarize the key points of this article"