Show HN:Druids – 自分だけのソフトウェア工場を構築する

2026/04/09 5:12

Show HN:Druids – 自分だけのソフトウェア工場を構築する

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary

Druids は、複数のコーディングエージェントをマシン間でオーケストレーションできる batteries‑included フレームワークです。各エージェントは、リポジトリと依存関係を持つ独自のサンドボックス化された仮想マシン(VM)内で実行され、

ctx.connect
を通じてファイルやリソースを共有でき、異なる Git ブランチ上で作業することも可能です。Druids プログラムは非同期関数であり、エージェントの生成、トリガー可能なイベントの定義、および実行フローの制御を行い、モデル学習イテレーション、検証階層、分散状態管理などのタスクに対して決定論的構造を提供します。

典型的なスクリプト(

best_of_n.py
build.py
basher.py
review.py
main.py
)は、モデルのビルド、実装、レビュー、レース用パイプラインを示しています。例えば
druids exec best_of_n.py spec="Refactor the auth module" n=5
は N 個のワーカーをデプロイし、PR URL を収集してジャッジエージェントに送信し選択します。

システムは FastAPI ベースのサーバーとサンドボックスマネージャ、クライアント用 CLI と Python ライブラリ、ランタイム SDK、Vue 3 ウェブダッシュボード、および包括的なドキュメントで構成されています。Druids はローカル(Docker 経由)または druids.dev 上で実行可能です。Anthropic API キーを設定しイメージをビルドした後、サーバーを起動し CLI を構成してプログラムを実行します。

このセットアップにより、開発者はコードレビュー、ペネトレーションテスト、マイグレーション、データパイプラインなどの複雑なワークフローをスケーラブルでサンドボックス化されたエージェントを使って自動化できます。Druids コミュニティは Discord でもアクセス可能で、ウェブサイトにデモ動画が掲載されています。

本文

Druids(ドゥルイッズ)とは

Druids は、複数のマシンにまたがるコーディングエージェントを調整・デプロイするための「バッテリー付き」ライブラリです。VM インフラストラクチャ、エージェントのプロビジョニング、通信といった低レベルな詳細はすべて抽象化されます。


例:プログラム

async def program(ctx, spec="", n=3):
    submissions = {}

    # 各エージェントにはあなたのリポジトリを持つサンドボックス型 VM が割り当てられます
    judge = await ctx.agent("judge")

    @judge.on("pick")
    async def on_pick(winner=""):
        await ctx.done({"winner": winner, "submissions": submissions})

    for i in range(n):
        worker = await ctx.agent(f"worker-{i}", prompt=spec, git="write")
        worker_name = worker.name

        @worker.on("submit")
        async def on_submit(pr_url=""):
            submissions[worker_name] = pr_url
            if len(submissions) == n:
                await judge.send(
                    f"Review these PRs and pick the best:\n\n{submissions}"
                )

実行方法は次の通りです。

druids exec best_of_n.py spec="Refactor the auth module" n=5

Druids の活用シーン

  • パフォーマンス最適化:多数のエージェントを同時に走らせる
  • カスタム自動化パイプライン:コードレビュー、ペネトレーションテスト、移行処理、長時間実行する自律機能など
  • データパイプライン構築:エージェントを組み合わせてデータフローを設計

ローカル環境で利用したり、druids.dev へデプロイして使用することも可能です。

Website · Docs · Discord · Demo video


エージェントプログラム

Druids のプログラムは 非同期関数であり、以下を行います。

  1. エージェントを作成
  2. それらが発火できるイベントを定義
  3. イベントに対するプログラムの応答を制御

イベントは決定論的な構造とフロー制御を提供し、次のようなケースで有効です。

  • モデルに対してハードテストやシグナルを使って反復させる
  • エージェントが生成した出力を他のエージェントが検証する階層構造を作り、特定条件が満たされるまで繰り返す
  • 分散タスク状態(例:共有リソースへのロック)を制御

各エージェントはあなたのリポジトリを持つサンドボックス型 VM 上で実行されます。エージェント同士は

share_machine_with
でマシンを共有したり、
ctx.connect
でファイル転送を行ったり、Git ブランチ上で作業できます。ホステッド版では
agent.fork()
が即座にコピーオンライトクローンを作成します。実行中の任意のエージェントへメッセージを送り、プログラム状態を検査し、停止せずに処理をリダイレクトすることも可能です。


クイックスタート

必要条件:Docker、

uv
、Anthropic API キー

# Docker イメージのビルド・サーバ起動・CLI 設定
druids setup

# プログラム実行例
druids exec .druids/build.py spec="Add a /health endpoint that returns 200 OK"

詳細は Getting Started ガイドまたは

QUICKSTART.md
をご覧ください。


代表的なプログラム例

  • build.py – ビルダー・クリティック・オーディターの三者が交互に作業し、全員が満足するまで繰り返す
  • basher.py – タスクをスキャンし、実装者+レビュアーのペアを生成
  • review.py – デモエージェントが実際のシステムで PR をテスト;監視者はショートカットを検知
  • main.py – Claude と Codex が同じ仕様に対して並列に競走

アーキテクチャ

server/   ── FastAPI サーバ、実行エンジン、サンドボックス管理
client/   ── CLI と Python クライアントライブラリ
runtime/  ── プログラムランタイム SDK
frontend/ ── Vue 3 ダッシュボード
docs/     ── ドキュメント(druids.dev/docs にも公開)

同じ日のほかのニュース

一覧に戻る →

2026/04/10 4:48

macOSでのネイティブ即時空間切り替え (Note: The phrase “Instant Space Switching” refers to the feature that allows users to switch between virtual desktops or spaces instantly. In Japanese, it is often rendered as 「即時スペース切り替え」.)

## Japanese Translation: ## Summary 著者は、macOS が即時の Space 変更をサポートしない理由を説明し、Apple の唯一の組み込み回避策である「Reduce motion」が単に問題をフェードアニメーションに置き換えるだけでなく、ブラウザの prefers‑reduced‑motion 設定もトリガーすることを指摘しています。他の解決策には欠点があり、yabai は即時切替を可能にしますが System Integrity Protection (SIP) を無効化し、タイル方式を学ぶ必要があります。FlashSpace と AeroSpace はネイティブではなく不要な複雑さを追加します。BetterTouchTool は「Move Left/Right Space (Without Animation)」機能を提供しますが、有料ライセンスのみで利用可能です。 著者は **InstantSpaceSwitcher**(GitHub: jurplel/InstantSpaceSwitcher)というメニューバーアプリを発見しました。このアプリは SIP を無効にせずに即時の Space 変更を実現します。高速トラックパッドスワイプをシミュレートし、コマンドラインインターフェース(`ISSCli`)を通じてユーザーが直接特定のスペース番号へジャンプできるようにします。 **インストール手順:** ``` git clone https://github.com/jurplel/InstantSpaceSwitcher cd InstantSpaceSwitcher ./build.sh ``` ビルド後、`.build/release/ISSCli --help` を実行して `[left|right|index <n>]` などのコマンドを確認してください。リポジトリは GitHub スターが1つしかありません。著者は役立った場合にスターを付けるよう読者に奨励しています。 別プロジェクト **instantspaces** は yabai のスイッチャーを分離しようとしますが、著者の macOS Tahoe では機能しませんでした。読者は新しい macOS リリースで InstantSpaceSwitcher または instantspaces が成功したかどうか報告することが推奨されています。

2026/04/10 5:12

チャルクテリー – 視覚的類似性を探るUnicodeエクスプローラ

## Japanese Translation: **改訂要約** Charcuterie は Unicode 文字セットのウェブベースのビジュアルエクスプローラーで、ユーザーがグリフを閲覧し、関連するシンボル、スクリプト、および形状を発見できるツールです。各グリフは描画され、ベクトル空間に埋め込まれ、類似度計算を用いて視覚的に似ている文字をグループ化します―すべてブラウザ内で完結します。このプロジェクトは積極的に開発中です。ユーザーからのフィードバックを歓迎し、継続的な改善を支援するための寄付も奨励しています。© 2026 David Aerne.

2026/04/10 5:10

Gemini の SynthID 検出機構のリバース エンジニアリング

## 日本語訳: > **概要:** > 本プロジェクトは、Google の Gemini が生成するすべての画像に埋め込む Spectral SynthID ウォーターマークを検出・除去する高忠実度手法を示しています。ウォーターマークを逆解析した結果、解像度依存性(キャリア周波数が画像サイズとともに変化)であること、および Gemini モデルごとに固定の位相テンプレートが存在し、クロスイメージ位相共鳴率が 99.5 % 超、黒/白検証時には |cos(phase_diff)| が 0.90 を超えることが判明しました。 > 研究者は、解像度ごとにキャリアプロファイルを保存するマルチレゾリューション SpectralCodebook(V3)を構築し、バイパスアルゴリズムではチャネル重み G=1.0、R=0.85、B=0.70 を用いて 3 回のパス(攻撃的 → 中程度 → 穏やか)で位相整合性付きの加重減算を行います。これによりキャリアエネルギーが約 75.8 % 減少し、トップ5 キャリア位相共鳴率が 91.4 % 降低され、1536×2816 画像で PSNR >43 dB、SSIM ≈0.997 の視覚品質を保持します。これは以前の V1(JPEG Q50、37 dB)や V2(27–37 dB)の試みと比べて著しい改善です。 > リポジトリにはコードブック構築用スクリプト (`synthid_bypass.py build-codebook`)、V3 バイパス実行、ウォーターマーク検出用 (`robust_extractor.py detect`) が含まれています。貢献者は、Nano Banana Pro を使用して様々な解像度で純黒(#000000)と純白(#FFFFFF)の画像を生成し、コードブックをさらに充実させることが推奨されています。 > すべてのツールは学術研究専用に公開されており、SynthID は依然として Google DeepMind の独自技術です。 この改訂版は主要ポイントを網羅し、根拠のない推測を排除し、読者向けに明確で簡潔な概要を提示しています。

Show HN:Druids – 自分だけのソフトウェア工場を構築する | そっか~ニュース