𝗠𝗮𝗰 𝗠𝗶𝗻𝗶でローカルコーディングエージェントを動かす

私は、重要度の低いタスクにローカルコーディングエージェントを使用しています。ファイルの編集、テストの修正、ビルドの検証などを担当させます。また、Playwrightのテスト作成、コードレビュー、デプロイの実行も行います。

このセットアップは、RAM 24 GBを搭載したMac Mini M4上で動作しています。コーディング作業にクラウドAPIは使用していません。安価なクラウドモデルは、プランニングとルーティングにのみ使用しています。実際のファイル編集は、Piという名前のコーディングエージェントが担当します。これは、ローカルLLMサーバーであるoMLXに接続されます。

このセットアップは、OpenAI互換のAPIを使用するあらゆるエージェントで動作します。同じoMLXサーバーを使用して、Claude CodeやCodexを利用することも可能です。

2つのモデルを使用しており、タスクに応じてそれらを切り替えています。24 GBのRAM制限があるため、両方を同時に実行することはできません。

  • メインのコーディングモデル:9Bクラス、20 tokens/sec
  • 高速モデル:4Bクラス、27 tokens/sec(クイックな修正用)

スワップスクリプトによって、一方のモデルを退避させ、もう一方を読み込みます。このプロセスには5秒かかります。

エージェントは以下のタスクを実行します:

  • ファイルの編集とリファクタリング
  • テストの作成と修正
  • ビルドの検証
  • コードレビュー
  • ドキュメントの更新
  • デプロイの実行

1行以上のコードを伴う複雑な作業には、RPCモードを使用します。オーケストレーション層がプロンプトを作成し、Piがそれを実行します。

パフォーマンス向上のために以下のツールを使用しています:

  • pix-optimizer: トークンを圧縮し、ボイラープレートを削除します。
  • context-mode: ワークスペースのタスクをルーティングし、ツール呼び出しを管理します。
  • pi-subagents: タスクを並列実行します。
  • pi-workflow-engine: 多段階のタスクシーケンスを処理します。
  • pi-mcp-adapter: MCPを介して外部ツールに接続します。

このセットアップにおける重要なルール:

  • メモリエラーを避けるため、一度にロードするモデルは1つだけにしてください。
  • 速度を維持するため、thinking mode(思考モード)は無効にしてください。
  • プロンプトにチャット履歴をすべて含めないでください。モデルがクラッシュする原因になります。
  • 非自明なタスクにはRPCモードを使用し、セーフティコントロールをスキップしてください。
  • モデルのスワップ後に最初の要求がタイムアウトした場合は、再試行してください。

セットアップスクリプト: curl -fsSL https://workswithagents.dev/static/setup-local-llm-pi.sh | sh

ソース:https://dev.to/vystartasv/running-a-local-coding-agent-on-a-mac-mini-the-actual-setup-47bo

オプションの学習コミュニティ:https://t.me/GyaanSetuAi