Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 1品質スコア 53/100

lindy-migration-deep-dive

Lindy AI統合のための高度な移行戦略を提供します。他のプラットフォームからの移行、エージェントの統合、または大規模なアーキテクチャ変更を行う際に利用できます。「lindy migration」「migrate to lindy」「lindy platform migration」「switch to lindy」といったフレーズで起動します。

description の原文を見る

Advanced migration strategies for Lindy AI integrations. Use when migrating from other platforms, consolidating agents, or performing major architecture changes. Trigger with phrases like "lindy migration", "migrate to lindy", "lindy platform migration", "switch to lindy".

SKILL.md 本文

Lindy Migration Deep Dive

概要

Lindy AI インテグレーションへの移行またはアップグレードのための高度な移行戦略です。

前提条件

  • ソースプラットフォームのドキュメント
  • ターゲット Lindy 環境の準備完了
  • 移行スケジュールの承認
  • ロールバック計画の定義

移行シナリオ

シナリオ 1: カスタム AI から Lindy へ

評価フェーズ:

// migration/assess.ts
interface MigrationAssessment {
  sourceAgents: number;
  sourceWorkflows: number;
  complexity: 'simple' | 'moderate' | 'complex';
  estimatedDuration: string;
  risks: string[];
}

async function assessMigration(source: any): Promise<MigrationAssessment> {
  // Analyze existing system
  const agents = await source.getAgents();
  const workflows = await source.getWorkflows();

  const complexity = agents.length > 10 || workflows.length > 5
    ? 'complex'
    : agents.length > 3
    ? 'moderate'
    : 'simple';

  return {
    sourceAgents: agents.length,
    sourceWorkflows: workflows.length,
    complexity,
    estimatedDuration: complexity === 'complex' ? '2-4 weeks' : '1 week',
    risks: [
      'Feature parity gaps',
      'Data format differences',
      'Integration rewiring',
    ],
  };
}

シナリオ 2: エージェント統合

移行前:

┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│  Agent A    │ │  Agent B    │ │  Agent C    │
│  (Support)  │ │  (Support)  │ │  (Support)  │
└─────────────┘ └─────────────┘ └─────────────┘
      │               │               │
      └───────────────┴───────────────┘
                      │
              (Duplicated logic)

移行後:

┌─────────────────────────────────────────────┐
│           Unified Support Agent             │
│  (Consolidated logic, shared context)       │
└─────────────────────────────────────────────┘
// migration/consolidate.ts
async function consolidateAgents(agentIds: string[]) {
  const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });

  // Collect all instructions
  const agents = await Promise.all(
    agentIds.map(id => lindy.agents.get(id))
  );

  // Merge instructions
  const mergedInstructions = agents
    .map(a => `## ${a.name}\n${a.instructions}`)
    .join('\n\n');

  // Collect all tools
  const allTools = [...new Set(agents.flatMap(a => a.tools))];

  // Create consolidated agent
  const consolidated = await lindy.agents.create({
    name: 'Unified Support Agent',
    instructions: `
      You are a unified support agent combining multiple specializations.

      ${mergedInstructions}

      Use the appropriate section based on the user's query.
    `,
    tools: allTools,
  });

  console.log(`Consolidated ${agents.length} agents into: ${consolidated.id}`);

  return consolidated;
}

シナリオ 3: マルチ環境移行

// migration/multi-env.ts
interface MigrationPlan {
  phases: MigrationPhase[];
  rollbackCheckpoints: string[];
}

interface MigrationPhase {
  name: string;
  environment: 'development' | 'staging' | 'production';
  steps: string[];
  duration: string;
  successCriteria: string[];
}

const migrationPlan: MigrationPlan = {
  phases: [
    {
      name: 'Development Migration',
      environment: 'development',
      steps: [
        'Export agents from source',
        'Transform to Lindy format',
        'Import to Lindy dev',
        'Run integration tests',
        'Fix any issues',
      ],
      duration: '1 week',
      successCriteria: [
        'All agents imported',
        'Integration tests passing',
        'No critical errors in logs',
      ],
    },
    {
      name: 'Staging Migration',
      environment: 'staging',
      steps: [
        'Deploy to staging',
        'Run load tests',
        'Parallel run with source',
        'Compare outputs',
        'Fix discrepancies',
      ],
      duration: '1 week',
      successCriteria: [
        'Load tests passing',
        'Output parity > 95%',
        'Latency within SLA',
      ],
    },
    {
      name: 'Production Migration',
      environment: 'production',
      steps: [
        'Deploy to production (canary)',
        'Gradually shift traffic',
        'Monitor metrics',
        'Complete cutover',
        'Decommission source',
      ],
      duration: '2 weeks',
      successCriteria: [
        'No increase in errors',
        'Latency within SLA',
        'User satisfaction maintained',
      ],
    },
  ],
  rollbackCheckpoints: [
    'After dev import',
    'After staging deployment',
    'After 25% traffic shift',
    'After 50% traffic shift',
  ],
};

データ移行

// migration/data.ts
interface DataMigration {
  source: string;
  destination: string;
  transform: (data: any) => any;
}

async function migrateData(config: DataMigration) {
  const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });

  // Export from source
  console.log('Exporting from source...');
  const sourceData = await exportFromSource(config.source);

  // Transform data
  console.log('Transforming data...');
  const transformedData = sourceData.map(config.transform);

  // Validate transformed data
  console.log('Validating...');
  const validationErrors = validateData(transformedData);
  if (validationErrors.length > 0) {
    throw new Error(`Validation failed: ${validationErrors.join(', ')}`);
  }

  // Import to Lindy
  console.log('Importing to Lindy...');
  for (const item of transformedData) {
    await lindy.agents.create(item);
  }

  console.log(`Migrated ${transformedData.length} items`);
}

// Transform functions for different sources
const transforms = {
  openai: (agent: any) => ({
    name: agent.name,
    instructions: agent.instructions,
    tools: mapOpenAITools(agent.tools),
  }),

  langchain: (agent: any) => ({
    name: agent.name,
    instructions: agent.prompt_template,
    tools: mapLangChainTools(agent.tools),
  }),

  custom: (agent: any) => ({
    name: agent.title,
    instructions: agent.system_prompt,
    tools: agent.enabled_tools || [],
  }),
};

ロールバック手順

// migration/rollback.ts
interface RollbackState {
  checkpoint: string;
  timestamp: Date;
  agentSnapshots: Map<string, any>;
  automationSnapshots: Map<string, any>;
}

class RollbackManager {
  private states: RollbackState[] = [];
  private lindy: Lindy;

  constructor() {
    this.lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });
  }

  async createCheckpoint(name: string): Promise<void> {
    console.log(`Creating checkpoint: ${name}`);

    const agents = await this.lindy.agents.list();
    const automations = await this.lindy.automations.list();

    const state: RollbackState = {
      checkpoint: name,
      timestamp: new Date(),
      agentSnapshots: new Map(agents.map(a => [a.id, a])),
      automationSnapshots: new Map(automations.map(a => [a.id, a])),
    };

    this.states.push(state);
    console.log(`Checkpoint created with ${agents.length} agents`);
  }

  async rollback(checkpointName: string): Promise<void> {
    const state = this.states.find(s => s.checkpoint === checkpointName);
    if (!state) {
      throw new Error(`Checkpoint not found: ${checkpointName}`);
    }

    console.log(`Rolling back to: ${checkpointName}`);

    // Delete new agents
    const currentAgents = await this.lindy.agents.list();
    for (const agent of currentAgents) {
      if (!state.agentSnapshots.has(agent.id)) {
        await this.lindy.agents.delete(agent.id);
      }
    }

    // Restore modified agents
    for (const [id, snapshot] of state.agentSnapshots) {
      await this.lindy.agents.update(id, snapshot);
    }

    console.log(`Rollback to ${checkpointName} complete`);
  }
}

移行チェックリスト

[ ] ソースシステムのドキュメント化完了
[ ] 移行計画の承認完了
[ ] ロールバック手順のテスト完了
[ ] データ変換の検証完了
[ ] 機能互換性の確認完了
[ ] 統合テストの作成完了
[ ] ロードテストの実施完了
[ ] 並行稼働の完了
[ ] カットオーバーウィンドウのスケジュール完了
[ ] 監視の強化完了
[ ] サポートチームのブリーフィング完了

出力

  • 移行評価
  • 統合戦略
  • マルチ環境計画
  • データ変換
  • ロールバック手順

エラーハンドリング

問題原因解決方法
データ損失変換エラーインポート前に検証する
互換性ギャップ機能差異ドキュメント化し対応する
ロールバック失敗チェックポイント不完全完全なスナップショットを作成する

完全な移行スクリプト

#!/bin/bash
# migrate-to-lindy.sh

echo "Starting Lindy migration..."

# Phase 1: Assessment
npm run migration:assess

# Phase 2: Export
npm run migration:export

# Phase 3: Transform
npm run migration:transform

# Phase 4: Validate
npm run migration:validate

# Phase 5: Import (with checkpoint)
npm run migration:checkpoint create pre-import
npm run migration:import

# Phase 6: Test
npm run migration:test

echo "Migration complete!"

リソース

次のステップ

これで Flagship ティアのスキルが完成します。包括的なカバレッジについては、Standard および Pro スキルの確認を検討してください。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
Brmbobo
リポジトリ
Brmbobo/Web2podcast
ライセンス
MIT
最終更新
2026/1/26

Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: Brmbobo · Brmbobo/Web2podcast · ライセンス: MIT