English | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
AIエージェント向けのコンテキスト認識型ナレッジルーティングシステム。
ai-loadoutは、Knowledge OSスタックの中核を担います。ディスパッチテーブル形式、マッチングエンジン、階層型リゾルバー、およびエージェントランタイム契約が含まれます。すべての情報をコンテキストに含める代わりに、小さなインデックスを保持し、必要なときにペイロードをロードします。
ゲームの装備をイメージしてください。各ミッションの前に、エージェントが必要とする知識を正確に装備します。
npm install -g @mcptoolshop/ai-loadout # CLI
npm install @mcptoolshop/ai-loadout # libraryLoadoutIndexは、ナレッジペイロードの構造化されたインデックスです。
{
"version": "1.0.0",
"generated": "2026-03-06T12:00:00Z",
"entries": [
{
"id": "github-actions",
"path": ".rules/github-actions.md",
"keywords": ["ci", "workflow", "runner"],
"patterns": ["ci_pipeline"],
"priority": "domain",
"summary": "CI triggers, path gating, runner cost control",
"triggers": { "task": true, "plan": true, "edit": false },
"tokens_est": 680,
"lines": 56
}
],
"budget": {
"always_loaded_est": 320,
"on_demand_total_est": 8100,
"avg_task_load_est": 520,
"avg_task_load_observed": null
}
}| レベル | 動作 | 例 |
|---|---|---|
core |
常にロードされる | "テストをスキップしてCIを成功させることは決してない" |
domain |
タスクのキーワードに一致する場合にロードされる | ワークフローの編集時のCIルール |
manual |
自動ロードされない、明示的な参照のみ | プラットフォーム特有の問題 |
各ペイロードファイルには、独自のルーティングメタデータが含まれています。
---
id: github-actions
keywords: [ci, workflow, runner, dependabot]
patterns: [ci_pipeline]
priority: domain
triggers:
task: true
plan: true
edit: false
---
# GitHub Actions Rules
CI minutes are finite...フロントマターが真実の源です。インデックスはこれに基づいて生成されます。
ランタイムは、エージェントがナレッジペイロードを消費するための標準的な方法です。レイヤーの解決、タスクとのマッチング、ロードするものの決定、使用状況の記録など、一連の処理をまとめて行います。
特定のタスクについて、ロードするものを計画します。これは、エージェントが利用する主要な関数です。
import { planLoad } from "@mcptoolshop/ai-loadout";
const plan = planLoad("fix the CI workflow");
// plan.preload — core entries, load immediately
// plan.onDemand — domain matches, load when needed
// plan.manual — available via explicit lookup only以下の情報を含むLoadPlanを返します。
preload、onDemand、manual:ロードモードごとに分類されたエントリprovenance:各エントリがどのレイヤーから来たかbudget:解決されたインデックスに対するトークン予算preloadTokens、onDemandTokens:トークンコストの合計layerNames、conflicts:レイヤーのメタデータ
エージェントがエントリをロードしたことを記録します。これにより、可観測性が向上します(未ロードのエントリ、予算の変動、頻度の追跡)。オプションです。usagePathがオプションで設定されている場合にのみ、ログが書き込まれます。
解決されたインデックスから、IDで指定されたエントリを明示的にロードします。
標準的なレイヤースタックからナレッジインデックスを検出し、マージします。
- global —
~/.ai-loadout/index.json - org — 明示的なパス、または
$AI_LOADOUT_ORG - project —
<cwd>/.claude/loadout/index.json - session — 明示的なパス、または
$AI_LOADOUT_SESSION
後からロードされるレイヤーが優先されます。欠落しているレイヤーは正常です。
import { resolveLoadout, explainEntry } from "@mcptoolshop/ai-loadout";
const { merged, layers, searched } = resolveLoadout();
// merged.entries — deduplicated entries from all layers
// merged.provenance — entryId → source layer name
const why = explainEntry("github-actions", layers);
// why.finalLayer, why.overrideChain, why.definitionsタスクの説明をナレッジインデックスと照合します。マッチの強さに応じてランク付けされたエントリを返します。
import { matchLoadout } from "@mcptoolshop/ai-loadout";
const results = matchLoadout("fix the CI workflow", index);
// [{ entry, score: 0.67, matchedKeywords: ["ci", "workflow"], reason, mode }]- コアエントリは常に含まれます(スコア1.0)
- マニュアルエントリは自動的に含まれません
- ドメインエントリは、キーワードの重複とパターンのボーナスによってスコアが決定されます
- 結果は、スコアの高い順(降順)、次にトークンコストの低い順(昇順)にソートされます
IDで特定の参照エントリを検索します。マニュアルエントリまたは明示的なアクセスに使用します。
付加専用のJSONL使用状況ログ。ネットワーク接続は使用せず、プライバシーを保護します。
一度もロードされていないエントリを検索します。
エントリ間で共有されているキーワードを検索します(ルーティングの曖昧さ)。
観測された値と推定値の比較による、トークン予算の内訳を表示します。
階層構造を持つ設定ファイルの統合機能。MergedIndexを返し、データの出所追跡と競合レポート機能を提供します。
ペイロードファイルからYAML形式のフロントマターを解析およびシリアライズします。
LoadoutIndexの構造的な整合性を検証します。以下の項目を確認します:必須フィールド、一意のID、kebab-case形式、サマリーの範囲、ドメインエントリにおけるキーワードの存在、有効な優先度、非負の予算。
テキストからトークン数を推定します。文字数を4で割るというヒューリスティックを使用します。
ai-loadout resolve Resolve layered loadouts
ai-loadout explain <entry-id> Explain why an entry resolved to its current state
ai-loadout validate <index> Validate index structure
ai-loadout usage <jsonl> Usage summary from event log
ai-loadout dead <index> <jsonl> Find entries never loaded
ai-loadout overlaps <index> Find keyword routing ambiguities
ai-loadout budget <index> [jsonl] Token budget breakdown
すべてのコマンドは、スクリプト実行のために--jsonオプションをサポートしています。リゾルバーコマンドは、--project、--global、--org、--sessionオプションを受け入れます。
import type {
LoadoutEntry,
LoadoutIndex,
Frontmatter,
MatchResult,
ValidationIssue,
Priority, // "core" | "domain" | "manual"
Triggers, // { task, plan, edit }
LoadMode, // "eager" | "lazy" | "manual"
Budget,
UsageEvent,
MergeConflict,
MergedIndex,
LoadPlan, // returned by planLoad()
ResolvedLoadout, // returned by resolveLoadout()
EntryExplanation, // returned by explainEntry()
IssueSeverity, // "error" | "warning"
RuntimeOptions, // options for planLoad / recordLoad / manualLookup
ResolveOptions, // options for resolveLoadout / discoverLayers
UsageSummary, // returned by summarizeUsage()
DeadEntry, // returned by findDeadEntries()
KeywordOverlap, // returned by findKeywordOverlaps()
BudgetBreakdown, // returned by analyzeBudget()
DiscoveredLayer, // a layer found and loaded by the resolver
SearchedLayer, // a layer search location and its result
EntryDefinition, // one layer's version of a specific entry
} from "@mcptoolshop/ai-loadout";- @mcptoolshop/claude-rules — Claude Code用のCLAUDE.md最適化ツール。ディスパッチテーブルとマッチングにai-loadoutを使用します。
- @mcptoolshop/claude-memories — Claude Code用のMEMORY.md最適化ツール。メモリのトピックファイルからディスパッチテーブルを生成します。
コアのマッチング、マージ、および検証モジュールは、副作用のない純粋な関数です。使用状況モジュール (recordUsage / readUsage) は、ローカルファイルシステムI/Oを実行し、追記専用のJSONLログに書き込みます。リゾルバーは、標準のレイヤーパスからインデックスファイルを読み込みます。ネットワークリクエスト、テレメトリー、およびネイティブ依存関係はありません。
| 脅威 | 対策 |
|---|---|
| 不正なフロントマター入力 | parseFrontmatter()は、無効な入力に対してnullを返します。例外は発生せず、evalは使用しません。 |
| プロトタイプ汚染 | 手動で作成されたパーサーは、プレーンなオブジェクトリテラルを使用しており、信頼できない入力の再帰的なマージは行いません。 |
| 不正なデータを含むインデックス | validateIndex()は、構造的な問題を、それが伝播する前に検出します。 |
| 正規表現DoS攻撃 | ユーザーが提供する正規表現はありません。パターンは、プレーンテキストの検索としてマッチします。 |
完全なセキュリティポリシーについては、SECURITY.md を参照してください。
MCP Tool Shop によって作成されました。
