long は何をしますか?
Elixir/OTP上に構築されたシングルバイナリLLMエージェントランタイム:チャットUI、4層メモリ、Anthropic互換スキル、スケジュールタスク、マルチプロバイダLLMルーティング、およびプラットフォームボット。
概要
mjason/long は、Elixir/OTP エコシステムを活用した、高性能で拡張性のあるLLMエージェントランタイムです。単一のバイナリとして配布され、依存関係を最小限に抑えています。以下の主要機能を提供します。
主な機能
- チャットUI: インタラクティブなターミナルベースのチャットインターフェース
- 4層メモリシステム:
- 短期メモリ(セッション内の即時コンテキスト)
- 作業メモリ(アクティブなタスクのコンテキスト)
- 長期メモリ(永続的な知識保存)
- エピソードメモリ(過去の相互作用の要約)
- Anthropic互換スキル: AnthropicのClaude CodeやClineなどのツールで作成されたスキル定義をネイティブサポート
- スケジュールタスク: cronベースの定期的なジョブ実行
- マルチプロバイダLLMルーティング: OpenAI、Anthropic、Google、その他の主要LLMプロバイダを透過的に切り替え
- プラットフォームボット: Discord、Slackなどのチャットプラットフォームとの統合
インストール
# シングルバイナリをダウンロード(Linux、macOS、Windows対応)
curl -sSL https://get.long.run | bash
# または、手動でリリースページからバイナリをダウンロード
クイックスタート
# 初期化
long init
# 設定ファイルを編集(~/.long/config.toml)
# LLMプロバイダとAPIキーを設定
# チャットを開始
long chat
# スキルをロード
long skills load ./my-skill.yaml
設定
設定は ~/.long/config.toml に保存されます。例:
[provider]
default = "openai"
[provider.openai]
api_key = "sk-..."
model = "gpt-4"
[provider.anthropic]
api_key = "sk-ant-..."
model = "claude-3-opus-20240229"
[memory]
short_term_size = 10
long_term_store = "sqlite"
[skills]
directory = "./skills"
スキルの作成
mjason/long はAnthropicスタイルのスキル定義と互換性があります。スキルはYAMLファイルで定義します:
name: my-skill
description: 私のカスタムスキルの説明
version: "1.0.0"
tools:
- name: my-tool
description: ツールの説明
parameters:
type: object
properties:
param1:
type: string
description: パラメータ1
required:
- param1
スケジュールタスク
cron式を使用して定期的なタスクを設定できます:
long schedule add --name "daily-report" --cron "0 9 * * *" --skill ./report-skill.yaml
プラットフォームボット
# Discordボットを起動
long bot discord --token "YOUR_DISCORD_BOT_TOKEN"
# Slackボットを起動
long bot slack --token "YOUR_SLACK_BOT_TOKEN" --app-token "YOUR_SLACK_APP_TOKEN"
環境変数
OPENAI_API_KEY: OpenAI APIキーANTHROPIC_API_KEY: Anthropic APIキーLONG_CONFIG_DIR: 設定ディレクトリのパス(デフォルト:~/.long)LONG_DATA_DIR: データディレクトリのパス(デフォルト:~/.long/data)
アーキテクチャ
mjason/long は以下を使用して構築されています:
- Elixir/OTP: 耐障害性と並列処理のためのアクターモデル
- Nx/EXLA: オプションのローカルテンソル処理
- SQLite: 軽量な永続ストレージ
- WebSockex: リアルタイム通信
開発
# リポジトリをクローン
git clone https://github.com/mjason/long.git
cd long
# 依存関係をインストール
mix deps.get
# テストを実行
mix test
# リリースをビルド
MIX_ENV=prod mix release
ライセンス
Apache 2.0