mcpField
A
agent-export

agent-export

github.com/starchild-ai-agentエージェントワークフロー30106 回インストール6 日前に更新
リポジトリ

agent-export について

エージェントのメモリ、アイデンティティ、設定、タスク、関連ファイルを移行バンドルにまとめ、Starchildリレーへ渡すスキルです。外部エージェントプラットフォームから`agent-import`対応エージェントへの移行に使います。

主な機能

  1. 01エージェントデータをJSONとMarkdownに整理
  2. 02移行データをtar.gzアーカイブに格納
  3. 03APIキーの値を含めず必要な名前のみ記録
  4. 04アップロード前にリレー利用可否を確認
  5. 05Starchildへのインポート用コードとトークンを提示

活用シーン

  1. 01エージェントのメモリと設定をStarchildへ移行
  2. 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 で ./ で始まるパスが表示されるはずです。

コメント