Agent Skills与MCP:一场被误解的"替代战争"

作者:牛潇

在 Agentic AI 快速演进的今天,"Agent Skills 会取代 MCP"或"MCP 已经过时"的声音不绝于耳。这种二元对立的叙事,看似犀利,实则掩盖了智能体架构设计中最本质的真相:Agent Skills 与 MCP 并非对手,而是搭档

前者是人类智慧的结晶------将业务规则、决策逻辑与合规要求,以声明式、可读、可维护的方式注入 AI 代理;后者是技术能力的桥梁------让 AI 能安全、可靠地触达现实世界的数据、工具与系统。一个回答"怎么做才对",一个解决"能不能做";一个由产品经理和业务专家驱动,一个由工程师和 SRE 构建。

本文旨在彻底厘清二者的核心差异、适用边界与协同模式。我们将从概念定义出发,深入实现机制,通过多维对比与真实场景剖析,最终给出一套可落地的选择策略与高阶架构范式。无论你是智能体开发者、平台架构师,还是正在规划 AI 原生应用的产品负责人,都能从中获得清晰的判断框架与实践指引。

更重要的是,我们将证明:真正的智能,不在于选择某一种工具,而在于知道何时用哪一种,以及如何让它们共舞

一、核心概念定义:超越实现的标准

1.1 Model Context Protocol (MCP) - 模型上下文协议

本质定义 :MCP是一种标准化通信协议,定义了AI模型如何与外部系统建立安全、高效、可审计的双向连接。

核心特性

能力扩展协议:为AI代理提供访问实时数据、专业工具和企业系统的标准化接口

安全沙箱规范:在协议层面定义权限控制、数据隔离和操作审计机制

上下文同步机制:解决模型内部状态与外部世界状态的一致性问题

标准化接口:通过JSON-RPC或其他标准协议定义请求/响应格式、认证机制和错误处理

服务化架构:协议设计支持独立部署的服务进程,实现高可用和水平扩展

架构定位 :MCP解决了 "能不能做" 的问题 (Capability),为AI代理扩展其原始训练数据范围之外的能力边界。

1.2 Agent Skills - 代理技能标准

本质定义 :Agent Skills是一种模块化能力封装标准,通过声明式、配置化的方式定义AI代理在特定场景下的行为规范、决策逻辑和工作流程。

核心特性

流程编排标准:定义如何将原子操作组合成完整业务流程的标准

上下文感知能力:标准定义了技能如何根据对话历史和环境动态调整行为

透明可解释性:决策路径对人类可见,便于理解和修改

轻量级集成:标准设计支持无服务部署,修改配置即可生效

组合式架构:支持技能的嵌套、组合和复用

架构定位 :Agent Skills解决了 "怎么做才对" 的问题 (Orchestration),为AI代理编写符合业务标准和人类期望的行为规范。

二、设计哲学与架构差异

2.1 MCP:能力导向的设计

MCP的核心设计哲学是能力扩展。它关注:

原子操作:如何安全地执行单一、精确的操作

连接管理:如何高效管理与外部系统的连接

权限边界:如何在协议层面实现细粒度权限控制

数据标准化:如何统一不同数据源的格式和语义

MCP的架构本质上是服务化的:

2.2 Agent Skills:流程导向的设计

Agent Skills的核心设计哲学是业务价值。它关注:

决策逻辑:在特定情境下如何做出正确决策

流程规范:如何将多个操作组合成符合业务标准的流程

上下文适应:如何根据环境变化动态调整行为

人类协作:如何使AI行为可理解、可预测、可修正

Agent Skills的架构本质上是声明式的:

三、多维度对比分析

维度 Agent Skills MCP
协议/标准类型 声明式配置标准 (Declarative) 通信协议标准 (Imperative)
核心关注点 业务流程与决策逻辑 (What & Why) 能力执行与数据获取 (How & Can)
抽象层级 业务逻辑层 (Business Logic Layer) 能力扩展层 (Capability Layer)
数据流向 自顶向下 (决策驱动) 自底向上 (能力驱动)
变更频率 高 (业务规则经常变化) 低 (接口相对稳定)
维护主体 业务专家、领域专家 工程师、系统管理员
安全模型 软约束 (依赖执行引擎的策略) 硬约束 (协议层强制控制)
性能特性 低延迟 (纯逻辑决策) 可变延迟 (依赖外部系统)
复用模式 领域特定复用 跨领域通用复用
标准化程度 高 (结构化配置) 高 (协议规范)

四、核心区别总结

4.1 本质差异

Agent Skills定义业务价值路径,MCP实现技术能力扩展

Agent Skills关注"为什么"和"如何"

◦为什么这个任务对业务有价值?

◦如何确保任务按照业务标准和合规要求完成?

◦如何在不同业务情境下动态调整决策逻辑?

◦其设计哲学是以业务为中心,将人类专业知识编码为AI可执行的规范

MCP关注"什么"和"能否"

◦需要访问什么外部数据或工具?

◦AI能否安全、可靠地执行这个具体操作?

◦如何在协议层面实现权限控制和数据隔离?

◦其设计哲学是以能力为中心,解决AI与现实世界连接的技术问题

4.2 架构隐喻

Agent Skills如同"企业SOP手册"

◦详细描述每个业务流程的标准步骤

◦规定在特定情境下的决策规则

◦可由非技术人员编写和维护

◦随业务需求灵活调整

MCP如同"企业IT基础设施"

◦提供基础数据访问和计算能力

◦确保系统安全性和可靠性

◦需要专业技术团队维护

◦变更需要严格测试和审批流程

五、场景示例对比:标准应用与实际落地

5.1 场景一:客户服务工单处理

需求:自动处理客户支持工单,需要理解客户意图、查询相关数据、生成适当回复。

Agent Skills标准应用(业务流程编排):

vbnet 复制代码
skill:
  name: "customer_ticket_processing"
  trigger: 
    event: "new_ticket_created"
  workflow:
    steps:
      - name: "intent_classification"
        description: "识别客户工单类型"
        rules:
          - "如果包含'退款'、'钱'等关键词,标记为财务类"
          - "如果包含'无法登录'、'错误',标记为技术类"
          - "如果包含'多久'、'什么时候',标记为咨询类"
      
      - name: "data_requirements"
        description: "确定需要查询的数据"
        conditional:
          if: "ticket_type == 'financial'"
          then: ["mcp_order_history", "mcp_payment_records"]
          elif: "ticket_type == 'technical'"
          then: ["mcp_user_activity", "mcp_system_logs"]
      
      - name: "response_generation"
        description: "生成符合品牌标准的回复"
        prompt_template: |
          你是一个专业客服代表,遵循以下规则:
          1. 使用友好、专业的语气
          2. 对于财务问题,必须提供具体金额和时间
          3. 对于技术问题,提供具体解决方案而不是模糊建议
          4. 如无法解决,明确升级路径
        constraints:
          - "不得承诺无法确认的信息"
          - "必须引用数据支持你的结论"

为什么适用Agent Skills

•✅业务规则复杂:需要根据多种条件动态调整处理流程

•✅合规要求高:必须遵循特定的沟通标准和数据使用规范

•✅频繁变更:客户政策和响应标准经常变化

•❌不适合MCP:这不是原子操作,而是需要上下文感知的决策流程


MCP标准应用(能力提供):

python 复制代码
class CustomerDataMCP:
    @mcp_tool(permission="read_only")
    def get_order_history(self, customer_id, limit=10):
        """安全获取客户订单历史"""
        # 从订单数据库获取数据
        orders = self.order_db.query(
            "SELECT order_id, amount, status, created_at FROM orders WHERE customer_id=? ORDER BY created_at DESC LIMIT?",
            [customer_id, limit]
        )
        return {
            "orders": orders,
            "total_count": self.order_db.count("orders", {"customer_id": customer_id})
        }
    
    @mcp_tool(permission="read_only")
    def get_system_status(self):
        """获取系统当前状态"""
        # 从监控系统获取实时状态
        return self.monitoring_api.get_current_status()
    
    @mcp_tool(permission="write")
    def create_support_note(self, ticket_id, note_content, agent_id):
        """创建客服备注,需要写权限"""
        if not self.auth.has_permission(agent_id, "support_write"):
            raise PermissionError("Insufficient permissions")
        return self.support_db.insert_note(ticket_id, note_content, agent_id)

为什么适用MCP

•✅数据敏感性:涉及客户个人数据,需要严格的权限控制

•✅跨系统集成:需要连接订单系统、监控系统和客服系统

•✅结构化输出:需要统一的数据格式,避免文本解析歧义

•❌不适合Agent Skills:这不是业务决策,而是需要安全控制的原子操作

5.2 场景二:金融风险评估

需求:为贷款申请提供风险评估,需要综合多源数据、应用复杂模型、生成合规报告。

Agent Skills标准应用(决策规则与合规性):

bash 复制代码
skill:
  name: "loan_risk_assessment"
  trigger: 
    event: "loan_application_received"
  workflow:
    compliance_rules:
      - "必须检查申请者年龄是否≥18岁"
      - "必须验证收入证明真实性"
      - "禁止基于种族、性别等因素做决策"
      - "超过$100,000的贷款必须人工审核"
    
    assessment_steps:
      1. "data_collection":
           tools: ["mcp_credit_report", "mcp_income_verification", "mcp_employment_history"]
      
      2. "risk_calculation":
           description: "应用公司标准风险模型"
           rules:
             - "信用分<600:高风险"
             - "负债收入比>50%:中高风险"
             - "就业历史<2年:中风险"
      
      3. "decision_logic":
           rules:
             - "如果高风险因素≥2,拒绝贷款"
             - "如果中风险因素≥3,要求额外担保"
             - "否则,批准贷款但限制额度"
      
      4. "report_generation":
           template: |
             # 贷款风险评估报告
             **申请人**: {applicant_name}
             **申请金额**: ${loan_amount}
             
             ## 风险因素分析
             {risk_factors_section}
             
             ## 决策依据
             {decision_rationale}
             
             ## 合规声明
             本评估严格遵循[相关法规],未考虑受保护特征。

为什么适用Agent Skills

•✅合规驱动:需要严格遵循金融法规和内部政策

•✅决策复杂:需要权衡多个风险因素并应用业务规则

•✅审计要求:需要完整的决策路径记录和解释

•❌不适合MCP:这不是技术实现问题,而是业务决策逻辑


MCP标准应用(数据获取与模型执行):

python 复制代码
class FinancialRiskMCP:
    @mcp_tool(permission="sensitive_data")
    def get_credit_report(self, applicant_id):
        """获取信用报告,处理敏感数据"""
        # 通过安全通道调用外部信用机构API
        report = self.credit_api.get_report(applicant_id)
        # 数据脱敏处理
        return self._sanitize_sensitive_data(report)
    
    @mcp_tool(permission="model_execution")
    def run_risk_model(self, features):
        """执行风险评估模型"""
        # 加载预训练的风险评估模型
        model = self.model_registry.get("risk-assessment-v3")
        # 特征工程和预测
        processed_features = self._preprocess_features(features)
        prediction = model.predict(processed_features)
        # 生成可解释的模型输出
        explanation = self.explainer.generate_explanation(model, processed_features)
        return {
            "risk_score": prediction,
            "confidence": model.confidence_score,
            "key_factors": explanation.top_factors
        }
    
    @mcp_tool(permission="document_generation")
    def generate_compliance_report(self, assessment_data):
        """生成合规的审计报告"""
        # 应用合规模板
        report = self.report_template.render(assessment_data)
        # 添加数字签名
        signed_report = self.crypto.sign_document(report)
        # 存档到审计系统
        self.audit_system.archive(signed_report)
        return signed_report

为什么适用MCP

•✅数据安全:涉及敏感金融数据,需要严格的访问控制

•✅专业模型:需要调用专门的风险评估模型

•✅审计追踪:需要完整的操作日志和数字签名

•❌不适合Agent Skills:这不是业务规则,而是需要安全控制的技术操作

5.3 场景三:实际落地案例 - Claude Code 中的自动化部署

需求:在软件开发项目中,实现自动化部署流程,包括运行测试、构建和部署到生产环境。

这是一个已在Claude Code中实际落地的场景,完美展现了 MCP 与 Skills 的协同工作模式。

MCP 层实现:提供原子能力

python 复制代码
# mcp_deployment_server.py
from mcp_server import MCPServer, mcp_tool

class DeploymentMCP(MCPServer):
    def __init__(self, config):
        super().__init__()
        self.config = config
        self._setup_connections()
    
    def _setup_connections(self):
        """建立必要的系统连接"""
        self.ci_connection = self._connect_to_ci_system()
        self.s3_client = self._setup_s3_client()
    
    @mcp_tool()
    def run_tests(self):
        """
        运行项目测试套件
        返回结构化的测试结果
        """
        # 通过CI系统API触发测试
        test_result = self.ci_connection.run_pipeline("test")
        
        # 返回结构化结果
        return {
            "success": test_result["status"] == "passed",
            "total_tests": test_result["total"],
            "failed_tests": test_result["failed"],
            "duration_ms": test_result["duration"]
        }
    
    @mcp_tool(permission="deployment_write")
    def upload_to_s3(self, environment="production"):
        """
        将构建产物上传到S3
        需要部署权限
        """
        # 验证环境
        if environment not in ["staging", "production"]:
            raise ValueError("Invalid environment")
        
        # 获取最新构建产物
        build_artifact = self.ci_connection.get_latest_build_artifact()
        
        # 上传到S3
        bucket_name = f"myapp-{environment}-bucket"
        key = f"builds/{build_artifact['version']}/{build_artifact['filename']}"
        
        self.s3_client.upload_file(
            build_artifact['local_path'],
            bucket_name,
            key
        )
        
        return {
            "status": "success",
            "bucket": bucket_name,
            "key": key,
            "url": f"https://{bucket_name}.s3.amazonaws.com/{key}"
        }

MCP 层关键价值

•✅安全封装:敏感凭证(S3密钥、CI系统令牌)完全封装在服务内部

•✅标准化接口:提供统一的输入/输出格式,便于调用

•✅错误处理:在服务层处理网络错误、超时等异常情况

•✅权限控制 :通过@mcp_tool(permission="deployment_write")严格控制部署权限

Skills 层实现:定义业务流程

markdown 复制代码
# CLAUDE.md (项目根目录)

## Skill: 代码部署 (Deploy)

 **触发条件** :用户要求"deploy"、"部署"、"上线"或相关操作

 **执行流程** :
1.  **运行测试** :
   - 首先调用 MCP 工具 `run_tests`
   - 如果返回失败,立即停止并报错:"测试未通过,无法部署"
   - 不要继续执行后续步骤
   - 具体失败原因:{failed_tests} 个测试失败

2.  **执行上传** :
   - 如果测试通过,调用 MCP 工具 `upload_to_s3`
   - 参数设置:
     - environment: "production"(生产环境)
   - 等待上传完成确认
   - 验证返回的S3 URL是否可访问

3.  **验证部署** :
   - 访问部署后的URL进行健康检查
   - 确认关键功能是否正常工作
   - 如果验证失败,触发回滚流程

4.  **报告结果** :
   - 用简洁的语言总结部署结果
   - 包含关键信息:部署时间、版本号、S3 URL
   - 如果有问题,提供具体的错误信息和建议

 **安全规则** :
- 永远不要直接在生产环境执行未经测试的代码
- 任何破坏性操作(如数据库迁移)必须先询问用户确认
- 部署前必须备份当前版本
- 生产环境部署必须获得至少一名资深工程师的批准

Skills 层关键价值

•✅业务逻辑清晰:用自然语言描述完整的部署流程,易于理解和修改

•✅灵活调整:业务规则变化时(如添加预发布环境),只需修改配置

•✅团队协作:非工程师(如产品经理、QA)也能理解并参与优化流程

•✅透明决策:用户可以看到完整的推理过程,增强信任

协同工作流程

javascript 复制代码
用户请求:"部署最新版本到生产环境"

1. Claude 检测到"部署"关键词,激活 "代码部署 (Deploy)" Skill
2. Skill 定义第一步:运行测试
   → 调用 MCP 工具 `run_tests`
   ← MCP 返回:{"success": true, "total_tests": 125, "failed_tests": 0}
3. Skill 检查测试结果,判定通过
4. Skill 定义第二步:执行上传
   → 调用 MCP 工具 `upload_to_s3` with {"environment": "production"}
   ← MCP 返回:{
        "status": "success", 
        "bucket": "myapp-production-bucket",
        "key": "builds/v2.3.1/app-bundle.zip",
        "url": "https://myapp-production-bucket.s3.amazonaws.com/builds/v2.3.1/app-bundle.zip"
      }
5. Skill 进行验证和报告
6. 最终输出:"✅ 部署成功!版本 v2.3.1 已部署到生产环境,S3 URL: https://..."

为什么这种分层架构最优

•✅关注点分离:MCP 专注"如何安全执行",Skills 专注"如何正确流程"

•✅变更独立性:修改部署流程不需要修改 MCP 服务,反之亦然

•✅复用性run_testsupload_to_s3工具可被其他 Skill 复用

•✅安全与灵活性平衡:敏感操作受控,业务逻辑灵活可变

实际工程价值

开发效率 :新团队成员通过阅读CLAUDE.md即可理解部署流程

运维可靠性:MCP 层的错误处理和重试机制提高了系统稳定性

合规保证:所有部署操作都有完整审计日志

快速迭代:业务流程调整只需修改配置,无需重新部署服务

六、选择建议与高阶策略

6.1 基础决策框架

优先选择Agent Skills当: ✅ 业务规则复杂且经常变化:当决策逻辑依赖于业务策略而非技术实现时 ✅ 需要人类可读的规范:当非技术人员需要理解和修改行为规则时 ✅ 涉及主观判断:当任务需要权衡多个因素且没有明确的算法时 ✅ 强调一致性和合规性:当需要确保AI行为符合公司政策或法规要求时 ✅ 快速原型和迭代:当需要快速验证想法而不想投入大量工程资源时

优先选择MCP当: ✅ 需要访问外部数据源:当任务依赖实时数据、专有系统或敏感信息时 ✅ 性能要求严格:当需要高效处理大量数据或低延迟响应时 ✅ 安全性至关重要:当涉及财务交易、个人隐私或系统关键操作时 ✅ 需要精确控制:当任务要求精确的输入/输出格式或复杂的状态管理时 ✅ 跨系统集成:当需要连接多个不兼容的系统或协议时

6.2 高阶决策树

6.3 经典协同模式

模式1:分层架构(最常见)

最佳实践

Agent Skills负责"为什么"和"做什么" :定义业务目标和流程

MCP负责"怎么做" :提供具体的执行能力

严格分离关注点:避免在Skills中硬编码技术细节,避免在MCP中包含业务规则

模式2:技能驱动型MCP

yaml 复制代码
skill:
  name: "dynamic_mcp_selection"
  description: "根据上下文动态选择最合适的MCP工具"
  logic:
    - if: "data_freshness_requirement == 'real-time'"
      then: "use mcp_live_data_feed"
    - if: "data_volume > 1GB"
      then: "use mcp_batch_processing"
    - if: "security_classification == 'sensitive'"
      then: "use mcp_encrypted_channel"

优势:最大化灵活性,适应复杂多变的业务需求

模式3:MCP增强型技能

python 复制代码
class SkillEnhancementMCP:
    @mcp_tool
    def get_optimal_workflow(self, task_type, context):
        """基于历史数据推荐最佳工作流程"""
        # 分析历史任务完成数据
        historical_data = self.analytics_db.get_task_metrics(task_type)
        # 应用机器学习模型推荐最优流程
        recommended_workflow = self.recommender.predict_optimal_workflow(
            task_features=context,
            historical_performance=historical_data
        )
        return recommended_workflow

优势:利用数据驱动优化技能定义,形成闭环学习系统

七、总结与技术展望

7.1 核心原则重申

1.MCP = 能力扩展 (Capability Extension) :解决"能不能做"的问题

2.Agent Skills = 业务编排 (Business Orchestration) :解决"怎么做才对"的问题

3.协同而非替代:两者在智能体架构中互补共存,创造最大价值

7.2 真实工程经验教训

在多个大型AI系统中,我们观察到以下关键点:

误区1:用MCP实现所有功能

症状:每个小功能都实现为MCP工具

后果:过度工程化,维护成本高,业务逻辑与技术实现耦合

解法:优先评估是否需要外部系统访问或安全控制

误区2:在Agent Skills中硬编码复杂逻辑

症状:Skills配置超过2000行,包含大量条件判断

后果:决策逻辑难以理解和维护,执行不可靠

解法:将复杂逻辑拆分为MCP工具,Skills只负责业务编排

误区3:忽视安全边界

症状:在Skills中暴露敏感操作,在MCP中缺少输入校验

后果:安全漏洞,数据泄露风险

解法:敏感操作始终通过MCP,Skills只包含公开的业务规则

7.3 未来展望

随着AI智能体架构的发展,我们观察到以下趋势:

1.标准化融合

◦MCP协议将支持技能描述标准,使能力发现和组合更加自动化

◦Agent Skills标准将内置对MCP能力的语义描述,提升互操作性

2.动态协同

◦智能体将能够根据任务复杂度自动决定使用Skills还是MCP

◦运行时将动态平衡配置驱动和代码驱动的执行路径

3.开发者体验优化

◦统一的开发框架将无缝集成Skills和MCP

◦低代码平台将使业务专家能够定义技能,自动映射到合适的MCP能力

八、结语:协同共生,而非零和博弈

在AI技术社区中,经常出现"Skills将取代MCP"或"MCP是过时的技术"等论调。这些观点源于对两者本质的误解,忽视了它们在智能体架构中互补共存的价值。

MCP和Agent Skills不是竞争关系,而是共生关系

•MCP扩展了AI的感知和行动能力,使其能够连接现实世界

•Agent Skills定义了AI的思维和决策模式,使其能够按照人类期望的方式行动

将AI智能体视为一个完整的系统:

MCP是感官和肢体:眼睛(数据获取)、耳朵(事件监听)、手(工具执行)

Agent Skills是大脑和神经系统:决策逻辑、行为规范、学习能力

没有感官和肢体,大脑无法感知世界;没有大脑和神经系统,肢体无法协调行动。两者缺一不可。

终极建议

不要陷入"二选一"的思维陷阱。最强大的AI代理系统往往是Skills和MCP精心设计的协同体:

用Skills定义业务价值:什么是对用户真正有用的?

用MCP实现技术可能:如何最安全、高效地交付这些价值?

持续优化两者的边界:随着业务演进和技术进步,重新评估职责分配

记住:技术的目的是解决问题,而不是创造新的复杂性。Skills和MCP都是工具,明智的工程师会根据具体问题选择最合适的工具,或将多个工具创造性地组合,以交付最大价值。

在AI代理的未来,我们不会看到Skills取代MCP,或MCP淘汰Skills。相反,我们将见证一个融合的生态系统,其中配置驱动的灵活性与代码实现的强大性和谐共存,共同推动AI代理走向更智能、更可靠、更有价值的未来。


参考资料与延伸阅读

本文引用的核心概念与技术规范基于以下行业权威文档,推荐读者深入阅读以获取更多技术细节:

  1. Model Context Protocol Specification

•来源: Anthropic & MCP Community

•地址: modelcontextprotocol.io/introductio...

•对应内容: 支持文中第一章与第二章关于 MCP 作为"标准化连接协议"、"安全沙箱"及"JSON-RPC 消息规范"的技术定义。

  1. Building Effective Agents

•来源: Anthropic Research Team (2024)

•地址: anthropic.com/research/bu...

•对应内容: 支持文中关于"Workflows(工作流) vs Agents(自主体)"的区分,以及为何在生产环境中应优先采用确定性较高的 Agent Skills(即文中提到的 Orchestration)。

  1. The Future of Agentic AI & Design Patterns

•来源: Andrew Ng, DeepLearning.AI (The Batch, Issue 242)

•地址: deeplearning.ai/the-batch/i...

•对应内容: 支持文中关于"SOP 即智能"的观点,详细阐述了通过结构化流程(Agentic Workflows)来提升 AI 产出质量的设计模式。

  1. Semantic Kernel Overview

•来源: Microsoft Learn

•地址: learn.microsoft.com/en-us/seman...

•对应内容: 提供了文中"声明式技能"的工程实现参考,展示了如何将自然语言 Prompt 封装为可调用的 Skills/Plugins。

相关推荐
阿里嘎多学长9 小时前
2026-03-24 GitHub 热点项目精选
开发语言·程序员·github·代码托管
乌拉布拉乌10 小时前
腾讯应用宝空包apk签名
程序员
程序员鱼皮10 小时前
我的免费 OpenClaw 零基础教程,爆了!
ai·程序员·编程·ai编程·openclaw
SimonKing11 小时前
还在本地硬扛大模型?试试 Ollama Cloud,顺便把 OpenCode 也升级了
java·后端·程序员
CodeSheep11 小时前
两位大佬相继离世,AI时代我们活得太着急了
前端·后端·程序员
NineData1 天前
从个人开发到企业专属集群,NineData 的产品矩阵怎么做的?
运维·数据库·程序员
集成显卡1 天前
别局限于 Oh-My-Posh,试试 Rust 编写的 starship:极简超快且无限可定制的命令行提示符
程序员·代码规范·命令行
陈随易1 天前
我也曾离猝死很近
前端·后端·程序员
SimonKing1 天前
IntelliJ IDEA 配置与插件全部迁移到其他盘,彻底释放C盘空间
java·后端·程序员
程序员cxuan2 天前
说点掏心窝子的话
后端·程序员