{"id":1041,"date":"2026-10-18T13:19:18","date_gmt":"2026-10-18T13:19:18","guid":{"rendered":"https:\/\/perit.ai\/blogs\/?p=1041"},"modified":"2026-10-18T13:21:44","modified_gmt":"2026-10-18T13:21:44","slug":"the-security-boundary-ai-agents-keep-crossing","status":"publish","type":"post","link":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/","title":{"rendered":"The Security Boundary AI Agents Keep Crossing"},"content":{"rendered":"<p><em>\u00a0Why sandboxing, network isolation, and credential boundaries matter when AI agents execute real-world actions.<\/em><\/p>\n<h2 data-pm-slice=\"1 1 []\">The Moment an Agent Crosses the Line<\/h2>\n<p data-pm-slice=\"1 1 []\">An AI agent becomes fundamentally different from a conventional chatbot when it can act on the world around it. It can execute commands, read files, modify repositories, access APIs, and interact with websites. These capabilities make agents useful, but they also introduce a security problem that cannot be solved by improving the model&#8217;s answers alone.<\/p>\n<p>Consider an agent instructed to analyze a software project without modifying anything outside its working directory. The instruction explains what the agent should do, but it does not determine what the operating system will actually allow. If the process has broad filesystem permissions or unrestricted network access, a mistake in its decisions can quickly become a real security incident.<\/p>\n<p>This distinction matters as AI systems move from generating recommendations to executing multi-step tasks. In October 2026, Anthropic described unintended model actions observed during evaluations and internal use, including cases involving software flaws, real website submissions, and attempts to get around restrictions. These examples show why an agent&#8217;s intended behavior and its actual capabilities must be treated separately. <a style=\"color: #536f8a; text-decoration: none; font-weight: 600;\" href=\"#ref-1\">[1]<\/a><\/p>\n<p>The problem is not simply that a model might produce an incorrect answer. An agent connected to real tools can turn an incorrect decision into an external action. Once it has access to a filesystem, network connection, or credential, the consequences depend partly on the boundaries surrounding that access.<\/p>\n<p>Security therefore requires a different question. Instead of asking only whether an agent will follow its instructions, engineers must ask what the system will permit if it does not.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Why Instructions Are Not Security Controls<\/h2>\n<p data-pm-slice=\"1 1 []\">An instruction is a behavioral constraint. A security boundary is an enforcement mechanism. The two work best together, but they are not interchangeable.<\/p>\n<p>A model can be told not to access a sensitive directory, send information to an external server, or execute a destructive command. Such instructions can reduce unwanted behavior, but they do not automatically remove operating-system permissions, close network connections, or revoke credentials already available to the execution environment.<\/p>\n<p>This becomes especially important when an agent processes untrusted content. A webpage, repository file, issue description, or document may contain instructions that conflict with the user&#8217;s original request. This is one form of prompt injection. The content may influence the model&#8217;s decisions, but the consequences depend on which resources the agent can reach and what restrictions are enforced. <a style=\"color: #536f8a; text-decoration: none; font-weight: 600;\" href=\"#ref-3\">[3]<\/a><\/p>\n<p>A useful way to understand the problem is to separate <strong>intent, authorization, and enforcement<\/strong>. Intent describes what the agent is trying to accomplish. Authorization defines which actions it is permitted to perform. Enforcement ensures that actions outside those permissions are actually prevented.<\/p>\n<p>These layers address different failure modes. An agent may understand a request correctly but choose an unsafe implementation. An application may approve an action without checking whether its target is permitted. An execution environment may restrict file writes while leaving outbound network connections open.<br \/>\n<!-- Unauthorized-action rate --><\/p>\n<div style=\"margin: 24px 0; padding: 22px 24px; background: #F7F5F0; border: 1px solid #DCE3E7; border-left: 4px solid #536F8A; border-radius: 6px; text-align: center; color: #24364b;\">\n<div style=\"font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: #607d8b; margin-bottom: 18px; text-align: left;\"><strong>Unauthorized-Action Rate<\/strong><\/div>\n<div style=\"display: flex; justify-content: center; align-items: center; gap: 10px; flex-wrap: wrap; font-family: Georgia,'Times New Roman',serif; font-size: 23px;\"><span style=\"font-style: italic; white-space: nowrap;\">R<sub>u<\/sub> =<\/span><br \/>\n<span style=\"display: inline-flex; flex-direction: column; align-items: center; vertical-align: middle; font-size: 18px; line-height: 1.5;\"><br \/>\n<span style=\"padding: 0 8px 5px; border-bottom: 1px solid #24364B;\">Unauthorized actions executed<\/span><span style=\"padding: 5px 8px 0;\">Unauthorized actions attempted<\/span><br \/>\n<\/span><\/div>\n<p style=\"margin: 18px 0px 0px; font-size: 14px; line-height: 1.7; color: #536477; text-align: left;\">Measures the proportion of attempted unauthorized actions that succeed.<\/p>\n<\/div>\n<p>The equation will help quantify how often attempted unauthorized actions actually succeed. Its value depends on defining the denominator carefully and distinguishing attempted violations from completed ones.<\/p>\n<p>Consider a coding agent that needs to run tests, install dependencies, and inspect source files. It may need write access to a project directory, but that does not automatically justify access to SSH keys, browser profiles, unrelated repositories, or system configuration. Similarly, permission to read a file does not imply permission to upload its contents to an external service.<\/p>\n<p>The principle is straightforward. <strong>Give the agent the capabilities required for its task, not every capability available to the user running it.<\/strong><\/p>\n<h2 data-pm-slice=\"1 1 []\">Inside a Secure Agent Runtime<\/h2>\n<p data-pm-slice=\"1 1 []\">A secure agent runtime is the environment in which an agent&#8217;s requested operations are executed under defined restrictions. Depending on the implementation, it may use operating-system isolation, containers, virtual machines, restricted process identities, filesystem permissions, network policies, and controlled credential access.<a style=\"color: #536f8a; text-decoration: none; font-weight: 600;\" href=\"#ref-2\">[2]<\/a><\/p>\n<p>The purpose is not to make an agent incapable of useful work. It is to make the scope of its actions explicit and enforceable. A development agent should still be able to edit permitted files and run tests, but those operations should not automatically grant access to unrelated resources on the host machine.<\/p>\n<p>Filesystem isolation is one of the first boundaries to establish. The runtime should define which directories can be read, which can be modified, and which must remain inaccessible. Read-only mounts and narrowly defined writable directories can reduce the consequences of unexpected commands, although their effectiveness depends on the underlying operating system and configuration.<\/p>\n<p>Process isolation addresses another risk. An agent may launch a shell, interpreter, package manager, or helper program to complete a task. Restrictions must remain effective across the spawned process tree, rather than applying only to the initial process. Otherwise, a child process may inherit capabilities that the original security design intended to limit.<br \/>\n<!-- Flowchart: Secure Agent Runtime --><\/p>\n<div style=\"margin: 28px 0; font-family: Arial,Helvetica,sans-serif; color: #24364b;\">\n<div style=\"display: flex; flex-direction: column; align-items: center; gap: 0; text-align: center;\">\n<div style=\"width: 100%; max-width: 340px; padding: 15px 18px; border: 1px solid #C9D6DF; border-radius: 6px; background: #F7F5F0; font-size: 15px; font-weight: 600;\">AI agent requests an action<\/div>\n<div style=\"font-size: 25px; line-height: 1.4; color: #536f8a;\">\u2193<\/div>\n<div style=\"width: 100%; max-width: 340px; padding: 15px 18px; border: 1px solid #A9C4CB; border-radius: 6px; background: #EAF2F1; font-size: 15px; font-weight: 600;\">Validate identity, tool, and permissions<\/div>\n<div style=\"font-size: 25px; line-height: 1.4; color: #536f8a;\">\u2193<\/div>\n<div style=\"width: 100%; max-width: 340px; padding: 15px 18px; border: 1px solid #C9D6DF; border-radius: 6px; background: #F7F5F0; font-size: 15px; font-weight: 600;\">\n<p>Check runtime security policies<\/p>\n<div style=\"margin-top: 6px; font-size: 13px; line-height: 1.6; font-weight: 400; color: #536477;\">Filesystem access \u00b7 Network rules \u00b7 Credential scope<\/div>\n<\/div>\n<div style=\"font-size: 25px; line-height: 1.4; color: #536f8a;\">\u2193<\/div>\n<div style=\"width: 100%; max-width: 340px; padding: 15px 18px; border: 1px solid #A9C4CB; border-radius: 6px; background: #EAF2F1; font-size: 15px; font-weight: 600;\">Is the action authorized?<\/div>\n<div style=\"display: flex; justify-content: center; align-items: flex-start; gap: 22px; width: 100%; max-width: 540px; margin-top: 8px;\">\n<div style=\"display: flex; flex-direction: column; align-items: center; flex: 1; min-width: 0;\">\n<div style=\"font-size: 24px; color: #536f8a; line-height: 1.4;\">\u2199<\/div>\n<div style=\"font-size: 12px; font-weight: bold; letter-spacing: .5px; color: #536f8a; margin-bottom: 8px;\">YES<\/div>\n<div style=\"width: 100%; padding: 14px 10px; border: 1px solid #A9C4CB; border-radius: 6px; background: #EAF2F1; font-size: 14px; font-weight: 600;\">Execute inside the restricted runtime<\/div>\n<\/div>\n<div style=\"display: flex; flex-direction: column; align-items: center; flex: 1; min-width: 0;\">\n<div style=\"font-size: 24px; color: #536f8a; line-height: 1.4;\">\u2198<\/div>\n<div style=\"font-size: 12px; font-weight: bold; letter-spacing: .5px; color: #536f8a; margin-bottom: 8px;\">NO<\/div>\n<div style=\"width: 100%; padding: 14px 10px; border: 1px solid #D9C4BB; border-radius: 6px; background: #F5ECE7; font-size: 14px; font-weight: 600;\">Block the action and log the attempt<\/div>\n<\/div>\n<\/div>\n<div style=\"margin-top: 22px; max-width: 480px; font-size: 13px; line-height: 1.7; color: #607080;\">Security decisions are enforced by the runtime, not by the agent\u2019s instructions alone.<\/div>\n<\/div>\n<p style=\"margin: 10px 0 28px; font-size: 13px; line-height: 1.6; color: #607080; text-align: center;\"><strong><br \/>\nFigure 1.<\/strong> A policy-enforced execution path for AI agent actions.<\/p>\n<\/div>\n<p>The flowchart should show an agent requesting an action, the policy layer checking its permissions, and the request either proceeding within the sandbox or being blocked. Sensitive actions may require approval, but approval should never override mandatory security restrictions.<\/p>\n<p>Network isolation is equally important. Even when filesystem access is restricted, a process that can read sensitive information and make arbitrary outbound connections may be able to transmit that information elsewhere. Network controls should define which destinations are permitted and which connections must be blocked.<\/p>\n<p>There is a difference between discouraging network access and enforcing its absence. Environment variables that point traffic toward a disabled proxy may stop some ordinary tools, but a program can ignore those variables or use another networking mechanism. Stronger designs enforce restrictions through mechanisms such as firewall rules or other operating-system controls.<\/p>\n<p>Credential boundaries complete this picture. Agents often need tokens or API access to perform legitimate tasks, but credentials should not become unrestricted resources available to every process the agent launches. Scoped credentials, separate execution identities, or trusted services that supply secrets only to approved requests can reduce exposure.<\/p>\n<p>The strongest architecture combines these controls rather than treating any one of them as sufficient. Filesystem restrictions limit what an agent can read or modify. Network controls limit where it can communicate. Process isolation constrains execution, while credential separation limits what misdirected code can do with authenticated access.<\/p>\n<h2 data-pm-slice=\"1 1 []\">The Hidden Risk in Network Access and Credentials<\/h2>\n<p data-pm-slice=\"1 1 []\">Network access creates a difficult security trade-off because it is both a common requirement and a potential route for data exfiltration. An agent may need to download packages, retrieve documentation, query an API, or access a remote development service. Blocking every connection can make these workflows unusable, while allowing unrestricted outbound traffic can expose sensitive information.<\/p>\n<p>A practical design begins by identifying the destinations the workload actually requires. Approved endpoints can be allowed while unnecessary outbound connections are denied. Where possible, the policy should be enforced outside the agent-generated code so that a process cannot bypass it simply by choosing a different HTTP client or opening a socket directly.<\/p>\n<p>Destination restrictions also need careful design. A broad domain allowlist may permit more access than intended, particularly when a trusted service hosts user-controlled content or redirects requests elsewhere. The security policy should account for the actual connection path instead of assuming that every request to an approved service is harmless.<\/p>\n<p>Credentials introduce another boundary problem. An agent that can read a secret may include it in generated output, command arguments, files, or network requests. Even if the model never receives the credential directly in its conversational context, code executed within the same environment may still be able to access it.<\/p>\n<p>Keeping credentials outside the agent&#8217;s direct execution environment can help. A trusted application or credential broker can authenticate an approved request without exposing a long-lived secret to the process making it. The broker can also restrict which destinations or operations are allowed to use the credential. <a style=\"color: #536f8a; text-decoration: none; font-weight: 600;\" href=\"#ref-4\">[4]<\/a><br \/>\n<!-- Formula 2: Expected Loss --><\/p>\n<div style=\"margin: 24px 0; padding: 24px; background: #F7F5F0; border: 1px solid #DCE3E7; border-left: 4px solid #536F8A; border-radius: 6px; color: #24364b;\">\n<div style=\"font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: #607d8b; margin-bottom: 24px; text-align: left;\"><strong>Expected Loss<\/strong><\/div>\n<div style=\"display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; font-family: Georgia,'Times New Roman',serif; font-size: 26px; line-height: 1.3;\"><span style=\"font-style: italic; white-space: nowrap;\">E[L] =<\/span><span style=\"display: inline-flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;\"><span style=\"font-size: 13px; margin-bottom: 1px;\">n<\/span><span style=\"font-size: 43px; line-height: 0.95;\">\u2211<\/span><span style=\"font-size: 13px; margin-top: 2px;\">i = 1<\/span><br \/>\n<\/span><span style=\"font-style: italic; white-space: nowrap;\">P<sub>i<\/sub> I<sub>i<\/sub><\/span><\/div>\n<p style=\"margin: 22px 0px 0px; font-size: 14px; line-height: 1.7; color: #536477; text-align: left;\">Estimates potential loss by combining the probability and impact of individual threat scenarios.<\/p>\n<\/div>\n<p>This equation provides a simplified way to prioritize threats by considering their probability and potential impact. It is a risk-estimation model rather than a guarantee of actual loss.<\/p>\n<p>No single control eliminates every risk. A sandbox may restrict direct network access but still permit an approved service that returns sensitive information. A credential broker may protect a long-lived token but still authorize an operation that exposes data. A firewall may block unauthorized destinations without preventing misuse of an approved endpoint.<\/p>\n<p>The objective is to reduce the number of paths through which an unintended action can become a consequential one. Every capability granted to an agent should have a clear purpose, a defined scope, and an enforcement mechanism appropriate to the risk.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Comparing Security Controls in Practice<\/h2>\n<p data-pm-slice=\"1 1 []\">Different controls protect different parts of the execution environment. Instruction-level restrictions can guide behavior, application-level permissions can govern tool calls, and operating-system mechanisms can constrain what a running process can access. Their effectiveness depends on the threat model and implementation.<\/p>\n<p><!-- Table 1: Security Controls and Their Limitations --><\/p>\n<div style=\"margin: 28px 0 0; font-family: Arial,Helvetica,sans-serif; color: #24364b;\">\n<div style=\"overflow-x: auto; border: 1px solid #DCE3E7; border-radius: 6px; background: #F7F5F0;\">\n<table style=\"width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.7; text-align: left;\">\n<thead>\n<tr style=\"background: #263D57; color: #ffffff;\">\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">Security control<\/th>\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">What it protects<\/th>\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">Main limitation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background: #F7F5F0;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Tool permissions<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Limits which tools and actions an agent can invoke.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">An exposed tool may still have broader permissions than necessary.<\/td>\n<\/tr>\n<tr style=\"background: #F0F2F2;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Filesystem isolation<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Restricts which files and directories the agent can read or modify.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Exposed mounts or incorrect permissions can leave sensitive files accessible.<\/td>\n<\/tr>\n<tr style=\"background: #F7F5F0;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Network restrictions<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Controls outbound connections to external services and destinations.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Broad allowlists may still permit unwanted data transfers.<\/td>\n<\/tr>\n<tr style=\"background: #F0F2F2;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Credential isolation<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Limits direct access to API keys, tokens, and other secrets.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Secrets may still be exposed through authorized operations or permitted channels.<\/td>\n<\/tr>\n<tr style=\"background: #F7F5F0;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Human approval<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Adds oversight before sensitive or irreversible actions.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Inconsistent approval checks cannot replace technical restrictions.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><!-- Caption below the table --><\/p>\n<p style=\"margin: 10px 0 28px; font-size: 13px; line-height: 1.6; color: #607080; text-align: center;\"><strong>Table 1.<\/strong> Security Controls and Their Limitations<\/p>\n<\/div>\n<p>The table should compare each control, what it protects, and its main limitation. This will make it easier to see why a single safeguard cannot cover every possible failure.<\/p>\n<p>The most important distinction is between a policy that depends on a process voluntarily following a rule and one enforced by an independent mechanism. Instructions may discourage an agent from accessing an unrelated directory, but filesystem permissions can prevent the operation even when the agent attempts it.<\/p>\n<p>This does not mean that every workload requires a full virtual machine or that application-level checks are useless. The appropriate level of isolation depends on the sensitivity of the data, the capabilities available to the agent, and the consequences of a violation. A narrowly scoped internal tool may require a different design from an agent that executes arbitrary code or handles confidential customer records.<\/p>\n<p>The controls should also be evaluated as a system. A restricted filesystem combined with unrestricted networking may leave a path for information to escape. A network-isolated process with broad access to local secrets may still cause damage within its environment. Layered security works because different controls address different paths, not because the same check is repeated everywhere.<br \/>\n<!-- Table 2: Comparing Agent Security Architectures --><\/p>\n<div style=\"margin: 28px 0 0; font-family: Arial,Helvetica,sans-serif; color: #24364b;\">\n<div style=\"overflow-x: auto; border: 1px solid #DCE3E7; border-radius: 6px; background: #F7F5F0;\">\n<table style=\"width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.7; text-align: left;\">\n<thead>\n<tr style=\"background: #263D57; color: #ffffff;\">\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">Security approach<\/th>\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">Enforcement boundary<\/th>\n<th style=\"padding: 14px 16px; font-weight: 600; border: 1px solid #263D57;\">Trade-off<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background: #F7F5F0;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Instruction-only restrictions<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Model behavior and generated decisions.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Easy to configure, but instructions alone cannot enforce operating-system or network restrictions.<\/td>\n<\/tr>\n<tr style=\"background: #F0F2F2;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Application-level permission checks<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Tool calls and application-defined actions.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Provides explicit authorization, but depends on complete and correctly implemented checks.<\/td>\n<\/tr>\n<tr style=\"background: #F7F5F0;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">OS-level sandboxing<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Processes, filesystem access, and other operating-system resources.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Limits the impact of a compromised process, but does not automatically control every network destination or secret.<\/td>\n<\/tr>\n<tr style=\"background: #F0F2F2;\">\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7; font-weight: 600;\">Layered runtime controls<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Combines tool authorization, sandboxing, network policy, and credential isolation.<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #DCE3E7;\">Offers broader defense in depth, but requires careful configuration and ongoing testing.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><!-- Caption below the table --><\/p>\n<p style=\"margin: 10px 0 28px; font-size: 13px; line-height: 1.6; color: #607080; text-align: center;\"><strong>Table 2.<\/strong> Comparing Security Architectures for AI Agents<\/p>\n<\/div>\n<p>A well-designed runtime should make its security assumptions explicit. Engineers should know which processes are isolated, which resources are shared, which destinations are reachable, where credentials are stored, and which actions require additional authorization. Without that clarity, a sandbox can create a false sense of security while leaving critical capabilities exposed.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Measuring Whether the Boundary Holds<\/h2>\n<p data-pm-slice=\"1 1 []\">Security claims should be evaluated against defined threats rather than inferred from a successful demonstration. An agent completing a legitimate task shows that the system can perform useful work. It does not establish that the same system can prevent unauthorized access under adversarial conditions.<\/p>\n<p>A meaningful evaluation should define the resources that must remain protected and the actions that are forbidden. Test cases might include attempts to modify files outside an approved directory, access a restricted credential, connect to a prohibited destination, or pass sensitive data through an unapproved channel. These tests should run in a controlled environment with synthetic data and explicit authorization.<br \/>\n<!-- Formula 3: Containment Rate --><\/p>\n<div style=\"margin: 24px 0; padding: 24px; background: #F7F5F0; border: 1px solid #DCE3E7; border-left: 4px solid #536F8A; border-radius: 6px; color: #24364b;\">\n<div style=\"font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: #607d8b; margin-bottom: 24px; text-align: left;\"><strong>Containment Rate<\/strong><\/div>\n<div style=\"display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; font-family: Georgia,'Times New Roman',serif; font-size: 25px; line-height: 1.5;\"><span style=\"font-style: italic; white-space: nowrap;\">C = 1 \u2212<\/span><span style=\"display: inline-flex; flex-direction: column; align-items: stretch; justify-content: center; text-align: center; font-size: 17px; line-height: 1.5; min-width: 210px;\"><span style=\"padding: 0 10px 8px; border-bottom: 1px solid #24364B;\"><br \/>\nSuccessful violations<\/span><span style=\"padding: 8px 10px 0;\">Violation attempts<br \/>\n<\/span><br \/>\n<\/span><\/div>\n<p style=\"margin: 22px 0px 0px; font-size: 14px; line-height: 1.7; color: #536477; text-align: left;\">Measures the proportion of violation attempts that do not result in a successful breach.<\/p>\n<\/div>\n<p>The formula should measure how often attempted violations are prevented. The evaluation must clearly define a successful violation and distinguish it from an attempted action that was blocked before it caused harm.<\/p>\n<p>Security testing should also examine the range of paths an agent can use. A restriction that blocks one command but allows the same operation through another tool may provide less protection than expected. Testing should account for child processes, alternative execution paths, and changes in the runtime configuration.<\/p>\n<p>Security must also be considered alongside usability. If a configuration blocks nearly every operation, it may appear restrictive without being practical for real work. Legitimate-task completion and false-block rate can help reveal this trade-off, provided both are measured against clearly defined test cases.<\/p>\n<figure id=\"attachment_1042\" aria-describedby=\"caption-attachment-1042\" style=\"width: 1158px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1042\" src=\"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/Figure-2-\u2014-Coverage-matrix@1x.webp\" alt=\"\" width=\"1158\" height=\"772\" \/><figcaption id=\"caption-attachment-1042\" class=\"wp-caption-text\"><strong>Figure 2.<\/strong> Security coverage matrix showing how AI agent controls enforce different security boundaries.<\/figcaption><\/figure>\n<p>The graph should use comparable published data or results from a clearly described controlled experiment. If no defensible dataset exists, we should not invent numbers to fill the chart. We can instead use a sourced comparison or run a small, reproducible experiment and clearly label the results.<\/p>\n<p>The goal is not to produce one universal security score. It is to identify which boundaries hold under which conditions, what legitimate capabilities are lost, and where additional enforcement is needed. That evidence can inform deployment decisions more reliably than a general claim that an agent is safe.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Security Must Exist Outside the Model<\/h2>\n<p data-pm-slice=\"1 1 []\">AI agents are becoming more capable of interacting with real systems, but greater capability does not remove the need for conventional security engineering. The more resources an agent can access, the more important it becomes to define and enforce the limits of that access.<\/p>\n<p>The most reliable approach is to treat the model as one component inside a larger security architecture. Instructions communicate intent, application policies authorize actions, and the execution environment enforces restrictions independently of the model&#8217;s decisions. Network controls and credential isolation can further reduce the consequences of an unexpected action.<\/p>\n<p>This approach does not eliminate every possible failure. Isolation can be misconfigured, approved services can be misused, and legitimate permissions can still be broader than necessary. Security boundaries must therefore be designed around realistic threats, tested against prohibited actions, and reviewed as the agent&#8217;s capabilities and dependencies change.<br \/>\n<!-- Lined Paragraph Callout --><\/p>\n<div style=\"margin: 28px 0; padding: 16px 20px; background: #F7F5F0; border-left: 3px solid #536F8A; border-top: 1px solid #DCE3E7; border-bottom: 1px solid #DCE3E7; color: #24364b;\">\n<p style=\"margin: 0; font-family: Arial,Helvetica,sans-serif; font-size: 15px; line-height: 1.85;\">An AI agent may make decisions, interpret instructions, and initiate complex actions, but it should never define the limits of its own authority. Those limits must be enforced by the systems around it, from filesystem and network restrictions to narrowly scoped credentials. Even when an agent behaves unexpectedly, the surrounding infrastructure should prevent that behavior from becoming an unauthorized operation. This is the foundation of a security boundary that can be tested and trusted.<\/p>\n<\/div>\n<p>The central engineering lesson is that an agent should not receive unrestricted capabilities simply because it has been instructed to behave responsibly. Its environment should determine what it can access, which actions it can perform, and where its authority ends.<\/p>\n<p>As AI systems move deeper into software development, enterprise workflows, and other environments containing valuable data, that distinction will become increasingly important. The objective is not to prevent agents from acting. It is to ensure that when they act, the consequences remain within the boundaries the system was designed to enforce.<\/p>\n<h2>References<\/h2>\n<p><strong style=\"color: inherit; font-family: inherit; font-size: inherit;\">[1] Anthropic.<br \/>\n<\/strong><span style=\"color: inherit; font-family: inherit; font-size: inherit;\">Investigating unintended model actions in our evaluations and internal use, 2026.<br \/>\n<\/span><a style=\"font-family: inherit; font-size: inherit;\" href=\"https:\/\/www.anthropic.com\/research\/investigating-unintended-model-actions\" target=\"_blank\" rel=\"noopener noreferrer\">Read source<\/a><\/p>\n<p><strong style=\"color: inherit; font-family: inherit; font-size: inherit;\">[2] OpenAI.<br \/>\n<\/strong><span style=\"color: inherit; font-family: inherit; font-size: inherit;\">Building a safe, effective sandbox to enable Codex on Windows, 2026.<br \/>\n<\/span><a style=\"font-family: inherit; font-size: inherit;\" href=\"https:\/\/openai.com\/index\/building-codex-windows-sandbox\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read source<\/a><\/p>\n<p><strong style=\"color: inherit; font-family: inherit; font-size: inherit;\">[3] OWASP GenAI Security Project.<br \/>\n<\/strong><span style=\"color: inherit; font-family: inherit; font-size: inherit;\">LLM06:2025 Excessive Agency.<br \/>\n<\/span><a style=\"font-family: inherit; font-size: inherit;\" href=\"https:\/\/genai.owasp.org\/llmrisk\/llm062025-excessive-agency\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read source<\/a><\/p>\n<p><strong style=\"color: inherit; font-family: inherit; font-size: inherit;\">[4] NIST.<br \/>\n<\/strong><span style=\"color: inherit; font-family: inherit; font-size: inherit;\">Zero Trust Architecture, SP 800-207.<br \/>\n<\/span><a style=\"font-family: inherit; font-size: inherit;\" href=\"https:\/\/doi.org\/10.6028\/NIST.SP.800-207\" target=\"_blank\" rel=\"noopener noreferrer\">Read source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0Why sandboxing, network isolation, and credential boundaries matter when AI agents execute real-world actions. The Moment an Agent Crosses the Line An AI agent becomes fundamentally different from a conventional\u2026<\/p>\n","protected":false},"author":1,"featured_media":1047,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-1041","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Security Boundary AI Agents Keep Crossing - Perit Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Security Boundary AI Agents Keep Crossing - Perit Blog\" \/>\n<meta property=\"og:description\" content=\"\u00a0Why sandboxing, network isolation, and credential boundaries matter when AI agents execute real-world actions. The Moment an Agent Crosses the Line An AI agent becomes fundamentally different from a conventional\u2026\" \/>\n<meta property=\"og:url\" content=\"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/\" \/>\n<meta property=\"og:site_name\" content=\"Perit Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-18T13:19:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-18T13:21:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Kshitij@Perit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kshitij@Perit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/\"},\"author\":{\"name\":\"Kshitij@Perit\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/#\\\/schema\\\/person\\\/954939b1549e8f3089b46850881d9775\"},\"headline\":\"The Security Boundary AI Agents Keep Crossing\",\"datePublished\":\"2026-10-18T13:19:18+00:00\",\"dateModified\":\"2026-10-18T13:21:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/\"},\"wordCount\":2766,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/AI-Sandbox-Boundary-Illustration.webp\",\"articleSection\":[\"Artificial Intelligence\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/\",\"url\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/\",\"name\":\"The Security Boundary AI Agents Keep Crossing - Perit Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/AI-Sandbox-Boundary-Illustration.webp\",\"datePublished\":\"2026-10-18T13:19:18+00:00\",\"dateModified\":\"2026-10-18T13:21:44+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/#\\\/schema\\\/person\\\/954939b1549e8f3089b46850881d9775\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/AI-Sandbox-Boundary-Illustration.webp\",\"contentUrl\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/AI-Sandbox-Boundary-Illustration.webp\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/the-security-boundary-ai-agents-keep-crossing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Security Boundary AI Agents Keep Crossing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/#website\",\"url\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/\",\"name\":\"Perit Blog\",\"description\":\"Frontier training data, collected and graded by people who do the work.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/#\\\/schema\\\/person\\\/954939b1549e8f3089b46850881d9775\",\"name\":\"Kshitij@Perit\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-Perit-Logo-150x150.png\",\"url\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-Perit-Logo-150x150.png\",\"contentUrl\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-Perit-Logo-150x150.png\",\"caption\":\"Kshitij@Perit\"},\"sameAs\":[\"https:\\\/\\\/perit.ai\\\/blogs\"],\"url\":\"https:\\\/\\\/perit.ai\\\/blogs\\\/author\\\/perit_ops\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Security Boundary AI Agents Keep Crossing - Perit Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/","og_locale":"en_US","og_type":"article","og_title":"The Security Boundary AI Agents Keep Crossing - Perit Blog","og_description":"\u00a0Why sandboxing, network isolation, and credential boundaries matter when AI agents execute real-world actions. The Moment an Agent Crosses the Line An AI agent becomes fundamentally different from a conventional\u2026","og_url":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/","og_site_name":"Perit Blog","article_published_time":"2026-10-18T13:19:18+00:00","article_modified_time":"2026-10-18T13:21:44+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp","type":"image\/webp"}],"author":"Kshitij@Perit","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kshitij@Perit","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#article","isPartOf":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/"},"author":{"name":"Kshitij@Perit","@id":"https:\/\/perit.ai\/blogs\/#\/schema\/person\/954939b1549e8f3089b46850881d9775"},"headline":"The Security Boundary AI Agents Keep Crossing","datePublished":"2026-10-18T13:19:18+00:00","dateModified":"2026-10-18T13:21:44+00:00","mainEntityOfPage":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/"},"wordCount":2766,"commentCount":0,"image":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#primaryimage"},"thumbnailUrl":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp","articleSection":["Artificial Intelligence"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/","url":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/","name":"The Security Boundary AI Agents Keep Crossing - Perit Blog","isPartOf":{"@id":"https:\/\/perit.ai\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#primaryimage"},"image":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#primaryimage"},"thumbnailUrl":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp","datePublished":"2026-10-18T13:19:18+00:00","dateModified":"2026-10-18T13:21:44+00:00","author":{"@id":"https:\/\/perit.ai\/blogs\/#\/schema\/person\/954939b1549e8f3089b46850881d9775"},"breadcrumb":{"@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#primaryimage","url":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp","contentUrl":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/10\/AI-Sandbox-Boundary-Illustration.webp","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/perit.ai\/blogs\/the-security-boundary-ai-agents-keep-crossing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/perit.ai\/blogs\/"},{"@type":"ListItem","position":2,"name":"The Security Boundary AI Agents Keep Crossing"}]},{"@type":"WebSite","@id":"https:\/\/perit.ai\/blogs\/#website","url":"https:\/\/perit.ai\/blogs\/","name":"Perit Blog","description":"Frontier training data, collected and graded by people who do the work.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/perit.ai\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/perit.ai\/blogs\/#\/schema\/person\/954939b1549e8f3089b46850881d9775","name":"Kshitij@Perit","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/09\/cropped-Perit-Logo-150x150.png","url":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/09\/cropped-Perit-Logo-150x150.png","contentUrl":"https:\/\/perit.ai\/blogs\/wp-content\/uploads\/2026\/09\/cropped-Perit-Logo-150x150.png","caption":"Kshitij@Perit"},"sameAs":["https:\/\/perit.ai\/blogs"],"url":"https:\/\/perit.ai\/blogs\/author\/perit_ops\/"}]}},"_links":{"self":[{"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/posts\/1041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/comments?post=1041"}],"version-history":[{"count":3,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/posts\/1041\/revisions"}],"predecessor-version":[{"id":1046,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/posts\/1041\/revisions\/1046"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/media\/1047"}],"wp:attachment":[{"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/media?parent=1041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/categories?post=1041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/perit.ai\/blogs\/wp-json\/wp\/v2\/tags?post=1041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}