create-artist

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Create New Artist

创建新艺术家账户

The canonical recipe used internally by Recoup's chat agent. Follow it step-by-step to bring a brand-new artist account up to "researched + enriched" parity from a sandbox or any external agent.
The chain is 8 sequential API calls. Long deterministic chains executed from prose memory tend to drop steps — the agent reads the doc once, runs a couple of calls, and forgets the rest. Drive the work from the
RECOUP.md
checklist file scaffolded by the
artist-workspace
skill: tick each box and persist captured values back to the frontmatter as you go. The file IS the workflow state, and a fresh turn can resume by reading it.
这是Recoup聊天代理内部使用的标准操作流程。按照步骤逐步操作,可从沙箱或任何外部代理创建一个达到“已调研+已完善”状态的全新艺术家账户。
该流程包含8个连续的API调用。依赖文本记忆执行的长确定性流程往往会遗漏步骤——代理读取一次文档,执行几次调用后就会忘记剩余步骤。请基于
artist-workspace
技能生成的
RECOUP.md
清单文件开展工作:在执行过程中勾选每个任务项,并将捕获的值持久化保存到文件的前置元数据中。该文件即为工作流状态,后续可通过读取该文件恢复执行。

Prerequisites

前置条件

  • $RECOUP_ACCESS_TOKEN
    — Bearer token for
    api.recoupable.com
  • $RECOUP_ORG_ID
    — the org the artist should belong to (recommended in sandboxes)
  • An artist name to create (e.g.
    ARTIST_NAME="The Weeknd"
    )
  • The artist's
    RECOUP.md
    already scaffolded (see
    artist-workspace
    skill, Step 0)
The flow has three phases, all driven from the single checklist file:
  1. Create + identify
    POST /api/artists
    , then find the canonical Spotify match
  2. Enrich
    PATCH
    the artist with image/label/socials, then run structured research (Chartmetric profile/career/playlists) plus a web search for narrative context and additional socials
  3. Synthesize + persist — generate a knowledge-base report, save it (RECOUP.md tree or hosted URL), then optionally
    PATCH
    the
    knowledges
    array
Don't run this chain under a throwaway
agent+
account.
Artist data created against an
agent+...@recoupable.com
email is permanently isolated to that account and can't be recovered if the API key is lost. Only run after the user has authenticated with their real email.
  • $RECOUP_ACCESS_TOKEN
    — 用于
    api.recoupable.com
    的Bearer令牌
  • $RECOUP_ORG_ID
    — 艺术家所属的组织ID(沙箱环境中推荐使用)
  • 要创建的艺术家名称(例如
    ARTIST_NAME="The Weeknd"
  • 已生成该艺术家的
    RECOUP.md
    文件(详见
    artist-workspace
    技能的步骤0)
该流程分为三个阶段,全部基于单个清单文件驱动:
  1. 创建+识别 — 调用
    POST /api/artists
    接口,然后找到标准的Spotify匹配项
  2. 完善 — 通过
    PATCH
    接口更新艺术家的头像、厂牌、社交信息,然后执行结构化调研(Chartmetric资料/职业发展/播放列表)以及网络搜索以获取背景信息和额外社交账号
  3. 合成+持久化 — 生成知识库报告并保存(可保存到RECOUP.md目录结构或托管URL),然后可选调用
    PATCH
    接口更新
    knowledges
    数组
请勿使用临时的
agent+
账户运行此流程。
使用
agent+...@recoupable.com
邮箱创建的艺术家数据会永久隔离到该账户,若API密钥丢失则无法恢复。请仅在用户使用真实邮箱完成认证后运行此流程。

Resuming a partial setup

恢复未完成的设置

If
$ARTIST_DIR/RECOUP.md
already exists, do not re-scaffold and do not re-run completed steps. Read the file, find the first unchecked item, and resume from there using the values already saved in the frontmatter:
bash
undefined
如果
$ARTIST_DIR/RECOUP.md
已存在,请勿重新生成该文件,也请勿重新执行已完成的步骤。读取该文件,找到第一个未勾选的任务项,使用前置元数据中已保存的值从该步骤恢复执行:
bash
undefined

Show the next unchecked step

显示下一个未勾选的步骤

grep -n '^- [ ]' "$ARTIST_DIR/RECOUP.md" | head -1

If every item is checked, the artist is fully set up — confirm with the user before doing anything else.
grep -n '^- [ ]' "$ARTIST_DIR/RECOUP.md" | head -1

如果所有任务项都已勾选,则艺术家账户已完全设置完成——在执行其他操作前请先与用户确认。

Step 1: Create the artist

步骤1:创建艺术家账户

bash
ARTIST_RESPONSE=$(curl -sS -X POST "https://api.recoupable.com/api/artists" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" --arg org "$RECOUP_ORG_ID" \
        '{name: $name, organization_id: $org}')")

ARTIST_ID=$(echo "$ARTIST_RESPONSE" | jq -r '.artist.account_id')
Capture
account_id
as
$ARTIST_ID
— every subsequent step needs it.
organization_id
is optional but should be included when running inside a sandbox so the artist is scoped to the right org.
Full request/response schema:
https://developers.recoupable.com/api-reference/artists/create
.
After this step: write
artistId: $ARTIST_ID
into the frontmatter and tick
- [ ] 1.
- [x] 1.
in
RECOUP.md
.
bash
ARTIST_RESPONSE=$(curl -sS -X POST "https://api.recoupable.com/api/artists" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" --arg org "$RECOUP_ORG_ID" \
        '{name: $name, organization_id: $org}')")

ARTIST_ID=$(echo "$ARTIST_RESPONSE" | jq -r '.artist.account_id')
account_id
捕获为
$ARTIST_ID
——后续每个步骤都需要该值。
organization_id
为可选参数,但在沙箱环境中运行时建议包含该参数,以便将艺术家账户关联到正确的组织。
完整请求/响应 schema:
https://developers.recoupable.com/api-reference/artists/create
完成此步骤后:
artistId: $ARTIST_ID
写入前置元数据,并将
- [ ] 1.
勾选为
- [x] 1.

Step 2: Find the canonical Spotify match

步骤2:找到标准的Spotify匹配项

bash
SPOTIFY=$(curl -sS -G "https://api.recoupable.com/api/spotify/search" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "q=$ARTIST_NAME" \
  --data-urlencode "type=artist" \
  --data-urlencode "limit=10")
Pick the best match: prefer an exact case-insensitive name match; if multiple, prefer the highest popularity score. Export the fields the rest of the chain needs:
bash
MATCH=$(echo "$SPOTIFY" | jq --arg name "$ARTIST_NAME" '
  .artists.items
  | (map(select((.name | ascii_downcase) == ($name | ascii_downcase))) | sort_by(-.popularity) | first)
    // (sort_by(-.popularity) | first)
')

SPOTIFY_ARTIST_ID=$(echo "$MATCH" | jq -r '.id // empty')
SPOTIFY_PROFILE_URL=$(echo "$MATCH" | jq -r '.external_urls.spotify // empty')
SPOTIFY_IMAGE_URL=$(echo "$MATCH" | jq -r '.images[0].url // empty')

[ -n "$SPOTIFY_ARTIST_ID" ] || { echo "No Spotify match for $ARTIST_NAME"; exit 1; }
Also keep
genres
,
followers.total
, and
popularity
from
$MATCH
for the KB report later.
Full schema:
https://developers.recoupable.com/api-reference/spotify/search
.
After this step: write
spotifyArtistId
,
spotifyProfileUrl
, and
imageUrl
into the frontmatter, save
genres
/
followers.total
/
popularity
to the
## Notes
section, and tick
- [ ] 2.
- [x] 2.
.
bash
SPOTIFY=$(curl -sS -G "https://api.recoupable.com/api/spotify/search" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "q=$ARTIST_NAME" \
  --data-urlencode "type=artist" \
  --data-urlencode "limit=10")
选择最佳匹配项:优先选择名称完全匹配(不区分大小写)的结果;若有多个匹配项,则优先选择人气评分最高的结果。导出后续流程所需的字段:
bash
MATCH=$(echo "$SPOTIFY" | jq --arg name "$ARTIST_NAME" '
  .artists.items
  | (map(select((.name | ascii_downcase) == ($name | ascii_downcase))) | sort_by(-.popularity) | first)
    // (sort_by(-.popularity) | first)
')

SPOTIFY_ARTIST_ID=$(echo "$MATCH" | jq -r '.id // empty')
SPOTIFY_PROFILE_URL=$(echo "$MATCH" | jq -r '.external_urls.spotify // empty')
SPOTIFY_IMAGE_URL=$(echo "$MATCH" | jq -r '.images[0].url // empty')

[ -n "$SPOTIFY_ARTIST_ID" ] || { echo "No Spotify match for $ARTIST_NAME"; exit 1; }
同时保留
$MATCH
中的
genres
followers.total
popularity
字段,用于后续生成知识库报告。
完整schema:
https://developers.recoupable.com/api-reference/spotify/search
完成此步骤后:
spotifyArtistId
spotifyProfileUrl
imageUrl
写入前置元数据,将
genres
/
followers.total
/
popularity
保存到
## Notes
部分,并将
- [ ] 2.
勾选为
- [x] 2.

Step 3: Set basic profile + Spotify URL

步骤3:设置基础资料+Spotify链接

One
PATCH
covers the image and the Spotify social URL. Use uppercase platform keys in
profileUrls
(the API matches platforms case-sensitively — see the platform key reference at the bottom of this file).
bash
curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg image "$SPOTIFY_IMAGE_URL" --arg url "$SPOTIFY_PROFILE_URL" \
        '{image: $image, profileUrls: {SPOTIFY: $url}}')"
This single endpoint replaces what the chat tool chain runs as four separate MCP calls (
update_account_info
×2,
update_artist_socials
×2). Add
label
to the body once you discover one in the structured research (step 4 — comes back from
/api/research/profile
). Full body schema:
https://developers.recoupable.com/api-reference/artists/update
.
After this step: tick
- [ ] 3.
- [x] 3.
.
一次
PATCH
调用即可完成头像和Spotify社交链接的更新。在
profileUrls
中使用大写的平台标识(API对平台标识区分大小写——详见本文末尾的平台标识参考表)。
bash
curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg image "$SPOTIFY_IMAGE_URL" --arg url "$SPOTIFY_PROFILE_URL" \
        '{image: $image, profileUrls: {SPOTIFY: $url}}')"
该单一接口替代了聊天工具流程中四次独立的MCP调用(
update_account_info
×2,
update_artist_socials
×2)。在结构化调研(步骤4——从
/api/research/profile
返回结果)中发现厂牌信息后,可在请求体中添加
label
字段。完整请求体schema:
https://developers.recoupable.com/api-reference/artists/update
完成此步骤后:
- [ ] 3.
勾选为
- [x] 3.

Step 4: Run structured research

步骤4:执行结构化调研

Don't use
POST /api/research/deep
here — it tends to hang in sandboxes and returns paraphrased prose. Instead, fan out across four bounded structured endpoints (one prerequisite lookup + three structured pulls + one web search). The outputs are typed JSON the agent can use directly without paraphrasing.
请勿在此处使用
POST /api/research/deep
接口——该接口在沙箱环境中容易卡顿,且返回的是经过转述的文本内容。请改用四个有明确边界的结构化接口(一次前置查询+三次结构化数据拉取+一次网络搜索)。这些接口返回的是类型化JSON,代理可直接使用,无需转述。

4a: Look up the Chartmetric
artist_id

4a:查询Chartmetric
artist_id

Most of the structured research endpoints take a Chartmetric
artist_id
, not the Spotify ID. Resolve it once and reuse it for the rest of step 4.
bash
LOOKUP=$(curl -sS -G "https://api.recoupable.com/api/research/lookup" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "spotifyId=$SPOTIFY_ARTIST_ID")

CM_ARTIST_ID=$(echo "$LOOKUP" | jq -r '.artist.id // empty')

[ -n "$CM_ARTIST_ID" ] || { echo "No Chartmetric match for Spotify ID $SPOTIFY_ARTIST_ID — skipping structured research"; }
If the lookup fails (rare — most Spotify-discoverable artists have a Chartmetric profile), skip 4b–4d and just run 4e (web search). Full schema:
https://developers.recoupable.com/api-reference/research/lookup
.
大多数结构化调研接口需要Chartmetric
artist_id
,而非Spotify ID。只需查询一次,后续步骤4的其余部分均可复用该值。
bash
LOOKUP=$(curl -sS -G "https://api.recoupable.com/api/research/lookup" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "spotifyId=$SPOTIFY_ARTIST_ID")

CM_ARTIST_ID=$(echo "$LOOKUP" | jq -r '.artist.id // empty')

[ -n "$CM_ARTIST_ID" ] || { echo "No Chartmetric match for Spotify ID $SPOTIFY_ARTIST_ID — skipping structured research"; }
如果查询失败(很少见——大多数可在Spotify找到的艺术家都有Chartmetric资料),则跳过4b–4d,仅执行4e(网络搜索)。完整schema:
https://developers.recoupable.com/api-reference/research/lookup

4b: Pull the artist profile

4b:拉取艺术家资料

Returns bio, genres, social URLs, label, career stage, and basic metrics — most of what deep research used to paraphrase.
bash
PROFILE=$(curl -sS -G "https://api.recoupable.com/api/research/profile" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
Full schema:
https://developers.recoupable.com/api-reference/research/profile
.
返回艺术家简介、流派、社交链接、厂牌、职业阶段和基础数据——涵盖了深度调研曾经需要转述的大部分内容。
bash
PROFILE=$(curl -sS -G "https://api.recoupable.com/api/research/profile" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
完整schema:
https://developers.recoupable.com/api-reference/research/profile

4c: Pull the career timeline

4c:拉取职业发展时间线

Career milestones, trajectory, and career-stage classification — covers the "notable achievements" portion of what deep research returned.
bash
CAREER=$(curl -sS -G "https://api.recoupable.com/api/research/career" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
Full schema:
https://developers.recoupable.com/api-reference/research/career
.
包含职业里程碑、发展轨迹和职业阶段分类——涵盖了深度调研返回的“显著成就”部分内容。
bash
CAREER=$(curl -sS -G "https://api.recoupable.com/api/research/career" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
完整schema:
https://developers.recoupable.com/api-reference/research/career

4d: Pull editorial + algorithmic playlist placements

4d:拉取编辑推荐+算法推荐播放列表收录情况

Replaces the "playlists / radio rotations / editorial features" portion of the deep-research Spotify-presence query.
bash
PLAYLISTS=$(curl -sS -G "https://api.recoupable.com/api/research/playlists" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
Full schema:
https://developers.recoupable.com/api-reference/research/playlists
.
替代了深度调研中关于Spotify影响力查询的“播放列表/电台轮播/编辑推荐”部分内容。
bash
PLAYLISTS=$(curl -sS -G "https://api.recoupable.com/api/research/playlists" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$CM_ARTIST_ID")
完整schema:
https://developers.recoupable.com/api-reference/research/playlists

4e: Web search for narrative / press / collaborations

4e:网络搜索获取背景/媒体报道/合作信息

Structured endpoints don't cover press coverage, cultural narrative, or recent feature/collab announcements. Fill that gap with a single web search.
bash
RESEARCH_WEB=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" \
        '{query: ($name + " biography press recent collaborations")}')")
Full schema:
https://developers.recoupable.com/api-reference/research/web
.
After this step: persist
cmArtistId: $CM_ARTIST_ID
into the frontmatter, save the four response payloads (profile, career, playlists, web) into a new
## Research
section of
RECOUP.md
— one subsection per endpoint, each with the raw JSON or a tight markdown summary so step 8 can compose from it. Tick
- [ ] 4.
- [x] 4.
.
结构化接口无法涵盖媒体报道、文化背景或近期合作/客串公告。通过一次网络搜索填补这一空白。
bash
RESEARCH_WEB=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" \
        '{query: ($name + " biography press recent collaborations")}')")
完整schema:
https://developers.recoupable.com/api-reference/research/web
完成此步骤后:
cmArtistId: $CM_ARTIST_ID
写入前置元数据,将四个接口的响应数据(资料、职业发展、播放列表、网络搜索)保存到
RECOUP.md
的新章节
## Research
中——每个接口对应一个子章节,可保存原始JSON或简洁的Markdown摘要,以便步骤8进行合成。将
- [ ] 4.
勾选为
- [x] 4.

Step 5: Pull the Spotify catalog

步骤5:拉取Spotify作品库

bash
TOP_TRACKS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/topTracks" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$SPOTIFY_ARTIST_ID")

ALBUMS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/albums" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$SPOTIFY_ARTIST_ID")
bash
TOP_TRACKS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/topTracks" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$SPOTIFY_ARTIST_ID")

ALBUMS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/albums" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  --data-urlencode "id=$SPOTIFY_ARTIST_ID")

For each notable album, drill in (ALBUM_ID from $ALBUMS):

针对每张重要专辑,拉取详情($ALBUMS中的ALBUM_ID):

ALBUM_DETAIL=$(curl -sS -G "https://api.recoupable.com/api/spotify/album"
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN"
--data-urlencode "id=$ALBUM_ID")

`$SPOTIFY_ARTIST_ID` is the value you exported in step 2.

Full schemas: top tracks (`/api-reference/spotify/artist-top-tracks`), albums (`/api-reference/spotify/artist-albums`), album detail (`/api-reference/spotify/album`).

**After this step:** populate the artist's `releases/` folder — write one `releases/{release-slug}/RELEASE.md` per album (album slugs are bare, `-ep` / `-single` / `-compilation` suffixes for other types) using the per-album `GET /api/spotify/album?id=$ALBUM_ID` response, and write the top tracks snapshot to `releases/top-tracks.md`. `RELEASE.md` is the 18-section master release-management document — Step 5 fills the Spotify-derivable fields and leaves the rest as `⚠️ TBD`. The full template + the field-by-field Spotify mapping live in the [`artist-workspace`](https://github.com/recoupable/skills/tree/main/skills/artist-workspace) skill at `references/release-template.md`. Tick `- [ ] 5.` → `- [x] 5.`.
ALBUM_DETAIL=$(curl -sS -G "https://api.recoupable.com/api/spotify/album"
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN"
--data-urlencode "id=$ALBUM_ID")

`$SPOTIFY_ARTIST_ID`是步骤2中导出的值。

完整schema:热门曲目(`/api-reference/spotify/artist-top-tracks`)、专辑(`/api-reference/spotify/artist-albums`)、专辑详情(`/api-reference/spotify/album`)。

**完成此步骤后:** 填充艺术家的`releases/`文件夹——为每张专辑创建一个`releases/{release-slug}/RELEASE.md`文件(专辑slug为纯文本,EP/单曲/合辑等类型需添加`-ep`/`-single`/`-compilation`后缀),内容基于`GET /api/spotify/album?id=$ALBUM_ID`的响应数据;同时将热门曲目快照写入`releases/top-tracks.md`。`RELEASE.md`是包含18个章节的发布管理主文档——步骤5仅填充可从Spotify获取的字段,其余字段留为`⚠️ TBD`。完整模板及字段与Spotify的映射关系可在`artist-workspace`技能的`references/release-template.md`中查看。将`- [ ] 5.`勾选为`- [x] 5.`。

Step 6: Search the web for additional socials

步骤6:网络搜索获取额外社交账号

bash
SOCIALS_SEARCH=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" \
        '{query: ($name + " official instagram tiktok twitter youtube")}')")
Parse the results to extract any new social URLs whose host matches the platform reference table below.
After this step: save the discovered URLs (one per platform) into the
## Notes
section so step 7 can read them without re-querying. Tick
- [ ] 6.
- [x] 6.
.
bash
SOCIALS_SEARCH=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg name "$ARTIST_NAME" \
        '{query: ($name + " official instagram tiktok twitter youtube")}')")
解析搜索结果,提取与下方平台参考表匹配的新社交链接。
完成此步骤后: 将发现的链接(每个平台一个)保存到
## Notes
部分,以便步骤7无需重新查询即可读取。将
- [ ] 6.
勾选为
- [x] 6.

Step 7: PATCH the artist with the discovered socials

步骤7:通过PATCH接口更新艺术家的社交账号

bash
curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileUrls": {
      "INSTAGRAM": "https://instagram.com/...",
      "TIKTOK": "https://tiktok.com/@...",
      "TWITTER": "https://x.com/...",
      "YOUTUBE": "https://youtube.com/@..."
    }
  }'
Only include keys for platforms you actually found URLs for. The PATCH preserves existing socials for keys you omit, so this is safe to run incrementally.
Full body schema:
https://developers.recoupable.com/api-reference/artists/update
.
After this step: tick
- [ ] 7.
- [x] 7.
.
bash
curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
  -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileUrls": {
      "INSTAGRAM": "https://instagram.com/...",
      "TIKTOK": "https://tiktok.com/@...",
      "TWITTER": "https://x.com/...",
      "YOUTUBE": "https://youtube.com/@..."
    }
  }'
仅包含实际找到链接的平台标识。PATCH调用会保留未提及平台的现有社交信息,因此可安全地增量执行。
完整请求体schema:
https://developers.recoupable.com/api-reference/artists/update
完成此步骤后:
- [ ] 7.
勾选为
- [x] 7.

Step 8: Synthesize the knowledge base

步骤8:合成知识库

Combine the structured research outputs (
## Research
section — profile, career, playlists, web), the Spotify catalog (
releases/
), and the discovered socials into a comprehensive markdown report. Recommended sections:
  • Artist biography and origin
  • Discography highlights (top tracks + key albums)
  • Spotify presence (genres, listener count, notable playlists)
  • Social media footprint
  • Recent activity / press
  • Notable collaborations and achievements
Append the report to the same
RECOUP.md
you scaffolded in Step 0 — add it as a
## Knowledge base
section below the checklist. The path is
artists/$ARTIST_SLUG/RECOUP.md
.
This dovetails with the
artist-workspace
skill's filesystem conventions, so future sandbox sessions can read both the checklist and the KB without needing a hosted URL.
After this step: tick
- [ ] 8.
- [x] 8.
. With every box ticked, the artist is fully set up.
将结构化调研结果(
## Research
章节——资料、职业发展、播放列表、网络搜索)、Spotify作品库(
releases/
文件夹)和发现的社交账号整合为一份全面的Markdown报告。推荐包含以下章节:
  • 艺术家简介与起源
  • 作品亮点(热门曲目+重要专辑)
  • Spotify影响力(流派、听众数量、知名播放列表)
  • 社交媒体覆盖
  • 近期动态/媒体报道
  • 重要合作与成就
将报告追加到步骤0生成的
RECOUP.md
文件中——在清单下方添加
## Knowledge base
章节。文件路径为
artists/$ARTIST_SLUG/RECOUP.md
这与
artist-workspace
技能的文件系统约定一致,因此后续沙箱会话无需托管URL即可读取清单和知识库。
完成此步骤后:
- [ ] 8.
勾选为
- [x] 8.
。所有任务项勾选完成后,艺术家账户即完全设置完毕。

Platform key reference

平台标识参考表

profileUrls
keys are uppercase platform identifiers, inferred from the URL host. Recognized platforms:
URL contains
profileUrls
key
spotify.com
SPOTIFY
instagram.com
INSTAGRAM
tiktok.com
TIKTOK
x.com
,
twitter.com
TWITTER
youtube.
YOUTUBE
apple.com
APPLE
facebook.com
FACEBOOK
threads.net
,
threads.com
THREADS
URLs that don't match any of these are silently skipped — they won't be saved.
profileUrls
的键为大写的平台标识,由URL主机名推断而来。支持的平台:
URL包含
profileUrls
spotify.com
SPOTIFY
instagram.com
INSTAGRAM
tiktok.com
TIKTOK
x.com
,
twitter.com
TWITTER
youtube.
YOUTUBE
apple.com
APPLE
facebook.com
FACEBOOK
threads.net
,
threads.com
THREADS
不符合上述规则的URL会被自动忽略——不会被保存。

What this chain doesn't enforce

本流程未强制的约束

There's no server-side orchestrator forcing each step to run in order — the chain is honor-system. The
RECOUP.md
checklist is what gives you determinism in practice: as long as you tick boxes and persist values after each step, a fresh turn (or a different agent) can pick up exactly where the last one stopped. If you skip a checkbox or skip the persist, the next turn won't know that step ran and may either redo it or, worse, treat downstream calls as ready when they aren't.
A few constraints to honor:
  • Run steps in order. The frontmatter values written at one step are the inputs for later steps.
  • Don't continue past a 4xx/5xx without recovery. Leave the box unchecked, write the error to
    ## Notes
    , and resolve before resuming.
  • Treat the file as the source of truth. If something isn't on disk, don't assume it ran.
目前没有服务端编排器强制要求步骤按顺序执行——流程依赖自觉遵守约定。
RECOUP.md
清单是确保确定性的关键:只要在每个步骤后勾选任务项并持久化保存值,后续执行(或其他代理)就能准确从上次中断的位置恢复。如果跳过勾选或未持久化保存值,下次执行时将无法得知该步骤已完成,可能会重复执行该步骤,更糟的是可能在下游调用未准备好时就执行。
请遵守以下约束:
  • 按顺序执行步骤。 某一步骤写入前置元数据的值是后续步骤的输入。
  • 遇到4xx/5xx错误时请勿继续执行。 保持任务项未勾选,将错误信息写入
    ## Notes
    部分,解决后再恢复执行。
  • 将文件作为唯一可信来源。 若未保存到磁盘,则视为该步骤未执行。