AI・機械学習
Show HN: Agentic OS – 1つのRust Linuxバイナリ、エンティティごとに1つのSQLiteとサンドボックス
Show HN: Agentic OS: one Rust Linux binary, one SQLite and sandbox per entity (github.com)
要約
Agentic OS (meclaw) は、Rustで書かれた単一のLinuxバイナリで、ディレクトリ構造をエージェントのコロニーとして実行するビルドシステムです。各フォルダがアクターとなり、エッジがルートとなるこのシステムは、SQLiteとサンドボックスをエンティティごとに使用します。OSやアシスタントは、JSONファイルを通じて動的に成長させることができ、SDKやデプロイメントなしでエージェントシステムを構築・管理できます。
全文翻訳
meclaw エージェントがエージェントを構築する場所。エージェントシステムのためのエージェントビルドシステム。オントロジーに根ざし、監査可能で、単一のRustバイナリです。アシスタントを開始する · ドキュメント · テンプレート · 例 · ロードマップ meclawは3つのもので構成されており、最初のものだけをインストールします。meclawは基盤です:ディレクトリツリーが実行されます — 各フォルダはアクター、各エッジはルート、そしてその下に単一のRustバイナリがあります。meclaw-osは、実行時にその基盤上に成長する、エージェントのための小さく実験的なオペレーティングシステムです。アシスタントも同様の方法でOSに成長します — デプロイメントではなくJSONファイルです。一度インストールすれば、すべてを成長させられます。アシスタントを開始する # 1 — meclawをインストールする:単一の静的Linuxバイナリ(~/.local/binに配置されます) curl -fsSL https://meclaw.ai/install.sh | sh export PATH="$HOME/.local/bin:$PATH" # テンプレートはバイナリと一致する必要があります:インストーラーが与えたタグをクローンしてください git clone --depth 1 --branch "v$(meclaw --version | cut -d' ' -f2)" \ https://github.com/mmeyerlein/meclaw && cd meclaw # 1つのキー — sk-...を実際のキーに置き換える(https://openrouter.ai/keys)、またはステップ3はコード=authで終了します printf 'OPENROUTER_API_KEY=sk-...
MODEL_BRAIN=openai/gpt-4o-mini
' > examples/meclaw-os/seed/.env # 7777は任意の空きポートです:もし使用されている場合は、以下の各行でも変更してください。 # 最初の起動はコールドディスクから25MBのバイナリを読み込み、約40秒間無音状態が続くことがあります。それ以降の起動は1秒未満で完了します。 meclaw --root examples/meclaw-os/seed --templates ./templates --daemon --api 127.0.0.1:7777 # 2 — 実行中のコロニーにOSをインストールする:単一のPOST、何も再起動しません curl -s -X POST 127.0.0.1:7777/colony/mutations \ -H 'Content-Type: application/json' -d @examples/meclaw-os/grow.json # 3 — アシスタントと対話する curl -s -X POST 127.0.0.1:7777/messages -H 'Content-Type: application/json' \ -d '{"target": "/door", "headers": {"channel": "chat-1"}, "body": {"messages": [{"origin": "user", "type": "text", "text": "Say hello in one short sentence."}]}}' # 4 — 回答を読む:何も隠されていません、返信は記録上のホップです(jqが必要です) curl -s '127.0.0.1:7777/colony/trace?limit=200' | jq -r \ '[.trace[] | select((.headers_json | fromjson | .hop.route) as $r | $r == "answer" or $r == "error")] | last | if . == null then "no answer yet — the colony is still working; watch it at http://127.0.0.1:7777/ui/" else .body_payload | fromjson | .messages[0].text end' # 5 — ブラウザでコロニーを監視する:http://127.0.0.1:7777/ui/ 単一のバイナリ、単一のキー、5つのステップ — そして4番目のステップでポイントが示されます:回答は戻り値ではなく、記録上のメッセージです。何が起こったのか あなたはmeclawをインストールしました。ディレクトリツリーを実行中のアクターのコロニーに変える単一のRustバイナリです:各フォルダはセル、そのconfig.jsonはその定義、そしてフォルダ間のエッジはメッセージが通過できるルートです。他に何もインストールされませんでした。あなたはオペレーティングシステムをインストールしました — 何も停止せずに。grow.jsonはコードではなく、デプロイされたものでもありません。それはHTTP経由で既に実行中のコロニーに適用されるノードとエッジの変異です。それはテンプレートライブラリからドア、ファイアウォール、会話エージェントを成長させました — そしてそれがコロニーに何かが追加される唯一の方法です、だからこそ同じドアがエージェント自身にも開かれています。あなたは誰もプログラムしていないアシスタントと話しました。SDKも、エージェントクラスも、あなたが書いたループもありません。アシスタントはファイルシステム上の形状であり、テンプレートから成長しました — そしてその形状の完全版(examples/organism)は、5つのそのようなファイルから組織、人物、そのアシスタント、そしてそれらのチャンネルを成長させます。meclawは十分に異なるため、常に同じ質問が出てきます。このページの残りはそれらの質問です — それぞれが数行で、それぞれがdocs/why/の実際のページです。meclawはループを出荷しません すべてのエージェントフレームワークは同じものを出荷します:ループ — モデルを呼び出し、ツールを実行し、結果をフィードバックし、あなたが書いた条件が停止と言うまで。あなたはそれらのハーネスを手作業で構築し、間違っているときに再デプロイします。meclawでは、LLMセルは1つのプロバイダー呼び出しを行い、1つのメッセージを発行します。ツールはセルであり、ループはバックルーティングするエッジであり、ハーネスはトポロジーです。トポロジーはファイルなので、スウォームは実行中に自身のハーネスを書き換えることができます。すべてがファイルです 柔軟性はここでは機能ではなく、1つの決定の結果です。ハーネスはファイルシステムに存在するため、ls、grep、diff、gitがツールとなり、すべての変更はdiff可能であり、エージェントは人間が使用するのと同じ閉じた語彙で自身のトポロジーを再構築します。SDKもプラグインAPIもなく、それは意図的です:インターフェースはHTTPとファイルであり、Rustコードなしで出荷された38のテンプレートがその証拠です。詳細:docs/why/everything-is-a-file.md エージェントのためのオペレーティングシステム すべてのエージェント製品は同じものを再構築することになります:組織、その人々、彼らのアシスタント、それらに到達するチャンネル — さらに秘密、スクリーニング、セッション、そしてそれらすべてを横断する制御ループ。meclaw-osはそれらをテンプレートとして1つのルールで出荷します:あるレベルは、その兄弟が共有する必要があるものを所有します。それは初歩的で実験的ですが、既にアプリの概念を持っており、新しいエージェントがプロジェクトではなく成長であるために存在します。詳細:docs/why/an-os-for-agents.md 1つのアシスタント、2つの脳 出荷されるアシスタントは意図的に2つのモデルを実行します:高速に応答する会話サーフェスと、思考する推論コア — 1つのジョブ、1つの脳、それぞれ1つのツールメニュー、そしてメニューはプロンプトに入力するのではなく要求されます。両方を実行する1つのモデルは、会話では遅いか、推論では浅くなります。この分割はハーネスの決定であり、ハーネスはファイルです。詳細:docs/why/two-brains.md ウィンドウを超えて存続するメモリ 会話は数週間続くことができます — コンテキストを賢く圧縮するからではなく、会話が保存されていた場所がウィンドウではなかったからです。メモリハイブはLLMなしで書き込み、5つのモデルフリーのレッグで取得し、削除するのではなく上書きすることで毎晩統合され、ウィンドウは予算内でターンごとにレコードから組み立てられます。詳細:docs/why/memory.md meclawにおけるオントロジーとは 哲学ではなく、型付けされたカタログです。ビルダーはテンプレートライブラリとその宣言に対して設計し、それらによって検証されます。たとえば、JSONを自由形式で解析することを期待するのではなく。カタログに欲しいものの言葉がない場合、マニフェストがそれをもたらします — add_templatesは実行中のコロニーに新しいクラスを登録します。アプリはオントロジーが新しい言葉を学ぶ方法です。詳細:docs/why/ontology.md 再帰的な自己改善のために準備済み プライミティブはここにあり、テスト済みです:ランタイム変異、願いをマニフェストに変えるビルダー、ウィンドウを測定して保持または元に戻す、すべての行為の領収書。それらを閉じるループは意図的にありません。このリポジトリの何も自己改善しません、そして制御ループが追求できるすべての目標は無効になっています。盲目的なRSIはありません。詳細:docs/why/rsi.md あなたが話し、それが示します これは機能ではなく、アイデアです。アシスタントのビジョンは映画『her』です:あなたはそれに話しかけ、それはあなたにリスト、計画、絵などを表示します。それはあなた自身のディスプレイに描画され、単一のエージェントのものではありません。このリポジトリの何も今日ボイスを処理しません。存在するものは、それが描画するウィンドウです。アイデア、そして既にその下に存在するものは次のとおりです:docs/why/you-talk-it-shows.md 奇妙な名前 argus、affinity、talky、cogny、hive — 名前はブランディングではなく役割であり、それぞれに1行の理由があります。詳細:docs/why/names.md なぜRust、なぜLinuxのみ 単一の静的バイナリ、セルごとに単一の非同期タスク — そしてセキュリティモデルはカーネルです:Landlock、ネットワーク名前空間、cgroup v2、seccomp、fail-closed。これらのプリミティブなしでは、「サンドボックス化」はプロパティではなく約束になります。だからmacOSビルドはありません。認証はリバースプロキシの仕事であり、すべてのLinuxデーモンと同様です。詳細:docs/why/rust-and-linux.md 制限 コードセルはpython3を実行します、それ以外は何も実行しません。1つの画面、1つのアプリ。ボイスはロードマップであり、機能ではありません。まだ無監視のプロダクション向けではありません。実行コスト(1つのプロダクションコロニーで測定):会話、メソッド、ピン留めウィンドウで1日あたり0.32ユーロ(ドキュメント参照)。