AI・機械学習
Autolith: ライブランタイムを持つプログラミングエージェント
Autolith: A programming agent with a live runtime (lambda-symbolics.com)
要約
Autolithは、ターミナル内で動作し、リポジトリに直接アクセスしてコードの読み書き、コマンド実行、テスト実行などを行うことができるプログラミングエージェントです。Common Lispのランタイムを内包し、開発者が検査、拡張、復旧可能なエージェントとして設計されています。
全文翻訳
Autolith: ライブランタイムを持つプログラミングエージェント
Autolithはターミナルで動作し、リポジトリ内で直接作業を行います。ファイルを開いたり編集したり、ワークスペースを検索したり、コマンドやテストを実行したり、プロジェクトのコンテキストを維持したり、会話を離れることなくCommon Lispを使用したりできます。
リポジトリ作業。
ファイルシステム、シェル、検索ツールは、表示可能な結果を伴います。
継続性。
ポータブルな会話、メモリ、アジェンダ、チェックポイント、リカバリ。
ライブLisp。
検査、テスト、拡張が可能なSBCLランタイム。
ソースを読む
セッションを見る
Autolithをインストールする
検査、拡張、復旧が可能なエージェントを求める開発者向け。
Autolith · 常駐エージェント
curl -fsSL https://sh.lambda-symbolics.com/autolith | sh
コピーをクリックするか、より良い方法としてNix経由でインストールしてください。
Autolithをインストールする
AutolithはLinux x86-64をターゲットとしています。バイナリリリースは、SBCL、Lisp依存関係、ネイティブヘルパーを独自に持ち、新しいタグ付きリリースをチェックし、更新前に確認を求めます。最初からビルド全体を固定したい場合は、Nixが推奨されるルートです。
はい、URLをシェルにパイプするのは邪悪です。実行する前にインストーラーを読んでください。Nixがより良いインストールパスです。
Autolithは、ユーザー権限でモデル生成コードを実行します。そのプロセス境界は信頼性を保護しますが、悪意のあるコードに対しては保護しません。開発エージェントとして使用してください。セキュリティサンドボックスとしてではありません。
Autolithを開始する
バイナリ、Nix、またはソース
バイナリインストーラーの後
$ autolith --auth
$ autolith
推奨 · Nix
$ nix run github:luciusmagn/autolith -- --auth
$ nix run github:luciusmagn/autolith
リポジトリからビルドする
$ git clone https://github.com/luciusmagn/autolith
$ cd autolith
$ ./script/bootstrap
$ ./script/check
$ ./bin/autolith --auth
$ ./bin/autolith
ソースとドキュメントを読む
キャプチャされたセッションを見る
セッションは具体的なリクエストから始まります。
これはautolith --immutableからの読み取り専用セッションのキャプチャです。プロンプトはリポジトリのリストを1つ要求し、ツールの出力はAutolithの通常のターミナル制限によってのみ短縮されています。トランスクリプトは順序通りに表示されます: リクエスト、ツール呼び出し、制限された結果、そしてアシスタントの回答。チャットウィンドウのシミュレーションではなく、ターミナルの実際のフォーマットです。
キャプチャされたセッション · 不変モード
❯ あなた
ファイルを変更せずにこのリポジトリを検査してください。1つのツールを使用してトップレベルのファイルを表示し、見つかったものを1文で要約してください。
◇ 推論
要約
│ トップレベルファイルをリストする
▸ fs.list /root/common-lisp/frob
READ ∙ fs.listを実行中 · 00:00 ✓
fs.list cpu 0.001s · real 0.002s
│ /root/common-lisp/frob
│ d .git/
│ d .github/
│ d .qlot/
│ d bin/
│ d dist/
│ d docs/
│ d native/
│ d nix/
│ d recovery/
│ d script/
│ d src/
│ … +13行追加
● Autolith
リポジトリは、ソース、テスト、リカバリツール、ドキュメント、ビルド設定、ネイティブアセット、GitHub/Nix/Quicklispサポートを備えたCommon Lispプロジェクトです。
エージェントとそのツールは1つのプロセスで実行されます。
Autolithはラッパーエージェントプロセスではなく、ターミナルプログラミングエージェントです。そのCommon Lispイメージには、プロバイダークライアント、ターミナルインターフェース、ツールレジストリ、会話状態、永続メモリ、ワークスペースアジェンダ、そして次に何が起こるかを決定するコードが含まれています。ChatGPT Codexサブスクリプションサービスと直接通信します。Codex CLIは起動もバンドルもされていません。ファイルシステム、シェル、検索、メモリ、Lisp操作は、表示可能な結果を伴う明示的なツールとして残ります。
高速検索、オプションの不変モード
ワークスペース検索は、fffという高速Rust検索ライブラリを通じてインプロセスで実行されます。Autolithは、クエリごとに新しい検索プロセスを開始するのではなく、インデックスをウォームに保ちます。アクティブイメージの変更なしに検査したい場合は、--immutableで開始してください。このモードは読み取り専用の検査とリカバリ情報を保持しますが、評価、変更、永続化、チェックポイント、ロールバックツールは提供しません。
実行中のエージェントを再起動せずに更新する
Autolithは、実行中のイメージ内の完全な関数、メソッド、クラス、マクロ、条件、グローバル設定を検査して置き換えることができます。探索的な変更は即座に有効になり、追記専用の変更ジャーナルに記録されます。これは、実行、破棄、またはプライベートイメージコミットとして保持できます。有用な変更は、プライベートイメージコミットになる可能性があります。コミットにはマニフェストと完全な実行可能なLispリプレイスクリプトが含まれ、別のプライベートGit履歴に保持されます。これは、追跡されたソースリポジトリを静かにパッチすることなく、アクティブなエージェントを変更します。
代表的な変更トランザクション
→ self.source
APPLICATION-TOOL-CALL-ENTRY
← 完全な追跡済み
DEFMETHOD → self.redefine (defmethod application-tool-call-entry ...)
← コンパイルされ、アクティブなイメージにインストールされました。
→ self.diff
← 再構築可能なライブ変更1つ
→ self.commit "ツールの呼び出し表示を改善"
← プライベートイメージコミット
commit-id
complete.reconstruct.lisp
プライベートGitに保持
さまざまな種類の状態は分離されたままです。
ソース、会話、有用な事実、ライブ変更、正確なヒープ、使い捨ての実験は、異なる寿命を持ちます。Autolithは、1つのデータベースや1つの保存されたコアがすべてであるかのように見せかけるのではなく、それらを分離して保持します。
永続的な表面 · 再構築の証拠
会話
追記専用のポータブルS式で、正確な再開コマンドとクラッシュテール修復機能を備えています。
メモリ
ワークスペースまたはグローバルな事実、設定、決定事項で、制限されたプロンプトリコールを備えています。
アジェンダ
短いワークスペースタスクとメモで、すべてのリクエストでフルに利用できます。
プライベートイメージコミット
耐久性のあるユーザー固有の定義と設定のための完全なリプレイスクリプトで、プライベートGitに保持されます。
世代
保存されたアクティブコア、正確な追跡ソースコミット、再構築スクリプト、マニフェスト、ジャーナル位置。
ワーカーイメージ
親と耐久性のあるメモを備えた不変の実験的SBCLコアで、アクティブエージェントとしては選択されません。
リカバリ
クラッシュを検査し、破損したコアをロードせずに既知の正常な世代を選択できる、別途ビルドされたクリーンなイメージ。