Skip to content

Commit 4c95b55

Browse files
author
jovanSAPFIONEER
committed
v3.2.3: Phase 4 partial -- observability commands, governance vocabulary, competitive comparison
- Add --active-grants command (TTL countdown, agent filter, JSON output) - Add --audit-summary command (per-agent/resource breakdowns, grant rate, recent activity) - Add competitive comparison table (Network-AI vs LangChain vs AutoGen vs CrewAI vs Claude SDK) - Add fan-out/fan-in example to README - Reframe README around behavioral control plane, compliance enforcement, governance layer - Add MCP Blackboard Tool Bindings to Phase 4 roadmap - Fix Pylance type annotations in check_permission.py - Update SECURITY.md scanner version to v3.2.3 - Add test-priority.ts to project structure listing
1 parent 83b8f46 commit 4c95b55

File tree

6 files changed

+449
-36
lines changed

6 files changed

+449
-36
lines changed

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,28 @@ All notable changes to Network-AI will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.2.3] - 2026-02-18
9+
10+
### Added -- Phase 4 (Partial): Observability & Governance Vocabulary
11+
- **`--active-grants` command** -- `check_permission.py --active-grants` shows which agents currently hold access to which APIs, with TTL countdown, scope, restrictions; supports `--agent` filter and `--json` output
12+
- **`--audit-summary` command** -- `check_permission.py --audit-summary` summarizes permission activity: per-agent and per-resource breakdowns of requests/grants/denials, grant rate, recent activity log; supports `--last N` and `--json`
13+
- **Competitive comparison table** -- README now includes side-by-side feature comparison (Network-AI vs LangChain vs AutoGen vs CrewAI vs Claude SDK) across 14 capabilities
14+
- **Fan-out/fan-in example** -- README documents the parallel evaluation pattern using LockedBlackboard for coordinating independent agent subtasks
15+
- **Governance vocabulary** -- README reframed around "behavioral control plane," "compliance enforcement," "governance layer," "fan-out/fan-in orchestration"
16+
- **Observability section in Features** -- `--active-grants`, `--audit-summary`, and justification hardening listed under Operational Safety & Governance
17+
- **MCP Blackboard Tool Bindings** -- Added to Phase 4 roadmap (expose blackboard as MCP tool definitions)
18+
- **SEO keywords** -- Added behavioral-control-plane, governance-layer, compliance-enforcement, fan-out-fan-in, agent-observability, permission-gating, audit-trail
19+
20+
### Changed
21+
- **`check_permission.py` restructured** -- `--agent`, `--resource`, `--justification` now optional at argparse level; validated manually only for permission check mode; action flags `--active-grants` and `--audit-summary` bypass check requirements
22+
- **README "Why Network-AI?" section** -- Updated to lead with governance, shared state, and security (previously led with swarm intelligence)
23+
- **Related Concepts section** -- Added Behavioral Control Plane and Agent Governance entries
24+
25+
### Stats
26+
- 315 tests passing (79 + 33 + 139 + 64)
27+
- 0 compile errors
28+
- `check_permission.py`: 596 lines (was 436)
29+
830
## [3.2.2] - 2026-02-17
931

1032
### Changed
@@ -56,6 +78,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5678
- **`--active-grants` Command** -- Show which agents currently hold access to which APIs with expiry times
5779
- **`--audit-summary` Command** -- Summarize recent requests, grants, and denials by agent
5880
- **Behavioral Vocabulary in README** -- Reframe marketing around "behavioral control plane," "compliance enforcement," "governance layer"
81+
- **MCP Blackboard Tool Bindings** -- Expose `blackboard_read`, `blackboard_write`, `blackboard_list`, `blackboard_delete` as MCP-compatible tool definitions so any LLM agent can interact with shared state via tool calls
5982

6083
## [Future] -- Phase 5: Distributed Blackboard
6184

README.md

Lines changed: 135 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**The plug-and-play AI agent orchestrator for TypeScript/Node.js -- connect 12 agent frameworks with zero glue code**
44

5-
[![Release](https://img.shields.io/badge/release-v3.2.2-blue.svg)](https://github.com/jovanSAPFIONEER/Network-AI/releases)
5+
[![Release](https://img.shields.io/badge/release-v3.2.3-blue.svg)](https://github.com/jovanSAPFIONEER/Network-AI/releases)
66
[![ClawHub](https://img.shields.io/badge/ClawHub-network--ai-orange.svg)](https://clawhub.ai/skills/network-ai)
77
[![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org)
88
[![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6.svg)](https://typescriptlang.org)
@@ -15,12 +15,13 @@
1515

1616
> **Legacy Users:** This skill works with **Clawdbot** and **Moltbot** (now OpenClaw). If you're searching for *Moltbot Security*, *Clawdbot Swarm*, or *Moltbot multi-agent* -- you're in the right place!
1717
18-
Network-AI is a framework-agnostic multi-agent orchestrator that connects LLM agents across **12 frameworks** -- LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw, and custom adapters. It provides shared blackboard coordination, built-in security (AES-256, HMAC tokens, rate limiting), content quality gates with hallucination detection, and agentic workflow patterns (parallel execution, voting, chaining). Zero dependencies per adapter -- bring your own framework SDK and start building multi-agent systems in minutes.
18+
Network-AI is a framework-agnostic multi-agent orchestrator and **behavioral control plane** that connects LLM agents across **12 frameworks** -- LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw, and custom adapters. It provides shared blackboard coordination with atomic commits, built-in security (AES-256, HMAC tokens, rate limiting), content quality gates with hallucination detection, compliance enforcement, and agentic workflow patterns (parallel fan-out/fan-in, voting, chaining). Zero dependencies per adapter -- bring your own framework SDK and start building governed multi-agent systems in minutes.
1919

2020
**Why Network-AI?**
2121
- **Framework-agnostic** -- Not locked to one LLM provider or agent SDK
22-
- **Production security** -- Encryption, audit trails, rate limiting built in
23-
- **Swarm intelligence** -- Parallel execution, voting, chain-of-agents patterns
22+
- **Governance layer** -- Permission gating, audit trails, budget ceilings, and compliance enforcement across all agents
23+
- **Shared state** -- Atomic blackboard with conflict resolution for safe parallel agent coordination (fan-out/fan-in)
24+
- **Production security** -- AES-256 encryption, HMAC audit logs, rate limiting, input sanitization
2425
- **Zero config** -- Works out of the box with `createSwarmOrchestrator()`
2526

2627
## Hello World -- Get Running in 60 Seconds
@@ -131,12 +132,15 @@ Network-AI wraps your agent swarm with **file-system mutexes**, **atomic commits
131132
- **Cryptographic Audit Logs** -- Tamper-evident signed audit trail with chain continuation
132133
- **Secure Gateway** -- Integrated security layer wrapping all operations
133134

134-
### Operational Safety
135+
### Operational Safety & Governance
135136
- **Swarm Guard** -- Prevents "Handoff Tax" (wasted tokens) and detects silent agent failures
136137
- **Atomic Commits** -- File-system mutexes prevent split-brain in concurrent writes
137138
- **Priority-Based Preemption** -- Higher-priority agents preempt lower-priority writes on same-key conflicts (`priority-wins` strategy)
138139
- **Cost Awareness** -- Token budget tracking with automatic SafetyShutdown
139140
- **Budget-Aware Handoffs** -- `intercept-handoff` command wraps `sessions_send` with budget checks
141+
- **`--active-grants` Observability** -- Real-time view of which agents hold access to which APIs, with TTL countdown
142+
- **`--audit-summary` Observability** -- Per-agent and per-resource breakdown of permission requests, grants, and denials
143+
- **Justification Hardening** -- 16-pattern prompt-injection detector, keyword-stuffing defense, structural coherence scoring
140144

141145
## Project Structure
142146

@@ -190,6 +194,7 @@ Network-AI/
190194
|-- test-standalone.ts # Core orchestrator tests (79 tests)
191195
|-- test-security.ts # Security module tests (33 tests)
192196
|-- test-adapters.ts # Adapter system tests (139 tests)
197+
|-- test-priority.ts # Priority & preemption tests (64 tests)
193198
|-- test-ai-quality.ts # AI quality gate demo
194199
|-- test.ts # Full integration test suite
195200
```
@@ -341,6 +346,65 @@ Expires: 2026-02-04T15:30:00Z
341346
Restrictions: read_only, max_records:100
342347
```
343348

349+
#### 3a. View Active Grants
350+
351+
See which agents currently hold access to which APIs:
352+
353+
```bash
354+
# Human-readable
355+
python scripts/check_permission.py --active-grants
356+
357+
# Filter by agent
358+
python scripts/check_permission.py --active-grants --agent data_analyst
359+
360+
# Machine-readable JSON
361+
python scripts/check_permission.py --active-grants --json
362+
```
363+
364+
Output:
365+
```
366+
Active Grants:
367+
======================================================================
368+
Agent: data_analyst
369+
Resource: DATABASE
370+
Scope: read:orders
371+
Token: grant_c1ea828897...
372+
Remaining: 4.4 min
373+
Restrictions: read_only, max_records:100
374+
------------------------------------------------------------------
375+
376+
Total: 1 active, 0 expired
377+
```
378+
379+
#### 3b. Audit Summary
380+
381+
Summarize permission activity across all agents:
382+
383+
```bash
384+
# Human-readable
385+
python scripts/check_permission.py --audit-summary
386+
387+
# Last 50 entries, JSON output
388+
python scripts/check_permission.py --audit-summary --last 50 --json
389+
```
390+
391+
Output:
392+
```
393+
Audit Summary
394+
======================================================================
395+
Requests: 12
396+
Grants: 9
397+
Denials: 3
398+
Grant Rate: 75%
399+
400+
By Agent:
401+
--------------------------------------------------
402+
Agent Requests Grants Denials
403+
data_analyst 4 3 1
404+
orchestrator 5 4 1
405+
strategy_advisor 3 2 1
406+
```
407+
344408
#### 4. Use the Blackboard
345409

346410
```bash
@@ -359,7 +423,44 @@ python scripts/blackboard.py commit "chg_001"
359423
python scripts/blackboard.py list
360424
```
361425

362-
#### 5. Priority-Based Conflict Resolution (Phase 3)
426+
#### 5. Fan-Out / Fan-In with Shared Blackboard
427+
428+
Coordinate multiple specialized agents working on independent subtasks, then merge results:
429+
430+
```typescript
431+
import { LockedBlackboard } from 'network-ai';
432+
import { Logger } from 'network-ai';
433+
434+
const logger = Logger.create('fan-out');
435+
const board = new LockedBlackboard('.', logger, { conflictResolution: 'first-commit-wins' });
436+
437+
// Fan-out: each agent writes to its own section
438+
const agents = ['reliability', 'security', 'cost', 'operations', 'performance'];
439+
440+
for (const pillar of agents) {
441+
// Each agent evaluates independently, writes to its own key
442+
const id = board.propose(`eval:${pillar}`, { score: Math.random(), findings: [] }, pillar);
443+
board.validate(id, 'orchestrator');
444+
board.commit(id);
445+
}
446+
447+
// Fan-in: orchestrator reads all results and merges
448+
const results = agents.map(pillar => ({
449+
pillar,
450+
...board.read(`eval:${pillar}`)
451+
}));
452+
453+
const summary = board.propose('eval:summary', {
454+
overall: results.reduce((sum, r) => sum + r.score, 0) / results.length,
455+
pillars: results
456+
}, 'orchestrator');
457+
board.validate(summary, 'orchestrator');
458+
board.commit(summary);
459+
```
460+
461+
This pattern works with any framework adapter -- LangChain agents, AutoGen agents, CrewAI crews, or any mix. The blackboard ensures no agent overwrites another's results.
462+
463+
#### 6. Priority-Based Conflict Resolution (Phase 3)
363464

364465
```typescript
365466
import { LockedBlackboard } from 'network-ai';
@@ -384,7 +485,7 @@ board.commit(highId); // success
384485
board.read('shared:config'); // { mode: 'final' } -- supervisor wins
385486
```
386487

387-
#### 6. Check Budget Status
488+
#### 7. Check Budget Status
388489

389490
```bash
390491
python scripts/swarm_guard.py budget-check --task-id "task_001"
@@ -628,18 +729,43 @@ If you find Network-AI useful, **give it a star** -- it helps others discover th
628729

629730
**Compatible with 12 agent frameworks: OpenClaw, LangChain, AutoGen, CrewAI, MCP, LlamaIndex, Semantic Kernel, OpenAI Assistants, Haystack, DSPy, Agno, and any custom adapter**
630731

732+
## Competitive Comparison
733+
734+
How Network-AI compares to other multi-agent frameworks:
735+
736+
| Capability | Network-AI | LangChain/LangGraph | AutoGen/AG2 | CrewAI | Claude SDK |
737+
|---|---|---|---|---|---|
738+
| **Multi-framework support** | 12 adapters | LangChain only | AutoGen only | CrewAI only | Claude only |
739+
| **Shared state (blackboard)** | Atomic commits, TTL, priority | LangGraph state | Shared context | Shared memory | Project memory |
740+
| **Conflict resolution** | Priority preemption, last-write-wins | None | None | None | None |
741+
| **Fan-out / fan-in** | Native (parallel + merge) | LangGraph branches | Group chat | Parallel tasks | Subagents |
742+
| **Permission gating** | AuthGuardian (weighted scoring) | None | None | None | None |
743+
| **Budget tracking** | Token ceiling + per-task budgets | Callbacks only | None | None | None |
744+
| **Audit trail** | HMAC-signed, tamper-evident | None | None | None | None |
745+
| **Encryption at rest** | AES-256-GCM | None | None | None | None |
746+
| **Observability** | `--active-grants`, `--audit-summary` | LangSmith (SaaS) | None | None | None |
747+
| **Rate limiting** | Per-agent with lockout | None | None | None | None |
748+
| **Justification hardening** | 16-pattern injection defense | None | None | None | None |
749+
| **Language** | TypeScript/Node.js | Python | Python | Python | Python |
750+
| **Dependencies** | Zero (per adapter) | Heavy | Heavy | Heavy | Moderate |
751+
| **License** | MIT | MIT | CC-BY-4.0 | MIT | MIT |
752+
753+
**Key differentiator:** Network-AI is the only framework that combines multi-framework orchestration with a governance layer (permissions, audit, encryption, budget enforcement). Other frameworks focus on one LLM provider; Network-AI wraps all of them.
754+
631755
## Related Concepts
632756

633757
Network-AI fits into the broader AI agent ecosystem:
634758

635759
- **Multi-Agent Systems** -- Coordinate multiple AI agents working together on complex tasks
636760
- **Agentic AI** -- Build autonomous agents that reason, plan, and execute using LLMs
637-
- **Swarm Intelligence** -- Parallel execution patterns with voting, merging, and chain strategies
761+
- **Behavioral Control Plane** -- Govern agent behavior with permission gating, compliance enforcement, and audit trails
762+
- **Swarm Intelligence** -- Parallel fan-out/fan-in patterns with voting, merging, and chain strategies
638763
- **Model Context Protocol (MCP)** -- Standard protocol support for LLM tool integration
639764
- **Agent-to-Agent (A2A)** -- Inter-agent communication via shared blackboard and handoff protocol
640765
- **Context Engineering** -- Manage and share context across agent boundaries
641766
- **Agentic Workflows** -- Task decomposition, parallel processing, and synthesis pipelines
642767
- **LLM Orchestration** -- Route tasks to the right agent framework automatically
768+
- **Agent Governance** -- Permission gating, budget enforcement, audit logging, and compliance monitoring
643769

644770
If you're using LangGraph, Dify, Flowise, PraisonAI, AutoGen/AG2, CrewAI, or any other agent framework, Network-AI can integrate with it through the adapter system.
645771

@@ -648,6 +774,6 @@ If you're using LangGraph, Dify, Flowise, PraisonAI, AutoGen/AG2, CrewAI, or any
648774
<details>
649775
<summary>Keywords (for search)</summary>
650776

651-
ai-agents, agentic-ai, multi-agent, multi-agent-systems, multi-agent-system, agent-framework, ai-agent-framework, agentic-framework, agentic-workflow, llm, llm-agents, llm-agent, large-language-models, generative-ai, genai, orchestration, ai-orchestration, swarm, swarm-intelligence, autonomous-agents, agents, ai, typescript, nodejs, mcp, model-context-protocol, a2a, agent-to-agent, function-calling, tool-integration, context-engineering, rag, ai-safety, multi-agents-collaboration, multi-agents, aiagents, aiagentframework, plug-and-play, adapter-registry, blackboard-pattern, agent-coordination, agent-handoffs, token-permissions, budget-tracking, cost-awareness, atomic-commits, hallucination-detection, content-quality-gate, OpenClaw, Clawdbot, Moltbot, Clawdbot Swarm, Moltbot Security, Moltbot multi-agent, OpenClaw skills, AgentSkills, LangChain adapter, LangGraph, AutoGen adapter, AG2, CrewAI adapter, MCP adapter, LlamaIndex adapter, Semantic Kernel adapter, OpenAI Assistants adapter, Haystack adapter, DSPy adapter, Agno adapter, Phidata adapter, Dify, Flowise, PraisonAI, custom-adapter, AES-256 encryption, HMAC tokens, rate limiting, input sanitization, privilege escalation prevention, ClawHub, clawhub, agentic-rag, deep-research, workflow-orchestration, ai-assistant, ai-tools, developer-tools, open-source
777+
ai-agents, agentic-ai, multi-agent, multi-agent-systems, multi-agent-system, agent-framework, ai-agent-framework, agentic-framework, agentic-workflow, llm, llm-agents, llm-agent, large-language-models, generative-ai, genai, orchestration, ai-orchestration, swarm, swarm-intelligence, autonomous-agents, agents, ai, typescript, nodejs, mcp, model-context-protocol, a2a, agent-to-agent, function-calling, tool-integration, context-engineering, rag, ai-safety, multi-agents-collaboration, multi-agents, aiagents, aiagentframework, plug-and-play, adapter-registry, blackboard-pattern, agent-coordination, agent-handoffs, token-permissions, budget-tracking, cost-awareness, atomic-commits, hallucination-detection, content-quality-gate, behavioral-control-plane, governance-layer, compliance-enforcement, fan-out-fan-in, agent-observability, permission-gating, audit-trail, OpenClaw, Clawdbot, Moltbot, Clawdbot Swarm, Moltbot Security, Moltbot multi-agent, OpenClaw skills, AgentSkills, LangChain adapter, LangGraph, AutoGen adapter, AG2, CrewAI adapter, MCP adapter, LlamaIndex adapter, Semantic Kernel adapter, OpenAI Assistants adapter, Haystack adapter, DSPy adapter, Agno adapter, Phidata adapter, Dify, Flowise, PraisonAI, custom-adapter, AES-256 encryption, HMAC tokens, rate limiting, input sanitization, privilege escalation prevention, ClawHub, clawhub, agentic-rag, deep-research, workflow-orchestration, ai-assistant, ai-tools, developer-tools, open-source
652778

653779
</details>

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Network-AI includes built-in security features:
3737

3838
- **VirusTotal**: Benign (0/64 engines)
3939
- **OpenClaw Scanner**: Benign, HIGH CONFIDENCE
40-
- **ClawHub Scanner**: v3.2.1 -- justification bypass vulnerability resolved
40+
- **ClawHub Scanner**: v3.2.3 -- justification bypass vulnerability resolved
4141
- **Snyk**: All High/Medium findings resolved in v3.0.3
4242

4343
## Disclosure Policy

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "network-ai",
3-
"version": "3.2.2",
3+
"version": "3.2.3",
44
"description": "AI agent orchestration framework for TypeScript/Node.js - plug-and-play multi-agent coordination with 12 frameworks (LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw). Built-in security, swarm intelligence, and agentic workflow patterns.",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)