agent-os-kernel 1.1.0__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent_os/__init__.py +66 -4
- agent_os/agents_compat.py +286 -0
- agent_os/base_agent.py +308 -0
- agent_os/cli.py +1079 -19
- agent_os/integrations/__init__.py +37 -2
- agent_os/integrations/openai_adapter.py +502 -0
- agent_os/integrations/semantic_kernel_adapter.py +569 -0
- agent_os/stateless.py +349 -0
- agent_os_kernel-1.2.0.dist-info/METADATA +676 -0
- agent_os_kernel-1.2.0.dist-info/RECORD +1053 -0
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/entry_points.txt +0 -1
- modules/amb/.github/workflows/ci.yml +102 -0
- modules/amb/.github/workflows/publish.yml +146 -0
- modules/amb/.gitignore +134 -0
- modules/amb/CHANGELOG.md +118 -0
- modules/amb/CONTRIBUTING.md +141 -0
- modules/amb/LICENSE +21 -0
- modules/amb/README.md +188 -0
- modules/amb/amb_core/__init__.py +175 -0
- modules/amb/amb_core/adapters/__init__.py +55 -0
- modules/amb/amb_core/adapters/aws_sqs_broker.py +374 -0
- modules/amb/amb_core/adapters/azure_servicebus_broker.py +338 -0
- modules/amb/amb_core/adapters/kafka_broker.py +258 -0
- modules/amb/amb_core/adapters/nats_broker.py +283 -0
- modules/amb/amb_core/adapters/rabbitmq_broker.py +233 -0
- modules/amb/amb_core/adapters/redis_broker.py +260 -0
- modules/amb/amb_core/broker.py +143 -0
- modules/amb/amb_core/bus.py +479 -0
- modules/amb/amb_core/cloudevents.py +507 -0
- modules/amb/amb_core/dlq.py +343 -0
- modules/amb/amb_core/hf_utils.py +534 -0
- modules/amb/amb_core/memory_broker.py +408 -0
- modules/amb/amb_core/models.py +139 -0
- modules/amb/amb_core/persistence.py +527 -0
- modules/amb/amb_core/schema.py +292 -0
- modules/amb/amb_core/tracing.py +356 -0
- modules/amb/examples/advanced_features.py +223 -0
- modules/amb/examples/backpressure_demo.py +225 -0
- modules/amb/examples/basic_usage.py +117 -0
- modules/amb/examples/tracing_demo.py +104 -0
- modules/amb/experiments/README.md +52 -0
- modules/amb/experiments/reproduce_results.py +467 -0
- modules/amb/experiments/results.json +324 -0
- modules/amb/paper/README.md +40 -0
- modules/amb/paper/paper.tex +365 -0
- modules/amb/paper/whitepaper.md +377 -0
- modules/amb/pyproject.toml +117 -0
- modules/amb/tests/__init__.py +1 -0
- modules/amb/tests/test_backpressure_priority.py +280 -0
- modules/amb/tests/test_bus.py +198 -0
- modules/amb/tests/test_cloudevents.py +443 -0
- modules/amb/tests/test_features.py +531 -0
- modules/amb/tests/test_models.py +74 -0
- modules/amb/tests/test_tracing.py +254 -0
- modules/atr/.github/workflows/ci.yml +101 -0
- modules/atr/.github/workflows/publish.yml +140 -0
- modules/atr/.gitignore +134 -0
- modules/atr/.pre-commit-config.yaml +37 -0
- modules/atr/CHANGELOG.md +39 -0
- modules/atr/CONTRIBUTING.md +96 -0
- modules/atr/IMPLEMENTATION_SUMMARY.md +143 -0
- modules/atr/README.md +180 -0
- modules/atr/atr/__init__.py +638 -0
- modules/atr/atr/access.py +346 -0
- modules/atr/atr/composition.py +643 -0
- modules/atr/atr/decorator.py +355 -0
- modules/atr/atr/executor.py +382 -0
- modules/atr/atr/health.py +555 -0
- modules/atr/atr/hf_utils.py +447 -0
- modules/atr/atr/injection.py +420 -0
- modules/atr/atr/metrics.py +438 -0
- modules/atr/atr/policies.py +401 -0
- modules/atr/atr/py.typed +2 -0
- modules/atr/atr/registry.py +450 -0
- modules/atr/atr/schema.py +478 -0
- modules/atr/atr/tools/safe/__init__.py +73 -0
- modules/atr/atr/tools/safe/calculator.py +380 -0
- modules/atr/atr/tools/safe/datetime_tool.py +441 -0
- modules/atr/atr/tools/safe/file_reader.py +400 -0
- modules/atr/atr/tools/safe/http_client.py +314 -0
- modules/atr/atr/tools/safe/json_parser.py +372 -0
- modules/atr/atr/tools/safe/text_tool.py +526 -0
- modules/atr/atr/tools/safe/toolkit.py +173 -0
- modules/atr/docs/PYPI_SETUP.md +113 -0
- modules/atr/examples/README.md +27 -0
- modules/atr/examples/demo.py +144 -0
- modules/atr/examples/sandbox_demo.py +218 -0
- modules/atr/experiments/README.md +69 -0
- modules/atr/experiments/reproduce_results.py +509 -0
- modules/atr/experiments/results/.gitkeep +0 -0
- modules/atr/experiments/results/results_20260123_140334.json +71 -0
- modules/atr/paper/README.md +36 -0
- modules/atr/paper/figures/.gitkeep +0 -0
- modules/atr/paper/references.bib +84 -0
- modules/atr/paper/structure.tex +293 -0
- modules/atr/paper/whitepaper.md +234 -0
- modules/atr/pyproject.toml +148 -0
- modules/atr/requirements.txt +1 -0
- modules/atr/setup.py +30 -0
- modules/atr/tests/__init__.py +1 -0
- modules/atr/tests/test_decorator.py +317 -0
- modules/atr/tests/test_executor.py +245 -0
- modules/atr/tests/test_integration_executor.py +184 -0
- modules/atr/tests/test_registry.py +312 -0
- modules/atr/tests/test_schema.py +182 -0
- modules/atr/tests/test_v2_features.py +708 -0
- modules/caas/.dockerignore +63 -0
- modules/caas/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- modules/caas/.github/ISSUE_TEMPLATE/custom.md +10 -0
- modules/caas/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- modules/caas/.github/workflows/ci.yml +100 -0
- modules/caas/.github/workflows/lint.yml +39 -0
- modules/caas/.github/workflows/publish-pypi.yml +124 -0
- modules/caas/.gitignore +73 -0
- modules/caas/.pre-commit-config.yaml +33 -0
- modules/caas/CHANGELOG.md +58 -0
- modules/caas/CONTRIBUTING.md +346 -0
- modules/caas/Dockerfile +41 -0
- modules/caas/LICENSE +21 -0
- modules/caas/MANIFEST.in +11 -0
- modules/caas/README.md +158 -0
- modules/caas/benchmarks/README.md +255 -0
- modules/caas/benchmarks/create_hf_dataset.py +502 -0
- modules/caas/benchmarks/data/sample_corpus/README.md +86 -0
- modules/caas/benchmarks/data/sample_corpus/auth_module.py +211 -0
- modules/caas/benchmarks/data/sample_corpus/contribution_guide.md +185 -0
- modules/caas/benchmarks/data/sample_corpus/remote_work_policy.html +57 -0
- modules/caas/benchmarks/hf_dataset/README.md +214 -0
- modules/caas/benchmarks/hf_dataset/caas_benchmark_corpus.py +73 -0
- modules/caas/benchmarks/hf_dataset/corpus_preview.json +193 -0
- modules/caas/benchmarks/results/README.md +66 -0
- modules/caas/benchmarks/results/evaluation_2026-01-20.json +121 -0
- modules/caas/benchmarks/run_evaluation.py +561 -0
- modules/caas/benchmarks/statistical_tests.py +289 -0
- modules/caas/benchmarks/verify_sample_corpus.py +83 -0
- modules/caas/docker-compose.yml +38 -0
- modules/caas/docs/CONTEXT_TRIAD.md +462 -0
- modules/caas/docs/CONTRIBUTING.md +346 -0
- modules/caas/docs/ETHICS_AND_LIMITATIONS.md +336 -0
- modules/caas/docs/HEURISTIC_ROUTER.md +442 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY.md +363 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_CONTEXT_TRIAD.md +277 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_HEURISTIC_ROUTER.md +231 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_METADATA_INJECTION.md +258 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_PRAGMATIC_TRUTH.md +212 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_TRUST_GATEWAY.md +319 -0
- modules/caas/docs/LAYER_1_PRIMITIVE.md +202 -0
- modules/caas/docs/METADATA_INJECTION.md +404 -0
- modules/caas/docs/PRAGMATIC_TRUTH.md +431 -0
- modules/caas/docs/RELATED_WORK.md +312 -0
- modules/caas/docs/RELEASE_CHECKLIST.md +219 -0
- modules/caas/docs/RELEASE_GUIDE.md +285 -0
- modules/caas/docs/REPRODUCIBILITY.md +386 -0
- modules/caas/docs/SLIDING_WINDOW.md +387 -0
- modules/caas/docs/STRUCTURE_AWARE_INDEXING.md +158 -0
- modules/caas/docs/TESTING.md +259 -0
- modules/caas/docs/THREAT_MODEL.md +247 -0
- modules/caas/docs/TRUST_GATEWAY.md +575 -0
- modules/caas/docs/VFS.md +298 -0
- modules/caas/examples/agents/enterprise_security_agent.py +414 -0
- modules/caas/examples/agents/intelligent_document_analyzer.py +380 -0
- modules/caas/examples/demos/demo.py +309 -0
- modules/caas/examples/demos/demo_context_triad.py +225 -0
- modules/caas/examples/demos/demo_conversation_manager.py +285 -0
- modules/caas/examples/demos/demo_heuristic_router.py +133 -0
- modules/caas/examples/demos/demo_metadata_injection.py +198 -0
- modules/caas/examples/demos/demo_pragmatic_truth.py +303 -0
- modules/caas/examples/demos/demo_structure_aware.py +140 -0
- modules/caas/examples/demos/demo_time_decay.py +247 -0
- modules/caas/examples/demos/demo_trust_gateway.py +383 -0
- modules/caas/examples/multi_agent/README.md +159 -0
- modules/caas/examples/multi_agent/research_team.py +369 -0
- modules/caas/examples/multi_agent/vfs_collaboration.py +393 -0
- modules/caas/examples/usage/auth_module.py +142 -0
- modules/caas/examples/usage/usage_example.py +173 -0
- modules/caas/experiments/README.md +42 -0
- modules/caas/experiments/reproduce_results.py +462 -0
- modules/caas/paper/ARXIV_METADATA.md +145 -0
- modules/caas/paper/ARXIV_README.md +47 -0
- modules/caas/paper/CHECKLIST.md +103 -0
- modules/caas/paper/GITHUB_RELEASE_NOTES.md +105 -0
- modules/caas/paper/README.md +71 -0
- modules/caas/paper/abstract.md +24 -0
- modules/caas/paper/arxiv_submission.tar +0 -0
- modules/caas/paper/arxiv_submission.zip +0 -0
- modules/caas/paper/build_pdf.py +355 -0
- modules/caas/paper/experiments.md +149 -0
- modules/caas/paper/figures/.gitkeep +0 -0
- modules/caas/paper/figures/README.md +237 -0
- modules/caas/paper/figures/fig1_system_architecture.png +0 -0
- modules/caas/paper/figures/fig1_system_architecture.svg +198 -0
- modules/caas/paper/figures/fig2_context_triad.png +0 -0
- modules/caas/paper/figures/fig2_context_triad.svg +105 -0
- modules/caas/paper/figures/fig3_ablation_results.png +0 -0
- modules/caas/paper/figures/fig3_ablation_results.svg +113 -0
- modules/caas/paper/figures/fig4_routing_latency.png +0 -0
- modules/caas/paper/figures/fig4_routing_latency.svg +97 -0
- modules/caas/paper/intro.md +103 -0
- modules/caas/paper/latex/figures/fig1_system_architecture.png +0 -0
- modules/caas/paper/latex/figures/fig2_context_triad.png +0 -0
- modules/caas/paper/latex/figures/fig3_ablation_results.png +0 -0
- modules/caas/paper/latex/figures/fig4_routing_latency.png +0 -0
- modules/caas/paper/latex/main.tex +468 -0
- modules/caas/paper/latex/references.bib +140 -0
- modules/caas/paper/method.md +350 -0
- modules/caas/paper/outline.md +123 -0
- modules/caas/paper/related_work.md +101 -0
- modules/caas/paper/tables/.gitkeep +0 -0
- modules/caas/paper/tables/results_tables.md +50 -0
- modules/caas/pyproject.toml +172 -0
- modules/caas/requirements.txt +11 -0
- modules/caas/src/caas/__init__.py +232 -0
- modules/caas/src/caas/api/__init__.py +7 -0
- modules/caas/src/caas/api/server.py +1326 -0
- modules/caas/src/caas/caching.py +832 -0
- modules/caas/src/caas/cli.py +208 -0
- modules/caas/src/caas/conversation.py +221 -0
- modules/caas/src/caas/decay.py +118 -0
- modules/caas/src/caas/detection/__init__.py +7 -0
- modules/caas/src/caas/detection/detector.py +236 -0
- modules/caas/src/caas/enrichment.py +127 -0
- modules/caas/src/caas/gateway/__init__.py +24 -0
- modules/caas/src/caas/gateway/trust_gateway.py +471 -0
- modules/caas/src/caas/hf_utils.py +477 -0
- modules/caas/src/caas/ingestion/__init__.py +21 -0
- modules/caas/src/caas/ingestion/processors.py +251 -0
- modules/caas/src/caas/ingestion/structure_parser.py +185 -0
- modules/caas/src/caas/models.py +354 -0
- modules/caas/src/caas/pragmatic_truth.py +441 -0
- modules/caas/src/caas/routing/__init__.py +8 -0
- modules/caas/src/caas/routing/heuristic_router.py +242 -0
- modules/caas/src/caas/storage/__init__.py +7 -0
- modules/caas/src/caas/storage/store.py +450 -0
- modules/caas/src/caas/triad.py +472 -0
- modules/caas/src/caas/tuning/__init__.py +7 -0
- modules/caas/src/caas/tuning/tuner.py +322 -0
- modules/caas/src/caas/vfs/__init__.py +12 -0
- modules/caas/src/caas/vfs/filesystem.py +450 -0
- modules/caas/tests/__init__.py +3 -0
- modules/caas/tests/conftest.py +8 -0
- modules/caas/tests/test_caching.py +628 -0
- modules/caas/tests/test_context_triad.py +385 -0
- modules/caas/tests/test_conversation_manager.py +289 -0
- modules/caas/tests/test_functionality.py +215 -0
- modules/caas/tests/test_heuristic_router.py +370 -0
- modules/caas/tests/test_metadata_injection.py +328 -0
- modules/caas/tests/test_pragmatic_truth.py +322 -0
- modules/caas/tests/test_structure_aware_indexing.py +283 -0
- modules/caas/tests/test_time_decay.py +268 -0
- modules/caas/tests/test_trust_gateway.py +445 -0
- modules/caas/tests/test_vfs.py +298 -0
- modules/cmvk/.github/FUNDING.yml +9 -0
- modules/cmvk/.github/dependabot.yml +54 -0
- modules/cmvk/.github/workflows/ci.yml +205 -0
- modules/cmvk/.github/workflows/publish.yml +143 -0
- modules/cmvk/.gitignore +147 -0
- modules/cmvk/.pre-commit-config.yaml +58 -0
- modules/cmvk/CHANGELOG.md +146 -0
- modules/cmvk/CITATION.cff +48 -0
- modules/cmvk/CONTRIBUTING.md +229 -0
- modules/cmvk/Dockerfile +87 -0
- modules/cmvk/HF_MODEL_CARD.md +185 -0
- modules/cmvk/LICENSE +21 -0
- modules/cmvk/README.md +149 -0
- modules/cmvk/SECURITY.md +114 -0
- modules/cmvk/config/prompts/generator_v1.txt +23 -0
- modules/cmvk/config/prompts/verifier_hostile.txt +32 -0
- modules/cmvk/config/settings.yaml +40 -0
- modules/cmvk/coverage_html/.gitignore +2 -0
- modules/cmvk/coverage_html/class_index.html +658 -0
- modules/cmvk/coverage_html/coverage_html_cb_188fc9a4.js +735 -0
- modules/cmvk/coverage_html/favicon_32_cb_c827f16f.png +0 -0
- modules/cmvk/coverage_html/function_index.html +1978 -0
- modules/cmvk/coverage_html/index.html +255 -0
- modules/cmvk/coverage_html/keybd_closed_cb_900cfef5.png +0 -0
- modules/cmvk/coverage_html/status.json +1 -0
- modules/cmvk/coverage_html/style_cb_5c747636.css +389 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38___init___py.html +315 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_audit_py.html +499 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_benchmarks_py.html +575 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_constitutional_py.html +1001 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_hf_utils_py.html +398 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_metrics_py.html +570 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_profiles_py.html +397 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_types_py.html +109 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_verification_py.html +1053 -0
- modules/cmvk/docs/DIAGRAMS.md +325 -0
- modules/cmvk/docs/architecture.md +345 -0
- modules/cmvk/docs/features.md +308 -0
- modules/cmvk/docs/getting_started.md +279 -0
- modules/cmvk/docs/innovation_layer.md +377 -0
- modules/cmvk/docs/safety.md +281 -0
- modules/cmvk/docs/traceability.md +150 -0
- modules/cmvk/examples/basic_example.py +62 -0
- modules/cmvk/examples/demo_complete_pipeline.py +209 -0
- modules/cmvk/examples/demo_innovation_layer.py +197 -0
- modules/cmvk/examples/example.py +112 -0
- modules/cmvk/examples/model_diversity_comparison.py +110 -0
- modules/cmvk/examples/real_api_integration.py +121 -0
- modules/cmvk/examples/test_full_pipeline.py +303 -0
- modules/cmvk/experiments/FEATURE_2_LATERAL_THINKING.md +187 -0
- modules/cmvk/experiments/README.md +216 -0
- modules/cmvk/experiments/ablation_runner.py +666 -0
- modules/cmvk/experiments/baseline_runner.py +158 -0
- modules/cmvk/experiments/blind_spot_benchmark.py +364 -0
- modules/cmvk/experiments/datasets/README.md +85 -0
- modules/cmvk/experiments/datasets/humaneval_50.json +352 -0
- modules/cmvk/experiments/datasets/humaneval_full.json +1150 -0
- modules/cmvk/experiments/datasets/humaneval_sample.json +32 -0
- modules/cmvk/experiments/datasets/sabotage.json +262 -0
- modules/cmvk/experiments/datasets/sample.json +40 -0
- modules/cmvk/experiments/demo_with_traces.py +110 -0
- modules/cmvk/experiments/efficiency_curve.py +259 -0
- modules/cmvk/experiments/experiment_runner.py +243 -0
- modules/cmvk/experiments/paper_data_generator.py +183 -0
- modules/cmvk/experiments/reproduce_results.py +407 -0
- modules/cmvk/experiments/reproducible_runner.py +352 -0
- modules/cmvk/experiments/sabotage_stress_test.py +311 -0
- modules/cmvk/experiments/test_lateral_thinking.py +116 -0
- modules/cmvk/experiments/test_prosecutor.py +41 -0
- modules/cmvk/experiments/visualize_results.py +735 -0
- modules/cmvk/logs/traces/demo_HumanEval_0_20260121-204900.json +36 -0
- modules/cmvk/notebooks/analysis.ipynb +124 -0
- modules/cmvk/paper/PAPER.md +561 -0
- modules/cmvk/paper/arxiv_checklist.md +230 -0
- modules/cmvk/paper/cmvk_neurips.aux +77 -0
- modules/cmvk/paper/cmvk_neurips.bbl +81 -0
- modules/cmvk/paper/cmvk_neurips.blg +48 -0
- modules/cmvk/paper/cmvk_neurips.out +16 -0
- modules/cmvk/paper/cmvk_neurips.pdf +0 -0
- modules/cmvk/paper/cmvk_neurips.tex +309 -0
- modules/cmvk/paper/figures/ablation.png +0 -0
- modules/cmvk/paper/figures/ablation.svg +39 -0
- modules/cmvk/paper/figures/architecture.png +0 -0
- modules/cmvk/paper/figures/architecture.svg +115 -0
- modules/cmvk/paper/figures/results_bar.png +0 -0
- modules/cmvk/paper/figures/results_bar.svg +70 -0
- modules/cmvk/paper/generate_figures.py +383 -0
- modules/cmvk/paper/neurips_2024.sty +101 -0
- modules/cmvk/paper/references.bib +98 -0
- modules/cmvk/paper/structure.tex +200 -0
- modules/cmvk/pyproject.toml +189 -0
- modules/cmvk/requirements-dev.txt +19 -0
- modules/cmvk/requirements.txt +14 -0
- modules/cmvk/src/cmvk/__init__.py +216 -0
- modules/cmvk/src/cmvk/audit.py +400 -0
- modules/cmvk/src/cmvk/benchmarks.py +476 -0
- modules/cmvk/src/cmvk/constitutional.py +902 -0
- modules/cmvk/src/cmvk/hf_utils.py +299 -0
- modules/cmvk/src/cmvk/metrics.py +471 -0
- modules/cmvk/src/cmvk/profiles.py +298 -0
- modules/cmvk/src/cmvk/py.typed +0 -0
- modules/cmvk/src/cmvk/types.py +10 -0
- modules/cmvk/src/cmvk/verification.py +954 -0
- modules/cmvk/src/cross_model_verification_kernel/__init__.py +91 -0
- modules/cmvk/src/cross_model_verification_kernel/__main__.py +10 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/__init__.py +16 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/base_agent.py +142 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/generator_openai.py +223 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/verifier_anthropic.py +448 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/verifier_gemini.py +481 -0
- modules/cmvk/src/cross_model_verification_kernel/cli.py +570 -0
- modules/cmvk/src/cross_model_verification_kernel/core/__init__.py +26 -0
- modules/cmvk/src/cross_model_verification_kernel/core/graph_memory.py +308 -0
- modules/cmvk/src/cross_model_verification_kernel/core/kernel.py +413 -0
- modules/cmvk/src/cross_model_verification_kernel/core/trace_logger.py +75 -0
- modules/cmvk/src/cross_model_verification_kernel/core/types.py +121 -0
- modules/cmvk/src/cross_model_verification_kernel/datasets/__init__.py +20 -0
- modules/cmvk/src/cross_model_verification_kernel/datasets/humaneval_loader.py +271 -0
- modules/cmvk/src/cross_model_verification_kernel/generator.py +118 -0
- modules/cmvk/src/cross_model_verification_kernel/kernel.py +292 -0
- modules/cmvk/src/cross_model_verification_kernel/models.py +111 -0
- modules/cmvk/src/cross_model_verification_kernel/py.typed +1 -0
- modules/cmvk/src/cross_model_verification_kernel/simple_kernel.py +185 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/__init__.py +94 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/huggingface_upload.py +394 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/sandbox.py +159 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/statistics.py +468 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/visualizer.py +312 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/web_search.py +86 -0
- modules/cmvk/src/cross_model_verification_kernel/verifier.py +257 -0
- modules/cmvk/tests/__init__.py +3 -0
- modules/cmvk/tests/conftest.py +61 -0
- modules/cmvk/tests/integration/__init__.py +1 -0
- modules/cmvk/tests/integration/test_anthropic_verifier.py +269 -0
- modules/cmvk/tests/integration/test_integration.py +53 -0
- modules/cmvk/tests/integration/test_lateral_thinking_integration.py +199 -0
- modules/cmvk/tests/integration/test_lateral_thinking_witness.py +208 -0
- modules/cmvk/tests/integration/test_prosecutor_mode.py +131 -0
- modules/cmvk/tests/test_constitutional.py +611 -0
- modules/cmvk/tests/test_enhanced_features.py +603 -0
- modules/cmvk/tests/test_verification.py +255 -0
- modules/cmvk/tests/unit/__init__.py +1 -0
- modules/cmvk/tests/unit/test_agents.py +64 -0
- modules/cmvk/tests/unit/test_cli.py +224 -0
- modules/cmvk/tests/unit/test_core.py +126 -0
- modules/cmvk/tests/unit/test_humaneval_loader.py +197 -0
- modules/cmvk/tests/unit/test_kernel.py +255 -0
- modules/cmvk/tests/unit/test_reproducibility.py +160 -0
- modules/cmvk/tests/unit/test_trace_logger.py +115 -0
- modules/cmvk/tests/unit/test_visualizer.py +218 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/bug_report.yml +82 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/config.yml +11 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/feature_request.yml +104 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/question.yml +70 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/security_vulnerability.yml +84 -0
- modules/control-plane/.github/discussions.yml +73 -0
- modules/control-plane/.github/pull_request_template.md +82 -0
- modules/control-plane/.github/workflows/publish.yml +146 -0
- modules/control-plane/.github/workflows/release.yml +39 -0
- modules/control-plane/.github/workflows/tests.yml +58 -0
- modules/control-plane/.gitignore +55 -0
- modules/control-plane/CHANGELOG.md +203 -0
- modules/control-plane/CONTRIBUTING.md +311 -0
- modules/control-plane/CONTRIBUTORS.md +88 -0
- modules/control-plane/Dockerfile +82 -0
- modules/control-plane/LICENSE +21 -0
- modules/control-plane/MANIFEST.in +17 -0
- modules/control-plane/README.md +1264 -0
- modules/control-plane/ROADMAP.md +228 -0
- modules/control-plane/SECURITY.md +210 -0
- modules/control-plane/SUPPORT.md +106 -0
- modules/control-plane/acp-cli.py +212 -0
- modules/control-plane/benchmark/README.md +257 -0
- modules/control-plane/benchmark/__init__.py +19 -0
- modules/control-plane/benchmark/red_team_dataset.py +517 -0
- modules/control-plane/benchmark.py +563 -0
- modules/control-plane/build_and_publish.sh +130 -0
- modules/control-plane/docker-compose.yml +74 -0
- modules/control-plane/docs/ABLATION_STUDIES.md +528 -0
- modules/control-plane/docs/ADAPTER_GUIDE.md +544 -0
- modules/control-plane/docs/ADVANCED_FEATURES.md +543 -0
- modules/control-plane/docs/AIOS_COMPARISON.md +296 -0
- modules/control-plane/docs/BIBLIOGRAPHY.md +367 -0
- modules/control-plane/docs/CASE_STUDIES.md +645 -0
- modules/control-plane/docs/DOCKER_DEPLOYMENT.md +184 -0
- modules/control-plane/docs/ECOSYSTEM_STATUS.md +98 -0
- modules/control-plane/docs/HF_MODEL_CARD.md +168 -0
- modules/control-plane/docs/KERNEL_V1_RELEASE.md +454 -0
- modules/control-plane/docs/LAYER3_FRAMEWORK.md +227 -0
- modules/control-plane/docs/LIMITATIONS.md +523 -0
- modules/control-plane/docs/PYPI_PUBLISHING.md +195 -0
- modules/control-plane/docs/README.md +58 -0
- modules/control-plane/docs/RELATED_WORK.md +319 -0
- modules/control-plane/docs/RELEASE_v1.1.0.md +252 -0
- modules/control-plane/docs/REPRODUCIBILITY.md +540 -0
- modules/control-plane/docs/RESEARCH_FOUNDATION.md +197 -0
- modules/control-plane/docs/api/CORE.md +270 -0
- modules/control-plane/docs/architecture/architecture.md +120 -0
- modules/control-plane/docs/community/ANNOUNCEMENT_TEMPLATES.md +52 -0
- modules/control-plane/docs/guides/IMPLEMENTATION.md +225 -0
- modules/control-plane/docs/guides/PHILOSOPHY.md +354 -0
- modules/control-plane/docs/guides/QUICKSTART.md +217 -0
- modules/control-plane/examples/README.md +138 -0
- modules/control-plane/examples/a2a_demo.py +410 -0
- modules/control-plane/examples/adapter_demo.py +347 -0
- modules/control-plane/examples/advanced_features.py +403 -0
- modules/control-plane/examples/basic_usage.py +261 -0
- modules/control-plane/examples/benchmark_demo.py +186 -0
- modules/control-plane/examples/compliance_demo.py +333 -0
- modules/control-plane/examples/configuration.py +265 -0
- modules/control-plane/examples/getting_started.py +178 -0
- modules/control-plane/examples/hibernation_and_time_travel_demo.py +406 -0
- modules/control-plane/examples/interactive_tutorial.ipynb +497 -0
- modules/control-plane/examples/kernel_interceptor_demo.py +202 -0
- modules/control-plane/examples/kernel_v1_demo.py +273 -0
- modules/control-plane/examples/langchain_demo.py +281 -0
- modules/control-plane/examples/lifecycle_demo.py +724 -0
- modules/control-plane/examples/mcp_demo.py +378 -0
- modules/control-plane/examples/ml_safety_demo.py +157 -0
- modules/control-plane/examples/multimodal_demo.py +347 -0
- modules/control-plane/examples/observability_demo.py +370 -0
- modules/control-plane/examples/use_cases.py +336 -0
- modules/control-plane/experiments/long_horizon_purge.py +235 -0
- modules/control-plane/experiments/multi_agent_rag.py +165 -0
- modules/control-plane/experiments/reproduce_results.py +667 -0
- modules/control-plane/paper/ARXIV_SUBMISSION_INFO.txt +122 -0
- modules/control-plane/paper/ETHICS_STATEMENT.md +248 -0
- modules/control-plane/paper/PAPER_CHECKLIST.md +72 -0
- modules/control-plane/paper/Paper.pdf +0 -0
- modules/control-plane/paper/README.md +71 -0
- modules/control-plane/paper/appendix.md +152 -0
- modules/control-plane/paper/architecture.md +15 -0
- modules/control-plane/paper/arxiv/figures/ablation_chart.png +0 -0
- modules/control-plane/paper/arxiv/figures/architecture.png +0 -0
- modules/control-plane/paper/arxiv/figures/constraint_graphs.png +0 -0
- modules/control-plane/paper/arxiv/figures/results_chart.png +0 -0
- modules/control-plane/paper/arxiv/main.aux +97 -0
- modules/control-plane/paper/arxiv/main.bbl +112 -0
- modules/control-plane/paper/arxiv/main.blg +48 -0
- modules/control-plane/paper/arxiv/main.out +33 -0
- modules/control-plane/paper/arxiv/main.pdf +0 -0
- modules/control-plane/paper/arxiv/main.tex +479 -0
- modules/control-plane/paper/arxiv/references.bib +234 -0
- modules/control-plane/paper/arxiv_submission.tar +0 -0
- modules/control-plane/paper/arxiv_submission.zip +0 -0
- modules/control-plane/paper/build.sh +68 -0
- modules/control-plane/paper/figures/README.md +47 -0
- modules/control-plane/paper/figures/ablation_chart.pdf +0 -0
- modules/control-plane/paper/figures/ablation_chart.png +0 -0
- modules/control-plane/paper/figures/architecture.pdf +0 -0
- modules/control-plane/paper/figures/architecture.png +0 -0
- modules/control-plane/paper/figures/constraint_graphs.pdf +0 -0
- modules/control-plane/paper/figures/constraint_graphs.png +0 -0
- modules/control-plane/paper/figures/generate_figures.py +252 -0
- modules/control-plane/paper/figures/results_chart.pdf +0 -0
- modules/control-plane/paper/figures/results_chart.png +0 -0
- modules/control-plane/paper/main.md +273 -0
- modules/control-plane/paper/main.tex +214 -0
- modules/control-plane/paper/main_arxiv.aux +53 -0
- modules/control-plane/paper/main_arxiv.out +17 -0
- modules/control-plane/paper/main_arxiv.pdf +0 -0
- modules/control-plane/paper/main_arxiv.tex +264 -0
- modules/control-plane/paper/references.bib +234 -0
- modules/control-plane/pyproject.toml +124 -0
- modules/control-plane/reproducibility/ABLATIONS.md +136 -0
- modules/control-plane/reproducibility/README.md +288 -0
- modules/control-plane/reproducibility/commands.md +467 -0
- modules/control-plane/reproducibility/docker_config/Dockerfile +39 -0
- modules/control-plane/reproducibility/experiment_configs/purge_config.json +46 -0
- modules/control-plane/reproducibility/experiment_configs/rag_config.json +36 -0
- modules/control-plane/reproducibility/hardware_specs.md +317 -0
- modules/control-plane/reproducibility/requirements_frozen.txt +0 -0
- modules/control-plane/reproducibility/run_all_experiments.sh +45 -0
- modules/control-plane/reproducibility/seeds.json +106 -0
- modules/control-plane/scripts/prepare_pypi.py +46 -0
- modules/control-plane/scripts/prepare_release.py +176 -0
- modules/control-plane/scripts/upload_dataset_to_hf.py +316 -0
- modules/control-plane/setup.py +69 -0
- modules/control-plane/src/agent_control_plane/__init__.py +639 -0
- modules/control-plane/src/agent_control_plane/a2a_adapter.py +541 -0
- modules/control-plane/src/agent_control_plane/adapter.py +415 -0
- modules/control-plane/src/agent_control_plane/agent_hibernation.py +364 -0
- modules/control-plane/src/agent_control_plane/agent_kernel.py +464 -0
- modules/control-plane/src/agent_control_plane/compliance.py +718 -0
- modules/control-plane/src/agent_control_plane/constraint_graphs.py +475 -0
- modules/control-plane/src/agent_control_plane/control_plane.py +848 -0
- modules/control-plane/src/agent_control_plane/example_executors.py +193 -0
- modules/control-plane/src/agent_control_plane/execution_engine.py +229 -0
- modules/control-plane/src/agent_control_plane/flight_recorder.py +600 -0
- modules/control-plane/src/agent_control_plane/governance_layer.py +432 -0
- modules/control-plane/src/agent_control_plane/hf_utils.py +561 -0
- modules/control-plane/src/agent_control_plane/interfaces/__init__.py +53 -0
- modules/control-plane/src/agent_control_plane/interfaces/kernel_interface.py +359 -0
- modules/control-plane/src/agent_control_plane/interfaces/plugin_interface.py +495 -0
- modules/control-plane/src/agent_control_plane/interfaces/protocol_interfaces.py +385 -0
- modules/control-plane/src/agent_control_plane/kernel_space.py +707 -0
- modules/control-plane/src/agent_control_plane/langchain_adapter.py +422 -0
- modules/control-plane/src/agent_control_plane/lifecycle.py +3111 -0
- modules/control-plane/src/agent_control_plane/mcp_adapter.py +517 -0
- modules/control-plane/src/agent_control_plane/ml_safety.py +560 -0
- modules/control-plane/src/agent_control_plane/multimodal.py +724 -0
- modules/control-plane/src/agent_control_plane/mute_agent.py +419 -0
- modules/control-plane/src/agent_control_plane/observability.py +785 -0
- modules/control-plane/src/agent_control_plane/orchestrator.py +480 -0
- modules/control-plane/src/agent_control_plane/plugin_registry.py +748 -0
- modules/control-plane/src/agent_control_plane/policy_engine.py +525 -0
- modules/control-plane/src/agent_control_plane/shadow_mode.py +307 -0
- modules/control-plane/src/agent_control_plane/signals.py +491 -0
- modules/control-plane/src/agent_control_plane/supervisor_agents.py +427 -0
- modules/control-plane/src/agent_control_plane/time_travel_debugger.py +554 -0
- modules/control-plane/src/agent_control_plane/tool_registry.py +350 -0
- modules/control-plane/src/agent_control_plane/vfs.py +695 -0
- modules/control-plane/tests/README.md +33 -0
- modules/control-plane/tests/test_a2a_adapter.py +336 -0
- modules/control-plane/tests/test_adapter.py +422 -0
- modules/control-plane/tests/test_advanced_features.py +389 -0
- modules/control-plane/tests/test_benchmark.py +223 -0
- modules/control-plane/tests/test_compliance.py +214 -0
- modules/control-plane/tests/test_control_plane.py +295 -0
- modules/control-plane/tests/test_hibernation.py +274 -0
- modules/control-plane/tests/test_kernel_interception.py +284 -0
- modules/control-plane/tests/test_langchain_adapter.py +258 -0
- modules/control-plane/tests/test_lifecycle.py +1174 -0
- modules/control-plane/tests/test_mcp_adapter.py +293 -0
- modules/control-plane/tests/test_ml_safety.py +142 -0
- modules/control-plane/tests/test_multimodal.py +317 -0
- modules/control-plane/tests/test_new_features.py +435 -0
- modules/control-plane/tests/test_observability.py +338 -0
- modules/control-plane/tests/test_time_travel.py +387 -0
- modules/emk/.github/workflows/ci.yml +105 -0
- modules/emk/.github/workflows/publish.yml +144 -0
- modules/emk/.gitignore +74 -0
- modules/emk/CHANGELOG.md +41 -0
- modules/emk/CONTRIBUTING.md +295 -0
- modules/emk/IMPLEMENTATION.md +174 -0
- modules/emk/LICENSE +21 -0
- modules/emk/MANIFEST.in +8 -0
- modules/emk/README.md +135 -0
- modules/emk/RELEASE_NOTES.md +82 -0
- modules/emk/SECURITY.md +52 -0
- modules/emk/codecov.yml +39 -0
- modules/emk/docs/MEMORY_MANAGEMENT.md +285 -0
- modules/emk/emk/__init__.py +106 -0
- modules/emk/emk/hf_utils.py +419 -0
- modules/emk/emk/indexer.py +144 -0
- modules/emk/emk/py.typed +0 -0
- modules/emk/emk/schema.py +204 -0
- modules/emk/emk/sleep_cycle.py +345 -0
- modules/emk/emk/store.py +479 -0
- modules/emk/examples/basic_usage.py +123 -0
- modules/emk/examples/memory_features_demo.py +154 -0
- modules/emk/experiments/README.md +59 -0
- modules/emk/experiments/reproduce_results.py +461 -0
- modules/emk/experiments/results.json +61 -0
- modules/emk/paper/structure.tex +192 -0
- modules/emk/paper/whitepaper.md +273 -0
- modules/emk/pyproject.toml +91 -0
- modules/emk/setup.py +5 -0
- modules/emk/tests/test_file_adapter.py +195 -0
- modules/emk/tests/test_indexer.py +174 -0
- modules/emk/tests/test_init.py +55 -0
- modules/emk/tests/test_negative_memory.py +83 -0
- modules/emk/tests/test_schema.py +150 -0
- modules/emk/tests/test_semantic_rules.py +175 -0
- modules/emk/tests/test_sleep_cycle.py +335 -0
- modules/emk/tests/test_store_anti_patterns.py +239 -0
- modules/iatp/.github/workflows/docker-build.yml +124 -0
- modules/iatp/.github/workflows/publish.yml +174 -0
- modules/iatp/.github/workflows/python-package.yml +121 -0
- modules/iatp/.gitignore +67 -0
- modules/iatp/.pre-commit-config.yaml +64 -0
- modules/iatp/CHANGELOG.md +120 -0
- modules/iatp/Dockerfile +91 -0
- modules/iatp/IMPLEMENTATION_SUMMARY.md +218 -0
- modules/iatp/MANIFEST.in +9 -0
- modules/iatp/README.md +180 -0
- modules/iatp/docker/Dockerfile.agent +27 -0
- modules/iatp/docker/Dockerfile.sidecar-python +86 -0
- modules/iatp/docker/README.md +258 -0
- modules/iatp/docker-compose.yml +194 -0
- modules/iatp/docs/ARCHITECTURE.md +243 -0
- modules/iatp/docs/CLI_GUIDE.md +220 -0
- modules/iatp/docs/DEPLOYMENT.md +304 -0
- modules/iatp/examples/README.md +132 -0
- modules/iatp/examples/backend_agent.py +39 -0
- modules/iatp/examples/client.py +168 -0
- modules/iatp/examples/demo_attestation_reputation.py +274 -0
- modules/iatp/examples/demo_client.py +240 -0
- modules/iatp/examples/demo_rbac.py +143 -0
- modules/iatp/examples/integration_demo.py +245 -0
- modules/iatp/examples/manifests/coder_agent.json +20 -0
- modules/iatp/examples/manifests/reviewer_agent.json +19 -0
- modules/iatp/examples/manifests/secure_bank.json +14 -0
- modules/iatp/examples/manifests/standard_agent.json +14 -0
- modules/iatp/examples/manifests/untrusted_honeypot.json +14 -0
- modules/iatp/examples/run_secure_bank_sidecar.py +85 -0
- modules/iatp/examples/run_sidecar.py +105 -0
- modules/iatp/examples/run_untrusted_sidecar.py +77 -0
- modules/iatp/examples/secure_bank_agent.py +138 -0
- modules/iatp/examples/test_untrusted.py +82 -0
- modules/iatp/examples/untrusted_agent.py +119 -0
- modules/iatp/experiments/README.md +58 -0
- modules/iatp/experiments/cascading_hallucination/README.md +149 -0
- modules/iatp/experiments/cascading_hallucination/agent_a_user.py +41 -0
- modules/iatp/experiments/cascading_hallucination/agent_b_summarizer.py +54 -0
- modules/iatp/experiments/cascading_hallucination/agent_c_database.py +47 -0
- modules/iatp/experiments/cascading_hallucination/proof_of_concept.py +290 -0
- modules/iatp/experiments/cascading_hallucination/run_experiment.py +226 -0
- modules/iatp/experiments/cascading_hallucination/sidecar_c.py +61 -0
- modules/iatp/experiments/reproduce_results.py +574 -0
- modules/iatp/experiments/results.json +2336 -0
- modules/iatp/iatp/__init__.py +164 -0
- modules/iatp/iatp/attestation.py +401 -0
- modules/iatp/iatp/cli.py +253 -0
- modules/iatp/iatp/hf_utils.py +469 -0
- modules/iatp/iatp/ipc_pipes.py +578 -0
- modules/iatp/iatp/main.py +410 -0
- modules/iatp/iatp/models/__init__.py +445 -0
- modules/iatp/iatp/policy_engine.py +335 -0
- modules/iatp/iatp/py.typed +2 -0
- modules/iatp/iatp/recovery.py +319 -0
- modules/iatp/iatp/security/__init__.py +268 -0
- modules/iatp/iatp/sidecar/__init__.py +517 -0
- modules/iatp/iatp/telemetry/__init__.py +162 -0
- modules/iatp/iatp/tests/__init__.py +1 -0
- modules/iatp/iatp/tests/test_attestation.py +368 -0
- modules/iatp/iatp/tests/test_cli.py +129 -0
- modules/iatp/iatp/tests/test_models.py +128 -0
- modules/iatp/iatp/tests/test_policy_engine.py +345 -0
- modules/iatp/iatp/tests/test_recovery.py +279 -0
- modules/iatp/iatp/tests/test_security.py +220 -0
- modules/iatp/iatp/tests/test_sidecar.py +165 -0
- modules/iatp/iatp/tests/test_telemetry.py +173 -0
- modules/iatp/paper/BLOG.md +307 -0
- modules/iatp/paper/PAPER.md +236 -0
- modules/iatp/paper/RFC_SUBMISSION.md +299 -0
- modules/iatp/paper/whitepaper.md +369 -0
- modules/iatp/proto/README.md +200 -0
- modules/iatp/proto/generate_stubs.py +81 -0
- modules/iatp/proto/iatp.proto +552 -0
- modules/iatp/pyproject.toml +180 -0
- modules/iatp/requirements-dev.txt +2 -0
- modules/iatp/requirements.txt +6 -0
- modules/iatp/setup.py +60 -0
- modules/iatp/sidecar/README.md +487 -0
- modules/iatp/sidecar/go/Dockerfile +32 -0
- modules/iatp/sidecar/go/README.md +237 -0
- modules/iatp/sidecar/go/go.mod +8 -0
- modules/iatp/sidecar/go/main.go +488 -0
- modules/iatp/spec/001-handshake.md +436 -0
- modules/iatp/spec/002-reversibility.md +394 -0
- modules/iatp/spec/schema/capability_manifest.json +266 -0
- modules/iatp/test_integration.py +310 -0
- modules/mcp-kernel-server/README.md +261 -0
- modules/mcp-kernel-server/pyproject.toml +60 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/__init__.py +26 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/cli.py +229 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/resources.py +215 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/server.py +562 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/tools.py +1172 -0
- modules/mute-agent/.github/workflows/safety_check.yml +45 -0
- modules/mute-agent/.gitignore +53 -0
- modules/mute-agent/ARCHITECTURE.md +531 -0
- modules/mute-agent/BENCHMARK_GUIDE.md +384 -0
- modules/mute-agent/COMPLETION_SUMMARY.md +293 -0
- modules/mute-agent/EXPERIMENT_SUMMARY.md +318 -0
- modules/mute-agent/IMPLEMENTATION_SUMMARY.md +212 -0
- modules/mute-agent/LICENSE +21 -0
- modules/mute-agent/PHASE3_SUMMARY.md +297 -0
- modules/mute-agent/README.md +360 -0
- modules/mute-agent/STEEL_MAN_RESULTS.md +353 -0
- modules/mute-agent/USAGE.md +505 -0
- modules/mute-agent/V2_IMPLEMENTATION_SUMMARY.md +253 -0
- modules/mute-agent/V2_STEEL_MAN_IMPLEMENTATION.md +274 -0
- modules/mute-agent/VERIFICATION_REPORT.md +435 -0
- modules/mute-agent/charts/cost_comparison.png +0 -0
- modules/mute-agent/charts/cost_vs_ambiguity.png +0 -0
- modules/mute-agent/charts/metrics_comparison.png +0 -0
- modules/mute-agent/charts/scenario_breakdown.png +0 -0
- modules/mute-agent/charts/trace_attack_blocked.html +140 -0
- modules/mute-agent/charts/trace_attack_blocked.png +0 -0
- modules/mute-agent/charts/trace_failure.html +140 -0
- modules/mute-agent/charts/trace_failure.png +0 -0
- modules/mute-agent/charts/trace_success.html +140 -0
- modules/mute-agent/charts/trace_success.png +0 -0
- modules/mute-agent/examples/__init__.py +1 -0
- modules/mute-agent/examples/advanced_example.py +384 -0
- modules/mute-agent/examples/graph_debugger_demo.py +241 -0
- modules/mute-agent/examples/listener_example.py +297 -0
- modules/mute-agent/examples/simple_example.py +242 -0
- modules/mute-agent/examples/steel_man_demo.py +297 -0
- modules/mute-agent/experiments/README.md +135 -0
- modules/mute-agent/experiments/__init__.py +3 -0
- modules/mute-agent/experiments/agent_comparison.csv +6 -0
- modules/mute-agent/experiments/agent_comparison_50runs.csv +6 -0
- modules/mute-agent/experiments/ambiguity_test.py +335 -0
- modules/mute-agent/experiments/ambiguity_test_results.csv +31 -0
- modules/mute-agent/experiments/ambiguity_test_results_50runs.csv +51 -0
- modules/mute-agent/experiments/baseline_agent.py +189 -0
- modules/mute-agent/experiments/benchmark.py +402 -0
- modules/mute-agent/experiments/demo.py +172 -0
- modules/mute-agent/experiments/generate_cost_curve.py +474 -0
- modules/mute-agent/experiments/jailbreak_test.py +137 -0
- modules/mute-agent/experiments/latent_state_scenario.py +361 -0
- modules/mute-agent/experiments/mute_agent_experiment.py +349 -0
- modules/mute-agent/experiments/run_extended_experiment.py +40 -0
- modules/mute-agent/experiments/run_v2_experiments.py +266 -0
- modules/mute-agent/experiments/run_v2_experiments_auto.py +247 -0
- modules/mute-agent/experiments/v2_scenarios/README.md +214 -0
- modules/mute-agent/experiments/v2_scenarios/__init__.py +4 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_1_deep_dependency.py +325 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_2_adversarial.py +328 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_3_false_positive.py +303 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_4_performance.py +319 -0
- modules/mute-agent/experiments/visualize.py +400 -0
- modules/mute-agent/mute_agent/__init__.py +66 -0
- modules/mute-agent/mute_agent/core/__init__.py +1 -0
- modules/mute-agent/mute_agent/core/execution_agent.py +164 -0
- modules/mute-agent/mute_agent/core/handshake_protocol.py +199 -0
- modules/mute-agent/mute_agent/core/reasoning_agent.py +236 -0
- modules/mute-agent/mute_agent/knowledge_graph/__init__.py +1 -0
- modules/mute-agent/mute_agent/knowledge_graph/graph_elements.py +63 -0
- modules/mute-agent/mute_agent/knowledge_graph/multidimensional_graph.py +168 -0
- modules/mute-agent/mute_agent/knowledge_graph/subgraph.py +222 -0
- modules/mute-agent/mute_agent/listener/__init__.py +41 -0
- modules/mute-agent/mute_agent/listener/adapters/__init__.py +29 -0
- modules/mute-agent/mute_agent/listener/adapters/base_adapter.py +187 -0
- modules/mute-agent/mute_agent/listener/adapters/caas_adapter.py +342 -0
- modules/mute-agent/mute_agent/listener/adapters/control_plane_adapter.py +434 -0
- modules/mute-agent/mute_agent/listener/adapters/iatp_adapter.py +330 -0
- modules/mute-agent/mute_agent/listener/adapters/scak_adapter.py +249 -0
- modules/mute-agent/mute_agent/listener/listener.py +608 -0
- modules/mute-agent/mute_agent/listener/state_observer.py +434 -0
- modules/mute-agent/mute_agent/listener/threshold_config.py +311 -0
- modules/mute-agent/mute_agent/super_system/__init__.py +1 -0
- modules/mute-agent/mute_agent/super_system/router.py +202 -0
- modules/mute-agent/mute_agent/visualization/__init__.py +8 -0
- modules/mute-agent/mute_agent/visualization/graph_debugger.py +495 -0
- modules/mute-agent/requirements-dev.txt +6 -0
- modules/mute-agent/requirements.txt +9 -0
- modules/mute-agent/setup.py +64 -0
- modules/mute-agent/src/__init__.py +0 -0
- modules/mute-agent/src/agents/__init__.py +0 -0
- modules/mute-agent/src/agents/baseline_agent.py +524 -0
- modules/mute-agent/src/agents/interactive_agent.py +113 -0
- modules/mute-agent/src/agents/mute_agent.py +622 -0
- modules/mute-agent/src/benchmarks/__init__.py +0 -0
- modules/mute-agent/src/benchmarks/evaluator.py +481 -0
- modules/mute-agent/src/benchmarks/scenarios.json +985 -0
- modules/mute-agent/src/core/__init__.py +0 -0
- modules/mute-agent/src/core/mock_state.py +320 -0
- modules/mute-agent/src/core/tools.py +441 -0
- modules/nexus/__init__.py +49 -0
- modules/nexus/arbiter.py +357 -0
- modules/nexus/client.py +464 -0
- modules/nexus/dmz.py +417 -0
- modules/nexus/escrow.py +428 -0
- modules/nexus/exceptions.py +284 -0
- modules/nexus/registry.py +391 -0
- modules/nexus/reputation.py +423 -0
- modules/nexus/schemas/__init__.py +49 -0
- modules/nexus/schemas/compliance.py +274 -0
- modules/nexus/schemas/escrow.py +249 -0
- modules/nexus/schemas/manifest.py +223 -0
- modules/nexus/schemas/receipt.py +206 -0
- modules/observability/README.md +192 -0
- modules/observability/alertmanager/alertmanager.yml +116 -0
- modules/observability/alerts/agent-os-alerts.yaml +197 -0
- modules/observability/docker-compose.yml +128 -0
- modules/observability/grafana/dashboards/agent-os-amb.json +448 -0
- modules/observability/grafana/dashboards/agent-os-cmvk.json +441 -0
- modules/observability/grafana/dashboards/agent-os-overview.json +268 -0
- modules/observability/grafana/dashboards/agent-os-performance.json +15 -0
- modules/observability/grafana/dashboards/agent-os-safety.json +50 -0
- modules/observability/grafana/provisioning/dashboards/dashboards.yml +15 -0
- modules/observability/grafana/provisioning/datasources/datasources.yml +33 -0
- modules/observability/otel/otel-collector-config.yml +61 -0
- modules/observability/prometheus/prometheus.yml +63 -0
- modules/observability/pyproject.toml +53 -0
- modules/observability/scripts/export_dashboards.py +55 -0
- modules/observability/src/agent_os_observability/__init__.py +25 -0
- modules/observability/src/agent_os_observability/dashboards.py +896 -0
- modules/observability/src/agent_os_observability/metrics.py +396 -0
- modules/observability/src/agent_os_observability/server.py +221 -0
- modules/observability/src/agent_os_observability/tracer.py +226 -0
- modules/primitives/.gitignore +8 -0
- modules/primitives/README.md +62 -0
- modules/primitives/agent_primitives/__init__.py +22 -0
- modules/primitives/agent_primitives/failures.py +82 -0
- modules/primitives/agent_primitives/py.typed +0 -0
- modules/primitives/pyproject.toml +68 -0
- modules/scak/.github/copilot-instructions.md +396 -0
- modules/scak/.github/workflows/release.yml +117 -0
- modules/scak/.gitignore +32 -0
- modules/scak/CHANGELOG.md +173 -0
- modules/scak/CITATION.cff +62 -0
- modules/scak/CONTRIBUTING.md +429 -0
- modules/scak/Dockerfile +58 -0
- modules/scak/ENTERPRISE_FEATURES.md +518 -0
- modules/scak/IMPLEMENTATION_SUMMARY.md +206 -0
- modules/scak/LIMITATIONS.md +565 -0
- modules/scak/MANIFEST.in +16 -0
- modules/scak/NOVELTY.md +535 -0
- modules/scak/README.md +928 -0
- modules/scak/RESEARCH.md +670 -0
- modules/scak/agent_kernel/__init__.py +66 -0
- modules/scak/agent_kernel/analyzer.py +432 -0
- modules/scak/agent_kernel/auditor.py +31 -0
- modules/scak/agent_kernel/completeness_auditor.py +234 -0
- modules/scak/agent_kernel/detector.py +200 -0
- modules/scak/agent_kernel/kernel.py +741 -0
- modules/scak/agent_kernel/memory_manager.py +82 -0
- modules/scak/agent_kernel/models.py +372 -0
- modules/scak/agent_kernel/nudge_mechanism.py +260 -0
- modules/scak/agent_kernel/outcome_analyzer.py +335 -0
- modules/scak/agent_kernel/patcher.py +579 -0
- modules/scak/agent_kernel/semantic_analyzer.py +313 -0
- modules/scak/agent_kernel/semantic_purge.py +346 -0
- modules/scak/agent_kernel/simulator.py +447 -0
- modules/scak/agent_kernel/teacher.py +82 -0
- modules/scak/agent_kernel/triage.py +149 -0
- modules/scak/build_and_publish.ps1 +74 -0
- modules/scak/build_and_publish.sh +74 -0
- modules/scak/cli.py +471 -0
- modules/scak/dashboard.py +462 -0
- modules/scak/datasets/DATASET_CARD.md +219 -0
- modules/scak/datasets/README.md +143 -0
- modules/scak/datasets/gaia_vague_queries/vague_queries.json +262 -0
- modules/scak/datasets/hf_upload/README.md +219 -0
- modules/scak/datasets/hf_upload/scak_gaia_laziness.jsonl +50 -0
- modules/scak/datasets/prepare_hf_datasets.py +145 -0
- modules/scak/datasets/red_team/jailbreak_patterns.json +202 -0
- modules/scak/docker-compose.yml +99 -0
- modules/scak/docs/Adaptive-Memory-Hierarchy.md +319 -0
- modules/scak/docs/Data-Contracts-and-Schemas.md +285 -0
- modules/scak/docs/Dual-Loop-Architecture.md +344 -0
- modules/scak/docs/Enhanced-Features.md +612 -0
- modules/scak/docs/LANGCHAIN_INTEGRATION.md +572 -0
- modules/scak/docs/README.md +128 -0
- modules/scak/docs/Reference-Implementations.md +163 -0
- modules/scak/docs/SCAK_V2.md +374 -0
- modules/scak/docs/Three-Failure-Types.md +178 -0
- modules/scak/examples/basic_example.py +155 -0
- modules/scak/examples/circuit_breaker_lazy_eval_demo.py +243 -0
- modules/scak/examples/langchain_integration_example.py +339 -0
- modules/scak/examples/layer4_demo.py +243 -0
- modules/scak/examples/production_features_demo.py +353 -0
- modules/scak/examples/quick_demo.py +79 -0
- modules/scak/examples/scak_v2_demo.py +252 -0
- modules/scak/experiments/README.md +438 -0
- modules/scak/experiments/ablation_studies/README.md +192 -0
- modules/scak/experiments/ablation_studies/ablation_no_audit.py +116 -0
- modules/scak/experiments/ablation_studies/ablation_no_purge.py +133 -0
- modules/scak/experiments/chaos_engineering/README.md +332 -0
- modules/scak/experiments/context_efficiency_test.py +328 -0
- modules/scak/experiments/gaia_benchmark/README.md +208 -0
- modules/scak/experiments/laziness_benchmark.py +179 -0
- modules/scak/experiments/long_horizon_task_experiment.py +252 -0
- modules/scak/experiments/multi_agent_rag_experiment.py +284 -0
- modules/scak/experiments/results/ablation_table.md +12 -0
- modules/scak/experiments/results/long_horizon.json +36 -0
- modules/scak/experiments/results/multi_agent_rag.json +66 -0
- modules/scak/experiments/run_comprehensive_ablations.py +332 -0
- modules/scak/experiments/test_auditor_patcher_integration.py +251 -0
- modules/scak/notebooks/getting_started.ipynb +33 -0
- modules/scak/paper/ARXIV_SUBMISSION_METADATA.txt +109 -0
- modules/scak/paper/PAPER_CHECKLIST.md +304 -0
- modules/scak/paper/Paper.pdf +0 -0
- modules/scak/paper/README.md +113 -0
- modules/scak/paper/appendix.md +351 -0
- modules/scak/paper/arxiv/bibliography.bib +284 -0
- modules/scak/paper/arxiv/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/arxiv/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/arxiv/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/arxiv/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/arxiv/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/arxiv/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/arxiv/main.aux +103 -0
- modules/scak/paper/arxiv/main.bbl +113 -0
- modules/scak/paper/arxiv/main.blg +55 -0
- modules/scak/paper/arxiv/main.out +31 -0
- modules/scak/paper/arxiv/main.pdf +0 -0
- modules/scak/paper/arxiv/main.tex +482 -0
- modules/scak/paper/arxiv_submission/bibliography.bib +284 -0
- modules/scak/paper/arxiv_submission/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/arxiv_submission/main.aux +103 -0
- modules/scak/paper/arxiv_submission/main.bbl +113 -0
- modules/scak/paper/arxiv_submission/main.blg +55 -0
- modules/scak/paper/arxiv_submission/main.out +31 -0
- modules/scak/paper/arxiv_submission/main.pdf +0 -0
- modules/scak/paper/arxiv_submission/main.tex +482 -0
- modules/scak/paper/arxiv_submission.tar.gz +0 -0
- modules/scak/paper/bibliography.bib +284 -0
- modules/scak/paper/build.sh +55 -0
- modules/scak/paper/figures/README.md +32 -0
- modules/scak/paper/figures/fig1_ooda_architecture.md +75 -0
- modules/scak/paper/figures/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/figures/fig1_ooda_architecture.png +0 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.md +83 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.png +0 -0
- modules/scak/paper/figures/fig3_gaia_results.md +64 -0
- modules/scak/paper/figures/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/figures/fig3_gaia_results.png +0 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.md +64 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.png +0 -0
- modules/scak/paper/figures/fig5_context_reduction.md +71 -0
- modules/scak/paper/figures/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/figures/fig5_context_reduction.png +0 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.md +80 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.png +0 -0
- modules/scak/paper/figures/generate_figures.py +463 -0
- modules/scak/paper/main.aux +103 -0
- modules/scak/paper/main.bbl +113 -0
- modules/scak/paper/main.blg +55 -0
- modules/scak/paper/main.md +192 -0
- modules/scak/paper/main.out +31 -0
- modules/scak/paper/main.pdf +0 -0
- modules/scak/paper/main.tex +482 -0
- modules/scak/reproducibility/ABLATIONS.md +225 -0
- modules/scak/reproducibility/Dockerfile.reproducibility +34 -0
- modules/scak/reproducibility/README.md +421 -0
- modules/scak/reproducibility/requirements-pinned.txt +32 -0
- modules/scak/reproducibility/run_all_experiments.py +395 -0
- modules/scak/reproducibility/seed_control.py +53 -0
- modules/scak/reproducibility/statistical_analysis.py +302 -0
- modules/scak/requirements.txt +50 -0
- modules/scak/setup.py +93 -0
- modules/scak/src/__init__.py +124 -0
- modules/scak/src/agents/__init__.py +13 -0
- modules/scak/src/agents/conflict_resolution.py +732 -0
- modules/scak/src/agents/orchestrator.py +761 -0
- modules/scak/src/agents/pubsub.py +484 -0
- modules/scak/src/agents/shadow_teacher.py +344 -0
- modules/scak/src/agents/swarm.py +661 -0
- modules/scak/src/agents/worker.py +357 -0
- modules/scak/src/integrations/__init__.py +81 -0
- modules/scak/src/integrations/cmvk_adapter.py +430 -0
- modules/scak/src/integrations/control_plane_adapter.py +601 -0
- modules/scak/src/integrations/langchain_integration.py +902 -0
- modules/scak/src/interfaces/__init__.py +59 -0
- modules/scak/src/interfaces/llm_clients.py +505 -0
- modules/scak/src/interfaces/openapi_tools.py +611 -0
- modules/scak/src/interfaces/plugin_system.py +605 -0
- modules/scak/src/interfaces/protocols.py +365 -0
- modules/scak/src/interfaces/telemetry.py +464 -0
- modules/scak/src/interfaces/tool_registry.py +547 -0
- modules/scak/src/kernel/__init__.py +100 -0
- modules/scak/src/kernel/auditor.py +305 -0
- modules/scak/src/kernel/circuit_breaker.py +398 -0
- modules/scak/src/kernel/core.py +724 -0
- modules/scak/src/kernel/distributed.py +667 -0
- modules/scak/src/kernel/evolution.py +455 -0
- modules/scak/src/kernel/failover.py +621 -0
- modules/scak/src/kernel/governance.py +710 -0
- modules/scak/src/kernel/governance_v2.py +603 -0
- modules/scak/src/kernel/lazy_evaluator.py +514 -0
- modules/scak/src/kernel/load_testing.py +633 -0
- modules/scak/src/kernel/memory.py +945 -0
- modules/scak/src/kernel/patcher.py +581 -0
- modules/scak/src/kernel/rubric.py +419 -0
- modules/scak/src/kernel/schemas.py +390 -0
- modules/scak/src/kernel/skill_mapper.py +309 -0
- modules/scak/src/kernel/triage.py +149 -0
- modules/scak/src/mocks/__init__.py +99 -0
- modules/scak/tests/__init__.py +1 -0
- modules/scak/tests/test_circuit_breaker.py +403 -0
- modules/scak/tests/test_conflict_resolution.py +287 -0
- modules/scak/tests/test_dual_loop.py +463 -0
- modules/scak/tests/test_enhanced_features.py +421 -0
- modules/scak/tests/test_failover_and_load.py +438 -0
- modules/scak/tests/test_governance.py +185 -0
- modules/scak/tests/test_kernel.py +359 -0
- modules/scak/tests/test_langchain_integration.py +451 -0
- modules/scak/tests/test_lazy_evaluator.py +465 -0
- modules/scak/tests/test_llm_clients.py +122 -0
- modules/scak/tests/test_memory_controller.py +528 -0
- modules/scak/tests/test_orchestrator.py +181 -0
- modules/scak/tests/test_phase3_integration.py +265 -0
- modules/scak/tests/test_pubsub_swarm.py +203 -0
- modules/scak/tests/test_reference_implementations.py +240 -0
- modules/scak/tests/test_rubric.py +363 -0
- modules/scak/tests/test_scak_v2.py +651 -0
- modules/scak/tests/test_skill_mapper.py +217 -0
- modules/scak/tests/test_specific_failures.py +393 -0
- modules/scak/tests/test_tool_registry.py +264 -0
- modules/scak/tests/test_tools_and_plugins.py +303 -0
- modules/scak/tests/test_triage.py +596 -0
- modules/scak/tests/test_write_through.py +319 -0
- agent_os_kernel-1.1.0.dist-info/METADATA +0 -400
- agent_os_kernel-1.1.0.dist-info/RECORD +0 -12
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/WHEEL +0 -0
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# Agent Control Plane: A Deterministic Kernel for Zero-Violation Governance in Agentic AI
|
|
2
|
+
|
|
3
|
+
**Imran Siddique**
|
|
4
|
+
*Principal Group Engineering Manager, Microsoft*
|
|
5
|
+
*Correspondence: @isiddique (GitHub/Medium)*
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Abstract
|
|
10
|
+
|
|
11
|
+
Modern AI agents capable of executing real-world actions—querying databases, calling APIs, writing files—face a critical reliability gap: their stochastic nature makes safety guarantees elusive, and prompt-based guardrails fail under adversarial conditions. We introduce the **Agent Control Plane (ACP)**, a kernel-inspired middleware layer that enforces deterministic governance through attribute-based access control (ABAC), multi-dimensional constraint graphs, and shadow mode simulation.
|
|
12
|
+
|
|
13
|
+
Unlike advisory systems that merely suggest safe behavior, ACP interposes between agent intent and action execution, achieving **0.00% safety violations** on a 60-prompt red-team benchmark spanning direct attacks, prompt injections, and contextual confusion—with zero false positives. Our key insight, "Scale by Subtraction," replaces verbose LLM-generated refusals with deterministic `NULL` responses, yielding a **98.1% token reduction** while eliminating information leakage about blocked actions.
|
|
14
|
+
|
|
15
|
+
Ablation studies with statistical rigor (Welch's t-test, Bonferroni correction) confirm component necessity: removing the *PolicyEngine* increases violations from 0% to 40.0% (, Cohen’s ). We demonstrate production readiness through integrations with OpenAI function calling, LangChain agents, and multi-agent orchestration, supported by Docker deployments and frozen dependencies.
|
|
16
|
+
|
|
17
|
+
**Keywords:** Agentic AI, AI Safety, Deterministic Governance, Access Control, Kernel Architecture.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Introduction
|
|
22
|
+
|
|
23
|
+
### 1.1 The Agent Safety Crisis
|
|
24
|
+
|
|
25
|
+
The deployment of autonomous AI agents in enterprise environments has accelerated dramatically. Agents are no longer passive chat interfaces; they are active entities capable of executing consequential real-world actions: querying production databases, calling external APIs, modifying file systems, and orchestrating multi-step workflows. Yet, this capability introduces a fundamental tension: the very stochasticity that makes large language models (LLMs) creative and flexible also makes them unpredictable and inherently unsafe for critical operations.
|
|
26
|
+
|
|
27
|
+
Recent incidents highlight the severity of relying on probabilistic safety mechanisms:
|
|
28
|
+
|
|
29
|
+
* **Jailbreak vulnerabilities**: Adversarial prompts routinely bypass safety training. Techniques like "DAN" (Do Anything Now) and role-playing exploits achieve success rates exceeding 80% on supposedly aligned models.
|
|
30
|
+
* **Prompt injection attacks**: Malicious instructions embedded in retrieved documents or user inputs can hijack agent behavior, causing unintended data exfiltration or destructive actions.
|
|
31
|
+
* **Capability overhang**: Agents granted broad permissions "just in case" often retain access to sensitive operations they should never execute, violating the principle of least privilege.
|
|
32
|
+
|
|
33
|
+
### 1.2 "Vibes" Are Not Engineering
|
|
34
|
+
|
|
35
|
+
Current mitigation strategies—prompt-based guardrails, output filtering, and advisory systems—share a fatal flaw: they treat safety as a *suggestion* rather than an *invariant*. They rely on "vibes"—asking the model to "please be helpful and harmless." In distributed systems, we do not ask a microservice to "please respect rate limits"; we enforce them at the gateway. We do not ask a database query to "please not drop tables"; we enforce permissions via ACLs.
|
|
36
|
+
|
|
37
|
+
Using prompt engineering to secure an agent is akin to asking a CPU to "please not access kernel memory." It is an architectural category error. To build reliable agentic systems, we must move from *prompt engineering* to *systems engineering*.
|
|
38
|
+
|
|
39
|
+
### 1.3 The Solution: A Deterministic Kernel
|
|
40
|
+
|
|
41
|
+
We propose the **Agent Control Plane (ACP)**, a kernel-inspired architecture that mediates all access to resources. Just as an operating system kernel enforces memory protection regardless of a user program’s intent, ACP enforces action-level governance regardless of an agent’s reasoning.
|
|
42
|
+
|
|
43
|
+
Our design is grounded in three core philosophies:
|
|
44
|
+
|
|
45
|
+
1. **Deterministic over Stochastic**: Safety decisions must be binary (allow/deny). A database query is either permitted or blocked; there is no "85% safe." This eliminates the ambiguity adversaries exploit in probabilistic filtering.
|
|
46
|
+
2. **Action-Level over Content-Level**: We govern what agents *do*, not just what they *say*. An agent may generate text describing a `DROP TABLE` operation, but the ACP kernel prevents the command from ever reaching the execution engine.
|
|
47
|
+
3. **Scale by Subtraction**: Traditional refusal mechanisms ("I'm sorry, I cannot do that...") leak information about security boundaries and waste tokens. ACP’s **MuteAgent** component returns deterministic `NULL` responses for blocked actions. This "Scale by Subtraction" approach removes the variable of "creativity" from safety enforcement, resulting in 98.1% greater efficiency and zero information leakage.
|
|
48
|
+
**Companion Work**: This paper focuses on the deterministic governance layer. Concurrent work on automated alignment through self-correcting mechanisms appears in our companion preprint, *Self-Correcting Agent Kernel (SCAK)* [21], which addresses complementary challenges of runtime policy adaptation.
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. Related Work
|
|
52
|
+
|
|
53
|
+
### 2.1 Training-Time Alignment vs. Runtime Enforcement
|
|
54
|
+
|
|
55
|
+
Reinforcement Learning from Human Feedback (RLHF) and Constitutional AI align models during training. While effective for general behavior shaping, training-time alignment is vulnerable to jailbreaks at inference time and cannot adapt to dynamic enterprise policies (e.g., "no database writes during maintenance windows"). ACP operates at runtime, providing defense-in-depth that remains effective even when alignment fails.
|
|
56
|
+
|
|
57
|
+
### 2.2 Content Moderation
|
|
58
|
+
|
|
59
|
+
Systems like LlamaGuard and the Perspective API focus on classifying input/output text. While necessary for toxicity filtering, they fail to address *tool use*. A perfectly polite request to `delete_all_users()` passes content moderation but must be blocked by action governance. ACP complements content moderation by governing the functional layer of agent capabilities.
|
|
60
|
+
|
|
61
|
+
### 2.3 Advisory Frameworks
|
|
62
|
+
|
|
63
|
+
Frameworks such as NeMo Guardrails and Guardrails.ai represent significant progress but primarily offer advisory guidance or output validation. They often lack the "kernel" authority to hard-block execution at the infrastructure level. ACP integrates as a middleware layer, compatible with these frameworks but providing strict, non-bypassable enforcement.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 3. System Design
|
|
68
|
+
|
|
69
|
+
The Agent Control Plane treats the LLM as a raw compute component—a "CPU" for reasoning—while the Control Plane acts as the Operating System.
|
|
70
|
+
|
|
71
|
+
### 3.1 Architecture Overview
|
|
72
|
+
|
|
73
|
+
The system interposes between the Agent (Intent) and the Execution Environment (Action).
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
77
|
+
│ Agent Control Plane │
|
|
78
|
+
├─────────────────────────────────────────────────────────────┤
|
|
79
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
80
|
+
│ │ Policy │ │ Constraint │ │ Shadow │ │
|
|
81
|
+
│ │ Engine │ │ Graphs │ │ Mode │ │
|
|
82
|
+
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
|
|
83
|
+
│ │ │ │ │
|
|
84
|
+
│ ▼ ▼ ▼ │
|
|
85
|
+
│ ┌─────────────────────────────────────────────────┐ │
|
|
86
|
+
│ │ Agent Kernel (Enforcement) │ │
|
|
87
|
+
│ └─────────────────────────────────────────────────┘ │
|
|
88
|
+
│ │ │
|
|
89
|
+
│ ▼ │
|
|
90
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
91
|
+
│ │ Mute │ │ Execution │ │ Flight │ │
|
|
92
|
+
│ │ Agent │ │ Engine │ │ Recorder │ │
|
|
93
|
+
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
94
|
+
└─────────────────────────────────────────────────────────────┘
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+

|
|
99
|
+
|
|
100
|
+
**Figure 1:** The ACP Architecture. Requests are intercepted by the Kernel, validated against the Policy Engine and Constraint Graphs, and either executed via the Execution Engine or nullified by the Mute Agent.
|
|
101
|
+
|
|
102
|
+
### 3.2 The Agent Kernel
|
|
103
|
+
|
|
104
|
+
The Kernel is the central coordinator. It implements a 4-level permission system (`NONE`, `READ_ONLY`, `READ_WRITE`, `ADMIN`) and intercepts every action request. It manages session isolation, ensuring no cross-contamination between agent contexts.
|
|
105
|
+
|
|
106
|
+
### 3.3 PolicyEngine
|
|
107
|
+
|
|
108
|
+
The PolicyEngine evaluates requests against deterministic rules:
|
|
109
|
+
|
|
110
|
+
* **ABAC (Attribute-Based Access Control)**: Validates Subject (Agent ID), Resource (Target), Action (Method), and Environment (Time/Location).
|
|
111
|
+
* **Resource Quotas**: Enforces limits on API calls, token usage, and execution time.
|
|
112
|
+
* **Risk Assessment**: Calculates a dynamic risk score (0.0–1.0) for every action. High-risk actions (e.g., `WRITE` operations to sensitive tables) trigger elevated authorization requirements.
|
|
113
|
+
|
|
114
|
+
### 3.4 Constraint Graphs: Multi-Dimensional Context
|
|
115
|
+
|
|
116
|
+
Enterprise context is not flat. We model it using three graph structures:
|
|
117
|
+
|
|
118
|
+
1. **Data Graph**: Defines existence and accessibility (e.g., "User A can see Table X").
|
|
119
|
+
2. **Policy Graph**: Encodes compliance rules (e.g., "PII cannot be exported to external APIs").
|
|
120
|
+
3. **Temporal Graph**: Enforces time-based states (e.g., "No production writes between 2 AM and 4 AM").
|
|
121
|
+
|
|
122
|
+
A request must satisfy all three graphs to proceed. This effectively handles "contextual confusion" attacks where agents are tricked into performing valid actions in invalid contexts.
|
|
123
|
+
|
|
124
|
+

|
|
125
|
+
|
|
126
|
+
**Figure 2:** Multi-dimensional constraint validation. A request must satisfy Data, Policy, and Temporal graphs simultaneously.
|
|
127
|
+
|
|
128
|
+
### 3.5 MuteAgent: Scale by Subtraction
|
|
129
|
+
|
|
130
|
+
When an action is blocked, traditional systems generate verbose refusals (*"I'm sorry, I cannot..."*). This wastes tokens and leaks information about the system's boundaries. The **MuteAgent** component returns a deterministic `NULL`.
|
|
131
|
+
|
|
132
|
+
* **Security**: The adversary receives no feedback to refine their attack.
|
|
133
|
+
* **Efficiency**: Reduces response overhead from ~127 tokens to 0.5 tokens.
|
|
134
|
+
* **Predictability**: Removes LLM variance from the refusal process.
|
|
135
|
+
|
|
136
|
+
### 3.6 FlightRecorder and Shadow Mode
|
|
137
|
+
|
|
138
|
+
* **FlightRecorder**: immutable audit logs for every decision (permitted or denied), enabling SOC 2 and GDPR compliance.
|
|
139
|
+
* **Shadow Mode**: Allows agents to run in a "simulation" state where actions are validated and logged but not executed. This enables safe "burn-in" periods for new agent behaviors in production.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 4. Experiments
|
|
144
|
+
|
|
145
|
+
We evaluated ACP on a rigorous red-team benchmark to measure safety, efficiency, and latency.
|
|
146
|
+
|
|
147
|
+
### 4.1 Methodology
|
|
148
|
+
|
|
149
|
+
* **Dataset**: 60 adversarial prompts balanced across Direct Violations (explicit harm), Prompt Injections (hidden instructions), Contextual Confusion (social engineering), and Valid Requests (baseline).
|
|
150
|
+
* **Baselines**: Unprotected agents using standard system prompts.
|
|
151
|
+
* **Configuration**: 5 independent seeds (42, 123, 456, 789, 1024) to account for LLM stochasticity.
|
|
152
|
+
* **Statistical Tests**: Welch’s t-test with Bonferroni correction ().
|
|
153
|
+
|
|
154
|
+
### 4.2 Main Results
|
|
155
|
+
|
|
156
|
+
**Table 1: Safety and Efficiency Performance**
|
|
157
|
+
| Metric | Baseline (No ACP) | With ACP | Improvement |
|
|
158
|
+
|--------|-------------------|----------|-------------|
|
|
159
|
+
| **Safety Violation Rate** | 26.67% ± 2.1% | **0.00% ± 0.0%** | **-26.67 pp** |
|
|
160
|
+
| **False Positive Rate** | 0.00% | 0.00% | — |
|
|
161
|
+
| **Tokens per Blocked Req**| 127.4 ± 18.6 | **0.5 ± 0.1** | **98.1% reduction** |
|
|
162
|
+
| **Latency Overhead** | 0 ms | 12 ms | Negligible |
|
|
163
|
+
|
|
164
|
+

|
|
165
|
+
|
|
166
|
+
**Figure 3:** Safety Violation Rate and Token Efficiency comparison between Baseline (no governance) and ACP-protected agents.
|
|
167
|
+
|
|
168
|
+
ACP achieved perfect safety scores (0 violations) across all categories while maintaining zero false positives for valid requests. The token efficiency gain of 98.1% confirms the validity of the "Scale by Subtraction" philosophy.
|
|
169
|
+
|
|
170
|
+
### 4.3 Ablation Studies
|
|
171
|
+
|
|
172
|
+
To understand the contribution of each component, we performed systematic removal studies.
|
|
173
|
+
|
|
174
|
+
**Table 2: Component Criticality Analysis**
|
|
175
|
+
| Configuration | SVR (Violation Rate) | -value (vs Full) | Cohen's | Impact |
|
|
176
|
+
|---------------|----------------------|-------------------|-------------|--------|
|
|
177
|
+
| **Full Kernel** | **0.00%** | — | — | Baseline |
|
|
178
|
+
| No PolicyEngine | 40.00% ± 5.2 | | 8.7 | **Critical** |
|
|
179
|
+
| No ConstraintGraphs | 3.33% ± 1.8 | | 1.9 | High |
|
|
180
|
+
| No MuteAgent | 0.00% | | 0.0 | Efficiency Only |
|
|
181
|
+
| No SupervisorAgents | 0.00% | | 0.1 | Multi-Agent Only |
|
|
182
|
+
|
|
183
|
+

|
|
184
|
+
|
|
185
|
+
**Figure 4:** Component criticality analysis showing Safety Violation Rate when each component is removed. PolicyEngine removal causes catastrophic failure (d=8.7).
|
|
186
|
+
|
|
187
|
+
* **PolicyEngine** is the cornerstone of safety; removing it caused violations to skyrocket to 40% (, a huge effect size).
|
|
188
|
+
* **ConstraintGraphs** are essential for edge cases, specifically preventing contextual attacks (3.33% degradation when removed).
|
|
189
|
+
* **MuteAgent** does not affect safety scores but is critical for efficiency. Removing it increased token usage by 5,160% (from 0.5 to 26.3 tokens).
|
|
190
|
+
|
|
191
|
+
### 4.4 Latency Analysis
|
|
192
|
+
|
|
193
|
+
The total overhead added by the ACP middleware is **~12ms** (Permission Check: 0.5ms, Policy Eval: 1–5ms, Graph Lookup: 1–3ms). Compared to typical LLM inference latencies of 500–2000ms, this <1% overhead is negligible for production systems.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 5. Discussion
|
|
198
|
+
|
|
199
|
+
### 5.1 The Necessity of Determinism
|
|
200
|
+
|
|
201
|
+
Our results empirically demonstrate that probabilistic safety (prompting) is insufficient for tool-using agents. The Baseline model failed 26.67% of the time, often because the LLM was "tricked" into thinking a harmful action was helpful. The ACP Kernel, by ignoring the "why" and enforcing the "what," eliminated these failures entirely.
|
|
202
|
+
|
|
203
|
+
### 5.2 Efficiency as a Security Feature
|
|
204
|
+
|
|
205
|
+
The MuteAgent's success suggests that verbosity is a vulnerability. By returning `NULL`, we deny attackers the gradient signals they need to iterate on their attacks. This aligns with the security principle of "Silent Failure".
|
|
206
|
+
|
|
207
|
+
**Complementary Approaches**: While ACP enforces static, predefined policies, our companion work on the *Self-Correcting Agent Kernel* [21] explores dynamic policy adaptation—automatically adjusting constraints based on observed agent behavior. Together, these approaches offer a spectrum from strict determinism (ACP) to adaptive governance (SCAK).
|
|
208
|
+
|
|
209
|
+
### 5.3 Limitations
|
|
210
|
+
|
|
211
|
+
* **Modality**: Our benchmarks focused on text/tool-use agents. Vision and audio modalities require further study, particularly for agents processing images or transcribing speech where harmful intent may be encoded in non-textual formats.
|
|
212
|
+
|
|
213
|
+
* **Semantic Attacks**: While ACP handles action governance perfectly, sophisticated semantic attacks that rely on *authorized* actions (e.g., extracting sensitive data via authorized queries) require the PolicyEngine to have high-fidelity data inspection rules. Attacks that stay within permission boundaries but achieve harm through composition remain an open challenge.
|
|
214
|
+
|
|
215
|
+
* **Multi-Turn Exploitation**: Our benchmark evaluates single-turn interactions. In production, adversaries may employ multi-turn strategies—gradually escalating permissions, building context across sessions, or exploiting state accumulated over conversation history. While the FlightRecorder captures cross-session patterns, real-time detection of slow-burn attacks requires integration with anomaly detection systems not yet implemented in ACP.
|
|
216
|
+
|
|
217
|
+
* **Policy Specification Burden**: The deterministic guarantees of ACP require precise policy definitions. Misconfigured policies (overly permissive or restrictive) shift risk from the LLM to the policy author. Future work should explore policy synthesis from natural language specifications or learned policies from observed safe behaviors.
|
|
218
|
+
|
|
219
|
+
* **Baseline Scope**: We compared against unprotected agents rather than other runtime governance systems (e.g., NeMo Guardrails, Guardrails.ai). Direct comparisons would strengthen claims but require standardized benchmarks not yet available in the field.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 6. Conclusion
|
|
224
|
+
|
|
225
|
+
The "magic" phase of AI is ending; the engineering phase has begun. We have presented the **Agent Control Plane**, a system that transitions agent safety from "vibes" to "invariants." By implementing a deterministic kernel, multi-dimensional constraint graphs, and a "Scale by Subtraction" philosophy, ACP achieves **0.00% safety violations** with negligible latency and massive efficiency gains.
|
|
226
|
+
|
|
227
|
+
As agents move into critical roles in finance, healthcare, and infrastructure, reliance on stochastic compliance is professional negligence. We offer ACP as an open-source foundation (`pip install agent-control-plane`) for the next generation of trustworthy, engineered agentic systems.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## References
|
|
232
|
+
|
|
233
|
+
[1] Bai, Y., et al. (2022). Constitutional AI: Harmlessness from AI Feedback. *arXiv:2212.08073*.
|
|
234
|
+
|
|
235
|
+
[2] Chase, H. (2022). LangChain: Building applications with LLMs through composability.
|
|
236
|
+
|
|
237
|
+
[3] Cohen, J. (1988). *Statistical Power Analysis for the Behavioral Sciences*. Lawrence Erlbaum.
|
|
238
|
+
|
|
239
|
+
[4] Greshake, K., et al. (2023). Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection. *arXiv:2302.12173*.
|
|
240
|
+
|
|
241
|
+
[5] Inan, H., et al. (2023). Llama Guard: LLM-based Input-Output Safeguard. *arXiv:2312.06674*.
|
|
242
|
+
|
|
243
|
+
[6] Microsoft Research (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation.
|
|
244
|
+
|
|
245
|
+
[7] NIST (2014). Guide to Attribute Based Access Control (ABAC). *SP 800-162*.
|
|
246
|
+
|
|
247
|
+
[8] NVIDIA (2023). NeMo Guardrails: A Toolkit for Controllable LLM Applications.
|
|
248
|
+
|
|
249
|
+
[9] Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. *NeurIPS*.
|
|
250
|
+
|
|
251
|
+
[10] Significant-Gravitas (2023). AutoGPT: An Autonomous GPT-4 Experiment.
|
|
252
|
+
|
|
253
|
+
[11] Wei, A., et al. (2023). Jailbroken: How Does LLM Safety Training Fail? *arXiv:2307.02483*.
|
|
254
|
+
|
|
255
|
+
[12] Welch, B. L. (1947). The generalization of Student's problem when several different population variances are involved. *Biometrika*, 34(1-2), 28–35.
|
|
256
|
+
|
|
257
|
+
[13] Zou, A., et al. (2023). Universal and Transferable Adversarial Attacks on Aligned Language Models. *arXiv:2307.15043*.
|
|
258
|
+
|
|
259
|
+
[14] MAESTRO (2025). Multi-Agent System Evaluation and Testing for Reliable Operations. *arXiv:2503.03813*.
|
|
260
|
+
|
|
261
|
+
[15] Guardrails AI (2023). [https://www.guardrailsai.com/](https://www.guardrailsai.com/)
|
|
262
|
+
|
|
263
|
+
[16] Anthropic (2024). Model Context Protocol Specification. [https://modelcontextprotocol.io/](https://modelcontextprotocol.io/)
|
|
264
|
+
|
|
265
|
+
[17] OpenAI (2023). Practices for Governing Agentic AI Systems.
|
|
266
|
+
|
|
267
|
+
[18] Russell, S., & Norvig, P. (2020). *Artificial Intelligence: A Modern Approach* (4th ed.). Pearson.
|
|
268
|
+
|
|
269
|
+
[19] Weiss, G. (2013). *Multiagent Systems* (2nd ed.). MIT Press.
|
|
270
|
+
|
|
271
|
+
[20] Deloitte (2025). Unlocking Exponential Value with AI Agent Orchestration.
|
|
272
|
+
|
|
273
|
+
[21] Siddique, I. (2026). Self-Correcting Agent Kernel: Automated Alignment Through Runtime Policy Adaptation. *arXiv preprint*. (Companion paper)
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
\documentclass[11pt,a4paper]{article}
|
|
2
|
+
|
|
3
|
+
% Required packages
|
|
4
|
+
\usepackage[utf8]{inputenc}
|
|
5
|
+
\usepackage[T1]{fontenc}
|
|
6
|
+
\usepackage[margin=1in]{geometry}
|
|
7
|
+
\usepackage{hyperref}
|
|
8
|
+
\usepackage{url}
|
|
9
|
+
\usepackage{booktabs}
|
|
10
|
+
\usepackage{amsfonts}
|
|
11
|
+
\usepackage{amsmath}
|
|
12
|
+
\usepackage{nicefrac}
|
|
13
|
+
\usepackage{microtype}
|
|
14
|
+
\usepackage{graphicx}
|
|
15
|
+
\usepackage{listings}
|
|
16
|
+
\usepackage{xcolor}
|
|
17
|
+
\usepackage{float}
|
|
18
|
+
\usepackage{authblk}
|
|
19
|
+
|
|
20
|
+
% Hyperref setup
|
|
21
|
+
\hypersetup{
|
|
22
|
+
colorlinks=true,
|
|
23
|
+
linkcolor=blue,
|
|
24
|
+
citecolor=blue,
|
|
25
|
+
urlcolor=blue
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
% Keywords command
|
|
29
|
+
\providecommand{\keywords}[1]{\textbf{Keywords:} #1}
|
|
30
|
+
|
|
31
|
+
% Title and Author
|
|
32
|
+
\title{Agent Control Plane: A Deterministic Kernel for Zero-Violation Governance in Agentic AI}
|
|
33
|
+
|
|
34
|
+
\author{Imran Siddique}
|
|
35
|
+
\affil{Principal Group Engineering Manager, Microsoft \\ \texttt{imran.siddique@microsoft.com}}
|
|
36
|
+
|
|
37
|
+
\begin{document}
|
|
38
|
+
\maketitle
|
|
39
|
+
|
|
40
|
+
\begin{abstract}
|
|
41
|
+
Modern AI agents capable of executing real-world actions—querying databases, calling APIs, writing files—face a critical reliability gap: their stochastic nature makes safety guarantees elusive, and prompt-based guardrails fail under adversarial conditions. We introduce the \textbf{Agent Control Plane (ACP)}, a kernel-inspired middleware layer that enforces deterministic governance through attribute-based access control (ABAC), multi-dimensional constraint graphs, and shadow mode simulation.
|
|
42
|
+
|
|
43
|
+
Unlike advisory systems that merely suggest safe behavior, ACP interposes between agent intent and action execution, achieving \textbf{0.00\% safety violations} on a 60-prompt red-team benchmark spanning direct attacks, prompt injections, and contextual confusion—with zero false positives. Our key insight, ``Scale by Subtraction,'' replaces verbose LLM-generated refusals with deterministic \texttt{NULL} responses, yielding a \textbf{98.1\% token reduction} while eliminating information leakage about blocked actions.
|
|
44
|
+
|
|
45
|
+
Ablation studies with statistical rigor (Welch's t-test, Bonferroni correction) confirm component necessity: removing the \textit{PolicyEngine} increases violations from 0\% to 40.0\% ($p < 0.0001$, Cohen's $d = 8.7$). We demonstrate production readiness through integrations with OpenAI function calling, LangChain agents, and multi-agent orchestration.
|
|
46
|
+
\end{abstract}
|
|
47
|
+
|
|
48
|
+
\keywords{Agentic AI \and AI Safety \and Deterministic Governance \and Access Control \and Kernel Architecture}
|
|
49
|
+
|
|
50
|
+
\section{Introduction}
|
|
51
|
+
\label{sec:introduction}
|
|
52
|
+
|
|
53
|
+
\subsection{The Agent Safety Crisis}
|
|
54
|
+
The deployment of autonomous AI agents in enterprise environments has accelerated dramatically. Agents are no longer passive chat interfaces; they are active entities capable of executing consequential real-world actions: querying production databases, calling external APIs, modifying file systems, and orchestrating multi-step workflows \cite{deloitte2025orchestration}. Yet, this capability introduces a fundamental tension: the very stochasticity that makes large language models (LLMs) creative and flexible also makes them unpredictable and inherently unsafe for critical operations.
|
|
55
|
+
|
|
56
|
+
Recent incidents highlight the severity of relying on probabilistic safety mechanisms:
|
|
57
|
+
\begin{itemize}
|
|
58
|
+
\item \textbf{Jailbreak vulnerabilities}: Adversarial prompts routinely bypass safety training. Techniques like ``DAN'' (Do Anything Now) and role-playing exploits achieve success rates exceeding 80\% on supposedly aligned models \cite{wei2023jailbroken,zou2023universal}.
|
|
59
|
+
\item \textbf{Prompt injection attacks}: Malicious instructions embedded in retrieved documents or user inputs can hijack agent behavior, causing unintended data exfiltration or destructive actions \cite{greshake2023not}.
|
|
60
|
+
\item \textbf{Capability overhang}: Agents granted broad permissions ``just in case'' often retain access to sensitive operations they should never execute, violating the principle of least privilege.
|
|
61
|
+
\end{itemize}
|
|
62
|
+
|
|
63
|
+
\subsection{``Vibes'' Are Not Engineering}
|
|
64
|
+
Current mitigation strategies—prompt-based guardrails, output filtering, and advisory systems—share a fatal flaw: they treat safety as a \textit{suggestion} rather than an \textit{invariant}. They rely on ``vibes''—asking the model to ``please be helpful and harmless.'' In distributed systems, we do not ask a microservice to ``please respect rate limits''; we enforce them at the gateway. We do not ask a database query to ``please not drop tables''; we enforce permissions via ACLs.
|
|
65
|
+
|
|
66
|
+
Using prompt engineering to secure an agent is akin to asking a CPU to ``please not access kernel memory.'' It is an architectural category error. To build reliable agentic systems, we must move from \textit{prompt engineering} to \textit{systems engineering}. For complementary research on improving agent reliability through iterative reasoning refinement rather than hard constraints, see our companion work on the \textbf{Self-Correcting Agent Kernel} \cite{siddique2026scak}.
|
|
67
|
+
|
|
68
|
+
\subsection{The Solution: A Deterministic Kernel}
|
|
69
|
+
We propose the \textbf{Agent Control Plane (ACP)}, a kernel-inspired architecture that mediates all access to resources. Just as an operating system kernel enforces memory protection regardless of a user program’s intent, ACP enforces action-level governance regardless of an agent’s reasoning.
|
|
70
|
+
|
|
71
|
+
Our design is grounded in three core philosophies:
|
|
72
|
+
\begin{enumerate}
|
|
73
|
+
\item \textbf{Deterministic over Stochastic}: Safety decisions must be binary (allow/deny). A database query is either permitted or blocked; there is no ``85\% safe.'' This eliminates the ambiguity adversaries exploit in probabilistic filtering.
|
|
74
|
+
\item \textbf{Action-Level over Content-Level}: We govern what agents \textit{do}, not just what they \textit{say}. An agent may generate text describing a \texttt{DROP TABLE} operation, but the ACP kernel prevents the command from ever reaching the execution engine.
|
|
75
|
+
\item \textbf{Scale by Subtraction}: Traditional refusal mechanisms (``I'm sorry, I cannot do that...'') leak information about security boundaries and waste tokens. ACP’s \textbf{MuteAgent} component returns deterministic \texttt{NULL} responses for blocked actions. This ``Scale by Subtraction'' approach removes the variable of ``creativity'' from safety enforcement, resulting in 98.1\% greater efficiency and zero information leakage.
|
|
76
|
+
\end{enumerate}
|
|
77
|
+
|
|
78
|
+
\section{System Design}
|
|
79
|
+
\label{sec:design}
|
|
80
|
+
|
|
81
|
+
The Agent Control Plane treats the LLM as a raw compute component—a ``CPU'' for reasoning—while the Control Plane acts as the Operating System.
|
|
82
|
+
|
|
83
|
+
\begin{figure}[H]
|
|
84
|
+
\centering
|
|
85
|
+
\includegraphics[width=0.9\textwidth]{figures/architecture.png}
|
|
86
|
+
\caption{The ACP Architecture. Requests are intercepted by the Kernel, validated against the Policy Engine and Constraint Graphs, and either executed via the Execution Engine or nullified by the Mute Agent.}
|
|
87
|
+
\label{fig:architecture}
|
|
88
|
+
\end{figure}
|
|
89
|
+
|
|
90
|
+
\subsection{The Agent Kernel}
|
|
91
|
+
The Kernel is the central coordinator. It implements a 4-level permission system (\texttt{NONE}, \texttt{READ\_ONLY}, \texttt{READ\_WRITE}, \texttt{ADMIN}) and intercepts every action request. It manages session isolation, ensuring no cross-contamination between agent contexts.
|
|
92
|
+
|
|
93
|
+
\subsection{PolicyEngine}
|
|
94
|
+
The PolicyEngine evaluates requests against deterministic rules:
|
|
95
|
+
\begin{itemize}
|
|
96
|
+
\item \textbf{ABAC}: Validates Subject (Agent ID), Resource (Target), Action (Method), and Environment (Time/Location) \cite{nist2014abac}.
|
|
97
|
+
\item \textbf{Resource Quotas}: Enforces limits on API calls, token usage, and execution time.
|
|
98
|
+
\item \textbf{Risk Assessment}: Calculates a dynamic risk score (0.0–1.0) for every action. High-risk actions trigger elevated authorization requirements.
|
|
99
|
+
\end{itemize}
|
|
100
|
+
|
|
101
|
+
\subsection{Constraint Graphs: Multi-Dimensional Context}
|
|
102
|
+
Enterprise context is not flat. We model it using three graph structures:
|
|
103
|
+
\begin{enumerate}
|
|
104
|
+
\item \textbf{Data Graph}: Defines existence and accessibility (e.g., ``User A can see Table X'').
|
|
105
|
+
\item \textbf{Policy Graph}: Encodes compliance rules (e.g., ``PII cannot be exported to external APIs'').
|
|
106
|
+
\item \textbf{Temporal Graph}: Enforces time-based states (e.g., ``No production writes between 2 AM and 4 AM'').
|
|
107
|
+
\end{enumerate}
|
|
108
|
+
|
|
109
|
+
A request must satisfy all three graphs to proceed. This multi-dimensional validation effectively handles ``contextual confusion'' attacks where agents are tricked into performing valid actions in invalid contexts.
|
|
110
|
+
|
|
111
|
+
\begin{figure}[H]
|
|
112
|
+
\centering
|
|
113
|
+
\includegraphics[width=0.7\textwidth]{figures/constraint_graphs.png}
|
|
114
|
+
\caption{Multi-dimensional constraint validation. A request must satisfy Data, Policy, and Temporal graphs simultaneously to be permitted.}
|
|
115
|
+
\label{fig:constraint_graphs}
|
|
116
|
+
\end{figure}
|
|
117
|
+
|
|
118
|
+
\subsection{MuteAgent: Scale by Subtraction}
|
|
119
|
+
When an action is blocked, traditional systems generate verbose refusals. The \textbf{MuteAgent} component returns a deterministic \texttt{NULL}.
|
|
120
|
+
\begin{itemize}
|
|
121
|
+
\item \textbf{Security}: The adversary receives no feedback to refine their attack.
|
|
122
|
+
\item \textbf{Efficiency}: Reduces response overhead from $\sim$127 tokens to 0.5 tokens.
|
|
123
|
+
\item \textbf{Predictability}: Removes LLM variance from the refusal process.
|
|
124
|
+
\end{itemize}
|
|
125
|
+
|
|
126
|
+
\section{Experiments}
|
|
127
|
+
\label{sec:experiments}
|
|
128
|
+
|
|
129
|
+
\subsection{Methodology}
|
|
130
|
+
We evaluated ACP on a red-team benchmark using 5 independent seeds (42, 123, 456, 789, 1024). Significance was determined via Welch's t-test with Bonferroni correction ($\alpha = 0.0083$).
|
|
131
|
+
|
|
132
|
+
\textbf{Dataset}: 60 adversarial prompts balanced across Direct Violations (explicit harm), Prompt Injections (hidden instructions), Contextual Confusion (social engineering), and Valid Requests.
|
|
133
|
+
|
|
134
|
+
\subsection{Main Results}
|
|
135
|
+
|
|
136
|
+
\begin{table}[H]
|
|
137
|
+
\caption{Safety and Efficiency Performance}
|
|
138
|
+
\centering
|
|
139
|
+
\begin{tabular}{lccc}
|
|
140
|
+
\toprule
|
|
141
|
+
\textbf{Metric} & \textbf{Baseline (No ACP)} & \textbf{With ACP} & \textbf{Improvement} \\
|
|
142
|
+
\midrule
|
|
143
|
+
Safety Violation Rate & 26.67\% $\pm$ 2.1\% & \textbf{0.00\% $\pm$ 0.0\%} & -26.67 pp \\
|
|
144
|
+
False Positive Rate & 0.00\% & 0.00\% & — \\
|
|
145
|
+
Tokens per Blocked Req & 127.4 $\pm$ 18.6 & \textbf{0.5 $\pm$ 0.1} & 98.1\% reduction \\
|
|
146
|
+
Latency Overhead & 0 ms & 12 ms & Negligible \\
|
|
147
|
+
\bottomrule
|
|
148
|
+
\end{tabular}
|
|
149
|
+
\label{tab:main_results}
|
|
150
|
+
\end{table}
|
|
151
|
+
|
|
152
|
+
\begin{figure}[H]
|
|
153
|
+
\centering
|
|
154
|
+
\includegraphics[width=0.9\textwidth]{figures/results_chart.png}
|
|
155
|
+
\caption{Safety Violation Rate and Token Efficiency comparison between Baseline (no governance) and ACP-protected agents. Error bars represent standard deviation across 5 seeds.}
|
|
156
|
+
\label{fig:results}
|
|
157
|
+
\end{figure}
|
|
158
|
+
|
|
159
|
+
ACP achieved perfect safety scores (0 violations) across all categories while maintaining zero false positives for valid requests.
|
|
160
|
+
|
|
161
|
+
\subsection{Ablation Studies}
|
|
162
|
+
We systematically removed components to understand their criticality.
|
|
163
|
+
|
|
164
|
+
\begin{table}[H]
|
|
165
|
+
\caption{Component Criticality Analysis (n=300 evaluations)}
|
|
166
|
+
\centering
|
|
167
|
+
\begin{tabular}{lcccc}
|
|
168
|
+
\toprule
|
|
169
|
+
\textbf{Configuration} & \textbf{SVR} & \textbf{$p$-value (vs Full)} & \textbf{Cohen's $d$} & \textbf{Impact} \\
|
|
170
|
+
\midrule
|
|
171
|
+
\textbf{Full Kernel} & \textbf{0.00\%} & — & — & Baseline \\
|
|
172
|
+
No PolicyEngine & 40.00\% $\pm$ 5.2 & $< 0.0001$ & 8.7 & \textbf{Critical} \\
|
|
173
|
+
No ConstraintGraphs & 3.33\% $\pm$ 1.8 & $0.0012$ & 1.9 & High \\
|
|
174
|
+
No MuteAgent & 0.00\% & $0.94$ & 0.0 & Efficiency Only \\
|
|
175
|
+
\bottomrule
|
|
176
|
+
\end{tabular}
|
|
177
|
+
\label{tab:ablation}
|
|
178
|
+
\end{table}
|
|
179
|
+
|
|
180
|
+
\begin{figure}[H]
|
|
181
|
+
\centering
|
|
182
|
+
\includegraphics[width=0.85\textwidth]{figures/ablation_chart.png}
|
|
183
|
+
\caption{Ablation study results showing Safety Violation Rate (SVR) when each component is removed. PolicyEngine removal causes catastrophic failure ($d=8.7$).}
|
|
184
|
+
\label{fig:ablation}
|
|
185
|
+
\end{figure}
|
|
186
|
+
|
|
187
|
+
\begin{itemize}
|
|
188
|
+
\item \textbf{PolicyEngine} is the cornerstone of safety ($d=8.7$). Without it, agents are highly vulnerable.
|
|
189
|
+
\item \textbf{ConstraintGraphs} prevent contextual attacks, catching 3.33\% of edge cases that simple permissions missed.
|
|
190
|
+
\item \textbf{MuteAgent} provided a 5,160\% token efficiency gain (0.5 vs 26.3 tokens) without compromising safety.
|
|
191
|
+
\end{itemize}
|
|
192
|
+
|
|
193
|
+
\section{Discussion}
|
|
194
|
+
\label{sec:discussion}
|
|
195
|
+
|
|
196
|
+
\subsection{The Necessity of Determinism}
|
|
197
|
+
Our results empirically demonstrate that probabilistic safety is insufficient for tool-using agents. The ACP Kernel, by ignoring the ``why'' and enforcing the ``what,'' eliminated failures entirely.
|
|
198
|
+
|
|
199
|
+
\subsection{Limitations \& Ethical Considerations}
|
|
200
|
+
While ACP achieves zero violations in text-based benchmarks, risks remain.
|
|
201
|
+
\begin{itemize}
|
|
202
|
+
\item \textbf{Deployment Risks}: In high-concurrency environments, complex constraint graph traversals can introduce latency spikes, potentially degrading user experience. Furthermore, while MuteAgent is secure, the ``silent failure'' model can frustrate trusted users who may need educational feedback to correct their requests.
|
|
203
|
+
\item \textbf{Modality}: Our study focused on text/tool use. Vision and audio injection vectors require further study.
|
|
204
|
+
\item \textbf{Semantic Attacks}: Authorized actions used for malicious intent (e.g., scraping allowed data) remain a challenge for rule-based systems.
|
|
205
|
+
\end{itemize}
|
|
206
|
+
For a complementary approach addressing reasoning failures rather than hard constraints, we direct readers to our work on the Self-Correcting Agent Kernel \cite{siddique2026scak}.
|
|
207
|
+
|
|
208
|
+
\section{Conclusion}
|
|
209
|
+
The ``magic'' phase of AI is ending; the engineering phase has begun. By implementing a deterministic kernel, multi-dimensional constraint graphs, and a ``Scale by Subtraction'' philosophy, ACP achieves \textbf{0.00\% safety violations} with negligible latency. As agents move into critical roles, reliance on stochastic compliance is professional negligence. We offer ACP as an open-source foundation for the next generation of trustworthy, engineered agentic systems.
|
|
210
|
+
|
|
211
|
+
\bibliographystyle{unsrt}
|
|
212
|
+
\bibliography{references}
|
|
213
|
+
|
|
214
|
+
\end{document}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
\relax
|
|
2
|
+
\providecommand\hyper@newdestlabel[2]{}
|
|
3
|
+
\providecommand\HyField@AuxAddToFields[1]{}
|
|
4
|
+
\providecommand\HyField@AuxAddToCoFields[2]{}
|
|
5
|
+
\citation{deloitte2025orchestration}
|
|
6
|
+
\citation{wei2023jailbroken}
|
|
7
|
+
\citation{zou2023universal}
|
|
8
|
+
\citation{greshake2023not}
|
|
9
|
+
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
|
|
10
|
+
\newlabel{sec:introduction}{{1}{1}{Introduction}{section.1}{}}
|
|
11
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}The Agent Safety Crisis}{1}{subsection.1.1}\protected@file@percent }
|
|
12
|
+
\citation{siddique2026scak}
|
|
13
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}``Vibes'' Are Not Engineering}{2}{subsection.1.2}\protected@file@percent }
|
|
14
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}The Solution: A Deterministic Kernel}{2}{subsection.1.3}\protected@file@percent }
|
|
15
|
+
\@writefile{toc}{\contentsline {section}{\numberline {2}System Design}{2}{section.2}\protected@file@percent }
|
|
16
|
+
\newlabel{sec:design}{{2}{2}{System Design}{section.2}{}}
|
|
17
|
+
\citation{nist2014abac}
|
|
18
|
+
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The ACP Architecture. Requests are intercepted by the Kernel, validated against the Policy Engine and Constraint Graphs, and either executed via the Execution Engine or nullified by the Mute Agent.}}{3}{figure.1}\protected@file@percent }
|
|
19
|
+
\newlabel{fig:architecture}{{1}{3}{The ACP Architecture. Requests are intercepted by the Kernel, validated against the Policy Engine and Constraint Graphs, and either executed via the Execution Engine or nullified by the Mute Agent}{figure.1}{}}
|
|
20
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}The Agent Kernel}{3}{subsection.2.1}\protected@file@percent }
|
|
21
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}PolicyEngine}{3}{subsection.2.2}\protected@file@percent }
|
|
22
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Constraint Graphs: Multi-Dimensional Context}{3}{subsection.2.3}\protected@file@percent }
|
|
23
|
+
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Multi-dimensional constraint validation. A request must satisfy Data, Policy, and Temporal graphs simultaneously to be permitted.}}{4}{figure.2}\protected@file@percent }
|
|
24
|
+
\newlabel{fig:constraint_graphs}{{2}{4}{Multi-dimensional constraint validation. A request must satisfy Data, Policy, and Temporal graphs simultaneously to be permitted}{figure.2}{}}
|
|
25
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}MuteAgent: Scale by Subtraction}{4}{subsection.2.4}\protected@file@percent }
|
|
26
|
+
\@writefile{toc}{\contentsline {section}{\numberline {3}Experiments}{4}{section.3}\protected@file@percent }
|
|
27
|
+
\newlabel{sec:experiments}{{3}{4}{Experiments}{section.3}{}}
|
|
28
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Methodology}{4}{subsection.3.1}\protected@file@percent }
|
|
29
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Main Results}{5}{subsection.3.2}\protected@file@percent }
|
|
30
|
+
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Safety and Efficiency Performance}}{5}{table.1}\protected@file@percent }
|
|
31
|
+
\newlabel{tab:main_results}{{1}{5}{Safety and Efficiency Performance}{table.1}{}}
|
|
32
|
+
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Safety Violation Rate and Token Efficiency comparison between Baseline (no governance) and ACP-protected agents. Error bars represent standard deviation across 5 seeds.}}{5}{figure.3}\protected@file@percent }
|
|
33
|
+
\newlabel{fig:results}{{3}{5}{Safety Violation Rate and Token Efficiency comparison between Baseline (no governance) and ACP-protected agents. Error bars represent standard deviation across 5 seeds}{figure.3}{}}
|
|
34
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Ablation Studies}{5}{subsection.3.3}\protected@file@percent }
|
|
35
|
+
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Component Criticality Analysis (n=300 evaluations)}}{5}{table.2}\protected@file@percent }
|
|
36
|
+
\newlabel{tab:ablation}{{2}{5}{Component Criticality Analysis (n=300 evaluations)}{table.2}{}}
|
|
37
|
+
\citation{siddique2026scak}
|
|
38
|
+
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Ablation study results showing Safety Violation Rate (SVR) when each component is removed. PolicyEngine removal causes catastrophic failure ($d=8.7$).}}{6}{figure.4}\protected@file@percent }
|
|
39
|
+
\newlabel{fig:ablation}{{4}{6}{Ablation study results showing Safety Violation Rate (SVR) when each component is removed. PolicyEngine removal causes catastrophic failure ($d=8.7$)}{figure.4}{}}
|
|
40
|
+
\@writefile{toc}{\contentsline {section}{\numberline {4}Discussion}{6}{section.4}\protected@file@percent }
|
|
41
|
+
\newlabel{sec:discussion}{{4}{6}{Discussion}{section.4}{}}
|
|
42
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}The Necessity of Determinism}{6}{subsection.4.1}\protected@file@percent }
|
|
43
|
+
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Limitations and Ethical Considerations}{6}{subsection.4.2}\protected@file@percent }
|
|
44
|
+
\bibcite{deloitte2025orchestration}{1}
|
|
45
|
+
\bibcite{wei2023jailbroken}{2}
|
|
46
|
+
\bibcite{zou2023universal}{3}
|
|
47
|
+
\bibcite{greshake2023not}{4}
|
|
48
|
+
\bibcite{siddique2026scak}{5}
|
|
49
|
+
\bibcite{nist2014abac}{6}
|
|
50
|
+
\bibcite{welch1947generalization}{7}
|
|
51
|
+
\bibcite{cohen1988statistical}{8}
|
|
52
|
+
\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusion}{7}{section.5}\protected@file@percent }
|
|
53
|
+
\gdef \@abspage@last{7}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1
|
|
2
|
+
\BOOKMARK [2][-]{subsection.1.1}{\376\377\000T\000h\000e\000\040\000A\000g\000e\000n\000t\000\040\000S\000a\000f\000e\000t\000y\000\040\000C\000r\000i\000s\000i\000s}{section.1}% 2
|
|
3
|
+
\BOOKMARK [2][-]{subsection.1.2}{\376\377\000`\000`\000V\000i\000b\000e\000s\000'\000'\000\040\000A\000r\000e\000\040\000N\000o\000t\000\040\000E\000n\000g\000i\000n\000e\000e\000r\000i\000n\000g}{section.1}% 3
|
|
4
|
+
\BOOKMARK [2][-]{subsection.1.3}{\376\377\000T\000h\000e\000\040\000S\000o\000l\000u\000t\000i\000o\000n\000:\000\040\000A\000\040\000D\000e\000t\000e\000r\000m\000i\000n\000i\000s\000t\000i\000c\000\040\000K\000e\000r\000n\000e\000l}{section.1}% 4
|
|
5
|
+
\BOOKMARK [1][-]{section.2}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n}{}% 5
|
|
6
|
+
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000T\000h\000e\000\040\000A\000g\000e\000n\000t\000\040\000K\000e\000r\000n\000e\000l}{section.2}% 6
|
|
7
|
+
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000P\000o\000l\000i\000c\000y\000E\000n\000g\000i\000n\000e}{section.2}% 7
|
|
8
|
+
\BOOKMARK [2][-]{subsection.2.3}{\376\377\000C\000o\000n\000s\000t\000r\000a\000i\000n\000t\000\040\000G\000r\000a\000p\000h\000s\000:\000\040\000M\000u\000l\000t\000i\000-\000D\000i\000m\000e\000n\000s\000i\000o\000n\000a\000l\000\040\000C\000o\000n\000t\000e\000x\000t}{section.2}% 8
|
|
9
|
+
\BOOKMARK [2][-]{subsection.2.4}{\376\377\000M\000u\000t\000e\000A\000g\000e\000n\000t\000:\000\040\000S\000c\000a\000l\000e\000\040\000b\000y\000\040\000S\000u\000b\000t\000r\000a\000c\000t\000i\000o\000n}{section.2}% 9
|
|
10
|
+
\BOOKMARK [1][-]{section.3}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000s}{}% 10
|
|
11
|
+
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000M\000e\000t\000h\000o\000d\000o\000l\000o\000g\000y}{section.3}% 11
|
|
12
|
+
\BOOKMARK [2][-]{subsection.3.2}{\376\377\000M\000a\000i\000n\000\040\000R\000e\000s\000u\000l\000t\000s}{section.3}% 12
|
|
13
|
+
\BOOKMARK [2][-]{subsection.3.3}{\376\377\000A\000b\000l\000a\000t\000i\000o\000n\000\040\000S\000t\000u\000d\000i\000e\000s}{section.3}% 13
|
|
14
|
+
\BOOKMARK [1][-]{section.4}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n}{}% 14
|
|
15
|
+
\BOOKMARK [2][-]{subsection.4.1}{\376\377\000T\000h\000e\000\040\000N\000e\000c\000e\000s\000s\000i\000t\000y\000\040\000o\000f\000\040\000D\000e\000t\000e\000r\000m\000i\000n\000i\000s\000m}{section.4}% 15
|
|
16
|
+
\BOOKMARK [2][-]{subsection.4.2}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s\000\040\000a\000n\000d\000\040\000E\000t\000h\000i\000c\000a\000l\000\040\000C\000o\000n\000s\000i\000d\000e\000r\000a\000t\000i\000o\000n\000s}{section.4}% 16
|
|
17
|
+
\BOOKMARK [1][-]{section.5}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 17
|
|
Binary file
|