なぜローカル動作のAIアシスタントが必要なのか
深夜2時、本番サーバーが502エラーを連発し始めた。ログをパースするbashスクリプトを急いで書かなければならないのに、手は震え、頭も働かない。ChatGPTを開いてログを貼り付けようとした…が、手が止まった。
そのログには顧客のIPアドレス、内部サービス名、さらにはconnection stringの一部まで含まれていた。この状況でクラウドに送信するのはさすがにまずい。
これがきっかけで、完全オフライン動作のAIソリューションを探し始めた。データリークなし、GDPRや社内ポリシーも気にしなくてよい。そこで見つけたのがIronClawだ。
IronClawはRust製のCLI AIアシスタントで、最初から速度とプライバシーの2つを最優先に設計されている。テレメトリなし、望まない限り外部へのリクエスト送信なし。Ollamaを使ったローカルモデルの実行や、任意のAPIプロバイダーへの接続もサポートしている。
IronClawのインストール
システム要件
- Rust 1.75+(stableツールチェーン)
- Linux/macOS — WindowsはWSL2経由でサポート
- ローカルモデル使用時は最低4GB RAM(8GB以上推奨)
- Git
Rustのインストール(未インストールの場合)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustc --version
CargoでIronClawをインストール
最速の方法。cargoがソースから自動ビルドするため、リポジトリのクローンは不要:
cargo install ironclaw
# Kiểm tra cài thành công
ironclaw --version
feature flagsをカスタマイズしたい場合はソースからビルド:
git clone https://github.com/ironclaw-ai/ironclaw.git
cd ironclaw
# Build release (tối ưu hiệu năng)
cargo build --release
# Copy binary vào PATH
sudo cp target/release/ironclaw /usr/local/bin/
ironclaw --version
初回ビルドはRustが全依存関係をコンパイルするため、マシンの性能によって3〜5分かかる。正常なので心配しなくていい。
詳細な設定
初回設定の初期化
ironclaw init
このコマンドは ~/.config/ironclaw/config.toml に設定ファイルを作成する。開くと以下の構造が確認できる:
[core]
# Chọn provider: "ollama" (local), "anthropic", "openai", "openrouter"
provider = "ollama"
default_model = "mistral:7b"
# Tắt hoàn toàn telemetry
telemetry = false
# Không ghi conversation lên cloud
persist_remote = false
[privacy]
# Redact patterns khỏi prompt trước khi gửi (ngay cả khi dùng API)
auto_redact = true
redact_patterns = [
"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b", # IP addresses
"(?i)password\\s*=\\s*\\S+", # Password strings
"sk-[a-zA-Z0-9]{48}", # OpenAI API keys
]
[ollama]
host = "http://localhost:11434"
[anthropic]
# Điền nếu dùng Anthropic API
api_key = "" # Hoặc set env var ANTHROPIC_API_KEY
model = "claude-haiku-4-5-20251001"
[context]
# Số token context giữ lại giữa các turn
max_context_tokens = 4096
# Lưu conversation local (encrypted)
local_history = true
history_path = "~/.local/share/ironclaw/history"
Ollamaが未インストール?ワンコマンドで完了
curl -fsSL https://ollama.com/install.sh | sh
# Pull model (chọn 1 trong các model sau)
ollama pull mistral:7b # Cân bằng tốc độ/chất lượng, 4.1GB
ollama pull codellama:7b # Tập trung coding
ollama pull llama3.2:3b # Nhẹ, chạy tốt trên máy ít RAM
その後すぐにテストできる:
ironclaw ask "Viết bash script kiểm tra disk usage và alert nếu trên 80%"
IronClawをターミナルのパイプとして使う
これが私が最も多用する機能だ。コマンドの出力をそのままIronClawに渡せる:
# Phân tích log lỗi trực tiếp
tail -n 100 /var/log/nginx/error.log | ironclaw ask "Lỗi gì đang xảy ra?"
# Review code trước khi commit
git diff HEAD~1 | ironclaw ask "Review code này, tìm bug tiềm ẩn"
# Explain một config file phức tạp
cat /etc/nginx/nginx.conf | ironclaw ask "Giải thích config này"
インタラクティブモード(チャットセッション)
# Mở session chat
ironclaw chat
# Chat với model cụ thể
ironclaw chat --model codellama:13b
# Chat với system prompt riêng (hữu ích cho từng use case)
ironclaw chat --system "Bạn là senior DevOps engineer, trả lời ngắn gọn và thực tế"
高度なauto-redact設定
本番ログは機密情報の宝庫だ。内部IPアドレス、JWTトークン、データベースのconnection string。これらはどれもクラウドに送信するプロンプトに含めるべきではない。IronClawはプロンプトがどこかに送信される前に自動マスクすることでこの問題を解決している:
[privacy]
auto_redact = true
redact_patterns = [
# IP internal
"192\\.168\\.\\d+\\.\\d+",
"10\\.\\d+\\.\\d+\\.\\d+",
# JWT tokens
"eyJ[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+",
# Database connection strings
"(?i)(mysql|postgresql|mongodb):\\/\\/[^\\s]+",
# AWS keys
"AKIA[0-9A-Z]{16}",
]
# Ký tự thay thế khi redact
redact_placeholder = "[REDACTED]"
確認とモニタリング
IronClawが外部にトラフィックを送信していないことを確認する
少し疑い深くなっても問題ない。Ollamaを使う場合、IronClawが本当にlocalhostとしか通信していないか確認してみよう:
# Chạy IronClaw trong một terminal
ironclaw ask "Hello" &
# Theo dõi network connection trong terminal khác
ss -tnp | grep ironclaw
# Nên chỉ thấy kết nối đến localhost:11434 (Ollama)
さらに確実に確認したい場合は、straceでネットワーク関連のsyscallをすべてチェックできる:
strace -e network ironclaw ask "Test" 2>&1 | grep -v "127.0.0.1\|localhost"
会話履歴の確認
IronClawは履歴を暗号化してローカルに保存する。確認方法:
# Xem các session đã lưu
ironclaw history list
# Xóa history cụ thể
ironclaw history delete
# Xóa toàn bộ history
ironclaw history clear
パフォーマンスのベンチマーク
# Test response time với model đang dùng
ironclaw benchmark --model mistral:7b --prompt "Explain Docker in one paragraph"
# Output mẫu:
# Model: mistral:7b
# First token: 0.34s
# Total: 4.2s
# Tokens/sec: 28.6
ログとデバッグ
# Bật verbose logging
IRONCLAW_LOG=debug ironclaw ask "Test"
# Xem log file
tail -f ~/.local/share/ironclaw/ironclaw.log
# Kiểm tra config đang áp dụng
ironclaw config show
便利なエイリアスを作成する
~/.bashrc または ~/.zshrc に追加:
# Quick ask
alias ai='ironclaw ask'
# Explain command
explain() { man "$1" 2>/dev/null | head -50 | ironclaw ask "Giải thích lệnh $1 ngắn gọn"; }
# Review git diff trước khi push
alias review-diff='git diff | ironclaw ask "Review code, tìm bug và security issue"'
IronClawを本番環境で2ヶ月間使ってみて、サーバーログをAIに貼り付けることに躊躇しなくなった。すべてローカルで処理され、自動でredactされる。自分で選択しない限り、1バイトもマシンの外に出ない。SOC 2やHIPAAが求められる環境で働くチームや、上司に「使っているAIのデータはどこに行くの?」と聞かれる状況なら、IronClawが私が見つけた中で最もシンプルな答えだ。

