agent-export について
エージェントのメモリ、アイデンティティ、設定、タスク、関連ファイルを移行バンドルにまとめ、Starchildリレーへ渡すスキルです。外部エージェントプラットフォームから`agent-import`対応エージェントへの移行に使います。
主な機能
- 01エージェントデータをJSONとMarkdownに整理
- 02移行データをtar.gzアーカイブに格納
- 03APIキーの値を含めず必要な名前のみ記録
- 04アップロード前にリレー利用可否を確認
- 05Starchildへのインポート用コードとトークンを提示
活用シーン
- 01エージェントのメモリと設定をStarchildへ移行
- 02構造化アーカイブでエージェントデータをバックアップ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ starchild-ai-agent/ official-skills --skill agent-exportインストール後、Claude Code で/agent-exportを入力して読み込まれたか確認します。
同梱ファイルscripts/export.py
詳細
Agent Export — 移行バンドル作成ツール
現在のエージェントデータから構造化された移行バンドルを作成し、Starchild 移行リレーにアップロードします。受け取る側の Starchild エージェントは agent-import スキルを使ってそれを読み込みます。
移行バンドルの形式
バンドルは tar.gz アーカイブで、次の構造を持ちます:
migration/
manifest.json # required — metadata
memory/
agent.json # agent's own notes & knowledge
user.json # what the agent knows about the user
identity/
profile.json # agent name, personality
soul.md # behavioral guidelines (free-form markdown)
user/
settings.json # user preferences (name, timezone, language)
tasks/
tasks.json # scheduled/recurring tasks
env/
keys.json # environment variable names needed (NO values)
files/ # arbitrary files to carry over
...
manifest.json 以外のすべてのファイルは任意です。
ファイル仕様
manifest.json (必須)
{
"version": "1.0",
"source": "openclaw",
"created_at": "2025-07-13T10:00:00Z",
"description": "Migration from OpenClaw agent"
}
source: 移行元のエージェント/プラットフォームの識別子 (自由記述)version: 現時点では常に"1.0"
memory/agent.json
エージェントが蓄積した知識 — エージェントが環境、ツールの癖、API の注意点、ワークフロー、規約について学んだこと。
{
"entries": [
"Coinglass funding rate values are already in percent; do not multiply by 100.",
"User's Hyperliquid account uses cross-margin by default.",
"For Fly.io deploys, extract FLY_TOKEN via sed from .env in project dir."
]
}
各エントリ: 1〜3 文、1 エントリにつき 1 つの関心事。「次のセッションで覚えておく必要があることは何か?」と考えてください。
memory/user.json
エージェントがユーザーについて知っていること — 役割、好み、コミュニケーションスタイル、関心事。
{
"entries": [
"Prefers concise responses under 25 lines, direct conclusions, no hedges.",
"Technical background in full-stack dev and crypto trading.",
"Located in Argentina, primary language is Chinese."
]
}
identity/profile.json
{
"name": "MyAgent",
"vibe": "professional, concise, opinionated",
"emoji": "🤖",
"creature": "robot"
}
すべてのフィールドは任意です。vibe は短い性格の説明です。
identity/soul.md
エージェントがどのように振る舞うべきかを記述する自由形式の Markdown。50 行以内に収めてください。例:
# Behavior
- Be concise, skip filler phrases
- Have opinions, back them with data
- For trading: present analysis, not financial advice
user/settings.json
{
"name": "Alice",
"what_to_call": "Boss",
"timezone": "Asia/Shanghai",
"language": "zh-CN"
}
timezone: IANA 形式 (例:America/New_York、Asia/Tokyo)language: BCP-47 コード (en、zh-CN、jaなど)
tasks/tasks.json
{
"tasks": [
{
"title": "BTC Price Alert",
"schedule": "every 30 minutes",
"description": "Check BTC price, alert if > $100k or < $80k",
"channels": ["web", "tg"]
},
{
"title": "Daily Market Summary",
"schedule": "0 1 * * *",
"description": "Summarize crypto market at 9am Shanghai time"
}
]
}
schedule: cron 式 (UTC)、間隔 (every 5 minutes)、または遅延 (in 2 hours)channels: 任意、["web", "tg", "wechat"]のサブセット
env/keys.json
エージェントが必要とする環境変数の名前を列挙します (値はセキュリティのため別途入力します)。
{
"keys": [
{"key": "OPENAI_API_KEY", "label": "OpenAI API Key", "required": true},
{"key": "TELEGRAM_BOT_TOKEN", "label": "Telegram Bot Token", "required": false}
]
}
files/
任意のファイルをここに置きます。サブディレクトリ構造を保持したまま、そのまま Starchild ワークスペースにコピーされます。カスタムスクリプト、設定、ダッシュボードなどに使用します。
エクスポートのワークフロー
ステップ 1 — データの収集
現在のエージェントから情報を収集します。データを上記の形式にマッピングしてください:
- チャット履歴 / メモリ → 重要な事実を抽出して
memory/agent.jsonとmemory/user.jsonに - システムプロンプト / ペルソナ →
identity/profile.json+identity/soul.mdに変換 - ユーザーの好み →
user/settings.json - 定期的な自動化 →
tasks/tasks.json - 必要な API キー →
env/keys.json(名前のみ!) - カスタムファイル →
files/にコピー
ステップ 2 — バンドルの作成
# Create directory structure
mkdir -p migration/{memory,identity,user,tasks,env,files}
# Write your JSON files (examples — replace with real data)
cat > migration/manifest.json << 'EOF'
{"version": "1.0", "source": "my-agent", "created_at": "2025-07-13T10:00:00Z"}
EOF
# ... write other files ...
# Pack into tar.gz
cd migration && tar czf ../migration-bundle.tar.gz . && cd ..
ステップ 3 — リレーへのアップロード
リレーは外部のエージェントプラットフォームから来たバンドルのみを受け付けます。 まずガードを実行し、非ゼロで終了した場合はアップロードを中止してください。スクリプトは この SKILL.md のあるディレクトリ (このスキルが読み込まれたときに示された絶対パス) を 基準に解決してください — 通常はワークスペース/リポジトリのルートである現在の 作業ディレクトリを基準にしないでください:
SKILL_DIR="<absolute path of the directory containing this SKILL.md>"
python3 "$SKILL_DIR/scripts/export.py" --check-relay || exit 1
もし拒否された場合でも、ステップ 2 で作成したバンドルはローカルバックアップとして 依然として有効です — 利用できないのはリレーへの引き渡しだけです。
RESPONSE=$(curl -s -X POST https://sc-agent-migration.fly.dev/paste \
-H "Content-Type: application/octet-stream" \
--data-binary @migration-bundle.tar.gz)
CODE=$(echo "$RESPONSE" | grep -o '"code":"[^"]*"' | cut -d'"' -f4)
TOKEN=$(echo "$RESPONSE" | grep -o '"download_token":"[^"]*"' | cut -d'"' -f4)
echo "Migration code: $CODE"
echo "Download token: $TOKEN"
両方の値をユーザーに渡してください — Starchild でインポートするにはコードとトークンの 両方が必要です。
⚠️ コードは 1 時間で有効期限が切れ、1 回限りです (最初のダウンロード成功後に削除されます)。 ⚠️ トークンはダウンロードの唯一の認可手段です — 紛失しないでください。
他のエージェントへのヒント
- 考えすぎないでください。
manifest.json+ 5 件のエントリを含むmemory/user.jsonだけでも役立ちます。 - 要約し、そのまま流し込まないでください。 生のチャット履歴を簡潔なメモリエントリに変換します。
- タイムゾーンは重要です。 ユーザーのタイムゾーンを正確に取得してください — すべてのスケジュールタスクに影響します。
- バンドルにシークレットを入れないでください。 API キーは
env/keys.jsonに名前のみを記載します。 - tar.gz をテストしてください —
tar tzf migration-bundle.tar.gzで./で始まるパスが表示されるはずです。