他のプラットフォームから AI スタッフを取り込む
ほかのプラットフォームで定義したエージェントを、そのまま DuDuClaw の AI スタッフにできます。対象は Doubao パートナーパッケージ、OpenClaw や Hermes のフォルダ、AGENTS.md、Claude Code のサブエージェント、GitHub Copilot のカスタムエージェント、Dify アプリのエクスポートです。人格、作業ルール、サービス対象のメモ、記憶、スキルが、DuDuClaw で実際に読まれる場所にそれぞれ入ります。
ダッシュボード:「AI チーム」ページ →「アップロード」。.zip、または単体の .md/.yml/.yaml を選びます(上限 50 MB)。ダッシュボードが取り込むのはこのボタンでアップロードしたものだけで、サーバー上のフォルダを取り込むにはターミナルのコマンドを使います。DuDuClaw がまず検査して計画を表示します。作成されるスタッフ、各ファイルの取り込み先、無効のままになるスキルとその理由が並びます。「取り込む」を押すまで何も書き込まれません。完了後は実際の結果が表示されます。アップロードと取り込みは管理者だけができます。ほかのロールでこのページを開くとその旨の説明が表示され、アップロードボタンは無効になります。
ターミナル:
duduclaw pack install ./報告顧問.zip --dry-run # 計画だけ表示、書き込みなしduduclaw pack install ./報告顧問.zip # 取り込みduduclaw pack install ./reviewer.agent.md # 単体ファイルも可duduclaw pack install ~/.openclaw # フォルダも可同じ ID のスタッフがすでにいる場合、--rename を付けると末尾に -imported を付けて取り込みます。付けない場合は競合としてレポートに載り、そのスタッフはスキップされます。同じ内容を以前取り込んでいる場合は、--replace <ID> で以前のバージョンを置き換えるか(その後スタッフが編集されていれば --accept-edits も必要)、--as-copy で両方を残します。下の「同じものをもう一度取り込む」を参照してください。duduclaw pack install はエキスパートパックと同じコマンドで、取り込み専用のコマンドはありません。チャネルのトークンやスケジュールも含めてプラットフォームごと移すときは、引き続き duduclaw migrate from openclaw|hermes を使います(migrate-from.md を参照)。こちらも下の表と同じ配置になりました。
対応フォーマット
Section titled “対応フォーマット”| フォーマット | 判定方法 | スタッフ 1 人に対応する単位 |
|---|---|---|
| Doubao パートナーパッケージ(詳細ページ「…」› パートナーパッケージを書き出す) | units を持つ manifest.json、または agents/<ref>/agent.yml と persona/ |
agents/<ref>/ |
| OpenClaw フォルダ | openclaw.json(moltbot.json、clawdbot.json も可) |
agents.list[] または agents.entries の 1 項目 |
| OpenClaw/SoulSpec のペルソナワークスペース | 最上位に SOUL.md |
フォルダ |
Hermes フォルダ(~/.hermes または 1 つの profile) |
config.yaml と SOUL.md または memories/ |
フォルダ |
| Dify アプリのエクスポート | app: と kind: app(または version)を持つ .yml 1 つ |
ファイル |
| Claude Code サブエージェント、Copilot カスタムエージェント | .claude/agents/*.md、.github/agents/*.md、*.agent.md、*.chatmode.md、または frontmatter に name と description がある .md |
ファイル |
| 指示ファイル | AGENTS.md、CLAUDE.md、GEMINI.md、AGENT.md、.github/copilot-instructions.md |
フォルダ |
エキスパートパック(expert.toml)、Claude Code プラグイン、単体の Agent Skill はこれまでどおり使えます(エキスパートパック)。それ以外はアップロードの中身を一覧にして拒否します。途中まで取り込むことはありません。
各ファイルの取り込み先
Section titled “各ファイルの取り込み先”| 元のファイル | 取り込み先 | 補足 |
|---|---|---|
SOUL.md、Doubao の persona/SOUL.md |
SOUL.md |
スタッフは読むだけ。 |
IDENTITY.md |
IDENTITY.md、名前と絵文字は agent.toml にも |
OpenClaw の - Name:/- Emoji: 行と Doubao の「## 簽名」節の両方を読みます。 |
AGENTS.md、CLAUDE.md、GEMINI.md、サブエージェント本文、Dify の pre_prompt |
INSTRUCTIONS.md(新規) |
毎回のプロンプトで SOUL、IDENTITY の後に入ります。スタッフは読むだけ。 |
USER.md(Hermes:memories/USER.md) |
ナレッジページ「服務對象」 | コア層なので毎回のプロンプトに入ります。 |
TOOLS.md |
ナレッジページ「工具備註」 | メモだけで、ツール権限は付与しません。 |
HEARTBEAT.md |
ナレッジページ「定期檢查清單」 | 自動ではスケジュールされません。必要ならダッシュボードで作成します。 |
BOOT.md、Dify の開始メッセージ |
ナレッジページ | 必要なときに検索されます。 |
MEMORY.md、memory/*.md(Hermes:memories/MEMORY.md) |
記憶。箇条書き 1 項目(または段落、§ 区切り)ごとに 1 件 |
信頼度は低め(出所は「取り込み」)。元ファイルを記録するので、後からファイル単位で取り消せます。 |
skills/<名前>/SKILL.md |
スタッフのスキル | 下の「スキル」を参照。 |
| サブエージェント内の MCP サーバー | 取り込まない | サーバーは DuDuClaw が実行または接続するものなので、取り込みでは追加しません。一覧に出るので、信頼できるものだけダッシュボードで設定してください。 |
model |
[model] preferred |
Claude のモデル ID のみ。それ以外(doubao-*、gpt-* など)はレポートに記載し、既定のモデルを使います。 |
tools/disallowedTools |
allowed_tools/denied_tools |
絞り込みのみ。DuDuClaw が知らない名前は捨てて一覧にします。許可リストには DuDuClaw 自身のツール(mcp__duduclaw__*:ナレッジ、記憶、タスク、委任)を必ず残します。元でツールを制限していたのに名前が一つも対応しない場合は、全開放にせず、コマンド実行・ファイル書き込み・Web 取得をオフにします。 |
BOOTSTRAP.md、CLAUDE.local.md |
スキップ | 初回だけの設定と個人用ファイル。 |
| その他 | <home>/imported/<ID>/source/ に保存 |
レポートに一覧が出ます。保存するのは取り込みで読んだファイルと一覧に出たファイルだけで、認証情報ファイル、プラットフォームの設定ファイル(openclaw.json、Hermes の config.yaml)、会話ログ、隠しフォルダは保存しません。 |
指示ファイルが複数ある場合は、AGENTS.md → CLAUDE.md → GEMINI.md → AGENT.md → .github/copilot-instructions.md の順で最初のものを使い、残りはスキップとして載せます。中身が @AGENTS.md だけのファイルは、参照先を読みます。
スタッフ ID は元の名前の英数字表記です。英数字にならない名前(中国語のパートナー名など)は「フォーマット-ref」、たとえば doubao-a1 になります。表示名は元の名前のままです。チャネルでは「@表示名」と「@ID」でスタッフを呼ぶため、新しいスタッフがチームの誰かがすでに使っている名前・呼び出し語・ID を使うことはありません。重なったときは ID に -imported、表示名に「(ID)」を付け、レポートに記載します。
スキルはすべて正しい Agent Skill に整えます。名前は小文字の英数字とハイフン(フォルダ名と同じ)になり、元の名前(多くは中国語)は metadata.label に残します。中国語の名前しかないスキルは skill-<16 進 8 桁> になります。Doubao のエクスポートによくある壊れた frontmatter は置き換え、本文はそのまま残します。
次のスキルは管理者が承認するまで無効のままです。
- 実行可能なスクリプトやプログラムを含む(
.py、.sh、.jsなど、#!で始まるファイル、実行ビットの付いたファイル、画像と PDF 以外のバイナリ。.svg、.html、.vbs、.wsf、.commandも含む) - DuDuClaw にないツールに依存する:Feishu/Lark の文書と API、「構建網頁應用」などの Doubao 内蔵ツール、Coze プラグイン、Microsoft 365 Graph
これらはスタッフのフォルダの外で待機し、取り込み時にダッシュボードの受信箱へ承認依頼が 1 件届きます。依頼には各スキルの内容の指紋が記録され、依頼後に中身が変わったスキルは有効になりません。承認後に AI チームのカードで「適用」を押す(または duduclaw expert skills <ID> を実行する)とスキルが追加されます。同名のスキルがある場合は上書きしません。却下や期限切れのときは無効のままです。こうしたツールに少し触れているだけのスキルは通常どおり入り、レポートで注意を促します。
SKILL.md が内容検査に通らない、またはテキストの添付ファイルがプロンプトインジェクション検査に通らないスキルは取り込みません。
- スタッフは後から SOUL と INSTRUCTIONS を編集できないため、取り込み時が唯一の確認の機会です。この二つを含む取り込んだテキストはすべてプロンプトインジェクション検査を通り、SOUL と INSTRUCTIONS はスキルのセキュリティ検査も通ります。SOUL が通らなければそのスタッフは取り込まず、指示ファイルが通らなければ書き込まずにレポートに載せます。
- 認証情報は取り込みません。
.env、auth.json、auth-profiles.jsonなどは読まず保存もしません。openclaw.jsonのチャネルトークンはここでは扱わず、Dify の秘密変数は捨てます。 - アップロードしたフォルダの外を指す OpenClaw のワークスペースパスはたどりません。
- 圧縮ファイル:
__MACOSX/、._*、.DS_Store、Thumbs.db、desktop.iniはスキップします。ファイル名はまず UTF-8 として読み(フラグ付き、または macOS のようにフラグなし)、中国語版 Windows で作られたものは GBK か Big5 を試します。どれも合わないとき、または GBK と Big5 が同じくらいありそうなときは、文字化けした名前で書き込まず、元のバイト列をメッセージに出して拒否します。シンボリックリンクは展開しません。ファイル名はどのシステムでも同じ意味になる必要があるため、:を含む名前、末尾のドットや空白、Windows のデバイス名(CON、NUL、COM1など)、大文字小文字だけが違う二つの項目は拒否します。エキスパートパックと同じサイズ、項目数、圧縮率の上限が適用されます。 - スキル内の認証情報ファイルと隠しファイル(
.env、token.json、*.pem、credentials/、ドットで始まるファイル)はコピーせず、一覧に出します。 - AI スタッフは取り込みを実行できません。
duduclaw pack installとduduclaw expert skillsはスタッフのセッション内では実行を拒否します。 - スタッフは Write、Edit、MultiEdit、Bash、
office_scriptで自分のINSTRUCTIONS.mdを書き換えられません。SOUL.md や CONTRACT.toml と同じ保護です。
AI チームページから取り込みを削除する(または duduclaw expert remove <ID>)と、作成されたスタッフ、待機中のスキル、<home>/imported/<ID>/ の元ファイルが消えます。取り込んだ記憶は共有の記憶ストアにあるので、レポートの「詳細」に表示されるコマンドで取り消します(取り込み元の ID にはこのコンピューター上のパスは含まれません)。
duduclaw memory forget-source --agent <ID> --session "import:agent-import:<import id>/MEMORY.md"同じものをもう一度取り込む
Section titled “同じものをもう一度取り込む”同じ内容(同じ取り込み ID)を以前取り込んでいる場合、ダッシュボードはそのまま失敗せず、次のどちらかを選べます。
- 以前のバージョンを置き換える:以前のバージョンをまずバックアップへ移し、同じ ID と名前で新しいバージョンを取り込みます。スタッフのフォルダは
<home>/agents/_trash/<ID>_<日時>(スタッフを削除したときと同じ場所)へ、スキル・ナレッジページ・元ファイル・取り込み記録は<home>/experts/_replaced/<取り込み ID>_<日時>/へ移ります。失敗しうるチェック(形式、同じパックかどうか、AI スタッフの上限)は何かを移す前にすべて行います。新しいバージョンが途中で失敗した場合、書き込まれた分はバックアップ内のfailed-new/へ移し、以前のバージョンを元に戻し、組織データ(上司・部署)も復元します。新しいバージョンが出した承認依頼は取り下げます。置き換えに成功すると、以前のバージョンでまだ待機中のスキルと hooks の承認依頼も取り下げます。置き換えの途中でインポート処理が止められた場合(ダッシュボードのインポートが時間切れになった、マシンが落ちた)、残された置き換え記録(experts/_replaced/<バックアップ名>.journal.json)を次回の gateway 起動時または次のインポート開始前に読み取り、以前のバージョンを自動で元に戻し、途中まで入った新しいバージョンをfailed-new/へ移し、セキュリティ監査ログにexpert_replace_recoveredを記録します。取り込み記録にあるスタッフ ID のうち、フォルダがその取り込みより後に作られたもの(スタッフ削除後に同じ ID で別のスタッフが作られた)は置き換えで動かしません。作成日時を返さないファイルシステム(一部の Linux 環境)では、従来どおり記録の ID をすべてその取り込みのものとして扱います。置き換えられ、新しいバージョンで作り直されなかったスタッフは組織データも削除されます。 - コピーとして取り込む:以前のバージョンはそのままで、今回は
<取り込み ID>-2のような新しい ID で取り込みます。ID がすでに使われているスタッフには-importedが付きます。
DuDuClaw は取り込み時に、各スタッフの各ファイルの内容フィンガープリントを記録します。「置き換える」を選んだとき、取り込み後に編集されたスタッフ(人格設定、作業ルール、ナレッジページ、記憶ファイル、追加されたファイルなど)がいれば、まず変更内容を一覧表示し、「了解しました。置き換えます」をもう一度押すまで実行しません。この確認がなければサーバーは拒否します。.mcp.json、.claude/、ロックファイル(*.lock)、ナレッジベースの索引とログのように DuDuClaw 自身が管理するファイルは編集に数えません。このバージョンより前に取り込んだスタッフにはフィンガープリントがないため、ファイルの更新日時で判断し、画面にその旨を表示します。
取り込みに失敗したとき
Section titled “取り込みに失敗したとき”ダイアログは理由をわかりやすく説明し、対処方法とエラーコード(例:import.unrecognized)を表示します。問い合わせの際はこのコードをお伝えください。よくあるもの:
| エラーコード | 意味 | 対処 |
|---|---|---|
import.unrecognized |
形式を判別できない | 圧縮ファイルの最上位の内容と、より深いフォルダで見つかった取り込み可能な内容が表示されます。フォルダ 1 つだけを包む外側のフォルダは 2 階層までたどります(__MACOSX/、.DS_Store は数えません)。それより深い場合はそのフォルダを直接圧縮してください。 |
import.already_imported |
以前取り込んでいる | 「置き換える」か「コピーとして取り込む」を選びます。 |
import.replace_edited |
置き換えるスタッフが取り込み後に編集されている | 表示された変更を確認してからもう一度確定します。 |
import.nothing_imported |
取り込めたスタッフがいない | スタッフごとの理由が表示されます。ID が重複している場合は「コピーとして取り込む」を使います。 |
import.quota_exceeded |
ライセンスの AI スタッフ上限を超える | 何も書き込む前に止めます。上限は AI スタッフを作成するときと同じです。 |
import.too_large、import.zip_bomb、import.too_many_entries |
大きすぎる、展開すると異常に大きくなる、ファイルが多すぎる | 上限は 50 MB(展開後も含む)です。 |
import.name_encoding_ambiguous、import.name_encoding_unknown、import.case_duplicate、import.unsafe_path |
ファイル名の問題 | UTF-8 のファイル名に対応したツールで圧縮し直し、大文字小文字だけが違う名前や安全でない名前を変更します。 |
import.timeout |
300 秒以内に終わらなかった | 停止し、何も変更していません。時間をおくか小さなパッケージに分けます。 |
import.unknown |
予期しない問題 | 「詳細」に取り込み処理の元のメッセージがあります。コードと一緒にお知らせください。 |
アップロード自体が失敗した場合(50 MB 超、zip ではない、管理者ではないなど)も、対応する説明が表示されます。
- Doubao のパッケージには公開仕様がありません。取り込みは手元の実サンプル 1 件に合わせて作っており、知らない manifest の項目やユニット種別は推測せずレポートに載せます。
- Dify のワークフロー図は変換しません。最初の LLM ノードのシステムプロンプトだけを使うので、フローは DuDuClaw で作り直してください。Dify のナレッジベースの中身はエクスポートに含まれないため、再アップロードが必要です。
- ルールフォルダ(
.cursor/rules、.claude/rules、.agents/rules、Windsurf、Cline、Kiro)は一覧に出るだけで、まだ適用しません。 - レポートの各行はダッシュボードの言語で表示されます。「詳細」にある取り込み側の技術的な説明(ファイル名、元のプラットフォームの理由)は繁体字中国語のままです。