Skip to content

应用开发指南

概述

应用 (App) 是智航云 AI 中台最顶层的资源单位。每个应用代表一个与 AI 中台集成的外部系统,包含完整的工具集、服务配置、仪表盘定义等。

平台内置的集成示例包括:

  • 太古里运维平台 -- IoT 能耗管理系统
  • 智慧园区标准版 -- 智慧园区综合管理
  • 智航云DHR -- 人力资源平台 (60+ 工具)
  • 智航云BIM -- 建筑 BIM 管理
  • 双子塔数字孪生 -- 数字孪生可视化

应用定义格式

应用定义与平台内部 custom-apps/*.json 格式完全一致,包含四个核心部分:

json
{
  "app": {
    "id": "my-erp",
    "name": "My ERP Connector",
    "nameZh": "我的ERP连接器",
    "domain": "operations",
    "subsystem": "ERP"
  },
  "serviceConfig": {
    "credentials": ["username", "password"],
    "baseUrl": "https://erp.example.com"
  },
  "dashboard": {
    "widgets": [
      { "type": "stat", "title": "库存总量", "source": "erp_get_inventory_count" }
    ]
  },
  "toolPacks": ["erp-inventory-pack", "erp-orders-pack"]
}

app -- 基本信息

字段类型必填说明
idstring应用唯一标识符,建议使用 kebab-case
namestring英文名称
nameZhstring中文名称
domainstring所属领域 (operations, hr, finance, etc.)
subsystemstring子系统类型 (ERP, CRM, IoT, etc.)

serviceConfig -- 服务配置

定义应用连接外部系统所需的凭据和参数。平台只暴露用户名/密码配置,URL 和 token 由后端管理。

json
{
  "serviceConfig": {
    "credentials": ["username", "password"],
    "baseUrl": "https://erp.example.com",
    "headers": {
      "X-Custom-Header": "value"
    }
  }
}

安全提示

serviceConfig 中的敏感信息(密码、token)在后端加密存储,API 响应中不会返回明文。

dashboard -- 仪表盘

定义应用在 AI 中台仪表盘上的展示组件:

json
{
  "dashboard": {
    "widgets": [
      {
        "type": "stat",
        "title": "在线设备数",
        "source": "iot_get_device_count"
      },
      {
        "type": "chart",
        "title": "本月能耗趋势",
        "source": "iot_get_energy_trend",
        "chartType": "line"
      }
    ]
  }
}

toolPacks -- 工具包引用

引用已创建的工具包 ID 列表。工具包的创建参见 工具开发指南

创建应用

bash
curl -X POST https://api.invoratec.cn/v1/apps \
  -H "X-API-Key: claw_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "app": {
      "id": "my-erp",
      "name": "My ERP Connector",
      "nameZh": "我的ERP连接器",
      "domain": "operations",
      "subsystem": "ERP"
    },
    "serviceConfig": {
      "credentials": ["username", "password"]
    },
    "dashboard": {},
    "toolPacks": []
  }'
python
app = claw.apps.create(
    app={
        "id": "my-erp",
        "name": "My ERP Connector",
        "nameZh": "我的ERP连接器",
        "domain": "operations",
        "subsystem": "ERP"
    },
    serviceConfig={
        "credentials": ["username", "password"]
    }
)
print(app["appId"])
javascript
const app = await claw.apps.create({
  app: {
    id: 'my-erp',
    name: 'My ERP Connector',
    nameZh: '我的ERP连接器',
    domain: 'operations',
    subsystem: 'ERP'
  },
  serviceConfig: {
    credentials: ['username', 'password']
  }
})
console.log(app.appId)

如果 app.id 已存在,API 会自动执行更新操作而非报错。

完整开发流程

第一步:规划应用结构

确定你的外部系统需要暴露哪些能力给 AI:

我的 ERP 系统
├── 库存管理
   ├── 查询库存 (erp_get_inventory)
   ├── 更新库存 (erp_update_stock)
   └── 库存预警 (erp_stock_alert)
├── 订单管理
   ├── 查询订单 (erp_get_orders)
   └── 创建订单 (erp_create_order)
└── 报表
    └── 月度汇总 (erp_monthly_report)

第二步:注册工具

为每个操作注册对应的工具:

bash
# 注册库存查询工具
curl -X POST https://api.invoratec.cn/v1/tools \
  -H "X-API-Key: claw_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "erp_get_inventory",
    "description": "查询 ERP 系统库存数据",
    "appId": "my-erp",
    "input_schema": {
      "type": "object",
      "properties": {
        "warehouse_id": { "type": "string", "description": "仓库ID" },
        "product_code": { "type": "string", "description": "产品编码(可选)" }
      },
      "required": ["warehouse_id"]
    },
    "execution": {
      "type": "http",
      "method": "GET",
      "url": "https://erp.example.com/api/inventory?wh={warehouse_id}&product={product_code}"
    }
  }'

第三步:创建工具包

将相关工具组织为工具包:

bash
curl -X POST https://api.invoratec.cn/v1/tools/packs \
  -H "X-API-Key: claw_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "erp-inventory-pack",
    "name": "ERP Inventory Pack",
    "nameZh": "ERP 库存工具包",
    "description": "ERP 库存查询和管理工具",
    "tools": ["erp_get_inventory", "erp_update_stock", "erp_stock_alert"],
    "knowledge": "仓库编号规则:WH-XXX,其中 XXX 为三位数字。产品编码规则:PRD-XXXX。库存数据每5分钟从ERP同步一次。"
  }'

第四步:创建应用并关联工具包

bash
curl -X POST https://api.invoratec.cn/v1/apps \
  -H "X-API-Key: claw_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "app": {
      "id": "my-erp",
      "name": "My ERP Connector",
      "nameZh": "我的ERP连接器",
      "domain": "operations",
      "subsystem": "ERP"
    },
    "serviceConfig": {
      "credentials": ["username", "password"]
    },
    "toolPacks": ["erp-inventory-pack", "erp-orders-pack"]
  }'

第五步:测试

bash
# 用 AI 对话测试
curl -X POST https://api.invoratec.cn/v1/ai/chat \
  -H "X-API-Key: claw_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "查询 WH-001 仓库的库存",
    "appContext": "my-erp"
  }'

第六步:发布到市场

测试完成后,将应用发布到平台市场供其他用户使用:

bash
curl -X POST https://api.invoratec.cn/v1/apps/my-erp/publish \
  -H "X-API-Key: claw_xxxx"

应用生命周期

draft published (更新) → published
 (下架) → draft
状态说明
draft草稿状态,仅开发者自己可见
published已发布,市场可见

下一步

智航云 AI 中台 — 开发者平台