{
  "$schema": "https://spec.agentcard.dev/schema-v1.0.json",
  "protocolVersion": "1.0",
  "name": "RoboParts",
  "description": "具身系统的组合校验层（vendor-neutral composition checker for embodied systems）。20 个品类、868 条实体，提供三态 fail-closed 兼容判定（能/不能/不知道）、BOM 矩阵检查、共装关系判定（A↔宿主↔B）、标准合规审计、URDF 校验与研究进度溯源。输出可核验的三态结论（能/不能/不知道），未声明维度显式标为 unknown 而非 fail-open。既不生产也不转售任何零部件——因为不卖零件，所以没有理由骗你选一个。真正的护城河是三态 fail-closed compose 引擎 + 三条定理 + 40 项 CI 闸门。",
  "version": "1.1.1",
  "provider": {
    "organization": "RoboParts",
    "url": "https://roboparts.cc",
    "supportUrl": "https://roboparts.cc/api/register"
  },
  "documentationUrl": "https://roboparts.cc/llms.txt",
  "contactUrl": "https://github.com/lm203688/roboparts/issues",
  "supportedInterfaces": [
    {
      "url": "https://roboparts.cc/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "note": "A2A v1.0 message/send 桥接端点。把 A2A 委派映射到 MCP tools/call（与 /mcp 共用同一份工具表）。不解析自然语言意图——请在 message 的 data part 给出 {\"tool\":\"<名>\",\"arguments\":{...}}；未给 tool 时返回能力清单。"
    },
    {
      "url": "https://roboparts.cc/mcp",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "note": "MCP Streamable HTTP 端点（底层 JSON-RPC 2.0 over HTTPS）。调用工具走 MCP tools/call；若需 A2A 语义委派，改用 /a2a。"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "roboparts-search",
      "name": "搜索机器人零部件",
      "description": "用户想找某类机器人零件（执行器/传感器/芯片/协议/平台），或给出型号片段需要补全信息时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户想找某类机器人零件（执行器/传感器/芯片/协议/平台），或给出型号片段需要补全信息时。"
      ]
    },
    {
      "id": "roboparts-component-detail",
      "name": "查询单个零部件详情",
      "description": "已经拿到零部件 ID（如 ACT-001），需要完整规格、厂商、证据等级与数据缺口时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "已经拿到零部件 ID（如 ACT-001），需要完整规格、厂商、证据等级与数据缺口时。"
      ]
    },
    {
      "id": "roboparts-compat-check",
      "name": "四维兼容性判定",
      "description": "用户问「A 和 B 能不能装一起」「这两个零件兼容吗」「选型有没有冲突」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "compatibility-check"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「A 和 B 能不能装一起」「这两个零件兼容吗」「选型有没有冲突」时。"
      ]
    },
    {
      "id": "roboparts-recommend",
      "name": "按应用场景推荐组合",
      "description": "用户要「给某类机器人配一套零件」「预算 X 元怎么选」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "selection"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户要「给某类机器人配一套零件」「预算 X 元怎么选」时。"
      ]
    },
    {
      "id": "roboparts-compare",
      "name": "多零部件参数并排对比",
      "description": "用户要在 2~6 个零部件之间横向比较参数（扭矩/电压/协议/价格等），或说「帮我对比这几个型号」时，一次调用替代连发多次 get_component_detail。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户要在 2~6 个零部件之间横向比较参数（扭矩/电压/协议/价格等），或说「帮我对比这几个型号」时，一次调用替代连发多次 get_component_detail。"
      ]
    },
    {
      "id": "roboparts-parameter-semantics",
      "name": "参数口径语义查询",
      "description": "用户问「这个扭矩参数靠谱吗」「不同厂商参数怎么比」「单位怎么换算」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "selection"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这个扭矩参数靠谱吗」「不同厂商参数怎么比」「单位怎么换算」时。"
      ]
    },
    {
      "id": "roboparts-bom-compat",
      "name": "BOM 两两兼容性矩阵",
      "description": "用户给了一整张零件清单 / BOM（如 [\"ACT-001\",\"SENS-001\"]），问这些零件彼此之间在电气 / 机械 / 协议 / 软件四维是否兼容、冲突在哪时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "compatibility-check",
        "bom"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户给了一整张零件清单 / BOM（如 [\"ACT-001\",\"SENS-001\"]），问这些零件彼此之间在电气 / 机械 / 协议 / 软件四维是否兼容、冲突在哪时。"
      ]
    },
    {
      "id": "roboparts-semantic-search",
      "name": "自然语言语义召回零部件",
      "description": "用户用自然语言描述需求（如「人形机器人髋部高扭矩电机」「六维力传感器 防水」），不确定确切型号或参数名，需要发现式检索而非精确筛选时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "selection"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户用自然语言描述需求（如「人形机器人髋部高扭矩电机」「六维力传感器 防水」），不确定确切型号或参数名，需要发现式检索而非精确筛选时。"
      ]
    },
    {
      "id": "roboparts-standard-audit",
      "name": "标准符合性自校验",
      "description": "用户想核对某零件 / 厂商声明的标准符合性，或想知道哪些声明能被已知标准集核实、哪些是出处存疑的条目时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "standards-audit"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户想核对某零件 / 厂商声明的标准符合性，或想知道哪些声明能被已知标准集核实、哪些是出处存疑的条目时。"
      ]
    },
    {
      "id": "roboparts-compat-review",
      "name": "多Agent质保复核兼容性",
      "description": "对外发布 / 采购决策前要对兼容性结论做第二双眼睛复核时：给出 L0–L3 风险分级、证据不足时降级、缺失证据显式列出。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "compatibility-check"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "对外发布 / 采购决策前要对兼容性结论做第二双眼睛复核时：给出 L0–L3 风险分级、证据不足时降级、缺失证据显式列出。"
      ]
    },
    {
      "id": "roboparts-urdf-lint",
      "name": "URDF 兼容性检查",
      "description": "用户上传或引用 URDF XML 文件，想做兼容性预检、检查运动学树完整性、或验证是否符合 ROS 工业标准帧规范时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "urdf"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户上传或引用 URDF XML 文件，想做兼容性预检、检查运动学树完整性、或验证是否符合 ROS 工业标准帧规范时。"
      ]
    },
    {
      "id": "roboparts-compose-frontier",
      "name": "三轴组合裁决与 composed=0 归因",
      "description": "用户问「这两个零件为什么判为 type_error」「哪些配对能真的装起来」「composed 是不是 0」「为什么机械能拧上但组合判不出来」，或需要研究层口径（三轴 mechanical/electrical/signal）结论时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "co-mount"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这两个零件为什么判为 type_error」「哪些配对能真的装起来」「composed 是不是 0」「为什么机械能拧上但组合判不出来」，或需要研究层口径（三轴 mechanical/elect"
      ]
    },
    {
      "id": "roboparts-evidence-cohort",
      "name": "最小可行同质集取证判据",
      "description": "用户问「取证该从哪开始」「补哪条数据最值」「补机械声明率有没有用」「K=2 是什么意思」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "evidence-traceability"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「取证该从哪开始」「补哪条数据最值」「补机械声明率有没有用」「K=2 是什么意思」时。"
      ]
    },
    {
      "id": "roboparts-evidence-mdv",
      "name": "边际声明价值与零贡献轴",
      "description": "用户问「补哪个轴最划算」「某轴还有取证价值吗」「机械声明率低是不是真问题」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "evidence-traceability"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「补哪个轴最划算」「某轴还有取证价值吗」「机械声明率低是不是真问题」时。"
      ]
    },
    {
      "id": "roboparts-connector-types",
      "name": "连接器类型判据（三元组）",
      "description": "用户问「这两个连接器能不能互插」「同为 M8 为什么判不兼容」「pinout 为 null 是什么意思」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这两个连接器能不能互插」「同为 M8 为什么判不兼容」「pinout 为 null 是什么意思」时。"
      ]
    },
    {
      "id": "roboparts-research-progress",
      "name": "核心目标完成度",
      "description": "用户问「这个项目做到什么程度了」「核心目标完成了几成」「composed 为什么是 0」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "research-progress"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这个项目做到什么程度了」「核心目标完成了几成」「composed 为什么是 0」时。"
      ]
    },
    {
      "id": "roboparts-co-mount",
      "name": "共装裁决（三段 A↔宿主↔B）",
      "description": "用户问「这台机器人能不能同时装夹爪 A 和传感器 B」「两个夹爪能一起装吗」「为什么判 port_exhausted」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "co-mount"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这台机器人能不能同时装夹爪 A 和传感器 B」「两个夹爪能一起装吗」「为什么判 port_exhausted」时。"
      ]
    },
    {
      "id": "roboparts-tool-side",
      "name": "宿主工具侧接口取证",
      "description": "用户问「这台机器人工具侧有几个电气接口」「tool_io_ports 是多少」「为什么 FR3 判 unknown」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这台机器人工具侧有几个电气接口」「tool_io_ports 是多少」「为什么 FR3 判 unknown」时。"
      ]
    },
    {
      "id": "roboparts-behavior-evidence",
      "name": "行为证据（真机 benchmark）",
      "description": "用户问「这个模型真机表现如何」「有没有实测成功率」「仿真成绩能当真机用吗」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral",
        "evidence-traceability"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这个模型真机表现如何」「有没有实测成功率」「仿真成绩能当真机用吗」时。"
      ]
    },
    {
      "id": "roboparts-body-binding",
      "name": "开源VLA→本体绑定（强度分档）",
      "description": "用户问「这个模型跑在什么机器人上」「绑定可信吗」「为什么 SmolVLA 没有 body_robot」时。",
      "tags": [
        "robotics",
        "robot-parts",
        "compatibility",
        "vendor-neutral"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "examples": [
        "用户问「这个模型跑在什么机器人上」「绑定可信吗」「为什么 SmolVLA 没有 body_robot」时。"
      ]
    }
  ],
  "securitySchemes": {},
  "security": [],
  "boundaries": [
    "只读、免鉴权、不设 cookie、不存储调用方数据",
    "兼容性结论基于厂商公开声明字段的规则推断，非实验室实测",
    "厂商未声明的维度记为 unknown（无法判定），不计入兼容也不计入不兼容",
    "与任何零部件厂商无商业绑定；不生产、不代理、不转售任何零部件",
    "A2A message/send 桥接已上线（/a2a），但不解析自然语言意图——委派方需显式给出工具名与参数"
  ]
}
