Metadata-Version: 2.4
Name: local-automata
Version: 0.3.0
Summary: ローカルLLM（mlx / llama.cpp / OpenAI互換）エージェントの CLI / Web フロントエンド。エンジンは local-automata-core に委譲
Author: ToPo-ToPo-ToPo
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/ToPo-ToPo-ToPo/local-automata
Keywords: llm,agent,coding-agent,local-llm,mlx,llama.cpp,openai
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: local-automata-core>=0.2.0
Requires-Dist: local-llm-client>=0.2.0
Provides-Extra: science
Requires-Dist: matplotlib>=3.10; extra == "science"
Requires-Dist: numpy>=2.0; extra == "science"
Requires-Dist: pandas>=2.2; extra == "science"
Requires-Dist: scikit-learn>=1.5; extra == "science"
Requires-Dist: scipy>=1.13; extra == "science"
Requires-Dist: sympy>=1.13; extra == "science"
Dynamic: license-file

# local-automata

ローカルLLM（mlx / llama.cpp）で動く、最小の汎用エージェントとサーバー。LLM とツールを組み合わせた agent loop が土台で、設定（`agent.toml` ＋ 指示 `AGENTS.md`）だけで他のエージェントにも転用可能。

## クイックスタート

[uv](https://docs.astral.sh/uv/) が必要。

初回だけ環境構築が必要。

```sh
uv sync
```

**ターミナル1**: ゲートウェイ（LLM/VLMサーバー）を起動する。サーバーは別パッケージ [local-llm-server](https://github.com/ToPo-ToPo-ToPo/local-llm-server) で、`gateway.toml`（モデルカタログ）を読む。使用中サーバーは常時起動。

```sh
uv run local-llm-server
```

**ターミナル2**: チャット画面を起動する（ブラウザが開く）。

```sh
uv run local-automata-web
```

## 設定（agent.toml）

エージェントの挙動は `agent.toml` で決まる。**`model` と `base_url`（接続先ゲートウェイ）は必須**:

```toml
model = "mlx-community/Qwen3.6-27B-4bit"   # 使うモデル（ゲートウェイの gateway.toml に登録）
base_url = "http://localhost:8799/v1"      # 接続先ゲートウェイ
tools = ["read_file", "edit_file", "run_command"]
```

全キー・プロファイル・複数エージェントの設計は **[docs/configuration.md](docs/configuration.md)** を参照。

## LLM サーバー（ゲートウェイ）

LLM サーバーは**1つのゲートウェイ**として立てる。使うモデルを書いた **`./gateway.toml`（モデルカタログ）が必須**で、`model` でモデルを振り分け、登録したモデルは**使われた時にロード**される。（同時に載せる数は `max_resident`）

起動する（カレントディレクトリの `./gateway.toml` を読む）:

```sh
uv run local-llm-server
```

状態確認：

```sh
uv run local-llm-server --status
```

停止：

```sh
uv run local-llm-server --stop
```

サーバーは別パッケージ [local-llm-server](https://github.com/ToPo-ToPo-ToPo/local-llm-server) で、`gateway.toml` の書き方（提供モデル・MTP・`max_resident`）はそちらを参照（サンプルの `gateway.toml` も同梱）。接続側の概要は **[docs/llm-server.md](docs/llm-server.md)** を参照。

## 外部ツール（MCP）

`agent.toml` に `mcp_dir` のパスを設定し、そのフォルダに MCP サーバーのコードを置くだけで、エージェントが全ツールを認識し、呼び出し時に自動起動する。詳しくは **[docs/tools-and-mcp.md](docs/tools-and-mcp.md)**。

## サンプル

`examples/` に用途別のエージェント一式がある。ゲートウェイを起動してから、各ディレクトリで実行する。

| ディレクトリ | 内容 |
| --- | --- |
| `examples/character/` | 会話のみ（ツールなし）＋長期メモリの「ルナ」 |
| `examples/coder/` | 汎用コーディングエージェント。作成・修正 → 実行 → 検証 |
| `examples/optimizer/` | 作成 → 実行 → 評価 → やり直しを固定ワークフローで反復 |
| `examples/ml/` | CSV から前処理 → 学習 → 評価 → 保存 |

### coder サンプル

```sh
cd examples/coder
```

GUI を起動する:

```sh
uv run local-automata-web
```

## ドキュメント

- [docs/cli.md](docs/cli.md) — ターミナルで使う（`local-automata`）、添付、複数エージェントの同時実行
- [docs/configuration.md](docs/configuration.md) — `agent.toml` 全リファレンス、プロファイル、機能トグル（tool_mode / verbose / thinking / planning / memory）
- [docs/tools-and-mcp.md](docs/tools-and-mcp.md) — 組み込みツールと安全性、MCP の探索・起動（`mcp_dir` / AIOS フォルダ方式 / `mcp_mode`）
- [docs/llm-server.md](docs/llm-server.md) — ゲートウェイ、投機的デコード（MTP）、画像・動画（vision）、音声（voice）
- [docs/workflows.md](docs/workflows.md) — 固定ワークフロー（YAML / Markdown）の書き方
- [docs/library.md](docs/library.md) — ライブラリとして組み込む、入力アダプタ
- [docs/development.md](docs/development.md) — 構成・テスト・開発
- [docs/troubleshooting.md](docs/troubleshooting.md) — よくある症状と対処
- [SPEC.md](https://github.com/ToPo-ToPo-ToPo/local-automata/blob/main/SPEC.md) — 挙動の詳細仕様
