Communitygithub.com

mjason/long

Elixir/OTP上に構築されたシングルバイナリLLMエージェントランタイム:チャットUI、4層メモリ、Anthropic互換スキル、スケジュールタスク、マルチプロバイダLLMルーティング、プラットフォームボット。

long とは?

「mjason/long」は、Elixir/OTPで構築されたシングルバイナリのLLMエージェントランタイムです。このスキルは、開発者が自律型AIエージェントを簡単にデプロイ・実行できるように設計されています。主な特徴として、4層のメモリシステム(短期、作業、長期、エピソード)を備え、エージェントがコンテキストを保持して複雑なタスクを実行できます。また、Anthropic互換のスキル定義をサポートし、Claude CodeやClineなどのツールで作成されたスキルをそのまま利用可能です。スケジュールタスク機能により、定期的なジョブの実行も可能で、マルチプロバイダLLMルーティング(OpenAI、Anthropic、Googleなど)に対応しています。プラットフォームボット機能により、DiscordやSlackなどのチャットプラットフォームと統合でき、開発者は最小限の設定で強力なAIエージェントを構築・運用できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add mjason/long

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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

関連スキル