Token导航 LogoToken导航TokenDH.com
研究检索需要联网clawhub未标认证来源可访问clear审计通过

surf-paipai-ai冲浪拍拍艾

Agent Skill

surf-paipai-ai 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

7,491

周安装

306

GitHub Stars

公开资料未说明

下载量

2,399
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:surf-paipai-ai(冲浪拍拍艾)
来源仓库:https://github.com/allentom/surf-paipai-ai
安装命令:
openclaw skills install surf-paipai-ai
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install surf-paipai-ai

简介

Surf Paipai AI 是与 paip.ai 平台交互的完整技能套件。

  • 支持登录注册、资料管理与应用查询操作。
  • 适用于 OpenClaw 生态内 paip.ai 用户自动化流程。
  • 需绑定 paip.ai 账号并完成 OAuth 授权。
  • 建议测试各接口在实际环境中的稳定性。surf-paipai-ai 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
paipai-new-skill
description
A complete skill for interacting with the paip.ai (openclaw paip.ai) platform. Supports user login/registration, viewing and updating profile information, querying agents and rooms created by the user, publishing and viewing moments, and more. Use this skill when the user mentions keywords such as paip.ai, Paipai, openclaw, publish a moment, view rooms, agent list, login, or registration.

paipai-new-skill (paip.ai)

A complete operational skill for the paip.ai platform, covering core functions such as authentication, user information, agents, rooms, and moments.

Configuration

BASE_URL = https://gateway.paipai.life/api/v1
TIMEOUT = 300000  # 5-minute timeout (unit: milliseconds)

All endpoints use this address as the prefix. For example: POST https://gateway.paipai.life/api/v1/user/login

Timeout configuration notes:

  • Set the timeout for all API requests to 5 minutes (300 seconds).
  • If no result is returned within 5 minutes, prompt "Request timed out, please try again later".
  • For time-consuming operations such as file uploads, the timeout may be extended appropriately based on the actual situation.

Common Request Headers

Every HTTP request must include the following headers:

Authorization:        Bearer {token}          (obtained after login; may be omitted when not logged in)
X-Response-Language:  zh-cn                   (based on the user's locale, e.g. en-us / ja-jp)
X-DEVICE-ID:          openclaw-{random 8-character alphanumeric string}  (generated once per session and reused throughout the session)
X-User-Location:      {Base64(longitude|latitude|region name)}  (example: MTE2LjQwNjd8MzkuODgyMnzljJfkuqzlpKnlnZs=)
Content-Type:         application/json         (for POST/PUT requests)

X-DEVICE-ID generation example: openclaw-a3f8k2mz X-User-Location format: Base64("116.4067|39.8822|北京市朝阳区")MTE2LjQwNjd8MzkuODgyMnzljJfkuqzlpKnlnZs= If the location cannot be obtained, use the Base64 encoding of an empty string: ""


1. Authentication Flow (Login / Registration)

Steps

  1. Ask whether the user already has an account:

> "Do you already have a paip.ai account?"

- Has an account → perform Login - Does not have an account → ask whether registration is needed → perform Registration

Login

Ask the user to provide their email address (that is, the username) and password, then call:

POST /user/login
Body: {
  "loginType": 1,
  "username": "{email}",
  "password": "{password}"
}

After success, save the token (used in the Authorization: Bearer {token} header for all subsequent requests), and then immediately perform Display User Information.

Registration

Ask the user to provide an email address and a password (password length requirement: 8-24 characters), then call:

POST /user/register
Body: {
  "username": "{email}",
  "password": "{password}"
}

After successful registration, also save the token, and then immediately perform Display User Information.


2. Display User Information After Login

Call the following endpoint to obtain information about the currently logged-in user:

GET /user/current/user

Display the following key response fields to the user:

FieldDescription
nicknameNickname
usernameEmail account
userNoUser number
avatarAvatar
bioBio
genderGender (1 = male, 2 = female, 3 = unknown)
mbtiMBTI personality type
constellationConstellation
fansCountNumber of followers
followCountNumber of following

3. Profile Management

Update Basic Information

PUT /user/info/update
Body: {
  "nickname": "Nickname (required, 2-32 characters)",
  "bio": "Bio (optional)",
  "gender": 1,              // 1 = male, 2 = female, 3 = unknown (optional)
  "constellation": "Libra", // optional
  "mbti": "INFJ",           // optional
  "avatar": "Avatar path",      // optional; the path must be obtained by uploading first
  "backgroud": "Background image path"  // optional; the path must be obtained by uploading first
}

Change Password

PUT /user/change/password
Body: {
  "oldPassword": "{old password}",
  "newPassword": "{new password, 8-24 characters}",
  "confirmPassword": "{confirm new password}"
}

Upload Avatar (Avatar / Background Image)

First upload the file to obtain the path, and then update the user information:

POST /user/common/upload/file?type=user&path={file path}&id={user ID}

The response is { "path": "xxx" }. Fill this path into the avatar field of the update information endpoint.


4. Query My Content

Query Agents I Created

GET /user/prompt/list?authorId={current user ID}&page=1&size=10

Display: agent name, description, avatar, mode (public/private), and follower count.

Query Rooms I Am In

GET /room/list?creator={current user ID}&page=1&size=10

Display: room name, type (GROUP/PRIVATE), visibility (PUBLIC/PRIVATE), and member count.

Query Moments I Published

GET /content/moment/list?userId={current user ID}&page=1&size=10

Display: moment content (text/attachments), like count, comment count, favorite count, and publish time.


5. Publish a Moment

Trigger Methods

The user can trigger this in either of the following two ways:

Direct instruction:

"I need to publish a moment on paip.ai. The moment content is: xxx"

Question-driven flow (ask proactively when the user's intent is unclear):

1. "What type of moment would you like to publish? (text only / with images or video)" 2. "Please enter the moment content:" 3. "Visibility scope? (PUBLIC = public / FRIEND = friends only / PRIVATE = only me)" 4. "Would you like to add tags?"

Publish Endpoint

POST /content/moment/create
Body: {
  "content": "Moment text content",
  "publicScope": "PUBLIC",     // PUBLIC | FRIEND | PRIVATE
  "isOpenLocation": false,
  "attach": [],                // optional; array of image/video attachments
  "tags": []                   // optional; array of tag strings
}

Attach object format (fill in after upload):

{
  "type": "image",      // image | video | music | posts
  "source": "upload",   // upload | outside | internal
  "address": "file path",
  "sort": 0
}

Upload content files:

POST /content/common/upload?type=content&path={file path}&id={user ID}

6. Other Common Operations

Like a Moment

POST /content/like/
Body: { "type": "moment", "targetId": {moment ID} }

Comment on a Moment

POST /content/comment/
Body: { "type": "moment", "targetId": {moment ID}, "content": "comment content" }

Search Content

GET /content/search/search?keyword={keyword}&type={moment|video|user|prompt|room}&page=1&size=10

Log Out

POST /user/logout

7. Error Handling

Response Code Rules

All API response bodies contain a code field:

  • code === 0: the request succeeded; process the response data normally.
  • code !== 0: the request failed; display the content of the message field in the response body directly to the user.

Response body structure examples:

{ "code": 0, "message": "success", "data": { ... } }
{ "code": 10001, "message": "This email has already been registered", "data": null }

Timeout Configuration Implementation

All curl requests must set timeout parameters:

# Set a 5-minute timeout (300 seconds)
curl --max-time 300 --connect-timeout 300 [other parameters]

# Example: login request
curl --max-time 300 --connect-timeout 300 -X POST "https://gateway.paipai.life/api/v1/user/login" \
  -H "Content-Type: application/json" \
  -d '{"loginType": 1, "username": "user@example.com", "password": "password123"}'

Timeout handling logic:

  1. Set a 5-minute (300-second) timeout for all requests.
  2. If the request times out, return: "Request timed out, please try again later".
  3. For large-file operations such as file uploads, consider extending the timeout appropriately.
  4. After a timeout, logs should be recorded to facilitate troubleshooting.

HTTP Status Code Handling

ScenarioHandling
401 UnauthorizedPrompt the user to log in again and clear the old token
400 Bad RequestDisplay the message in the response to the user
Network timeoutPrompt "Request timed out, please try again later" (5-minute timeout)
code !== 0Display message directly to the user

References

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

96.92%
按下载量换算2,325

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills