Give pAIchart your requirements and your topology; get back per-device config, the exact commands that prove it worked, and a rollback. An independent reviewer gates it, and hands off to the provisioning team.
Configuration change is automated for the network and platform teams who own multi-vendor change such as Cisco, Juniper, Arista, Terraform, Kubernetes. The agents read your live devices through a read-only MCP service you run. Your credentials never reach an LLM, and no config is ever pasted into a chat window.
Not hypothetically. An engineer with a change to make and a deadline pastes the running config into an AI chat, because it is the fastest way to get a draft. There is no redaction, no policy, and no record that it happened.
It is happening now, it is invisible, and it is rational — the chatbot writes good config, and an engineer with a deadline uses what works. Forbid it and you do not stop it; you lose the last thread of visibility into it. What no policy can hand back is control of the system prompt, a limit on which device is in scope, or a record afterwards of what was actually sent.
Community strings, keys, pre-shared secrets, credentials sitting in a Terraform state file — a copy-paste carries all of it, verbatim, to a third party. Nothing in the path redacts it, because there is nothing in the path at all.
Place a read-only MCP service in front of your infrastructure — network devices, cloud state, Kubernetes, GitOps. The agents read what is actually running, at the moment they need it. You own that service and its credentials. pAIchart never holds them.
Each node is a pipeline of specialist agents: Harvester → Designer → Author → Reviewer → Synthesize. Each edge carries a value that did not exist until runtime. Legs with no edge between them run in parallel; a dependency edge forces order and hands the real derived value forward.
The cloud leg authorises exactly the address range the network leg derived, because it reads what that leg produced. Vendor A to vendor B to cloud to GitOps, with no human reconciling the values by hand and no pre-agreed constants in the high-level design.
A program stops at the gates you define, and each one waits for the right human — a project manager on the plan, a network architect on the fabric change, a cloud specialist on the policy. Released from an AI client or the web UI, over one common code path.
Each node is separately configured. One agent only fetches; another reviews adversarially and can return needs-revision. Different models for different functions, chosen per agent, because the job of harvesting is not the job of judging.
Each leg’s own reviewer is blind to the others. It can confirm its own package is well-formed, but not that the range it authorised is the one the network leg actually derived. The integration reviewer runs once at the end across all the legs: drift between them, and collisions that only exist when you look at everything at once.
Every run ends the same way, in every domain: one reviewed change package, the same four parts each time.
ceos1 loopbacks in use .3 .28 .30 ceos2 loopbacks in use .13 .15 .29 all six read from the devices, not from a store
aws_s3_bucket_policy bucket acme-app-logs allow s3:PutObject where aws:SourceIp = 10.99.0.4/31 integration reviewer: APPROVED
Tier 1, arithmetic in code. Whether a derived range covers exactly its declared members is set membership, not judgement, so it runs deterministically against the harvested evidence — never against the package’s restated copy. And when a value is of a kind the checker does not implement, the platform says so and escalates rather than counting it as passed.
Tier 2, independent reviewers. One per leg against its own contract, plus the integration reviewer across all legs — running your domain’s own validators over the composed set (Batfish, terraform plan, kubeconform). It consumes those validators; it does not reimplement them.
Tier 3, the release gate. A deterministic AND: every leg approved, no containment violation, the integration reviewer approved, coverage complete. No confidence number appears in it.
Edit any agent’s instructions in the web app and the next execution uses them. No restart, no redeploy, no release. The same is true of the graph definition and its approval gates.
Define the graph, launch it, and release its gates from Claude Desktop, ChatGPT, or the web application — one common code path, so the behaviour is identical whichever door you came in.
Every run’s metadata and artifacts are browsable: what each agent saw, what it produced, which checks ran, which gate held and why. A run stays inspectable long after it finishes — the change reports on this site were pulled from the artifact store after the lab was gone.
Bring your own model API key per user, or run one at the organisation level. Register any MCP service through an MCP tool call — no ticket, no console.