Voyager Agent

io.github.dir-ai由 GitHub 帳號 dir-ai 發布v0.22.0更新於 Oct 27, 2026

One universal Voyager: name a goal; it activates senses (repo, net) and runs a live mission.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

本機 MCP 伺服器,針對程式碼儲存庫、已授權主機或網頁執行唯讀「任務」,回傳相互關聯的論斷圖譜與結論。

可以做什麼
  • 透過單一 run_mission 工具執行目標導向的任務,取回完整論斷圖譜
  • 檢查本機儲存庫:梳理程式碼結構並審查相依套件
  • 在明確標記授權後,對自有單一主機進行唯讀、失敗即關閉的稽核
  • 以唯讀方式觀察靜態網頁的 HTML
  • 在一次任務中組合多種感知,提供跨感知矛盾、因果鏈與最具價值的下一個探測
  • 可選接上 LLM 大腦,只需一個與模型無關的補全函式
適用情境
適合讓助理梳理程式碼庫、標記相依套件或設定風險,或對自有主機做輕量唯讀曝險檢查,並希望看到每項發現背後的證據與信心程度,而非單一結論。
執行需求
以本機 stdio 程序執行,從 npm 套件 @dir-ai/voyager-agent 安裝(需 Node.js)。未宣告任何環境變數、標頭或身分驗證。主機稽核需明確授權旗標且僅限單一主機。主機與網頁感知需要網路存取。
安裝前請注意
主機稽核僅限你獲授權掃描的單一主機,雲端中介資料目標會被阻擋。所有感知皆為唯讀,修補建議僅作描述、絕不執行。若接上 LLM 大腦,任務內容會傳送至該模型端點。發現皆為附信心程度的觀察,感知失敗會記為未知,而非「一切正常」。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Voyager Agent,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@dir-ai/voyager-agent

The one universal Voyager. A thin, model-independent orchestrator that turns the modular Voyager senses — voyager-repo (code), voyager-net (hosts), and the cognitive contract that binds them — into a single agent. You name a goal; Voyager activates the senses it needs, runs a live mission, links the evidence into one graph, and concludes.

It is composition, not a monolith. The agent never absorbs the senses — it calls the published organs and adapts what they see into the shared CognitiveClaim substrate. The reasoning model is a swappable seam (Brain); a rule-based brain ships so it runs with no LLM at all.

Sensing is autonomous. Acting is not. Every sense here is read-only. Any remediation a mission surfaces is carried as a consent-gated, withheld action and is never applied by this orchestrator.

Install

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

Use

bash
# 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-readablevoyager-agent mission "full audit" --repo . --host example.com --authorized --url https://example.com --check-deps 10 --json

Senses fan out in parallel and are resilient: a sense that errors (or even throws) becomes a low-confidence, flagged observation — it never crashes the mission or discards a sibling sense's good result.

The mission then re-plans: it picks the single most informative next probe (by information gain) and executes it, bounded by maxRounds. How a probe is executed is an injectable dispatch seam (the model decides); the safe default only ever re-reads (deepens repo dependency-vetting) and never acts. A verify claim closes the mission so state().satisfied is meaningful.

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

As an MCP server

One tool, run_mission — describe a goal, get back the full claim graph.

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

As a library

ts
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 stepconsole.log(mission.state().contradictions)  // where two senses disagree

Bring your own model

The Brain interface is the whole point — it's where an LLM plugs in without touching the senses, the memory, or the mission machinery. A ready-made LlmBrain ships: give it one model-agnostic complete() function and it plans and synthesizes through the model. Wire Claude, a local server, or any OpenAI-compatible endpoint — Voyager never depends on a specific SDK.

ts
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 is fail-safe: if the model errors or returns unparseable output, it degrades to the built-in rule-based brain for that step — a bad completion can never take a mission down, only make it less clever once. You can also implement the Brain interface directly for full control.

How it works

        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

Each sense produces a CognitiveClaim; the MissionGraph links them — auto-detecting cross-sense contradictions, assembling the causal chain, and surfacing the single most informative next probe by information gain. A sense error becomes a low-confidence observe claim flagged with the unknown — never a false "all clear".

The Voyager family

PackageSenseWhat it does
@dir-ai/voyagerwebverified-internet retrieval, OSV-gated
@dir-ai/voyager-repocodeorient in a repository, vet dependencies
@dir-ai/voyager-nethostsauthorized, read-only host audit
@dir-ai/voyager-contract—the cognitive contract the senses speak
@dir-ai/voyager-agentallthe one agent that composes them

Safety

  • Read-only senses. Nothing is installed, executed, or mutated on your systems.
  • Fail-closed host audit. A host is only scanned with --authorized / authorized: true; single host only (no ranges/URLs), cloud-metadata blocked.
  • Consent-gated action. Remediation is described and withheld, surfaced as an unknown on the claim — this orchestrator never applies it.
  • Honest uncertainty. Confidence and strength are explicit; a sense error is a flagged unknown, not a clean verdict.

License

MIT © dir-ai

來源:README.md,提交 206eed5

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.22.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分