关于 Network Ai
Network-AI 是一个 TypeScript/Node.js 多 Agent 编排器,为不同框架的 Agent 提供共享状态、治理和预算控制。它通过带锁的黑板和工作流治理协调并行 Agent,并可作为库、MCP 服务或命令行工具使用。
主要功能
- 01带原子提交的共享黑板
- 02FSM 治理与每 Agent 预算
- 0332 种框架适配器
- 04上下文组装与持久项目记忆
- 05模型调用审计与回退治理
适用场景
- 01协调并行 Agent 对共享状态的更新
- 02为 Agent 设置预算、权限和审批约束
- 03跨多个 Agent 框架连接工作流
- 04控制模型拒绝后的回退与计费
MCP 相关
可作为 MCP 服务运行,并提供上下文包和黑板搜索等工具,让 MCP 客户端获取整理后的共享状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Network-AI
TypeScript/Node.js 多 Agent 编排器——共享状态、防护机制、预算管理和跨框架协调
如果 Network-AI 对你有用,不妨点个星 ⭐——这能帮助更多人发现这个项目。
Network-AI 是一个 TypeScript/Node.js 多 Agent 编排器,可为任何 AI Agent 技术栈添加协调、防护机制和治理能力。
- 带锁的共享黑板 — 原子式
propose → validate → commit可防止并行 Agent 之间的竞态条件和脑裂故障 - 护栏与预算 — FSM 治理、每个 Agent 的令牌上限、HMAC / Ed25519 审计轨迹和权限门控
- 上下文信号优先于噪声(v5.15) —
ContextComposer组装受令牌预算限制、按相关性排序的上下文包(语义/词法 × 时间衰减 × 范围亲和度,感知位置的布局);context_pack+blackboard_searchMCP 工具可让 Agent 提取精选状态,而不是将整个黑板倾倒到其上下文窗口中 - 32 个适配器 — LangChain(+ 流式传输)、AutoGen、CrewAI、OpenAI Assistants、OpenAI Responses(Assistants 的继任者)、LlamaIndex、Semantic Kernel、Haystack、DSPy、Agno、MCP、Custom(+ 流式传输)、OpenClaw、A2A、Codex、MiniMax、NemoClaw、APS、Copilot、LangGraph、Anthropic Computer Use、Claude Agent SDK(Agent 式循环)、OpenAI Agents SDK、Vertex AI、Gemini(Developer API)、Pydantic AI、Browser Agent、Hermes(NousResearch Hermes / 任何兼容 OpenAI 的端点)、Orchestrator(分层多编排器)和 RLM(递归大模型 / 任何兼容 RLM 的 HTTP 端点)——无需胶水代码,不受供应商锁定
- 持久化项目记忆(第 3 层) —
context_manager.py会将决策、目标、技术栈、里程碑和禁用模式注入每条系统提示词,让 Agent 始终拥有完整的项目上下文 - v5.0 模块 — Agent VCR(录制/回放)、比较运行器、覆盖率报告器、目标 DSL、审批收件箱、作业队列、gRPC/HTTP 传输、playground REPL、适配器测试框架等
- 模型交互生命周期治理(v5.13) —
GovernedModelGateway将模型拒绝 → 回退 → 计费链路(跨模型回退、回退额度重新定价、effort 治理、思考块移交)整合到一次受治理、受预算限制且可审计的调用中
多 Agent 系统中的隐性故障模式: 并行 Agent 默认采用最后写入者胜出策略写入同一键值 ——一个 Agent 的结果会在执行过程中悄无声息地覆盖另一个 Agent 的结果。 由此造成状态脑裂:重复扣费、决策矛盾、上下文损坏, 且不会抛出错误。Network-AI 的
propose → validate → commit互斥锁会在协调层阻止此类问题, 确保任何写入到达共享状态之前都经过防护。
将 Network-AI 用作:
- TypeScript/Node.js 库 —
import { createSwarmOrchestrator } from 'network-ai' - MCP 服务 —
npx network-ai-server --port 3001 - 命令行工具 —
network-ai bb get status/network-ai audit tail - Claude Code 插件 —
/plugin install network-ai@network-ai - Gemini CLI 扩展 —
gemini extensions install https://github.com/Jovancoding/Network-AI - OpenClaw 技能 —
clawhub install network-ai
5 分钟快速入门 → | 架构 → | 所有适配器 → | 基准测试 →
🛡️ 模型交互生命周期治理
大多数治理工具只管到 Agent 边界——它们会在 Agent 采取行动之前限制 Agent 可以调用哪些工具。Network-AI 还治理底层这一层:Agent 如何与模型交互。 当前沿模型通过分类器拒绝请求时,Network-AI 会处理拒绝 → 回退 → 计费这一整条链路,并提供一次统一治理、纳入预算且可审计的调用。
GovernedModelGateway— 检测stop_reason:"refusal",审计触发了哪个分类器,将请求路由到备用模型,并兑换回退抵扣令牌,以便按缓存读取重新计价此次重试。ModelBudget— 按模型进行美元计费核算,并重新计算回退抵扣;绝不跨模型汇总令牌数。RefusalTelemetry— 拒绝会返回 HTTP 200,因此错误率监控无法发现;将其作为独立的非错误信号发出,并提供unservedRefusalCount差值以供告警。EffortPolicy— 将effort成本调节项转化为策略对象:将子 Agent 的上限设为low,并要求使用xhigh/max时提供理由。ThinkingBlockManager— 在同一模型上保持思考块不变;跨模型回退时移除思考块;防止提示词引发reasoning_extraction拒绝。- 按子 Agent 回退 —
FanOutFanIn步骤和TeamRunner任务各自携带备用 Agent 和按请求设置的重试预算(RetryBudget),因为一次轮次中,Agent 及其子 Agent 都可能独立遭到拒绝。
import { AnthropicMessagesAdapter, ModelBudget, RefusalTelemetry } from 'network-ai';
const adapter = new AnthropicMessagesAdapter();
await adapter.initialize({});
adapter.registerModelAgent('analyst', {
client, // bring your own Anthropic client
model: 'claude-fable-5',
fallbackModels: ['claude-opus-4-8'], // classifier refusals fall through here
budget: new ModelBudget({
ceilingUsd: 5,
pricing: {
'claude-fable-5': { inputPerMTok: 10, outputPerMTok: 50 },
'claude-opus-4-8': { inputPerMTok: 5, outputPerMTok: 25 },
},
}),
telemetry: new RefusalTelemetry(),
});
const result = await adapter.executeAgent('analyst', { action: 'Summarize Q3 results', params: {} }, { agentId: 'cli' });
// result.data: { servedModel, servedByFallback, refused, refusalCategories, attempts, totalCostUsd }
OWASP Agentic AI Top 10(2026)——引擎覆盖情况
使用 verifyOwaspCoverage() 进行程序化验证(由 network-ai 导出):
| 风险 | 状态 | 主要控制措施 |
|---|---|---|
| ASI-01 Agent 目标劫持 | ✅ 已覆盖 | AuthGuardian 门控 + JourneyFSM 控制平面 |
| ASI-02 工具滥用与利用 | ✅ 已覆盖 | AgentRuntime SandboxPolicy + ApprovalGate |
| ASI-03 身份与权限滥用 | ✅ 已覆盖 | HMAC / Ed25519 签名令牌 + 信任评分 |
| ASI-04 供应链风险 | ✅ 已覆盖 | 1 个运行时依赖 + socket / clawhub / codeql 门控 |
| ASI-05 不安全的代码执行 | ✅ 已覆盖 | ShellExecutor shell:false argv + 路径防护 |
| ASI-06 记忆与上下文投毒 | ✅ 已覆盖 | LockedBlackboard + 注入检测 |
| ASI-07 不安全的 Agent 间通信 | 🟡 部分覆盖 | FS-mutex + 签名交接(本地信任边界) |
| ASI-08 级联故障 | ✅ 已覆盖 | CircuitBreaker + 预算 + RetryBudget |
| ASI-09 人类与 Agent 信任关系利用 | ✅ 已覆盖 | ApprovalGate + 防篡改审计轨迹 |
| ASI-10 失控 Agent | ✅ 已覆盖 | ComplianceMonitor + 熔断器终止开关 |
🔒 ASI 严格模式(可选启用)
对于运行高能力 Agent 的部署,ASI_STRICT_MODE 会增加一些控制措施,假定 Agent 可能比其监管者更聪明。它默认关闭;关闭时,所有代码路径均保持不变(仅增加一次布尔值检查)。
| 设置 | 行为 |
|---|---|
未设置 / false | 关闭 — 保持当前行为 |
audit | 执行所有检查并报告可能被拒绝的操作(outcome: 'would-deny'),但不阻止 — 先测量,再启用强制执行 |
enforce(或任何其他值 — 默认拒绝) | 阻止违规操作 |
设置只读取一次并被冻结;运行时只能收紧(tightenAsiConfig),不能放宽。
| 控制项 | 功能 |
|---|---|
携带证明的操作(ProofGate) | 受控工具(shell_exec、file_write、标记为 requires_formal_proof 的 MCP 工具)只有在提供与确切工具、规范化参数、Agent、一次性随机数和有效期绑定的证明时才能运行。可接入自带的验证器(zkVM 收据、形式化验证证书);对于没有证明器的部署,可使用内置的短时效 HMAC/Ed25519 能力令牌(CapabilityIssuer);还可选配进程外共同签署方(ExternalAuthority.authorize)。 |
BFT 共识(ConsensusEngine) | 高风险的 GovernedModelGateway 轮次由 ≥ 3f+1 个独立评估器判定;采用稳健几何中位数(Weiszfeld),并结合 CP-WBFT 置信度加权、异常值检测、签名投票,以及最低数量的不同模型系列(相关模型可能同时失效)。 |
审计员收据(LockedBlackboard) | 低信任等级 Agent 的更改只有在获得由操作员指定的 AUDITOR 签署的收据后才能提交;收据绑定更改 ID、键、值哈希和基础版本。claimVerifierCheck 允许 ClaimVerifier 执行审计员的检查。 |
紧急停止开关(HaltCoordinator) | 密码触发式关闭:在输入流中检测到加盐哈希令牌(任何模型看到令牌前都会将其删去)、收到 OS 信号或经身份验证的 HTTP 调用时,会停止所有已注册组件、中止正在进行的工作,并锁定系统,直到提供单独的恢复密钥。 |
按信任等级划分上下文(ContextComposer) | 按等级设置上下文策略:限制预算、提高分数门槛、限定允许的范围、排除特定生产方。AUDITOR 绝不会根据分数推导得出。 |
认知上限(EffortPolicy、ThinkingBlockManager) | 按等级设置工作量上限、思考令牌预算、输出上限和子 Agent 深度限制。 |
金丝雀与导出(CanaryRegistry、HashChainSink) | 设置诱饵值,一旦出现在输出中便会触发外泄标记;严格模式事件会以哈希链形式写入 Agent 进程外的只追加存储。 |
在 enforce 模式下,AgentRuntime 还会强制启用 sourceProtection,并阻止子进程访问类似机密的环境变量。
import { createAsiConfig, ProofGate, CapabilityIssuer, SignedAttestationVerifier, AgentRuntime } from 'network-ai';
const config = createAsiConfig({ mode: 'enforce', auditors: ['auditor-1'] });
const key = { name: 'ops', alg: 'hmac-sha256' as const, key: process.env.CAPABILITY_KEY! };
const proofGate = new ProofGate({ gatedTools: ['shell_exec', 'file_write'], verifiers: [new SignedAttestationVerifier([key])] }, config);
const runtime = new AgentRuntime({ policy: { basePath: '.', allowedCommands: ['npm *'] }, asi: { proofGate, config } });
// The approval service (outside the agent's process) mints a one-shot capability:
const issuer = new CapabilityIssuer('ops', { alg: 'hmac-sha256', secret: process.env.CAPABILITY_KEY! });
const proof = issuer.issue('shell_exec', runtime.shellProofArgs('npm test'), 'agent-7');
await runtime.exec('npm test', 'agent-7', { proof });
限制。 严格模式会提高不当行为的代价,但不能证明已实现遏制。在同一主机上拥有任意代码执行能力的 Agent 可以使用不同设置重启进程 — 应将严格模式与 OS 级隔离及进程外的
ExternalAuthority配合使用。共识机制假设最多存在 f 个有故障的独立评估器。
♾️ 持续运行时(可选启用)
让 Agent 集群无限期运行、自我改进,并为自身工作提供资金,同时由人类掌控。只有在操作员签名的策略持续续租时,运行才会继续,绝不会因为 Agent 自行安排而继续。任何内容都不会自动启动,每个集成点在未使用时都只需进行一次检查。
无论配置如何,以下三项不变量始终成立:
| # | 不变量 | 机制 |
|---|---|---|
| I1 | 无需 Agent 配合,外部停止机制始终有效 | 进程外的 LeaseAuthority;短时效 Ed25519 租约;当租约被撤销、暂停、过期或无法续租时,LeaseGuard 会停止运行(失效保护开关);没有有效租约时,出口代理会拒绝流量 |
| I2 | Agent 可以修改自身,但不能修改自身限制 | GuardedPaths:治理文件和黑板键只能通过针对确切内容的一次性操作员签名审批才能写入 |
| I3 | 自筹资金始终处于人类设定的上限内 | 上限写入签名策略;Agent 可以降低上限,但不能提高;新增资金来源需要新的签名策略;付款只能通过出口代理进行,并受单次请求和单次运行限额约束 |
| 组件 | 功能 |
|---|---|
LeaseAuthority(独立进程) | 根据操作员签名的 RenewalPolicy 发放和续租:TTL、结束日期、范围(工具、路径、出口路由)、预算上限、停止条件(Canary 失败、健康检查失败、哨兵警报)。操作员可以撤销、暂停、恢复、收紧或安装策略。哨兵只能发出警报和收紧策略。 |
LeaseGuard(位于 Agent 内) | 持有当前租约,使用支出和健康状况心跳续租,轮询检查撤销状态;没有有效且在范围内的租约时,会否决 AgentRuntime.exec/writeFile、GovernedModelGateway.send 和 LockedBlackboard 写入。 |
EgressProxy(独立进程) | Agent 访问网络的唯一通道:检查租约、按路由应用允许列表、注入 Agent 无法看到的凭据、从响应中清除凭据、限制速率并限制财务请求金额。 |
ISandboxRunner | 每条命令使用一次性沙箱;ContainerSandboxRunner 默认使用 gVisor(runsc),采用只读根目录、无权限、无网络或仅可通过出口代理访问网络。 |
| 哨兵集群 | 通过审计流运行的只读进程:监测速度、探测拒绝访问、提示词注入、黑板投毒、尝试访问受保护路径、Canary 泄露、目标偏移。每个哨兵都有自己的身份;设置 sentryQuorum 后,只有在足够数量的哨兵达成一致时才会停止续租。 |
ImprovementPipeline | 基于证据进行自我修改:静态检查、在副本上进行沙箱测试、多系列共识,然后生成与补丁哈希绑定的签名收据。级别:auto(Agent 任务代码)、human、operator(始终适用于受保护路径)。 |
StateSnapshotter / SelfHealer | 使用 HMAC 签名并通过哈希链连接的黑板快照;Canary 失败 ⇒ 健康检查失败(停止续租)、回滚到最后一个已验证快照、清除会话。 |
BudgetBalancer | 选择有充足额度的最低成本已批准来源,限制工作量(full → reduced → minimal → stopped),并将支出纳入租约心跳。 |
network-ai perpetual keygen operator && network-ai perpetual keygen authority
network-ai perpetual sign-policy policy.json --key data/perpetual/keys/operator.key --out policy.signed.json
# Role secrets come from the environment (each ≥ 32 chars, all distinct)
NETWORK_AI_LEASE_OPERATOR_SECRET=… NETWORK_AI_LEASE_RUNNER_SECRET=… \
NETWORK_AI_LEASE_SENTRY_SECRET_S1=… NETWORK_AI_LEASE_SENTRY_SECRET_S2=… \
network-ai perpetual authority --operator-pub data/perpetual/keys/operator.pub \
--authority-key data/perpetual/keys/authority.key --policy policy.signed.json
network-ai perpetual status # the human controls
network-ai perpetual pause | resume | revoke <runId> | revoke --all
import { LeaseGuard, HttpLeaseTransport, HaltCoordinator, AgentRuntime } from 'network-ai';
const guard = new LeaseGuard({
runId: 'research-swarm',
authorityPublicKey, // the authority's public key only
transport: new HttpLeaseTransport('http://127.0.0.1:4710', process.env.NETWORK_AI_LEASE_RUNNER_SECRET!),
halt: haltCoordinator, // fired when the lease is lost
spend: () => balancer.spend(),
health: () => healer.health(),
});
await guard.start();
const runtime = new AgentRuntime({ policy: { basePath: '.' }, lease: guard, guarded, sandbox: { runner } });
限制。 这些保证依赖于操作员密钥、角色密钥和凭据始终处于 Agent 无法触及的范围之外,也依赖于权限机构、代理和哨兵运行在 Agent 无法写入或发送信号的环境中。请在沙箱中运行 Agent,并确保网络访问只能通过代理;如果缺少这种隔离,能够执行主机代码的 Agent 就可以绕过进程内检查。
⚡ 60 秒快速体验
npm install network-ai
import { LockedBlackboard } from 'network-ai';
const board = new LockedBlackboard('.');
const id = board.propose('status', { ready: true }, 'agent-1');
board.validate(id, 'agent-1');
board.commit(id);
console.log(board.read('status')); // { ready: true }
两个 Agent,原子写入,没有竞态条件。就是这样。
想体验完整压力测试?无需 API 密钥,约 3 秒:
npx ts-node examples/08-control-plane-stress-demo.ts
运行优先级抢占、AuthGuardian 权限门控、FSM 治理和合规监控,全程无需调用任何大模型。
如果它帮你避免了一次竞态条件,点个 ⭐ 能让更多人发现它。
包含内容
| ✅ 原子化共享状态 | 使用文件系统互斥锁执行 propose → validate → commit,避免脑裂 |
| ✅ 令牌预算 | 为每个 Agent 设置硬性上限,并实时跟踪支出 |
| ✅ 权限门控 | 使用 HMAC / Ed25519 签名令牌,按 Agent 和资源限定范围 |
| ✅ 仅追加审计日志 | 每次写入、授权和状态转换都会签名并记录 |
| ✅ 32 种框架适配器 | LangChain、CrewAI、AutoGen、MCP、Codex、Gemini、APS、RLM 等,以及另外 24 种框架——无供应商锁定 |
| ✅ FSM 治理 | 在状态边界强制停止 Agent,并执行超时 |
| ✅ 合规监控 | 实时检测违规行为(工具滥用、轮流发言、超时) |
| ✅ 声明验证 | Tier 1 Agent 诚信保障——与结果绑定的签名回执、清单核对,以及对说谎者的信任衰减 |
| ✅ QA 编排 | 场景重放、反馈循环、回归跟踪、矛盾检测 |
| ✅ 延迟初始化适配器 | 首次使用时才延迟加载适配器——未使用的框架不会产生启动开销 |
| ✅ 钩子中间件 | 在任何适配器调用中使用 beforeExecute / afterExecute / onError 钩子 |
| ✅ 流量控制 | 暂停 / 恢复 / 限制黑板写入 |
| ✅ 技能组合 | 对 Agent 调用执行 chain() / batch() / loop() / verify() 元操作 |
| ✅ 语义记忆搜索 | BYOE 向量存储,基于黑板数据执行余弦相似度搜索 |
| ✅ 阶段流水线 | 多阶段工作流,支持人在环审批门控;approvalTimeoutMs 失败关闭超时机制可防止无限期挂起 |
| ✅ 置信度过滤 | 对多 Agent 结果评分、验证阈值并汇总共识 |
| ✅ 基于匹配器的钩子 | 对 Agent / 操作 / 工具使用 glob 模式进行定向钩子过滤 |
| ✅ 扇出 / 扇入 | 并行生成 Agent,并支持可插拔的聚合策略 |
| ✅ Agent 运行时沙箱 | 带策略执行和审批门控的沙箱化 Shell 执行 |
| ✅ 交互式控制台 | 用于实时监控、Agent 控制和黑板 / 预算 / FSM 管理的 TUI 仪表板 |
| ✅ 管道模式 | 用于以编程方式控制 AI 到编排器的 JSON stdin/stdout 协议 |
| ✅ 策略 Agent | 元编排器,支持弹性 Agent 池、工作负载分区和自适应扩缩 |
| ✅ 目标分解器 | 由大模型驱动,将目标转为任务 DAG 并行执行;通过 runTeam() 一行即可调用 |
| ✅ 上下文节流器 | 在大模型调用前,按 Agent 范围修剪黑板键,防止上下文污染 |
| ✅ 分区规划器 | 在 DAG 执行前为 Agent 分配互不重叠的关注领域,避免重复研究 |
| ✅ 覆盖率门控 | 递归优化循环:针对缺口重新运行分解器,直到覆盖率得分 ≥ 阈值 |
| ✅ 路由分类器 | 短路式路由:在规划前将目标分类为事实查询或复杂综合任务 |
| ✅ 目标 DSL | 支持 YAML/JSON 目标定义,并提供循环检测和拓扑编译 |
| ✅ Agent VCR | 记录并重放大模型 / Agent 交互,以便进行确定性测试 |
| ✅ 比较运行器 | 并排比较适配器,并提供评分、计时和成本分析 |
| ✅ 覆盖率报告器 | 收集 V8 覆盖率并强制执行阈值 |
| ✅ 作业队列 | 持久化优先级 FIFO,支持重试、崩溃恢复和可插拔后端 |
| ✅ 审批收件箱 | 可通过 Web 访问的审批队列,提供 REST API 和 SSE 流式传输 |
| ✅ TTL 自动清除 | 按需调用 purgeExpired() 清除;通过后台计时器运行 startSweep(intervalMs) / stopSweep()(调用 unref(),默认 60 s) |
| ✅ WAL 崩溃恢复 | LockedBlackboard 的预写日志可在进程崩溃后保留;重启时 replayWAL() 会重放未提交的操作;compactWAL() 可用于手动截断 |
| ✅ 熔断器 | AdapterRegistry 为每个适配器提供 CLOSED/OPEN/HALF_OPEN 状态机;fallbackChain 用于自动故障转移;提供 CircuitOpenError;不增加任何依赖 |
| ✅ OTel 遥测钩子 | ITelemetryProvider BYOT 抽象——NullTelemetryProvider、CapturingTelemetryProvider、createOtelHooks() 工厂;无需修改适配器即可接入任意 OTel SDK |
| ✅ 传输层 | 通过 HTTP 使用 JSON-RPC 2.0,并支持 HMAC 身份验证、TTL 和节点允许列表 |
| ✅ Playground REPL | 带模拟 Agent 的交互式沙箱,支持快速原型开发 |
| ✅ 适配器测试工具 | 适用于任何适配器实现的参数化测试套件 |
| ✅ IAuthValidator | 用于将授权逻辑与具体的 AuthGuardian 解耦的接口 |
| ✅ 紧急停止开关 | network-ai pause / resume——SYSTEM_PAUSED 哨兵;doctor 自检;inspect <key> 查看元数据和审计记录 |
| ✅ 精简模式 | --minimal / NETWORK_AI_MINIMAL=1——跳过 WAL 重放和清扫,加快 CI / 测试启动 |
| ✅ ASI 严格模式 | 可选择启用携带证明的操作、BFT 共识、审计员回执、紧急停止开关、按信任等级区分的上下文和认知上限 |
| ✅ 永续运行时 | 可选择在操作员签名的租约下无限期运行:死手开关、出口代理、受保护路径、沙箱、哨兵群、自我改进流水线、自愈状态、预算平衡器 |
| ✅ TypeScript 原生支持 | ES2022 严格模式,零原生依赖 |
团队为何使用 Network-AI
| 问题 | Network-AI 的解决方式 |
|---|---|
| 并行 Agent 中的竞态条件 | 原子黑板:使用文件系统互斥锁执行 propose → validate → commit |
| Agent 超支/成本失控 | FederatedBudget ——为每个 Agent 设置硬性令牌上限,并实时跟踪支出 |
| 无法了解 Agent 做了什么 | 每次写入、权限授予和 FSM 状态转换都会记录 HMAC/Ed25519 签名审计日志 |
| 被锁定在某一个 AI 框架中 | 32 个适配器——可在一个集群中混用 LangChain + AutoGen + CrewAI + Codex + Gemini + MiniMax + NemoClaw + APS + LangGraph + Vertex AI + Hermes + RLM + 自定义方案 |
| Agent 越权操作 | AuthGuardian ——敏感操作前必须提供限定范围的权限令牌 |
| Agent 在多次运行之间缺少项目上下文 | ProjectContextManager(第 3 层)——将决策、目标、技术栈和里程碑注入每条系统提示词 |
| 无法跟踪 Agent 输出质量的回归情况 | QAOrchestratorAgent ——场景重放、反馈循环、跨 Agent 矛盾检测和历史趋势跟踪 |
| 无法可靠停止的长时间运行 Agent | 持续运行时——进程外租约授权、死亡开关和受保护的治理路径,确保人类保持控制权 |
架构
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e293b', 'primaryTextColor': '#e2e8f0', 'primaryBorderColor': '#475569', 'lineColor': '#94a3b8', 'clusterBkg': '#0f172a', 'clusterBorder': '#334155', 'edgeLabelBackground': '#1e293b', 'edgeLabelColor': '#cbd5e1', 'titleColor': '#e2e8f0'}}}%%
flowchart TD
classDef app fill:#1e3a5f,stroke:#3b82f6,color:#bfdbfe,font-weight:bold
classDef security fill:#451a03,stroke:#d97706,color:#fde68a
classDef routing fill:#14532d,stroke:#16a34a,color:#bbf7d0
classDef quality fill:#3b0764,stroke:#9333ea,color:#e9d5ff
classDef blackboard fill:#0c4a6e,stroke:#0284c7,color:#bae6fd
classDef adapters fill:#064e3b,stroke:#059669,color:#a7f3d0
classDef audit fill:#1e293b,stroke:#475569,color:#94a3b8
App["Your Application"]:::app
App -->|"createSwarmOrchestrator()"| SO
subgraph SO["SwarmOrchestrator"]
AG["AuthGuardian\n(HMAC / Ed25519 permission tokens)"]:::security
AR["AdapterRegistry\n(route tasks to frameworks)"]:::routing
QG["QualityGateAgent\n(validate blackboard writes)"]:::quality
QA["QAOrchestratorAgent\n(scenario replay, regression tracking)"]:::quality
BB["SharedBlackboard\n(shared agent state)\npropose → validate → commit\nfilesystem mutex"]:::blackboard
AD["Adapters — plug any framework in, swap freely\nLangChain · AutoGen · CrewAI · MCP · LlamaIndex · …"]:::adapters
AG -->|"grant / deny"| AR
AR -->|"tasks dispatched"| AD
AD -->|"writes results"| BB
QG -->|"validates"| BB
QA -->|"orchestrates"| QG
end
SO --> AUDIT["data/audit_log.jsonl\n(HMAC / Ed25519-signed)"]:::audit
FederatedBudget是独立导出项——请单独实例化,并可选择将其连接到黑板后端,以便跨节点强制执行令牌预算。
ProjectContextManager是第 3 层 Python 辅助程序(scripts/context_manager.py),可将持久的项目目标、决策和里程碑注入 Agent 系统提示词——请参阅 ARCHITECTURE.md § Layer 3。
安装
npm install network-ai
无需原生依赖,也无需构建步骤。适配器无需依赖(BYOC——自带客户端)。
用作 MCP 服务
启动服务(无需配置,零依赖):
npx network-ai-server --port 3001
# or from source:
npx ts-node bin/mcp-server.ts --port 3001
然后将任何兼容 MCP 的客户端连接到该服务。
Claude Desktop ——添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"network-ai": {
"url": "http://localhost:3001/sse"
}
}
}
Cursor / Cline / 任何基于 SSE 的 MCP 客户端 ——指向同一 URL:
{
"mcpServers": {
"network-ai": {
"url": "http://localhost:3001/sse"
}
}
}
验证服务是否正在运行:
curl http://localhost:3001/health # { "status": "ok", "tools": <n>, "uptime": <ms> }
curl http://localhost:3001/tools # full tool list
通过 MCP 暴露的工具:
blackboard_read/blackboard_write/blackboard_list/blackboard_delete/blackboard_existscontext_pack——为任务生成经过令牌预算控制和相关性排序的上下文摘要(请使用此工具,而不要将整个黑板内容都倒入你的窗口)blackboard_search——对黑板条目进行排名并返回前 K 个搜索结果(连接嵌入器时使用语义搜索,否则使用词法搜索)budget_status/budget_spend/budget_reset——联邦令牌跟踪token_create/token_validate/token_revoke——HMAC / Ed25519 签名权限令牌audit_query——查询仅追加式审计日志config_get/config_set——实时协调器配置agent_list/agent_spawn/agent_stop——Agent 生命周期管理fsm_transition——将 FSM 状态转换写入黑板
每个工具都接受 agent_id 参数,该参数会被记录为每次写入的源 Agent。MCP 服务的信任边界是传输身份验证(通过 SSE/HTTP 传递 bearer 密钥,或使用本地 stdio):客户端通过验证后,服务会以自身持有的随机身份代其写入,因此任何 agent_id 都有效,也无需知道共享令牌。通过 MCP 传入的调用方 agent_token 值会被忽略。在进程内的 TypeScript 代码中,registerAgent() 会保留每个 Agent 的令牌和命名空间。
选项:--no-budget、--no-token、--no-control、--ceiling <n>、--board <name>、--audit-log <path>。
用作 Claude Code 插件
Network-AI 以 Claude Code 插件形式提供——MCP 服务会自动接入,因此上文列出的每个工具都能在 Claude Code 中使用,无需手动配置。
从自托管市场安装(无需审批):
/plugin marketplace add Jovancoding/Network-AI
/plugin install network-ai@network-ai
就这么简单——blackboard_read、budget_status、audit_query、token_create 等工具会作为原生 Claude Code 工具加载。在底层,插件会运行 npx -y -p network-ai network-ai-server --stdio(stdio MCP 传输),因此始终使用已发布的 npm 包。
仓库根目录包含标准插件布局:
| 文件 | 作用 |
|---|---|
.claude-plugin/plugin.json | 插件清单 |
.mcp.json | 注册 Network-AI MCP 服务(stdio) |
.claude-plugin/marketplace.json | 自托管市场目录 |
commands/ | 斜杠命令——/network-ai:status、/network-ai:budget、/network-ai:audit、/network-ai:blackboard |
使用 claude plugin validate . 在本地验证清单。
通过 AuthGuardian(钩子)保护 Claude Code 本身。 Claude Code 发出的每次工具调用——shell 命令、文件编辑、网页抓取——都可以通过与 Network-AI 用于群组 Agent 相同的加权评分(理由 40%、信任度 30%、风险 30%)进行审计和权限控制:
// .claude/settings.json — see examples/claude-code-hooks.json for the full config
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash|Write|Edit|WebFetch",
"hooks": [{ "type": "command",
"command": "npx -y -p network-ai network-ai hook pre-tool-use --mode enforce" }]
}]
}
}
--mode observe(默认)会将每次调用记录到 data/hooks_audit.jsonl,但不会拦截;--mode enforce 会将工具映射到资源类型(Bash → SHELL_EXEC,Write/Edit → FILE_SYSTEM,WebFetch → EXTERNAL_SERVICE),并要求 AuthGuardian 授权——被拒绝的调用会以交互式提示的形式升级给你。--deny "rm -rf" 模式无论处于哪种模式都会强制拦截,并会与工具名称及工具输入的每个字符串字段(例如 Write.content、Edit.new_string、MCP 工具参数)进行匹配。--allow 模式只匹配工具名称和主要目标。无效或可能导致回溯的模式会使钩子以 2 退出,Claude Code 会将其视为拦截,因此错误规则会默认拒绝,而不是悄悄禁用拒绝列表。
与 OpenAI Codex 搭配使用
Network-AI 也可作为 OpenAI Codex MCP 服务运行——既支持 Codex CLI,也支持 IDE 扩展。在 Claude Code 中加载的同一组工具也可在 Codex 中使用。
使用一条命令添加(使用已发布的 npm 包):
codex mcp add network-ai -- npx -y -p network-ai network-ai-server --stdio
在 Codex TUI 中运行 /mcp,确认 network-ai 已连接。
也可以将其限定到某个项目——仓库根目录提供了 .codex/config.toml,因此任何受信任的检出目录都会自动接入该服务。若要改为全局注册,将同一配置块添加到 ~/.codex/config.toml 中:
[mcp_servers.network-ai]
command = "npx"
args = ["-y", "-p", "network-ai", "network-ai-server", "--stdio"]
无论采用哪种方式,都可通过 stdio MCP 使用完整工具集(blackboard_read、budget_status、audit_query、token_create 等),无需 API 密钥,也无需管理运行中的服务。
与 Gemini CLI 搭配使用
Network-AI 以 Gemini CLI 扩展形式提供——仓库根目录包含 gemini-extension.json,可自动接入 stdio MCP 服务和 GEMINI.md 上下文文件:
gemini extensions install https://github.com/Jovancoding/Network-AI
或者直接注册 MCP 服务:
gemini mcp add network-ai npx -- -y -p network-ai network-ai-server --stdio
在 Gemini CLI 中运行 /mcp,确认 network-ai 工具已加载。要构建由 Gemini 驱动的群组 Agent,请使用 GeminiAdapter(Gemini Developer API / AI Studio)或 VertexAIAdapter(GCP 上的 Vertex AI)——对于 Google 的 Agent2Agent 生态系统,A2AServer 可将此编排器作为可发现的 A2A Agent 暴露出来:
import { A2AServer } from 'network-ai';
const a2a = new A2AServer({
name: 'Network-AI Orchestrator',
secret: process.env.A2A_SECRET, // required (v5.15.5+); or allowUnauthenticated: true for loopback-only dev
executor: async (text) => ({ text: await runSwarmTask(text) }),
});
a2a.startServer(4310); // serves /.well-known/agent.json + tasks/send
CLI
直接从终端控制 Network-AI — 无需服务器。CLI 导入与 MCP 服务相同的核心引擎。
# One-off commands (no server needed)
npx ts-node bin/cli.ts bb set status running --agent cli
npx ts-node bin/cli.ts bb get status
npx ts-node bin/cli.ts bb snapshot
# After npm install -g network-ai:
network-ai bb list
network-ai audit tail # live-stream the audit log
network-ai auth token my-bot --resource blackboard
| 命令组 | 控制内容 |
|---|---|
network-ai bb | 黑板 — 获取、设置、删除、列出、快照、提议、提交、中止 |
network-ai auth | AuthGuardian — 签发令牌(使用 --why 查看评分明细)、撤销、检查权限 |
network-ai budget | FederatedBudget — 支出状态、设置上限 |
network-ai audit | 审计日志 — 打印、实时追踪、清除 |
network-ai env | 环境管理 — 初始化、列出、链式查看、比较差异、提升、备份、恢复 |
network-ai doctor | 自诊断 — 验证数据目录、环境路由、审计日志、WAL、紧急停止开关、MCP 密钥 |
network-ai inspect <key> | 检查黑板键 — 值、元数据、待处理历史记录、审计追踪 |
network-ai pause / resume | 紧急停止开关 — 写入/移除 SYSTEM_PAUSED 标记文件 |
network-ai perpetual | Perpetual Runtime — 密钥生成、签名策略、权限、代理、哨兵、状态、暂停、恢复、撤销、收紧、安装策略、受保护签名、预算签名、快照、回滚 |
所有命令均支持全局标志:--data <path>(数据目录,默认为 ./data)· --env <name>(环境)· --json(机器可读输出)· --minimal(跳过 WAL 重放和扫描 — 加快 CI/测试启动)
→ 完整参考请见 QUICKSTART.md § CLI
两个 Agent,共享同一状态 — 没有竞态条件
真正的差异化优势在于协作。以下是单一框架解决方案无法处理的情况:两个 Agent 并发写入同一资源,同时确保原子性,且不会相互破坏数据。
import { LockedBlackboard, CustomAdapter, createSwarmOrchestrator } from 'network-ai';
const board = new LockedBlackboard('.');
const adapter = new CustomAdapter();
// Agent 1: writes its analysis result atomically
adapter.registerHandler('analyst', async () => {
const id = board.propose('report:status', { phase: 'analysis', complete: true }, 'analyst');
board.validate(id, 'analyst');
board.commit(id); // file-system mutex — no race condition possible
return { result: 'analysis written' };
});
// Agent 2: runs concurrently, writes to its own key safely
adapter.registerHandler('reviewer', async () => {
const id = board.propose('report:review', { approved: true }, 'reviewer');
board.validate(id, 'reviewer');
board.commit(id);
const analysis = board.read('report:status');
return { result: `reviewed phase=${analysis?.phase}` };
});
createSwarmOrchestrator({ adapters: [{ adapter }] });
// Both fire concurrently — mutex guarantees no write is ever lost
const [, ] = await Promise.all([
adapter.executeAgent('analyst', { action: 'run', params: {} }, { agentId: 'analyst' }),
adapter.executeAgent('reviewer', { action: 'run', params: {} }, { agentId: 'reviewer' }),
]);
console.log(board.read('report:status')); // { phase: 'analysis', complete: true }
console.log(board.read('report:review')); // { approved: true }
使用相同模式添加预算、权限和跨框架 Agent。→ QUICKSTART.md
演示 — 控制平面压力测试 (无需 API 密钥)
运行约需 3 秒。无需调用任何大模型,即可验证协作原语。
npm run demo -- --08
演示内容:原子黑板锁定、优先级抢占(同一键上优先级 3 高于优先级 0)、AuthGuardian 权限门控(从阻止 → 说明理由 → 使用令牌授权)、在 700 ms 时触发 FSM 硬停止、实时捕获合规违规(TOOL_ABUSE、TURN_TAKING、RESPONSE_TIMEOUT、JOURNEY_TIMEOUT),以及 FederatedBudget 跟踪 — 全程无需任何 API 调用。
8-Agent AI 流水线(需要 OPENAI_API_KEY — 端到端构建支付处理服务):
npm run demo -- --07
NemoClaw 沙箱 Agent 协作 (无需 API 密钥) — 3 个 Agent 在相互隔离的 NVIDIA NemoClaw 沙箱中运行,并采用默认拒绝的网络策略:
npx ts-node examples/10-nemoclaw-sandbox-swarm.ts
适配器系统
32 种适配器,不依赖任何适配器。你可以自行提供 SDK 对象。
| 适配器 | 框架 / 协议 | 注册方法 |
|---|---|---|
CustomAdapter | 任意函数或 HTTP 端点 | registerHandler(name, fn) |
LangChainAdapter | LangChain | registerAgent(name, runnable) |
AutoGenAdapter | AutoGen / AG2 | registerAgent(name, agent) |
CrewAIAdapter | CrewAI | registerAgent 或 registerCrew |
MCPAdapter | Model Context Protocol | registerTool(name, handler) |
LlamaIndexAdapter | LlamaIndex | registerQueryEngine()、registerChatEngine() |
SemanticKernelAdapter | Microsoft Semantic Kernel | registerKernel()、registerFunction() |
OpenAIAssistantsAdapter | OpenAI Assistants | registerAssistant(name, config) |
HaystackAdapter | deepset Haystack | registerPipeline()、registerAgent() |
DSPyAdapter | Stanford DSPy | registerModule()、registerProgram() |
AgnoAdapter | Agno(原名 Phidata) | registerAgent()、registerTeam() |
OpenClawAdapter | OpenClaw | registerSkill(name, skillRef) |
A2AAdapter | Google A2A Protocol | registerRemoteAgent(name, url) |
CodexAdapter | OpenAI Codex / gpt-4o / Codex CLI | registerCodexAgent(name, config) |
MiniMaxAdapter | MiniMax LLM API(M2.5 / M2.5-highspeed) | registerAgent(name, config) |
NemoClawAdapter | NVIDIA NemoClaw(通过 OpenShell 运行沙箱化 Agent) | registerSandboxAgent(name, config) |
APSAdapter | Agent Permission Service(委托链信任) | apsDelegationToTrust(delegation) |
CopilotAdapter | GitHub Copilot(生成/审查/解释/修复/测试/重构/聊天) | registerAgent(name, config) |
LangGraphAdapter | LangGraph(已编译的 StateGraph) | registerGraph(name, graph) |
AnthropicComputerUseAdapter | Anthropic Computer Use(截图/点击/输入/滚动) | registerAgent(name, config) |
OpenAIAgentsAdapter | OpenAI Agents SDK(工具调用、交接、护栏) | registerAgent(name, runner) |
VertexAIAdapter | Google Vertex AI / Gemini(函数调用、多模态) | registerAgent(name, config) |
PydanticAIAdapter | Pydantic AI(结构化输出、验证、依赖注入) | registerAgent(name, config) |
BrowserAgentAdapter | 浏览器自动化(Playwright/Puppeteer/CDP) | registerAgent(name, driver) |
HermesAdapter | NousResearch Hermes / 任意兼容 OpenAI 的端点(Ollama、Together AI、Fireworks、llama.cpp) | registerAgent(name, config) |
OrchestratorAdapter | 分层式多编排器协作 | registerOrchestrator(id, orchestrator) |
RLMAdapter | 递归语言模型 / 任意兼容 RLM 的 HTTP 端点(arxiv 2512.24601) | registerAgent(name, config) |
流式版本(可直接替换,支持 .stream()):
| 适配器 | 扩展自 | 流式来源 |
|---|---|---|
LangChainStreamingAdapter | LangChainAdapter | 如果 Runnable 支持,则调用其 .stream();否则回退到 .invoke() |
CustomStreamingAdapter | CustomAdapter | 转发 AsyncIterable<string> 处理程序;对于普通 Promise,则回退到单块输出 |
继承 BaseAdapter(流式场景使用 StreamingBaseAdapter),只需几分钟即可添加自己的适配器。参见 references/adapter-system.md。
兼容 LangGraph、CrewAI 和 AutoGen
Network-AI 是一个协调层,可添加到现有技术栈的上层。保留现有的 LangChain 链、CrewAI 团队和 AutoGen Agent,并为其添加共享状态、治理机制和预算。
| 能力 | Network-AI | LangGraph | CrewAI | AutoGen |
|---|---|---|---|---|
| 同一群组中的跨框架 Agent | ✅ 32 个内置适配器 | ⚠️ 节点可调用任意代码;没有适配器抽象 | ⚠️ 可通过工具扩展;仅支持 CrewAI 原生 Agent | ⚠️ 可通过插件扩展;仅支持 AutoGen 原生 Agent |
| 原子共享状态(安全处理冲突) | ✅ propose → validate → commit 互斥锁 | ⚠️ 在节点间传递状态;最后写入者胜出 | ⚠️ 提供共享内存;不解决冲突 | ⚠️ 提供共享上下文;不解决冲突 |
| 每个 Agent 的硬性 token 上限 | ✅ FederatedBudget(一等 API) | ⚠️ 通过回调 / 自定义中间件实现 | ⚠️ 通过回调 / 自定义中间件实现 | ⚠️ v0.4+ 内置 token 跟踪;没有群组级上限 |
| 敏感操作前的权限控制 | ✅ AuthGuardian(内置) | ⚠️ 可通过自定义节点逻辑实现 | ⚠️ 可通过自定义工具实现 | ⚠️ 可通过自定义中间件实现 |
| 仅追加审计日志 | ✅ 纯 JSONL(data/audit_log.jsonl) | ⚠️ 非内置 | ⚠️ 非内置 | ⚠️ 非内置 |
| 静态加密 | ✅ AES-256-GCM(TypeScript 层) | ⚠️ 非内置 | ⚠️ 非内置 | ⚠️ 非内置 |
| 语言 | TypeScript / Node.js | Python | Python | Python |
测试
npm run test:all # All suites in sequence
npm test # Core orchestrator
npm run test:security # Security module
npm run test:adapters # All 32 adapters
npm run test:streaming # Streaming adapters
npm run test:a2a # A2A protocol adapter
npm run test:codex # Codex adapter
npm run test:priority # Priority & preemption
npm run test:cli # CLI layer
npm run test:phase9 # Agent runtime, console, strategy agent
npm run test:phase12 # Context Throttler, Partition Planner, Coverage Gate, Route Classifier
npx ts-node test-asi.ts # ASI Strict Mode
npx ts-node test-perpetual.ts # Perpetual Runtime: leases, egress proxy, CLI
npx ts-node test-perpetual-safety.ts # Perpetual Runtime: guarded paths, sandbox, sentries, pipeline, self-healing, budget
43 个测试套件中有 4,180 条断言通过(npm run test:all):
| 套件 | 断言数 | 覆盖范围 |
|---|---|---|
test-phase4.ts | 147 | FSM 治理、合规监控器、适配器集成 |
test-phase5f.ts | 127 | SSE 传输、McpCombinedBridge、扩展 MCP 工具 |
test-phase5g.ts | 121 | CRDT 后端、向量时钟、双向同步 |
test-phase6.ts | 129 | MCP 服务、控制平面工具、审计工具 |
test-adapters.ts | 271 | 全部 32 个适配器、注册表路由、集成、边界情况 |
test-phase5d.ts | 117 | 可插拔后端(Redis、CRDT、Memory) |
test-standalone.ts | 88 | 黑板、身份验证、集成、持久化、并行化、质量门 |
test-phase5e.ts | 87 | 联合预算跟踪 |
test-phase5c.ts | 73 | 命名的多黑板、隔离、后端选项 |
test-codex.ts | 51 | Codex 适配器:聊天、补全、CLI、BYOC 客户端、错误路径 |
test-minimax.ts | 50 | MiniMax 适配器:生命周期、注册、聊天模式、温度值钳制 |
test-nemoclaw.ts | 93 | NemoClaw 适配器:沙箱生命周期、策略、蓝图、交接、环境变量转发 |
test-priority.ts | 64 | 优先级抢占、冲突解决、向后兼容 |
test-a2a.ts | 35 | A2A 协议:注册、执行、模拟 fetch、错误路径 |
test-streaming.ts | 32 | 流式适配器、分块形状、回退、collectStream |
test-phase5b.ts | 55 | 可插拔后端第 2 部分、一致性级别 |
test-phase5.ts | 42 | 命名的多黑板基础功能 |
test-security.ts | 34 | 令牌、清理、速率限制、加密、审计 |
test-cli.ts | 65 | CLI 层:bb、身份验证、预算、审计命令 |
test-qa.ts | 67 | QA 编排器:场景、反馈循环、回归、矛盾 |
test-phase7.ts | 94 | 延迟初始化、钩子中间件、流量控制、技能组合器、语义搜索 |
test-phase8.ts | 146 | 阶段管道、置信度过滤器、基于匹配器的钩子、扇出/扇入 |
test-phase9.ts | 293 | Agent 运行时、沙箱策略、Shell 执行器、文件访问器、审批门、控制台 UI、编排器接线、管道模式、策略 Agent |
test-phase10.ts | 153 | 目标分解器、任务 DAG 验证、拓扑层、JSON 解析、团队运行器、并发、超时、事件、runTeam 单行调用、依赖注入、大模型规划器 |
test-phase11.ts | 55 | TTL 后台扫描、WAL 崩溃恢复、CircuitBreaker、ITelemetryProvider / OTel 钩子 |
test-topology.ts | 304 | WorkTree、ControlPlane、仪表板服务、拓扑可视化、WebSocket 协议 |
test-rlm-phases.ts | 123 | FederatedBudget 子级支出、黑板元数据 API、最佳部分结果、HookContext 深度、子目标递归、信号量扇出、PhasePipeline 压缩、RLMAdapter 端到端测试 |
test-phase12.ts | 65 | 上下文节流器、分区规划器、覆盖率门、路由分类器、EVALUATING FSM 状态、runTeam 集成 |
test-env-manager.ts | 77 | 多环境隔离、晋级链、备份/恢复、源保护、NETWORK_AI_ENV、黑板环境路由 |
test-transport.ts | 117 | 基础传输层级:TransportAgent 状态机、LandscapeAgent 健康跟踪、AgentPool 排空/暂停、集群协调、金丝雀、回滚 |
test-claim-verifier.ts | 50 | ClaimVerifier:收据生成/篡改/过期、佐证充分/缺乏支持/未披露、信任衰减/重置/DoS 防护 |
test-phase13.ts | 58 | ESM 双构建配置、McpStreamableServer 分发 + 资源 + 提示词、PhasePipeline 检查点/恢复/清除、SemanticMemory 保存/加载/自动保存/清除持久化数据 |
test-phase14.ts | 52 | 模型生命周期治理:GovernedModelGateway 拒绝→回退、ModelBudget 积分重新定价、RefusalTelemetry、Anthropic Messages 适配器 |
test-phase15.ts | 32 | 编排弹性:RetryBudget、FanOutFanIn + TeamRunner 中每个子 Agent 的回退、EffortPolicy |
test-phase16.ts | 21 | ThinkingBlockManager 生命周期 + 推理提取防护、OWASP Agentic Top 10 覆盖矩阵 |
test-phase17.ts | 15 | ApprovalInbox GHSA-m4jg-6w3q-gm86 修复:读取路由身份验证门控、令牌验证、未配置密钥时默认拒绝、CORS 允许列表 |
test-phase18.ts | 85 | ClaudeHookBridge 观察/强制门控、MCP 引导通道 + 默认拒绝的审批回调、A2AServer Agent 卡片 / 任务 / 身份验证 / 驱逐 |
test-phase19.ts | 78 | ContextComposer 排序/预算/固定/过时检测/布局、estimateTokens、context_pack + blackboard_search MCP 工具(词法 + 语义模式) |
test-phase20.ts | 135 | 安全回归:ClaudeHookBridge 全目标和全字段拒绝匹配(GHSA-743h-jr5x-mpcr、GHSA-9p2w-prp8-5722)、拒绝/允许正则表达式验证 + 默认拒绝的钩子退出代码、SandboxPolicy 规范化命令匹配(GHSA-9v4f-j8cv-fhxw)、DashboardServer Origin/Host 验证(GHSA-hr6v-mfxm-4438)、仅限环回地址的 MCP SSE CORS(GHSA-4pvg-m42h-c3x2)、每个实例独有的编排器令牌 + MCP 服务持有的身份、sanitizePath 段边界包含检查(GHSA-5mm5-4mh4-6gm6)、FileJobStore / AgentVCR 名称限制(GHSA-v64j-mc7x-c7x7、GHSA-mfxv-jg44-xj48)、A2AServer 默认拒绝身份验证(GHSA-qvf5-9prv-7r9c)、ApprovalInbox / SwarmTransportServer 默认拒绝身份验证并提供重放保护、ControlPlane / WorkTreeDashboard Host/Origin 检查 |
test-asi.ts | 148 | ASI 严格模式:配置解析/收紧、ProofGate、ConsensusEngine、审计员收据、HaltCoordinator、信任层级、认知上限、金丝雀、哈希链导出 |
test-perpetual.ts | 141 | 永续运行时:签名、LeaseAuthority(续期、停止条件、撤销/暂停/收紧、HTTP API)、LeaseGuard 死人开关、EgressProxy、集成钩子、密钥/路由文件、进程外 CLI 授权和操作员控制 |
test-perpetual-safety.ts | 151 | 永续运行时:GuardedPaths(I2)、沙箱运行器、哨兵检测器 + 仲裁 + 身份验证身份、ImprovementPipeline 层级/收据、已验证快照 + SelfHealer、BudgetBalancer(I3)、出口财务限额 |
test.ts | 39 | 核心编排器冒烟测试 |
文档
| 文档 | 内容 |
|---|---|
| QUICKSTART.md | 安装、首次运行、CLI 参考、PowerShell 指南、Python 脚本 CLI |
| ARCHITECTURE.md | 竞态条件问题、FSM 设计、交接协议、模型交互生命周期治理、ASI Strict Mode、Perpetual Runtime、模块清单、项目结构 |
| BENCHMARKS.md | 提供方性能、速率限制、本地 GPU、max_completion_tokens 指南 |
| SECURITY.md | 安全模块、权限系统、信任级别、审计跟踪、OWASP Agentic Top 10 覆盖情况、Perpetual Runtime 控制措施、披露 SLA、ClawHub 扫描结果 |
| THREAT_MODEL.md | 对手档案(包括自我修改的长期运行 Agent)、信任边界、明确的非目标、安全控制措施摘要 |
| DATA_LOCATIONS.md | Network-AI 创建的所有文件——路径、用途、数据分类、运维人员职责(包括 Perpetual Runtime 密钥、审计记录、快照) |
| SUPPLY_CHAIN.md | 运行时依赖项、安装时运行的内容、网络暴露面(包括租约授权和出口代理)、SLSA/npm 来源验证 |
| ENTERPRISE.md | 评估清单、稳定性政策、安全摘要、集成入口点 |
| AUDIT_LOG_SCHEMA.md | 审计日志字段参考、所有事件类型(包括 model.refusal / model.attempt 和 Perpetual Runtime 授权/出口/哨兵事件)、评分公式 |
| ADOPTERS.md | 已知采用者——提交 PR 来添加你自己 |
| INTEGRATION_GUIDE.md | 使用 v5.17 模块进行端到端集成演练,包括 Perpetual Runtime |
| SKILL.md | OpenClaw/ClawHub Python 技能——设置、编排器协议、OWASP 引擎覆盖情况、安全扫描结果 |
| AGENTS.md | 跨供应商 Agent 指南(Codex、Gemini CLI、Cursor、Factory)——构建命令、约定、架构模式 |
| references/adapter-system.md | 适配器架构、全部 32 个适配器(包括 AnthropicMessagesAdapter)、编写自定义适配器 |
| references/auth-guardian.md | 权限评分、资源类型、scoreRequest()、IAuthValidator 接口 |
| references/trust-levels.md | 信任级别配置、APS 委派链映射 |
与 Claude、ChatGPT 和 Codex 配合使用
使用 Claude Code(CLI)?请参阅用作 Claude Code 插件——一条命令即可安装所有工具。
使用 OpenAI Codex(CLI 或 IDE)?请参阅与 OpenAI Codex 配合使用——只需一条
codex mcp add命令即可添加 MCP 服务。使用 Gemini CLI?请参阅与 Gemini CLI 配合使用——只需一条
gemini extensions install命令即可安装扩展。
仓库根目录中包含三个集成文件:
| 文件 | 用途 |
|---|---|
claude-tools.json | Claude API 工具调用和 OpenAI Codex——放入 tools 数组 |
openapi.yaml | 自定义 GPT Actions——直接导入 GPT 编辑器 |
claude-project-prompt.md | Claude Projects——粘贴到自定义指令中(包括生命周期治理和 Perpetual Runtime 上下文) |
Claude API / Codex:
import tools from './claude-tools.json' assert { type: 'json' };
// Pass tools array to anthropic.messages.create({ tools }) or OpenAI chat completions
自定义 GPT Actions:
在 GPT 编辑器中选择 Actions → Import from URL,或粘贴 openapi.yaml 的内容。
将服务器 URL 设置为正在运行的 npx network-ai-server --port 3001 实例的 URL。
Claude Projects:
将 claude-project-prompt.md 的内容(水平分隔线下方)复制到 Claude Project 的自定义指令字段中。仅指令模式无需服务器。
社区
加入我们的 Discord 服务器,讨论多 Agent AI 协作、获取帮助并分享你的创作:
贡献
- Fork → 功能分支 →
npm run test:all→ 提交拉取请求 - 通过 Issues 提交 Bug 和功能请求
MIT 许可证 — LICENSE · CHANGELOG · CONTRIBUTING · 行为准则 · 安全政策 ·
关键词
multi-agent · agent orchestration · AI agents · agentic AI · agentic workflow · TypeScript · Node.js · LangGraph · CrewAI · AutoGen · MCP · model-context-protocol · LlamaIndex · Semantic Kernel · OpenAI Assistants · Haystack · DSPy · Agno · OpenClaw · ClawHub · shared state · blackboard pattern · atomic commits · guardrails · token budgets · permission gating · audit trail · agent coordination · agent handoffs · governance · cost-awareness · refusal handling · fallback routing · model lifecycle · OWASP agentic AI · effort policy · thinking blocks
下载历史
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


