n3rv
为 opencode AI 智能体提供隐形工程基础设施:记忆、技能与子智能体调度,一条命令即可初始化工作区。
- Star 数
- ★ 10
- 最近更新
- 24 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 57/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- opencode 用户想为新项目一次性生成 AGENTS.md、技能目录与 git hooks 等完整工作区脚手架
- 不适合
- 不使用 opencode、只想获得开箱即用托管智能体的团队
- 没有 DashScope/OpenAI 密钥且无法部署本地模型的用户
- 源码审查
- 57/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
n3rv 是由 Juan Manuel Daza 维护的运行时库与配置生成器,面向 opencode 智能体工作区。它通过 `n3rv init` 生成 AGENTS.md、opencode.、技能/命令/插件目录以及 `.n3rv/` 记忆与 hub 配置。运行时能力包括 provider 抽象(Qwen/DashScope、OpenAI、本地 Ollama/vLLM)、基于 HTTP 的 A2A hub 跨进程任务委派,以及 MAGI 双存储记忆(ChromaDB 向量检索 + SQLite 关系存储)。它还内置两个 MCP stdio 服务器:`n3rv-memory` 和 `n3rv-hub`,供 MCP 客户端调用。该项目采用 Apache-2.0 许可证,定位为配套仓库 `reverberage/hub` 中卫星协议规范的参考实现。
安装后,n3rv init 使用 Jinja2 模板在你的项目中生成 AGENTS.md、opencode.、.opencode/(技能、智能体、命令、插件)、.n3rv/(记忆、hub 配置)和 .githooks/。运行时,ModelProvider Protocol 与 get_provider() 工厂按 N3RV_PROVIDER 环境变量解析 LLM 后端(qwen/openai/local),无需在卫星代码中硬编码模型 ID 或 API 密钥。A2A hub 通过 n3rv hub start 在 127.0.0.1:19820 上按 skill_id 路由跨进程智能体任务,并将结果持久化到 JSON 文件。MAGI 记忆把 SDD 产物、会话摘要和智能体裁决写入 ChromaDB(语义检索)与 SQLite(关系),可通过 n3rv memory list|search|prune|stats 管理。MCP 服务器 n3rv-memory 与 n3rv-hub 以 stdio 方式暴露记忆操作与任务委派。n3rv daemon 管理后台守护进程,n3rv org 管理多项目工作区与 GitHub 分支保护。
- opencode 用户想为新项目一次性生成 AGENTS.md、技能目录与 git hooks 等完整工作区脚手架
- 团队需要跨多个 opencode 进程委派任务,并通过 A2A hub 按 skill_id 路由
- 开发者希望智能体拥有长期语义记忆,用 ChromaDB 检索过去的会话摘要与裁决
- 使用 DashScope 上 Qwen 模型的用户想让卫星在运行时解析 provider,而不硬编码模型 ID 或密钥
- MCP 客户端用户想通过 stdio 服务器直接调用记忆检索或任务委派能力
- 维护多个仓库的组织想共享技能并自动配置 GitHub 分支保护
如何安装或部署这个 Agent?
使用 pip 直接从 GitHub 安装,然后在项目目录中初始化:
bash
pip install git+https://github.com/juanmanueldaza/n3rv.git如需运行测试,请安装开发依赖:
bash
pip install -e ".[dev]"pytest
如何使用这个 Agent?
在项目目录中初始化工作区(可指定技术栈):
bash
cd your-project
n3rv init [--stack python|node|go|generic] [--force]设置所需的环境变量(默认 provider 为 qwen):
bash
export DASHSCOPE_API_KEY=...
export N3RV_PROVIDER=qwen
export N3RV_DEFAULT_MODEL=qwen3-coder-plus启动 A2A hub、管理守护进程与记忆:
bash
n3rv hub start
n3rv daemon install|start|stop|status|enable|logs
n3rv memory list|search|prune|stats
n3rv org init|list|add|remove|protect这个 Agent 有哪些优点和局限?
- 一条
n3rv init即可生成完整 opencode 工作区(AGENTS.md、技能、插件、git hooks),省去手工搭建 - provider 抽象支持 Qwen、OpenAI 与本地 Ollama/vLLM,卫星运行时解析后端,避免供应商锁定
- A2A hub 提供基于 HTTP 的跨进程智能体任务委派,按 skill_id 路由并持久化结果
- MAGI 双存储记忆结合 ChromaDB 语义检索与 SQLite 关系数据,覆盖会话摘要与裁决持久化
- 内置 MCP stdio 服务器(n3rv-memory、n3rv-hub),可被任意 MCP 客户端复用
- 核心面向 opencode 生态,不使用 opencode 的团队需要自行评估其生成配置的适配成本
- 默认依赖 DashScope/Qwen(含特定默认 base URL),切换 provider 需理解环境变量体系
- MAGI 记忆需要维护 ChromaDB 与 SQLite 双存储,带来额外的运行时与数据管理负担
- 除 README 外缺乏独立的部署文档或发布版本说明,评估深度集成需自行阅读代码
- 上游项目(juanmanueldaza/n3rv)为 GPL-2.0,而本仓库为 Apache-2.0,许可证差异需要法务确认
这个 Agent 与同类方案有什么区别?
README 将其与姊妹仓库 reverberage/hub 明确分工:hub 提供卫星协议、规范与脚手架脚本(契约),n3rv 提供运行时引擎(provider、A2A hub、记忆、守护进程、CLI、init)。两者均为 Apache-2.0。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| n3rv 当前 | 57 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 10 | 24 天前 | Python | OpenAI API |
| FastAgent | 46 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.9k | 今天 | Python | Codex · OpenAI API · Claude API |
| Compartment | 76 · 表现良好 | 命令行工具免费 | ★ 581 | 5 天前 | Python | Codex · Claude Code |
| Claude-Mem | 73 · 存在缺口 | 命令行工具免费版 + 付费版 | ★ 95k | 1 天前 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示 pyproject.toml 中对 ChromaDB CVE-2026-45829 做了具体、可核查的缓解论证(仅用 PersistentClient、无 HTTP 服务、无 trust_remote_code),CI 工作流权限收窄为 contents: read,此为亮点。但扣分点:n3rv-exec 作为可执行 MCP 服务器入口出现在 pyproject 中,其代码未在证据中,无法验证最小权限;init 会生成 git hooks、daemon 安装、GitHub 分支保护等外部副作用,除 --force/--dry-run 外缺乏逐项用户确认;update 有 --dry-run 但无明确回滚机制;README 未说明数据驻留与清理细节。API 密钥经环境变量传递且文档明示,未发现硬编码凭据。
测试与 README 声称的能力(agent cards、hub RPC、任务恢复、状态机 RESTART_RECOVERY 错误码)相互一致,依赖以最低版本约束声明,CI 覆盖 3.11–3.13。扣分点:无锁文件证据,依赖可用性依赖上游;未提供 src 代码,失败消息的覆盖面仅能从测试推断;mypy 步骤使用 '|| true' 容忍失败,削弱类型检查的可信度。
README 明确目标受众(opencode 开发者)、多栈支持(python/node/go/generic)、并澄清'这不是 satellite'与 hub 仓库的分工,边界清晰。扣分点:技能触发与 skill_id 路由的精确匹配规则缺乏文档或代码证据;环境变量默认指向 DashScope 国际端点,非默认用户的适配成本未讨论。
架构文档化良好:README 结构清晰、有 hub/n3rv 关系表、环境变量表、SECURITY.md 有响应时限与上报渠道,维护者署名明确,上游 GPL-2.0 关系被主动披露。扣分点:无 CHANGELOG 文件(仅有 releases 链接);无 FAQ;仅 Quick Start 一个示例;版本 0.1.1 alpha 意味着命名与接口尚不稳定;'Upstream is GPL-2.0' 与本项目 Apache-2.0 的许可关系未解释清楚,存在许可谱系疑问。
生成的产物(AGENTS.md、opencode.、.opencode/、.n3rv/)在 README 中明确列出,输出可用性可评估;memory + hub + provider 抽象对 opencode 生态有差异化价值,且测试覆盖 agent 卡片与任务委托流程。扣分点:依赖栈沉重(chromadb、onnxruntime、aiohttp 等)对一个 alpha 工具而言成本偏高,且收益主张('Invisible engineering infrastructure')缺乏量化或对比证据。
pyproject 中的 CVE 引用(编号、影响面、缓解条件)可独立核查,测试文件与 README 的功能声明相互印证(agent 卡片集合、恢复状态转换)。扣分点:n3rv-code-graph、n3rv-exec 等入口的实现代码未在证据中出现,其存在与安全性不可核实;README 中营销性表述(如 'Invisible'、'Satellites use it at runtime')与可验证事实之间未做区分;无执行证据,全部判断基于静态阅读。
- n3rv-exec 是仓库声明的可执行 MCP 服务器入口,但其源码未在本次证据中出现,安装前应自行审查其命令执行面。
- n3rv init 会写入 git hooks 并可能安装系统 daemon、修改 GitHub 分支保护,属外部副作用,请在隔离环境先执行并审查生成内容。
- ChromaDB 的 CVE 缓解论证依赖'仅使用 PersistentClient'这一静态声明,升级或改用 HTTP 模式前请重新评估。
- 上游许可标注为 GPL-2.0 而本仓库为 Apache-2.0,许可谱系未解释,商业使用前建议澄清。
- 项目处于 0.1.1 alpha,接口与命名可能变动,且无 CHANGELOG,升级需谨慎。
- 发布者未经企业注册表验证,身份视为未知。
常见问题
运行 n3rv 需要付费吗?
必须使用 opencode 吗?
默认 provider 和模型是什么?
qwen,默认模型 ID 为 qwen3-coder-plus,默认 base URL 指向 DashScope 国际兼容端点;可通过 N3RV_PROVIDER 和 N3RV_DEFAULT_MODEL 等环境变量覆盖。A2A hub 如何工作?
n3rv hub start 启动后监听 127.0.0.1:19820,按 skill_id 路由跨进程智能体任务,并将结果持久化到 JSON 文件。