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 分