mcpField
V
voyager-agent

voyager-agent

ローカル
github.com/dir-aiAI・エージェント014 週間前に更新

voyager-agent について

voyager-agentは、Voyagerの複数の感知モジュールを組み合わせる汎用エージェントです。リポジトリ、ホスト、ウェブページの観測を集めて証拠グラフにまとめます。推論モデルは差し替え可能で、LLM不要のルールベース実装もあり、感知は読み取り専用です。

主な機能

  1. 01目標に応じて感知モジュールを起動
  2. 02観測を並行収集して証拠を関連付け
  3. 03情報利得に基づく次のプローブ選択
  4. 04ルールベースまたは交換可能なモデル
  5. 05読み取り専用の感知と同意制の修復

活用シーン

  1. 01リポジトリを調べてリスクを提示
  2. 02許可されたホストの露出を監査
  3. 03ウェブページを観測して結果を要約
  4. 04複数の観測を統合してミッションを結論

MCP 対応

MCPサーバーとして単一のrun_missionツールを提供します。クライアントが目標を渡すと、認知クレームの全グラフを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dir-ai-voyager-agent": {
"command": "npx",
"args": [
"-y",
"@dir-ai/voyager-agent"
]
}
}
}
起動コマンドnpx -y @dir-ai/voyager-agent

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dir-ai/voyager-agent0.22.0

ツール

1

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringいいえ観測するライブ http(s) URL(読み取り専用のページセンス)。
hoststringいいえ監査対象となる、自分が所有する単一のホスト/ドメイン。
intentstringはい目標を平易な言葉で記述します。
repoPathstringいいえ対象を特定するためのローカルリポジトリのパス。
checkDepsintegerいいえリポジトリの調査中に、最大 N 個の依存関係を検証します。
authorizedbooleanいいえ`host` の所有者である、またはテスト許可を得ていることを表明します。監査に必須です。

詳細

@dir-ai/voyager-agent

唯一無二の汎用 Voyager です。 モデルに依存しない薄いオーケストレーターで、モジュール式の Voyager センサーである voyager-repo(コード)、voyager-net(ホスト)、そしてそれらを結び付ける認知コントラクトを、単一のエージェントに統合します。目標を指定すると、Voyager は必要なセンサーを起動し、ライブミッションを実行して、エビデンスをひとつのグラフに結び付け、結論を出します。

これはモノリスではなく、コンポジションです。 エージェントがセンサーを取り込むことはありません。公開されている器官を呼び出し、その内容を共有の CognitiveClaim 基盤に適合させます。推論モデルは差し替え可能な接続点(Brain)であり、LLM なしでも実行できるルールベースのブレインが同梱されています。

センシングは自律的に行われます。アクションは自律的に行われません。 ここにあるすべてのセンサーは読み取り専用です。ミッションで提示された修復策は、すべて同意が必要な実行保留中のアクションとして扱われ、このオーケストレーターによって適用されることはありません。

インストール

npm i -g @dir-ai/voyager-agent

使用方法

# Orient in a repo and flag risk (voyager-repo)
voyager-agent mission "audit this project" --repo .

# Audit ONE host you own (voyager-net — fail-closed, needs --authorized)
voyager-agent mission "check my server's exposure" --host example.com --authorized

# Observe a live page (voyager-browser — read-only, static HTML)
voyager-agent mission "check my landing page" --url https://example.com

# All three senses in one mission; vet 10 dependencies; machine-readable
voyager-agent mission "full audit" --repo . --host example.com --authorized --url https://example.com --check-deps 10 --json

センサーは並列に展開され、堅牢に動作します。エラーが発生した(または例外をスローした)センサーは、信頼度の低いフラグ付き観測になります。ミッションがクラッシュしたり、他のセンサーの正常な結果が破棄されたりすることはありません。

その後、ミッションは再計画します。情報利得に基づいて、最も有益な次のプローブをひとつ選択して実行し、maxRounds で上限を設けます。プローブの実行方法は、注入可能な dispatch の接続点(モデルが決定します)で指定します。安全なデフォルトでは再読み込みのみを行い(リポジトリの依存関係の検証を深めます)、アクションは実行しません。verify クレームによってミッションを完了させることで、state().satisfied に意味のある値が設定されます。

Voyager — one agent, one entry.
goal: "orient in this repo and flag risk"

  👁 observe  [repo]  (70% · moderate)
     @dir-ai/[email protected] — The one universal Voyager…
     ↳ [low] no-lockfile: no lockfile — installed versions are not pinned/reproducible
  🧠 infer  [memory]  (70% · moderate)
     repo observed; 0 high/critical signal(s). No high-severity issue surfaced.

next probe: [repo] open src/index.ts

MCP サーバーとして

ひとつのツール run_mission で目標を説明すると、クレームグラフ全体が返されます。

voyager-agent mcp            # stdio
{
  "command": "voyager-agent",
  "args": ["mcp"]
}

ライブラリとして

import { runMission, DeterministicBrain, type Brain } from '@dir-ai/voyager-agent'

const { mission } = await runMission(
  'audit this repo and my host',
  { repoPath: '.', host: 'example.com', authorized: true /* your own host */ },
  Date.now(),
)

for (const claim of mission.allClaims()) console.log(claim.operation, claim.sense, claim.verdict)
console.log(mission.state().bestNextProbe)   // the most informative next step
console.log(mission.state().contradictions)  // where two senses disagree
独自のモデルを使用する

Brain インターフェースがこの仕組みの要です。センサー、メモリ、ミッションの仕組みに触れることなく、LLM を接続できます。すぐに使える LlmBrain が同梱されており、モデルに依存しない complete() 関数をひとつ渡すだけで、モデルを通じた計画と統合を行います。Claude、ローカルサーバー、OpenAI 互換エンドポイントのいずれにも接続でき、Voyager が特定の SDK に依存することはありません。

import { runMission, LlmBrain } from '@dir-ai/voyager-agent'

const brain = new LlmBrain({
  // Return the model's text for these messages — that's the whole dependency.
  async complete(messages) {
    const res = await myModel.chat(messages)   // Claude, local, OpenAI-compatible…
    return res.text
  },
})

await runMission('audit this repo and my host', { repoPath: '.', brain }, Date.now())

LlmBrain はフェイルセーフです。モデルでエラーが発生した場合や、解析できない出力が返された場合は、そのステップについて組み込みのルールベースのブレインに切り替わります。不正な完了結果によってミッションが中断されることはなく、そのステップの賢さが損なわれるだけです。また、Brain インターフェースを直接実装して、すべてを自由に制御することもできます。

仕組み

        intent ─▶ Brain.decompose ─▶ goals
                        │
          ┌─────────────┼───────────────┐
          ▼             ▼                ▼
   voyager-repo    voyager-net      (more senses…)
     scout()         scan()
          │             │
          ▼             ▼
      adapters: brief ─▶ CognitiveClaim
          │             │
          └──────▶ MissionGraph ◀───────┘
                 (contradictions, causal chain,
                  best-next-probe, memory)
                        │
                        ▼
              Brain.synthesize ─▶ conclusion

各センサーは CognitiveClaim を生成し、 MissionGraph がそれらを結び付けます。センサー間の矛盾を自動検出し、因果関係の連鎖を組み立て、情報利得に基づいて最も有益な次のプローブをひとつ提示します。センサーのエラーは、不明点をフラグで示した信頼度の低い observe クレームになり、誤って「問題なし」と判断されることはありません。

Voyager ファミリー

パッケージセンサー機能
@dir-ai/voyagerwebOSV による検証済みのインターネット情報の取得
@dir-ai/voyager-repocodeリポジトリの構造把握、依存関係の検証
@dir-ai/voyager-nethosts許可されたホストの読み取り専用監査
@dir-ai/voyager-contract—センサー間で交わされる認知コントラクト
@dir-ai/voyager-agentすべてセンサーを統合する唯一のエージェント

安全性

  • 読み取り専用の検知です。 システム上に何かがインストール、実行、変更されることはありません。
  • ホスト監査はフェイルクローズです。 ホストのスキャンには --authorized / authorized: true が必要です。対象は単一のホストのみです(範囲/URL は不可)。クラウドメタデータへのアクセスはブロックされます。
  • アクションには同意が必要です。 修復内容は提示されますが、実行は保留され、クレーム上では unknown として示されます。このオーケストレーターが修復を適用することはありません。
  • 不確実性を正直に示します。 信頼度と strength は明示されます。検知エラーは、問題なしとの判定ではなく、フラグ付きの不明として扱われます。

ライセンス

MIT © dir-ai

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。