🧩 技能开发指南
技能(Skill)是为AI智能体添加新能力的插件模块。每个技能可以是一个数据处理工具、一个外部API连接器、或一段特定的业务逻辑。用户在技能商店安装后,智能体即可调用。
架构概览
星聆技能基于事件驱动架构。你的技能实现一个处理函数,接收用户请求的上下文参数,执行业务逻辑后返回结果。
# skill.py - 最简技能示例
from xingling import Skill, SkillRequest, SkillResponse
class WeatherSkill(Skill):
name = "天气查询"
description = "查询指定城市的实时天气"
version = "1.0.0"
async def handle(self, req: SkillRequest) -> SkillResponse:
city = req.params.get("city", "北京")
weather = await self.fetch_weather(city)
return SkillResponse(
text=f"{city}今日天气:{weather.desc},{weather.temp}°C",
data=weather.to_dict()
)
开发步骤
安装 SDK
使用 pip 或 npm 安装星聆开发者 SDK,获得完整的类型定义和工具函数。
创建技能类
继承 Skill 基类,定义名称、描述和处理函数。支持同步和异步两种模式。
本地调试
使用 xingling dev 启动本地调试服务器,支持热更新和实时日志。
打包发布
运行 xingling publish 打包并提交审核,通常 24 小时内完成审核。
xingling.types 模块。🚀 应用开发指南
应用(App)是完整的AI智能体产品,包含自定义界面、对话逻辑、用户系统和付费能力。相比技能,应用有更高的自由度和更完整的生命周期管理。
项目结构
my-app/
├── xingling.toml # 应用配置
├── app/
│ ├── __init__.py
│ ├── agent.py # 智能体核心逻辑
│ ├── skills/ # 内置技能
│ │ ├── search.py
│ │ └── analysis.py
│ ├── prompts/ # 提示词模板
│ │ └── system.txt
│ └── ui/ # 自定义界面组件
│ ├── chat.vue
│ └── dashboard.vue
├── tests/
└── docs/
配置文件
[app]
name = "智能客服助手"
version = "2.1.0"
description = "全渠道AI客服,支持知识库问答和人工转接"
category = "customer-service"
[pricing]
model = "subscription"
plans = [
{ name = "基础版", price = 0, period = "monthly" },
{ name = "专业版", price = 99, period = "monthly" },
{ name = "企业版", price = "custom" }
]
[ai]
default_model = "xingling-gpt-4"
max_tokens = 4096
temperature = 0.7
[channels]
wechat = true
web_widget = true
app_sdk = true
核心概念
| 概念 | 说明 |
|---|---|
Agent | 智能体核心类,管理对话状态、技能调用和上下文记忆 |
Skill | 可复用的能力模块,一个应用可包含多个技能 |
Channel | 消息渠道适配器(微信、网页、APP等) |
Session | 用户会话管理,支持多轮对话和上下文持久化 |
Hook | 生命周期钩子,在对话各阶段插入自定义逻辑 |
xingling init --template customer-service 可基于预置模板快速创建应用项目,包含完整示例代码。⚙️ 环境配置
配置本地开发环境,准备发布你的第一个技能或应用。
1. 安装 CLI 工具
# 安装星聆开发者 CLI
pip install xingling-cli
# 或使用 npm
npm install -g @xingling/cli
# 验证安装
xingling --version
# xingling-cli v3.2.1
2. 登录认证
# 登录星聆开发者账号
xingling login
# 或使用 API Key 登录(CI/CD 场景)
xingling login --api-key sk_your_api_key_here
3. 创建项目
# 创建技能项目
xingling init my-skill --type skill
# 创建应用项目
xingling init my-app --type app
# 使用模板创建
xingling init my-app --template customer-service
4. 本地调试
# 进入项目目录
cd my-skill
# 启动本地开发服务器
xingling dev
# ✓ 开发服务器已启动
# ✓ 本地地址: http://localhost:3456
# ✓ 调试面板: http://localhost:3456/__debug
# ✓ 文件监听中,修改自动重载...
📡 API 参考
星聆 RESTful API 提供完整的平台能力接入。所有 API 请求需通过 HTTPS,基础地址为 https://api.xingling.ai/v3。
请求格式
POST /v3/chat/completions HTTP/1.1
Host: api.xingling.ai
Authorization: Bearer sk_your_api_key
Content-Type: application/json
X-Request-Id: req_unique_id
API 端点列表
🔐 认证鉴权
所有 API 请求需要在 Header 中携带 API Key。可在开发者后台「设置 → API 密钥」中创建和管理密钥。
import requests
headers = {
"Authorization": "Bearer sk_your_api_key",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.xingling.ai/v3/users/profile",
headers=headers
)
print(response.json())
密钥类型
| 类型 | 前缀 | 权限 | 场景 |
|---|---|---|---|
| 发布密钥 | sk_live_ | 完整读写 | 生产环境 |
| 测试密钥 | sk_test_ | 完整读写(沙箱) | 开发测试 |
| 只读密钥 | rk_ | 仅读取 | 数据分析 |
💬 对话接口
对话接口是星聆最核心的 API,支持流式和非流式两种模式。
import requests, json
response = requests.post(
"https://api.xingling.ai/v3/chat/completions",
headers={
"Authorization": "Bearer sk_test_xxx",
"Content-Type": "application/json"
},
json={
"app_id": "app_abc123",
"session_id": "sess_xyz789",
"messages": [
{ "role": "user", "content": "帮我分析上个月的销售数据" }
],
"stream": True,
"skills": ["data-analysis"]
},
stream=True
)
for line in response.iter_lines():
if line:
data = json.loads(line.decode()[6:])
print(data["choices"][0]["delta"].get("content", ""), end="")
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
app_id | string | ✅ | 应用 ID |
session_id | string | — | 会话 ID,不传则创建新会话 |
messages | array | ✅ | 对话消息列表 |
stream | boolean | — | 是否流式返回,默认 false |
skills | string[] | — | 本次对话可用的技能列表 |
temperature | float | — | 生成温度,0-2,默认 0.7 |
max_tokens | integer | — | 最大生成 token 数 |
👤 用户管理
管理应用的终端用户,包括查询信息、订阅状态和使用量统计。
{
"user_id": "usr_8a3f2b",
"nickname": "张明远",
"plan": "professional",
"status": "active",
"created_at": "2026-01-15T08:30:00Z",
"usage": {
"total_messages": 12847,
"this_month": 1523,
"tokens_consumed": 2847392
}
}
💳 支付回调
当用户完成订阅、续费或退款时,星聆会向你配置的 Webhook 地址发送支付事件通知。
{
"event": "payment.completed",
"timestamp": "2026-04-03T06:30:00Z",
"data": {
"order_id": "ord_2f8a9c3d",
"user_id": "usr_8a3f2b",
"app_id": "app_abc123",
"plan": "professional",
"amount": 99.00,
"currency": "CNY",
"period": "monthly",
"revenue_share": {
"developer": 70.00,
"platform": 29.00,
"tax": 0.00
}
}
}
事件类型
| 事件 | 说明 |
|---|---|
payment.completed | 支付成功 |
payment.refunded | 退款完成 |
subscription.created | 新订阅 |
subscription.renewed | 续费成功 |
subscription.cancelled | 取消订阅 |
subscription.expired | 订阅过期 |
🔗 Webhook 配置
Webhook 允许你的服务接收星聆平台的实时事件通知。支持在开发者后台或通过 API 注册。
import hmac, hashlib
def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
"""验证 Webhook 签名,确保请求来自星聆"""
expected = hmac.new(
secret.encode(),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)
# 在你的 Webhook 处理器中
from flask import Flask, request
app = Flask(__name__)
@app.route("/webhook/xingling", methods=["POST"])
def handle_webhook():
sig = request.headers.get("X-Xingling-Signature")
if not verify_webhook(request.data, sig, WEBHOOK_SECRET):
return "Invalid signature", 401
event = request.json
if event["event"] == "payment.completed":
handle_payment(event["data"])
return "OK", 200
🛠️ SDK & 工具
星聆提供多语言 SDK 和开发工具,让你更高效地构建技能和应用。
官方 SDK
| 语言 | 包名 | 版本 | 安装 |
|---|---|---|---|
| Python | xingling-sdk | 3.2.1 | pip install xingling-sdk |
| Node.js | @xingling/sdk | 3.2.0 | npm i @xingling/sdk |
| Go | github.com/xingling/go-sdk | 2.8.3 | go get github.com/xingling/go-sdk |
| Java | ai.xingling:sdk | 3.1.0 | Maven Central |
CLI 工具
# 创建项目
xingling init <name> --type skill|app --template <template>
# 本地开发
xingling dev [--port 3456] [--verbose]
# 运行测试
xingling test [--coverage]
# 打包
xingling build [--production]
# 发布
xingling publish [--dry-run] [--version "1.2.0"]
# 查看日志
xingling logs --app <app_id> --follow
# 管理密钥
xingling keys list|create|rotate|delete
社区工具
由社区开发者维护的非官方工具:
| 工具 | 说明 | 作者 |
|---|---|---|
| xingling-vscode | VS Code 扩展,语法高亮 + 调试集成 | @dev-tools |
| xingling-docker | Docker 开发环境镜像 | @cloud-native |
| xingling-monitor | 应用运行监控仪表盘 | @observability |
📦 发布与审核
完成开发后,将你的技能或应用发布到星聆生态。
发布流程
填写信息
在 xingling.toml 中完善应用名称、描述、分类、图标、截图等元数据。
打包构建
运行 xingling build --production 生成发布包。自动进行代码检查和安全扫描。
提交审核
运行 xingling publish 提交到审核队列。通常 24 小时内完成审核。
上线分发
审核通过后自动上架。你的应用将出现在商店中,开始获取用户。
审核标准
| 检查项 | 说明 |
|---|---|
| 功能完整性 | 核心功能可正常运行,无严重 Bug |
| 安全性 | 无恶意代码,不收集敏感数据,依赖项安全 |
| 用户体验 | 描述准确,图标清晰,无误导性内容 |
| 性能 | 响应时间 <5s,内存占用合理 |
| 合规性 | 符合平台规范和相关法律法规 |
💰 收益与结算
星聆采用开发者友好的收益分成模式,让你的创造力获得合理回报。
收益分成
| 开发者等级 | 分成比例 | 条件 |
|---|---|---|
| 标准开发者 | 70% | 注册即享 |
| 优质开发者 | 75% | 累计收入 ≥ ¥10,000 |
| 金牌开发者 | 80% | 累计收入 ≥ ¥100,000 |
| 战略合作伙伴 | 定制 | 联系商务洽谈 |
结算规则
- 📅 结算周期:每月 1 日结算上月收入
- 💳 提现方式:支持银行卡转账、支付宝
- 📊 最低提现:¥100
- 🧾 发票:支持开具增值税普通发票
GET /v3/developer/revenue
Authorization: Bearer sk_live_xxx
# Response
{
"total_revenue": 28640.00,
"this_month": 5280.00,
"pending_settlement": 3120.00,
"available_balance": 25520.00,
"developer_level": "premium",
"share_ratio": 0.75
}
📋 更新日志
跟踪星聆开发者平台的最新变更和新功能。
v3.2.1 — 流式响应优化
优化 SSE 流式传输性能,延迟降低 40%。新增 tool_calls 流式支持。
v3.2.0 — 技能市场 v2
全新技能商店上线。支持技能组合编排、按用量计费、技能依赖管理。
v3.1.0 — 多语言 SDK
新增 Go 和 Java 官方 SDK。Python SDK 增加异步批量操作支持。
v3.0.0 — 平台大版本
全新 API 架构,统一认证体系。应用商店改版,开发者后台 2.0 上线。