1. 项目概述:一个为Claude AI打造的技能库

如果你最近在深度使用Claude AI,尤其是Claude Desktop或者API,可能会发现一个痛点:虽然Claude本身能力很强,但当你需要它去操作一个具体的第三方应用,比如读取Notion数据库、发送Slack消息或者控制GitHub仓库时,往往会卡住。Claude知道该做什么,但它缺少一双“手”去实际执行这些操作。这正是“awesome-claude-skills”这个项目要解决的核心问题。它不是一个简单的工具列表,而是一个精心策划的、面向开发者和高阶用户的 Claude AI技能(Skills)与工具(Tools)集成仓库

简单来说,你可以把这个项目想象成一个为Claude AI准备的“应用商店”或“插件中心”的蓝图和实现集合。它汇集了社区中各种让Claude能够与真实世界API进行交互的解决方案。这些“技能”本质上是一套标准化的接口描述和连接器,告诉Claude某个外部服务(如Google Calendar、Linear、Figma)有哪些功能可以调用,以及如何安全地调用它们。对于开发者而言,这个仓库是构建AI智能体(Agent)的宝贵资源库;对于普通用户,它则指明了如何将自己的Claude变成一个真正能“干事”的自动化助手的方向。

这个项目由ComposioHQ维护,Composio本身就是一个专注于为AI智能体提供统一工具集成平台的项目。因此,“awesome-claude-skills”带有强烈的实践导向和工程化色彩,里面的内容不是理论探讨,而是可以直接参考、复现甚至直接使用的代码、配置和架构思路。无论你是想快速给Claude增加一个发邮件的技能,还是想设计一个能协调Jira、GitHub和Slack的复杂AI工作流,这里都能找到灵感和脚手架。

2. 核心架构与设计哲学解析

2.1 什么是“AI技能”与“工具”?

在深入这个仓库之前,我们需要统一一下术语。在AI智能体领域,尤其是遵循类似OpenAI的Function Calling或Anthropic的Tool Use范式的系统中,“工具”(Tool)是一个核心概念。一个“工具”定义了AI可以调用的一个具体功能,它通常包括:

  1. 名称和描述 :告诉AI这个工具是干什么的(例如, send_slack_message )。
  2. 输入参数模式(Schema) :以JSON Schema的形式严格定义AI需要提供哪些参数(例如, channel (字符串), text (字符串))。
  3. 执行端点 :当AI决定调用这个工具时,实际执行这段逻辑的代码或API地址。

而“技能”(Skill)通常是一个更高层次的抽象,它可能封装了一个或多个相关的“工具”,并提供了更友好的配置、认证管理和错误处理。例如,一个“GitHub技能”可能包含了 create_issue list_pull_requests comment_on_issue 等多个工具。

“awesome-claude-skills”项目的设计哲学 就建立在这样的概念之上。它不满足于仅仅列出一些API包装器,而是推崇一种 声明式、标准化、可发现 的技能构建方式。这意味着,一个优秀的Claude技能应该:

  • 自描述 :其能力(工具列表)和所需参数必须能以一种机器可读(如OpenAPI Spec, JSON Schema)且AI可理解的方式暴露出来。
  • 安全隔离 :技能的执行通常应该在一个与AI主逻辑隔离的“运行时”中,避免AI直接操作敏感凭证或系统资源。
  • 易于集成 :应该提供清晰的方式(如SDK、Docker镜像、配置文件)被集成到Claude的调用链路中。

2.2 项目内容模块拆解

浏览该仓库,你会发现内容主要分为几大模块,理解这个结构有助于你高效地找到所需资源:

2.2.1 技能/Tools 实现集锦 这是仓库的核心。里面会分类列出针对不同平台和服务的技能实现。

  • 通信协作类 :Slack, Discord, Microsoft Teams, Email (SMTP/Resend) 的技能。例如,如何让Claude监控特定频道并回复消息。
  • 开发与运维类 :GitHub, GitLab, Linear, Jira, Docker, Kubernetes的技能。这是自动化开发工作流的关键,比如“根据自然语言描述创建GitHub Issue并关联到Linear任务”。
  • 云服务与数据类 :AWS S3, Google Cloud Storage, Airtable, Notion, PostgreSQL的技能。让Claude可以读写数据库、管理文件。
  • 办公与效率类 :Google Calendar, Google Sheets, Figma, Trello的技能。实现会议安排、数据更新、设计稿同步等。
  • 其他工具类 :搜索引擎、代码解释器、数学计算工具等,增强Claude的基础能力。

每个技能条目通常会包含:项目名称、简短描述、技术栈(如Python、Node.js)、集成方式(如通过Composio、LangChain、自定义API)以及直达链接。

2.2.2 框架与中间件 这部分介绍了如何将上述技能“安装”到Claude上的各种框架和平台。

  • 智能体框架 :如何利用LangChain, LlamaIndex, AutoGen等流行框架来组织和编排多个技能,构建复杂的多步骤AI工作流。
  • 工具管理平台 :重点介绍像 Composio 这样的平台如何作为“工具网关”,统一管理成百上千个工具的认证、Schema提供和实际调用,让Claude通过一个统一的接口访问所有技能。
  • 自定义服务器模板 :提供一些简单的Express.js或FastAPI服务器示例,展示如何从头搭建一个接收Claude Tool Use请求并路由到具体技能的后端。

2.2.3 示例应用与工作流 理论结合实践。这里会展示一些完整的用例。

  • “AI项目经理” :Claude读取邮件或Slack中的需求,自动在Jira创建任务,在GitHub创建分支,并在任务完成后发送通知。
  • “智能数据分析助手” :用户用自然语言提问,Claude调用工具查询数据库(如PostgreSQL),对结果进行简单处理,并生成图表或更新到Google Sheets。
  • “自动化客服工单处理” :Claude监控客服渠道,根据内容自动分类、提取关键信息并填入CRM或工单系统(如Zendesk)。

2.2.4 开发指南与最佳实践 这部分是干货中的干货,包含了社区总结的经验。

  • 如何设计一个友好的Tool Schema :描述怎么写才能让Claude更好地理解和使用你的工具。例如,参数描述要具体,枚举值要清晰。
  • 认证与安全 :如何处理OAuth、API Keys等敏感信息?是硬编码、环境变量,还是通过动态的凭证管理服务?
  • 错误处理与重试 :当工具调用失败时,应该给Claude返回什么样的结构化信息,以便它能决定重试或采取备用方案?
  • 技能的组合与编排 :如何设计技能间的数据传递?如何处理异步操作?

2.3 技术栈选型背后的考量

仓库里出现的技能实现技术栈多样,但以Python和Node.js为主,这背后有清晰的逻辑:

  • Python :在AI和数据处理领域生态无敌。大量的服务官方SDK(如boto3 for AWS, google-api-python-client)、数据科学库(pandas, numpy)以及AI框架(LangChain)都是Python首选。如果你技能涉及复杂的数据处理或与Python系的MLOps工具链集成,选Python是自然的选择。
  • Node.js :在Web API、实时应用和云函数场景下性能出色、轻量快速。对于大量与SaaS平台(Slack, GitHub, Notion)的REST API交互,这些平台通常提供优秀的Node.js SDK,且Node.js的异步模型非常适合处理高并发的工具调用。对于构建轻量级、快速响应的技能服务,Node.js往往是更优解。

框架选择上 ,LangChain因其庞大的工具集成生态和成熟的Agent抽象,成为复杂工作流的热门选择。而像Composio这样的专门化平台,则解决了“重复造轮子”的问题——你不需要为每个工具编写认证逻辑、Schema定义和错误处理,只需关注业务逻辑。

注意 :不要盲目追求技术栈的“新”或“全”。选择与你团队现有技术栈匹配、并且有活跃社区和良好文档支持的技术。一个用Python Flask写的、稳定可靠的简单技能,远胜过一个用最新Rust框架写但难以维护的复杂技能。

3. 从零构建一个Claude技能的完整实操

让我们以构建一个“发送企业微信消息”的技能为例,走一遍完整的流程。假设我们使用Node.js和简单的Express服务器,因为企业微信的API调用相对直接。

3.1 环境准备与项目初始化

首先,创建一个新的项目目录并初始化。

mkdir wecom-claude-skill && cd wecom-claude-skill
npm init -y
npm install express axios dotenv
  • express :用于创建接收Claude请求的Web服务器。
  • axios :用于向企业微信API发送HTTP请求。
  • dotenv :用于管理环境变量,安全存储企业微信的凭证。

创建必要的文件:

touch index.js .env .env.example README.md

.env 文件中配置你的企业微信凭证(这些需要从企业微信管理后台获取):

WECOM_CORP_ID=your_corp_id
WECOM_AGENT_ID=your_agent_id
WECOM_AGENT_SECRET=your_agent_secret
WECOM_TO_USER=@all # 或指定成员ID,如 “ZhangSan|LiSi”

.env.example 中列出这些变量名(不含真实值),方便他人了解配置项。

3.2 定义Tool Schema

这是最关键的一步,决定了Claude如何理解你的技能。在 index.js 中,我们首先定义一个工具列表。这个列表将被暴露给Claude。

// 工具定义
const tools = [
  {
    name: "send_wecom_message",
    description: "通过企业微信应用向指定用户或部门发送文本消息。可用于发送通知、警报或日常汇报。",
    input_schema: {
      type: "object",
      properties: {
        content: {
          type: "string",
          description: "要发送的文本消息内容。支持换行和部分Markdown语法(如链接)。"
        },
        to_user: {
          type: "string",
          description: "接收消息的用户ID列表,多个用‘|’分隔。默认使用环境变量中的配置。特殊值‘@all’表示向该应用可见范围内的所有用户发送。",
          default: process.env.WECOM_TO_USER || "@all"
        }
      },
      required: ["content"]
    }
  }
];

设计要点解析

  1. name :使用蛇形命名(snake_case),清晰表达动作和对象。
  2. description :详细描述工具用途和典型场景,帮助Claude在众多工具中做出正确选择。
  3. input_schema :严格遵循JSON Schema格式。 required 字段指明哪些参数是Claude 必须 提供的。这里 content 是必填, to_user 给了默认值,Claude可以不提供。
  4. 参数描述 :对每个参数的描述尽可能具体,比如 to_user 的格式说明,这能极大减少Claude调用出错的概率。

3.3 实现工具执行逻辑

接下来,实现 send_wecom_message 工具背后的真实逻辑。这需要两步:首先获取企业微信访问令牌,然后发送消息。

const axios = require('axios');
const express = require('express');
require('dotenv').config();

const app = express();
app.use(express.json());

// 获取企业微信Access Token的函数(带缓存)
let accessTokenCache = { token: '', expireTime: 0 };
async function getWeComAccessToken() {
  const now = Date.now();
  if (accessTokenCache.token && now < accessTokenCache.expireTime) {
    return accessTokenCache.token;
  }

  const { WECOM_CORP_ID, WECOM_AGENT_SECRET } = process.env;
  const url = `https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${WECOM_CORP_ID}&corpsecret=${WECOM_AGENT_SECRET}`;
  
  try {
    const response = await axios.get(url);
    const { access_token, expires_in } = response.data;
    if (access_token) {
      // 提前7200秒(2小时)过期,留出缓冲时间
      accessTokenCache = {
        token: access_token,
        expireTime: now + (expires_in - 7200) * 1000
      };
      return access_token;
    } else {
      throw new Error(`Failed to get token: ${JSON.stringify(response.data)}`);
    }
  } catch (error) {
    console.error('Error fetching WeCom access token:', error.message);
    throw error;
  }
}

// 执行发送消息的工具函数
async function executeSendWeComMessage(args) {
  const { content, to_user } = args;
  const { WECOM_AGENT_ID } = process.env;
  const accessToken = await getWeComAccessToken();
  
  const sendUrl = `https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accessToken}`;
  const payload = {
    touser: to_user,
    msgtype: "text",
    agentid: parseInt(WECOM_AGENT_ID),
    text: {
      content: content
    },
    safe: 0 // 非保密消息
  };

  try {
    const response = await axios.post(sendUrl, payload);
    const { errcode, errmsg } = response.data;
    if (errcode === 0) {
      return { success: true, message: `消息发送成功。消息ID: ${response.data.msgid}` };
    } else {
      return { success: false, error: `企业微信API错误: [${errcode}] ${errmsg}` };
    }
  } catch (error) {
    console.error('Error sending WeCom message:', error.message);
    return { success: false, error: `网络或请求错误: ${error.message}` };
  }
}

关键实现细节

  1. 令牌缓存 :企业微信的 access_token 有频率限制和有效期(通常2小时)。在内存中缓存并复用令牌是 必须 的,否则频繁获取会触发限流。这里设置了一个简单的缓存对象,并在过期前提前刷新。
  2. 错误处理 :企业微信API有明确的错误码( errcode )。我们需要将其转化为对Claude友好的成功/失败结果,而不是直接抛出异常。这能让Claude理解操作结果并决定后续动作。
  3. 参数处理 :从Claude那里接收到的 args 包含了它根据schema填写的参数。我们将其与环境变量中的默认值结合使用。

3.4 创建API端点供Claude调用

现在,我们需要创建一个HTTP端点,它既能向Claude宣告自己有哪些工具,又能接收Claude的调用请求并执行对应的工具。

// 端点1:获取可用工具列表(Claude在会话开始时调用)
app.get('/tools', (req, res) => {
  res.json(tools);
});

// 端点2:执行工具(Claude决定调用工具时请求此端点)
app.post('/execute', async (req, res) => {
  const { tool_name, arguments: toolArgs } = req.body;
  
  if (tool_name === 'send_wecom_message') {
    const result = await executeSendWeComMessage(toolArgs);
    res.json(result);
  } else {
    res.status(404).json({ success: false, error: `未知的工具: ${tool_name}` });
  }
});

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Claude 企业微信技能服务运行在 http://localhost:${PORT}`);
});

3.5 集成到Claude

现在,如何让Claude知道我们这个服务呢?这取决于你使用Claude的方式。

场景一:通过Claude API(编程方式) 如果你通过Anthropic的API调用Claude,你需要在创建消息时,将我们服务器的 /tools 端点返回的JSON Schema提供给API。

// 伪代码示例
const anthropic = new Anthropic({ apiKey: 'your-api-key' });
const myTools = await fetch('http://localhost:3000/tools').then(r => r.json());

const message = await anthropic.messages.create({
  model: "claude-3-5-sonnet-20241022",
  max_tokens: 1024,
  tools: myTools, // 将工具Schema传入
  messages: [
    { role: "user", content: "请通知技术部的同事,今晚8点进行系统升级,请提前保存工作。" }
  ]
});
// 当Claude返回 tool_use 时,你需要调用自己的 /execute 端点,然后将结果以 tool_result 角色送回对话。

场景二:通过Claude Desktop或支持自定义工具的客户端 一些第三方Claude客户端或中间件平台(如Composio提供的桥接服务)允许你配置一个“工具服务器”的URL。你只需将 http://localhost:3000 (或部署后的公网地址)填入配置,客户端会自动获取工具列表并在需要时转发调用请求。

场景三:使用智能体框架(如LangChain) 你可以将我们的工具包装成一个LangChain Tool对象,然后将其加入一个Agent的工具栏中。

# Python LangChain 示例伪代码
from langchain.tools import Tool
import requests

def send_wecom_message(content: str, to_user: str = None):
    # 调用我们部署的服务
    response = requests.post('http://localhost:3000/execute', json={
        'tool_name': 'send_wecom_message',
        'arguments': {'content': content, 'to_user': to_user}
    })
    return response.json()

wecom_tool = Tool(
    name="send_wecom_message",
    func=send_wecom_message,
    description="通过企业微信应用发送文本消息。"
)
# 然后将 wecom_tool 加入到你的Agent中

3.6 部署与安全加固

本地测试没问题后,你需要将其部署到云服务器或Serverless平台(如Vercel, Railway, Fly.io)。

  1. 获取公网地址 :部署后你会获得一个类似 https://your-app.vercel.app 的地址。
  2. 更新Claude配置 :在Claude客户端或你的代码中,将工具服务器地址改为这个公网地址。
  3. 安全加固
    • HTTPS :确保你的服务通过HTTPS访问,防止凭证在传输中被窃听。
    • 认证 :在 /tools /execute 端点上添加简单的API密钥认证。可以在请求头中检查一个预共享的密钥。
    // 在Express中添加简单的中间件
    const API_KEY = process.env.SERVER_API_KEY;
    app.use('/execute', (req, res, next) => {
      if (req.headers['x-api-key'] !== API_KEY) {
        return res.status(403).json({ error: 'Forbidden' });
      }
      next();
    });
    
    • 环境变量 :永远不要将 WECOM_AGENT_SECRET SERVER_API_KEY 等硬编码在代码中或提交到Git仓库。使用平台的环境变量管理功能。

4. 高级技巧与模式:构建复杂工作流

掌握了单个技能的构建后,“awesome-claude-skills”仓库的精髓在于组合。Claude的强大之处在于其推理和规划能力,可以串联多个工具完成复杂任务。

4.1 技能编排模式

假设我们想实现一个“日报自动汇总与发送”的工作流:Claude每天定时读取GitHub提交、Jira任务更新和Slack特定频道的讨论,生成一份摘要,然后通过企业微信发送给经理。

模式一:顺序执行(Sequential) Claude像编写程序一样,按顺序调用工具:

  1. 调用 get_github_commits (参数:日期=今天, 仓库=xx)
  2. 调用 get_jira_updates (参数:日期=今天, 项目=xx)
  3. 调用 get_slack_channel_history (参数:频道=日报, 日期=今天)
  4. 将1,2,3的结果作为上下文,让Claude生成文本摘要。
  5. 调用 send_wecom_message (参数:内容=摘要)

模式二:条件分支(Conditional) Claude根据中间结果决定下一步。例如,一个“智能客服路由”技能:

  1. 调用 analyze_customer_intent (参数:用户消息)
  2. 如果 分析结果是“技术问题”,则调用 create_github_issue
  3. 如果 分析结果是“账单咨询”,则调用 lookup_customer_invoice
  4. 如果 分析结果是“普通问候”,则直接调用 send_reply

模式三:并行与聚合(Parallel & Aggregate) 对于无依赖的独立任务,可以设计让Claude规划并行调用。虽然当前Claude的Tool Use是顺序的,但你可以通过一个“聚合工具”来实现。例如,一个 batch_send_messages 工具,内部并行调用多个消息发送API。

4.2 状态管理与记忆

多步骤工作流中,Claude需要记住之前步骤的结果。在简单的API调用中,这通过将整个对话历史(包含之前的 tool_result )传递给Claude来实现。对于更复杂、长期运行的任务(可能跨越多次对话),你需要引入外部状态存储。

解决方案

  • 数据库存储 :为每个会话或任务创建一个唯一ID,将中间状态(如收集到的数据、当前步骤)存入PostgreSQL或Redis。
  • 使用框架 :像LangChain的 AgentExecutor 或AutoGen的 GroupChat 内置了状态管理机制,可以跟踪执行步骤和结果。
  • 设计有状态的工具 :例如,一个 create_draft_report 工具返回一个报告ID,后续的 add_section_to_report finalize_report 工具都需要这个ID作为参数。

4.3 错误处理与重试策略

在真实环境中,工具调用失败是常态。网络波动、API限流、临时错误都可能发生。

给Claude明确的错误信号 :我们的 execute 端点返回的JSON中, success: false error 字段就是信号。Claude可以读取这个错误信息,并决定下一步。例如,如果错误是“Rate limited”,Claude可能会在回复中说“发送太频繁了,我等一下再试”,或者调用一个 wait_for_seconds 工具。

在工具层面实现智能重试 :对于瞬时的网络错误,可以在工具执行函数内部实现指数退避重试。

async function callWithRetry(apiCall, maxRetries = 3) {
  let lastError;
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await apiCall();
    } catch (error) {
      lastError = error;
      if (error.response?.status === 429 || error.code === 'ECONNRESET') {
        // 遇到限流或连接重置,等待一段时间再重试
        const delay = Math.pow(2, i) * 1000 + Math.random() * 1000; // 指数退避加随机抖动
        console.log(`请求失败,${delay}ms后重试 (${i + 1}/${maxRetries})`);
        await new Promise(resolve => setTimeout(resolve, delay));
        continue;
      }
      // 对于其他错误(如4xx客户端错误),直接跳出重试循环
      break;
    }
  }
  throw lastError;
}

5. 常见问题、调试技巧与避坑指南

在实际开发和集成中,你会遇到各种问题。以下是一些高频问题的排查思路和解决方案。

5.1 Claude不调用我的工具

这是最常见的问题。请按以下清单排查:

  1. 检查Tool Schema :这是首要原因。确保你的Schema严格遵循Anthropic的Tool Use格式。最常见的错误是 input_schema type 不是 "object" ,或者 properties 字段格式错误。使用JSON Schema验证器检查。
  2. 描述是否清晰 description 字段太模糊,Claude无法理解工具用途。确保描述具体,包含关键词。例如,“发送消息”不如“向企业微信的群聊或指定成员发送文本通知消息”清晰。
  3. 参数设计是否合理 :是否有些参数是必需的但Claude很难从对话中推断?考虑提供更合理的默认值,或将一个复杂工具拆分成多个更简单的工具。
  4. Claude的“信心”不足 :有时Claude认为用户请求不够明确,它可能选择用文字回答而不是调用工具。在用户提示中更明确地指示,例如:“请使用可用的工具,帮我发送一条企业微信通知。”

5.2 工具调用结果不符合预期

Claude调用了工具,但结果错了。

  1. 参数传递错误 :在 /execute 端点打印收到的 req.body ,检查Claude传递的参数值是否和你预期的一致。常见问题是字符串格式、数字类型或枚举值不匹配。
  2. 工具逻辑错误 :单独测试你的工具函数。写一个简单的测试脚本,用模拟参数调用 executeSendWeComMessage ,看它是否能正确工作。
  3. 认证/令牌问题 :检查你的API凭证是否有效、是否过期。对于OAuth工具,确保刷新令牌流程正确。

5.3 性能与延迟问题

工具调用导致对话响应变慢。

  1. 工具服务性能 :你的技能服务器部署在哪里?如果服务器在海外,而Claude和你的用户在国内,网络延迟会很高。尽量将技能服务器部署在低延迟的区域。
  2. 同步长耗时操作 :避免在工具执行函数中进行同步的、长时间的操作(如处理大文件、复杂计算)。应将其改为异步任务,立即返回一个“任务已接收”的结果,然后通过其他方式(如回调、轮询)通知完成。Claude的Tool Use模型适合快速(几秒内)返回结果的工具。
  3. 并行化 :如果工作流中有多个 独立 的工具调用,可以考虑设计一个“批处理工具”,让你的后端服务并行执行这些任务,然后一次性返回结果,减少Claude的等待回合数。

5.4 安全风险管控

将Claude连接到真实系统,安全是重中之重。

风险点 可能后果 缓解策略
权限过度 Claude滥用工具,删除数据、发送垃圾信息。 实施 最小权限原则 。为Claude创建专用的、权限受限的API账号(如GitHub的只读Token,企业微信的仅发送消息应用)。
提示词注入 用户通过巧妙输入,诱使Claude执行未授权的工具调用。 在工具执行前进行 输入验证和过滤 。例如,检查 to_user 参数是否在允许的接收列表内。在服务端设定硬性规则。
凭证泄露 API密钥、令牌在传输或存储中泄露。 强制使用 HTTPS 。使用环境变量或秘密管理服务(如Vault, Doppler)。令牌实现自动刷新,避免长期有效的硬编码令牌。
不可预测的输出 Claude对工具结果的解读可能导致它做出错误的下一个决策。 为工具设计 结构化的、明确的返回结果 。避免返回过于复杂或歧义的文本。使用 success 布尔值和清晰的 message 字段。

5.5 调试与日志记录

建立有效的调试流程至关重要。

  1. 结构化日志 :在技能服务器中,使用Winston、Pino等日志库,记录每一个工具调用的入参、出参、耗时和错误信息。附上唯一的请求ID,方便追踪。
  2. 模拟测试 :构建一个“模拟模式”,当环境变量 NODE_ENV=test 时,工具函数不执行真实API调用,而是返回预设的模拟数据。这方便进行集成测试,且不会影响生产系统。
  3. 使用Claude API的调试信息 :Anthropic API的响应中可能包含详细的调试信息,帮助你理解Claude为什么做出某个决定。在开发阶段充分利用这些信息。
  4. 人机回环(Human-in-the-loop) :对于高风险操作(如生产数据库写入、资金操作),不要完全自动化。可以设计工具在最终执行前,先返回一个待确认的预览,等待用户明确批准(例如,调用一个 request_human_approval 工具)后再执行。

构建和维护一个可靠的Claude技能生态,是一个持续迭代的过程。从“awesome-claude-skills”中汲取灵感,从简单的单个技能开始,逐步构建更复杂、更智能的工作流,你会发现Claude从一个强大的对话伙伴,进化成了一个真正能为你处理事务的智能副手。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐