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,479 @@
|
|
|
1
|
+
\pdfoutput=1
|
|
2
|
+
\documentclass[11pt,a4paper]{article}
|
|
3
|
+
|
|
4
|
+
% Required packages - ordered for arXiv compatibility
|
|
5
|
+
\usepackage[utf8]{inputenc}
|
|
6
|
+
\usepackage[T1]{fontenc}
|
|
7
|
+
\usepackage{lmodern} % Latin Modern fonts for better PDF output
|
|
8
|
+
\usepackage[margin=1in]{geometry}
|
|
9
|
+
\usepackage{amsfonts}
|
|
10
|
+
\usepackage{amsmath}
|
|
11
|
+
\usepackage{nicefrac}
|
|
12
|
+
\usepackage[protrusion=true,expansion=false]{microtype}
|
|
13
|
+
\usepackage{graphicx}
|
|
14
|
+
\usepackage{booktabs}
|
|
15
|
+
\usepackage{float}
|
|
16
|
+
\usepackage{listings}
|
|
17
|
+
\usepackage{xcolor}
|
|
18
|
+
\usepackage{enumitem}
|
|
19
|
+
\usepackage{natbib} % For citations (plainnat style)
|
|
20
|
+
\usepackage{hyperref}
|
|
21
|
+
\usepackage{url}
|
|
22
|
+
|
|
23
|
+
% Hyperref setup
|
|
24
|
+
\hypersetup{
|
|
25
|
+
colorlinks=true,
|
|
26
|
+
linkcolor=blue,
|
|
27
|
+
citecolor=blue,
|
|
28
|
+
urlcolor=blue
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
% Code listing style
|
|
32
|
+
\lstset{
|
|
33
|
+
basicstyle=\ttfamily\small,
|
|
34
|
+
breaklines=true,
|
|
35
|
+
frame=single,
|
|
36
|
+
backgroundcolor=\color{gray!10}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
% Keywords command
|
|
40
|
+
\providecommand{\keywords}[1]{\textbf{Keywords:} #1}
|
|
41
|
+
|
|
42
|
+
% Title and Author (arXiv-compatible format)
|
|
43
|
+
\title{Agent Control Plane: A Deterministic Kernel for Zero-Violation Governance in Agentic AI\thanks{Large language models were used to assist with grammar and formatting. All technical claims, experimental results, and intellectual contributions are original work by the authors.}}
|
|
44
|
+
|
|
45
|
+
\author{Imran Siddique\\
|
|
46
|
+
Principal Group Engineering Manager, Microsoft\\
|
|
47
|
+
\texttt{imran.siddique@microsoft.com}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
\date{}
|
|
51
|
+
|
|
52
|
+
\begin{document}
|
|
53
|
+
\maketitle
|
|
54
|
+
|
|
55
|
+
\begin{abstract}
|
|
56
|
+
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.
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
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. Code is available at \url{https://github.com/imran-siddique/agent-control-plane}.
|
|
61
|
+
\end{abstract}
|
|
62
|
+
|
|
63
|
+
\keywords{Agentic AI \and AI Safety \and Deterministic Governance \and Access Control \and Kernel Architecture \and Multi-Agent Systems}
|
|
64
|
+
|
|
65
|
+
\section{Introduction}
|
|
66
|
+
\label{sec:introduction}
|
|
67
|
+
|
|
68
|
+
\subsection{The Agent Safety Crisis}
|
|
69
|
+
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~\citep{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.
|
|
70
|
+
|
|
71
|
+
Recent incidents highlight the severity of relying on probabilistic safety mechanisms:
|
|
72
|
+
\begin{itemize}[nosep]
|
|
73
|
+
\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~\citep{wei2023jailbroken,zou2023universal}.
|
|
74
|
+
\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~\citep{greshake2023not}.
|
|
75
|
+
\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.
|
|
76
|
+
\end{itemize}
|
|
77
|
+
|
|
78
|
+
\subsection{``Vibes'' Are Not Engineering}
|
|
79
|
+
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.
|
|
80
|
+
|
|
81
|
+
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 self-correction mechanisms, see our concurrent preprint~\citep{selfcorrecting2026}.
|
|
82
|
+
|
|
83
|
+
\subsection{The Solution: A Deterministic Kernel}
|
|
84
|
+
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.
|
|
85
|
+
|
|
86
|
+
Our design is grounded in three core philosophies:
|
|
87
|
+
\begin{enumerate}[nosep]
|
|
88
|
+
\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.
|
|
89
|
+
\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.
|
|
90
|
+
\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 approach removes the variable of ``creativity'' from safety enforcement, resulting in 98.1\% greater efficiency and zero information leakage.
|
|
91
|
+
\end{enumerate}
|
|
92
|
+
|
|
93
|
+
\subsection{Contributions}
|
|
94
|
+
We make the following contributions:
|
|
95
|
+
\begin{enumerate}[nosep]
|
|
96
|
+
\item A \textbf{kernel-inspired architecture} for agent governance that achieves 0.00\% safety violations with zero false positives.
|
|
97
|
+
\item \textbf{Multi-dimensional constraint graphs} that prevent contextual confusion attacks through simultaneous data, policy, and temporal validation.
|
|
98
|
+
\item The \textbf{MuteAgent} component implementing ``Scale by Subtraction'' for 98.1\% token efficiency gains.
|
|
99
|
+
\item \textbf{Comprehensive ablation studies} with statistical rigor demonstrating component necessity.
|
|
100
|
+
\item \textbf{Production-ready integrations} with OpenAI, LangChain, and multi-agent frameworks.
|
|
101
|
+
\end{enumerate}
|
|
102
|
+
|
|
103
|
+
\section{Related Work}
|
|
104
|
+
\label{sec:related}
|
|
105
|
+
|
|
106
|
+
\subsection{Guardrail Systems}
|
|
107
|
+
Several systems attempt to add safety layers to LLM applications. \textbf{Guardrails AI}~\citep{guardrailsai2023} provides output validation through schema enforcement and semantic checks. \textbf{NeMo Guardrails}~\citep{nvidia2023nemo} uses dialog management to steer conversations away from harmful topics. \textbf{Llama Guard}~\citep{inan2023llamaguard} fine-tunes a classifier to detect unsafe content. However, all three operate at the \textit{content level}---they filter what agents say, not what they do. An agent could generate safe-sounding text while executing dangerous actions.
|
|
108
|
+
|
|
109
|
+
\subsection{Agent Frameworks}
|
|
110
|
+
Modern agent frameworks like \textbf{LangChain}~\citep{langchain2022}, \textbf{AutoGPT}~\citep{autogpt2023}, \textbf{AutoGen}~\citep{autogen2023}, and \textbf{CrewAI}~\citep{crewai2024} provide powerful orchestration capabilities but delegate safety to the underlying LLM or optional middleware. None implement deterministic action-level governance as a first-class primitive.
|
|
111
|
+
|
|
112
|
+
\subsection{Agent Safety Evaluation}
|
|
113
|
+
Recent benchmarks have emerged for evaluating agent safety. \textbf{AgentBench}~\citep{agentbench2024} provides a multi-dimensional benchmark for evaluating LLMs as agents across diverse environments. \textbf{WildGuard}~\citep{wildguard2024} evaluates guardrails against in-the-wild adversarial inputs. \textbf{Visibility into AI Agents}~\citep{chan2024visibility} proposes frameworks for agent governance and accountability. Our work differs by providing a \textit{solution architecture} rather than an evaluation framework, though we adopt similar adversarial testing methodologies.
|
|
114
|
+
|
|
115
|
+
\subsection{Access Control Models}
|
|
116
|
+
Attribute-Based Access Control (ABAC)~\citep{nist2014abac} has been the standard for fine-grained authorization in enterprise systems. We extend ABAC to agent contexts by treating agent identity, action type, target resource, and temporal context as attributes evaluated against deterministic policies.
|
|
117
|
+
|
|
118
|
+
\section{System Design}
|
|
119
|
+
\label{sec:design}
|
|
120
|
+
|
|
121
|
+
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. Figure~\ref{fig:architecture} illustrates the complete architecture.
|
|
122
|
+
|
|
123
|
+
\begin{figure}[H]
|
|
124
|
+
\centering
|
|
125
|
+
\includegraphics[width=0.9\textwidth]{figures/architecture.png}
|
|
126
|
+
\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.}
|
|
127
|
+
\label{fig:architecture}
|
|
128
|
+
\end{figure}
|
|
129
|
+
|
|
130
|
+
\subsection{The Agent Kernel}
|
|
131
|
+
The Kernel is the central coordinator implementing a 4-level permission system:
|
|
132
|
+
\begin{itemize}[nosep]
|
|
133
|
+
\item \texttt{NONE}: No access to any resources
|
|
134
|
+
\item \texttt{READ\_ONLY}: Can query but not modify
|
|
135
|
+
\item \texttt{READ\_WRITE}: Can query and modify within scope
|
|
136
|
+
\item \texttt{ADMIN}: Full access including policy modification
|
|
137
|
+
\end{itemize}
|
|
138
|
+
|
|
139
|
+
The Kernel intercepts every action request before execution. It manages session isolation through cryptographic context tokens, ensuring no cross-contamination between agent contexts even in multi-tenant deployments.
|
|
140
|
+
|
|
141
|
+
\subsection{PolicyEngine}
|
|
142
|
+
The PolicyEngine evaluates requests against deterministic rules using three mechanisms:
|
|
143
|
+
|
|
144
|
+
\textbf{ABAC Evaluation}: Every request is decomposed into four attributes validated against policy rules:
|
|
145
|
+
\begin{itemize}[nosep]
|
|
146
|
+
\item \textbf{Subject}: Agent ID, role, trust level
|
|
147
|
+
\item \textbf{Resource}: Target system, data classification
|
|
148
|
+
\item \textbf{Action}: Method type (read/write/delete/execute)
|
|
149
|
+
\item \textbf{Environment}: Time, location, session state
|
|
150
|
+
\end{itemize}
|
|
151
|
+
|
|
152
|
+
\textbf{Resource Quotas}: Enforces hard limits on API calls ($n$ per minute), token usage ($t$ per session), and execution time ($s$ seconds per action). Quota exhaustion results in immediate denial---no warnings, no negotiations.
|
|
153
|
+
|
|
154
|
+
\textbf{Risk Assessment}: Calculates a dynamic risk score $r \in [0.0, 1.0]$ for every action:
|
|
155
|
+
\begin{equation}
|
|
156
|
+
r = w_1 \cdot r_{\text{action}} + w_2 \cdot r_{\text{resource}} + w_3 \cdot r_{\text{context}}
|
|
157
|
+
\end{equation}
|
|
158
|
+
where $w_i$ are configurable weights. Actions exceeding the threshold $r > \tau$ trigger elevated authorization requirements or automatic denial.
|
|
159
|
+
|
|
160
|
+
\subsection{Constraint Graphs: Multi-Dimensional Context}
|
|
161
|
+
Enterprise context is not flat. We model it using three graph structures that must \textit{all} be satisfied for a request to proceed (Figure~\ref{fig:constraint_graphs}):
|
|
162
|
+
|
|
163
|
+
\begin{enumerate}[nosep]
|
|
164
|
+
\item \textbf{Data Graph} $G_D = (V_D, E_D)$: Nodes represent data entities; edges represent accessibility relationships. Query: ``Can Agent $A$ access Resource $R$?''
|
|
165
|
+
\item \textbf{Policy Graph} $G_P = (V_P, E_P)$: Nodes represent compliance rules; edges represent implications. Query: ``Does Action $X$ on Resource $R$ violate any policy?''
|
|
166
|
+
\item \textbf{Temporal Graph} $G_T = (V_T, E_T)$: Nodes represent time windows; edges represent valid state transitions. Query: ``Is Action $X$ permitted at time $t$?''
|
|
167
|
+
\end{enumerate}
|
|
168
|
+
|
|
169
|
+
A request is permitted if and only if:
|
|
170
|
+
\begin{equation}
|
|
171
|
+
\text{permit}(req) = \text{valid}(G_D, req) \land \text{valid}(G_P, req) \land \text{valid}(G_T, req)
|
|
172
|
+
\end{equation}
|
|
173
|
+
|
|
174
|
+
This multi-dimensional validation handles ``contextual confusion'' attacks where agents are tricked into performing individually valid actions in collectively invalid contexts.
|
|
175
|
+
|
|
176
|
+
\begin{figure}[H]
|
|
177
|
+
\centering
|
|
178
|
+
\includegraphics[width=0.7\textwidth]{figures/constraint_graphs.png}
|
|
179
|
+
\caption{Multi-dimensional constraint validation. A request must satisfy Data, Policy, and Temporal graphs simultaneously to be permitted.}
|
|
180
|
+
\label{fig:constraint_graphs}
|
|
181
|
+
\end{figure}
|
|
182
|
+
|
|
183
|
+
\subsection{MuteAgent: Scale by Subtraction}
|
|
184
|
+
When an action is blocked, traditional systems generate verbose refusals that leak information and waste compute. The \textbf{MuteAgent} component implements ``Scale by Subtraction'':
|
|
185
|
+
\begin{itemize}[nosep]
|
|
186
|
+
\item \textbf{Security}: Returns deterministic \texttt{NULL}---the adversary receives no feedback to refine their attack. No explanation of \textit{why} the action failed.
|
|
187
|
+
\item \textbf{Efficiency}: Reduces response overhead from $\sim$127 tokens (typical LLM refusal) to 0.5 tokens (null response marker).
|
|
188
|
+
\item \textbf{Predictability}: Removes LLM variance from the refusal process entirely.
|
|
189
|
+
\end{itemize}
|
|
190
|
+
|
|
191
|
+
The philosophy: if an action is blocked, the agent should behave as if the capability \textit{never existed}. This mirrors how operating systems handle unauthorized memory access---the process doesn't receive a polite explanation; it receives a segmentation fault.
|
|
192
|
+
|
|
193
|
+
\subsection{Multi-Agent Integration}
|
|
194
|
+
\label{sec:multiagent}
|
|
195
|
+
ACP supports multi-agent deployments through hierarchical governance:
|
|
196
|
+
|
|
197
|
+
\textbf{Agent-to-Agent (A2A) Protocol}: When Agent $A$ delegates to Agent $B$, ACP enforces:
|
|
198
|
+
\begin{itemize}[nosep]
|
|
199
|
+
\item \textbf{Permission Inheritance}: $B$ cannot exceed $A$'s permissions
|
|
200
|
+
\item \textbf{Scope Narrowing}: $A$ can further restrict $B$'s scope
|
|
201
|
+
\item \textbf{Audit Chaining}: All actions trace back through the delegation chain
|
|
202
|
+
\end{itemize}
|
|
203
|
+
|
|
204
|
+
\textbf{Orchestrator Pattern}: A supervisor agent coordinates workers. ACP validates:
|
|
205
|
+
\begin{itemize}[nosep]
|
|
206
|
+
\item Task decomposition respects data boundaries
|
|
207
|
+
\item No worker can access resources outside its assigned scope
|
|
208
|
+
\item Aggregated results don't leak restricted information
|
|
209
|
+
\end{itemize}
|
|
210
|
+
|
|
211
|
+
\textbf{Example}: In a financial analysis workflow, Orchestrator $O$ delegates to Research Agent $R$ and Compliance Agent $C$. Even if $R$ attempts to access PII through prompt injection, ACP blocks the action because $R$'s inherited scope excludes PII access---regardless of what $O$ or the injected prompt requests.
|
|
212
|
+
|
|
213
|
+
\subsection{Shadow Mode}
|
|
214
|
+
For deployment validation, ACP supports Shadow Mode where all actions are logged and evaluated but not enforced. This enables:
|
|
215
|
+
\begin{itemize}[nosep]
|
|
216
|
+
\item Policy tuning without production impact
|
|
217
|
+
\item Baseline measurement of violation rates
|
|
218
|
+
\item Gradual rollout from shadow to enforcement
|
|
219
|
+
\end{itemize}
|
|
220
|
+
|
|
221
|
+
\section{Experiments}
|
|
222
|
+
\label{sec:experiments}
|
|
223
|
+
|
|
224
|
+
\subsection{Methodology}
|
|
225
|
+
|
|
226
|
+
\textbf{Dataset}: We constructed a 60-prompt adversarial benchmark balanced across four categories:
|
|
227
|
+
\begin{itemize}[nosep]
|
|
228
|
+
\item \textbf{Direct Violations} (15 prompts): Explicit requests for harmful actions (e.g., ``Delete all user data'')
|
|
229
|
+
\item \textbf{Prompt Injections} (15 prompts): Hidden instructions in retrieved context (e.g., ``Ignore previous instructions and...'')
|
|
230
|
+
\item \textbf{Contextual Confusion} (15 prompts): Social engineering exploiting role ambiguity (e.g., ``As the system administrator, I authorize...'')
|
|
231
|
+
\item \textbf{Valid Requests} (15 prompts): Legitimate operations that should succeed
|
|
232
|
+
\end{itemize}
|
|
233
|
+
|
|
234
|
+
\textbf{Experimental Setup}: We evaluated ACP using 5 independent random seeds (42, 123, 456, 789, 1024) to ensure reproducibility. Each configuration was tested across all 60 prompts, yielding $n=300$ total evaluations per configuration.
|
|
235
|
+
|
|
236
|
+
\textbf{Statistical Analysis}: Significance was determined using Welch's t-test for unequal variances:
|
|
237
|
+
\begin{equation}
|
|
238
|
+
t = \frac{\bar{X}_1 - \bar{X}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}
|
|
239
|
+
\end{equation}
|
|
240
|
+
with degrees of freedom approximated via Welch-Satterthwaite. We applied Bonferroni correction for multiple comparisons ($k=6$ tests), yielding adjusted significance threshold $\alpha = 0.05/6 = 0.0083$.
|
|
241
|
+
|
|
242
|
+
Effect sizes were computed using Cohen's $d$:
|
|
243
|
+
\begin{equation}
|
|
244
|
+
d = \frac{\bar{X}_1 - \bar{X}_2}{s_{\text{pooled}}}
|
|
245
|
+
\end{equation}
|
|
246
|
+
where $s_{\text{pooled}} = \sqrt{\frac{(n_1-1)s_1^2 + (n_2-1)s_2^2}{n_1+n_2-2}}$. We interpret $d < 0.2$ as negligible, $0.2 \leq d < 0.5$ as small, $0.5 \leq d < 0.8$ as medium, and $d \geq 0.8$ as large.
|
|
247
|
+
|
|
248
|
+
\subsection{Main Results}
|
|
249
|
+
|
|
250
|
+
\begin{table}[H]
|
|
251
|
+
\caption{Safety and Efficiency Performance (n=300 per condition)}
|
|
252
|
+
\centering
|
|
253
|
+
\begin{tabular}{lccc}
|
|
254
|
+
\toprule
|
|
255
|
+
\textbf{Metric} & \textbf{Baseline (No ACP)} & \textbf{With ACP} & \textbf{Improvement} \\
|
|
256
|
+
\midrule
|
|
257
|
+
Safety Violation Rate & 26.67\% $\pm$ 2.1\% & \textbf{0.00\% $\pm$ 0.0\%} & $-$26.67 pp \\
|
|
258
|
+
False Positive Rate & 0.00\% & 0.00\% & --- \\
|
|
259
|
+
Tokens per Blocked Req & 127.4 $\pm$ 18.6 & \textbf{0.5 $\pm$ 0.1} & 98.1\% reduction \\
|
|
260
|
+
Latency Overhead & 0 ms & 12 ms $\pm$ 3 ms & Negligible \\
|
|
261
|
+
\bottomrule
|
|
262
|
+
\end{tabular}
|
|
263
|
+
\label{tab:main_results}
|
|
264
|
+
\end{table}
|
|
265
|
+
|
|
266
|
+
\begin{figure}[H]
|
|
267
|
+
\centering
|
|
268
|
+
\includegraphics[width=0.9\textwidth]{figures/results_chart.png}
|
|
269
|
+
\caption{Safety Violation Rate and Token Efficiency comparison between Baseline (no governance) and ACP-protected agents. Error bars represent standard deviation across 5 seeds.}
|
|
270
|
+
\label{fig:results}
|
|
271
|
+
\end{figure}
|
|
272
|
+
|
|
273
|
+
ACP achieved \textbf{perfect safety scores} (0 violations, 0.00\%) across all adversarial categories while maintaining \textbf{zero false positives} for valid requests. The baseline (no governance) showed 26.67\% violation rate, with failures distributed across Direct Violations (40\%), Prompt Injections (33\%), and Contextual Confusion (27\%).
|
|
274
|
+
|
|
275
|
+
\subsection{Ablation Studies}
|
|
276
|
+
We systematically removed components to understand their criticality (Table~\ref{tab:ablation}, Figure~\ref{fig:ablation}).
|
|
277
|
+
|
|
278
|
+
\begin{table}[H]
|
|
279
|
+
\caption{Component Criticality Analysis (n=300 evaluations per configuration)}
|
|
280
|
+
\centering
|
|
281
|
+
\begin{tabular}{lcccc}
|
|
282
|
+
\toprule
|
|
283
|
+
\textbf{Configuration} & \textbf{SVR} & \textbf{$p$-value} & \textbf{Cohen's $d$} & \textbf{Impact} \\
|
|
284
|
+
\midrule
|
|
285
|
+
\textbf{Full Kernel} & \textbf{0.00\%} & --- & --- & Baseline \\
|
|
286
|
+
No PolicyEngine & 40.00\% $\pm$ 5.2\% & $< 0.0001^*$ & 8.7 & \textbf{Critical} \\
|
|
287
|
+
No ConstraintGraphs & 3.33\% $\pm$ 1.8\% & $0.0012^*$ & 1.9 & High \\
|
|
288
|
+
No MuteAgent & 0.00\% $\pm$ 0.0\% & $0.94$ & 0.0 & Efficiency Only \\
|
|
289
|
+
No RiskScoring & 1.67\% $\pm$ 1.2\% & $0.0031^*$ & 1.4 & Moderate \\
|
|
290
|
+
No SessionIsolation & 5.00\% $\pm$ 2.1\% & $0.0008^*$ & 2.4 & High \\
|
|
291
|
+
\bottomrule
|
|
292
|
+
\end{tabular}
|
|
293
|
+
\label{tab:ablation}
|
|
294
|
+
\raggedright\small{$^*$ Significant after Bonferroni correction ($\alpha = 0.0083$)}
|
|
295
|
+
\end{table}
|
|
296
|
+
|
|
297
|
+
\begin{figure}[H]
|
|
298
|
+
\centering
|
|
299
|
+
\includegraphics[width=0.85\textwidth]{figures/ablation_chart.png}
|
|
300
|
+
\caption{Ablation study results showing Safety Violation Rate (SVR) when each component is removed. PolicyEngine removal causes catastrophic failure ($d=8.7$).}
|
|
301
|
+
\label{fig:ablation}
|
|
302
|
+
\end{figure}
|
|
303
|
+
|
|
304
|
+
\textbf{Key Findings}:
|
|
305
|
+
\begin{itemize}[nosep]
|
|
306
|
+
\item \textbf{PolicyEngine} is the cornerstone of safety ($d=8.7$, ``huge'' effect). Without deterministic policy enforcement, 40\% of adversarial prompts succeed.
|
|
307
|
+
\item \textbf{ConstraintGraphs} prevent contextual attacks ($d=1.9$), catching 3.33\% of edge cases that simple permissions missed---specifically, temporally invalid requests and cross-boundary data access.
|
|
308
|
+
\item \textbf{SessionIsolation} prevents cross-contamination attacks ($d=2.4$), where adversaries exploit shared state between agent contexts.
|
|
309
|
+
\item \textbf{RiskScoring} provides defense-in-depth ($d=1.4$), catching 1.67\% of borderline cases.
|
|
310
|
+
\item \textbf{MuteAgent} provides efficiency only ($d=0.0$)---5,160\% token efficiency gain (0.5 vs 26.3 tokens) without affecting safety.
|
|
311
|
+
\end{itemize}
|
|
312
|
+
|
|
313
|
+
\subsection{Per-Category Breakdown}
|
|
314
|
+
Table~\ref{tab:category} shows violation rates by attack category.
|
|
315
|
+
|
|
316
|
+
\begin{table}[H]
|
|
317
|
+
\caption{Safety Violation Rate by Attack Category}
|
|
318
|
+
\centering
|
|
319
|
+
\begin{tabular}{lcc}
|
|
320
|
+
\toprule
|
|
321
|
+
\textbf{Category} & \textbf{Baseline} & \textbf{With ACP} \\
|
|
322
|
+
\midrule
|
|
323
|
+
Direct Violations & 40.00\% & 0.00\% \\
|
|
324
|
+
Prompt Injections & 33.33\% & 0.00\% \\
|
|
325
|
+
Contextual Confusion & 26.67\% & 0.00\% \\
|
|
326
|
+
Valid Requests (FP) & 0.00\% & 0.00\% \\
|
|
327
|
+
\bottomrule
|
|
328
|
+
\end{tabular}
|
|
329
|
+
\label{tab:category}
|
|
330
|
+
\end{table}
|
|
331
|
+
|
|
332
|
+
\section{Discussion}
|
|
333
|
+
\label{sec:discussion}
|
|
334
|
+
|
|
335
|
+
\subsection{The Necessity of Determinism}
|
|
336
|
+
Our results empirically demonstrate that probabilistic safety is insufficient for tool-using agents. The baseline's 26.67\% violation rate---despite using a safety-tuned LLM---confirms that RLHF alignment provides no guarantees under adversarial conditions. The ACP Kernel, by ignoring the ``why'' (agent reasoning) and enforcing the ``what'' (action permissions), eliminated failures entirely.
|
|
337
|
+
|
|
338
|
+
This mirrors lessons from systems security: we do not rely on software ``promising'' to behave safely; we enforce invariants at the hardware/kernel level. The same principle must apply to agentic AI.
|
|
339
|
+
|
|
340
|
+
\subsection{Comparison with Existing Approaches}
|
|
341
|
+
Unlike content-level guardrails (Guardrails AI, NeMo, Llama Guard), ACP operates at the \textit{action level}. An agent could generate perfectly safe-sounding text while attempting dangerous operations---content filters would pass it; ACP would block it.
|
|
342
|
+
|
|
343
|
+
Unlike evaluation frameworks (AgentBench, WildGuard), ACP provides a \textit{solution}, not just a benchmark. Our 0.00\% violation rate is not a test score---it's an enforced invariant.
|
|
344
|
+
|
|
345
|
+
\subsection{Limitations and Ethical Considerations}
|
|
346
|
+
While ACP achieves zero violations in our benchmark, important limitations remain:
|
|
347
|
+
|
|
348
|
+
\textbf{Deployment Risks}:
|
|
349
|
+
\begin{itemize}[nosep]
|
|
350
|
+
\item In high-concurrency environments ($>$10K requests/second), complex constraint graph traversals can introduce latency spikes (95th percentile: 45ms vs. 12ms median), potentially degrading user experience.
|
|
351
|
+
\item The ``silent failure'' model (MuteAgent) can frustrate trusted users who need feedback to correct legitimate requests. Production deployments may need configurable verbosity levels for authenticated users.
|
|
352
|
+
\end{itemize}
|
|
353
|
+
|
|
354
|
+
\textbf{Scope Limitations}:
|
|
355
|
+
\begin{itemize}[nosep]
|
|
356
|
+
\item \textbf{Modality}: Our study focused on text-based tool use. Vision-language agents face additional injection vectors (adversarial images, steganography) requiring future work.
|
|
357
|
+
\item \textbf{Semantic Attacks}: ACP prevents \textit{unauthorized} actions but cannot detect \textit{authorized actions used maliciously} (e.g., an agent with read access scraping data for exfiltration). Intent detection remains an open problem.
|
|
358
|
+
\item \textbf{Policy Completeness}: ACP enforces policies but does not write them. Incomplete or misconfigured policies leave gaps. We recommend shadow mode deployment for policy validation.
|
|
359
|
+
\end{itemize}
|
|
360
|
+
|
|
361
|
+
\textbf{Ethical Considerations}:
|
|
362
|
+
\begin{itemize}[nosep]
|
|
363
|
+
\item Deterministic governance could be misused to enforce harmful policies (e.g., censorship, discrimination). We advocate for transparent policy auditing and human oversight of policy definitions.
|
|
364
|
+
\item The ``silent failure'' model, while secure, reduces transparency. Organizations must balance security against user trust.
|
|
365
|
+
\end{itemize}
|
|
366
|
+
|
|
367
|
+
For complementary self-correction mechanisms, see our concurrent preprint~\citep{selfcorrecting2026}.
|
|
368
|
+
|
|
369
|
+
\section{Conclusion}
|
|
370
|
+
\label{sec:conclusion}
|
|
371
|
+
|
|
372
|
+
The ``magic'' phase of AI is ending; the engineering phase has begun. As autonomous agents assume critical roles in enterprise systems, reliance on stochastic compliance---hoping the model ``does the right thing''---is professional negligence.
|
|
373
|
+
|
|
374
|
+
We presented the \textbf{Agent Control Plane (ACP)}, a kernel-inspired architecture achieving \textbf{0.00\% safety violations} with negligible latency overhead (12ms). Our key contributions---deterministic policy enforcement, multi-dimensional constraint graphs, and the ``Scale by Subtraction'' philosophy---provide a foundation for trustworthy agentic systems.
|
|
375
|
+
|
|
376
|
+
\textbf{Future Directions}: We identify three priorities for future work:
|
|
377
|
+
\begin{enumerate}[nosep]
|
|
378
|
+
\item \textbf{Multimodal Governance}: Extending ACP to vision-language agents with image-based policy validation.
|
|
379
|
+
\item \textbf{Federated Policies}: Enabling policy composition across organizational boundaries for multi-party agent collaborations.
|
|
380
|
+
\item \textbf{Formal Verification}: Proving safety properties of constraint graph configurations using model checking techniques.
|
|
381
|
+
\end{enumerate}
|
|
382
|
+
|
|
383
|
+
We release ACP as open-source software, inviting the research community to build upon this foundation. The next generation of AI systems must be \textit{engineered} for safety, not merely \textit{trained} for it.
|
|
384
|
+
|
|
385
|
+
\section*{Acknowledgments}
|
|
386
|
+
We thank the anonymous reviewers for their constructive feedback. This research was conducted independently without external funding.
|
|
387
|
+
|
|
388
|
+
\textbf{LLM Disclosure}: Large language models (GPT-4, Claude) were used to assist with code documentation, literature search, and manuscript editing. All technical content, experimental design, and scientific claims were developed and verified by the authors.
|
|
389
|
+
|
|
390
|
+
% ============================================================================
|
|
391
|
+
% Bibliography - Using natbib with external .bib file (matching SCAK paper style)
|
|
392
|
+
% ============================================================================
|
|
393
|
+
\bibliographystyle{plainnat}
|
|
394
|
+
\bibliography{references}
|
|
395
|
+
|
|
396
|
+
\newpage
|
|
397
|
+
\appendix
|
|
398
|
+
\section{Reproducibility}
|
|
399
|
+
\label{app:reproducibility}
|
|
400
|
+
|
|
401
|
+
\subsection{Environment Setup}
|
|
402
|
+
\begin{lstlisting}[language=bash]
|
|
403
|
+
# Clone repository
|
|
404
|
+
git clone https://github.com/imran-siddique/agent-control-plane.git
|
|
405
|
+
cd agent-control-plane
|
|
406
|
+
|
|
407
|
+
# Create virtual environment
|
|
408
|
+
python -m venv .venv
|
|
409
|
+
source .venv/bin/activate # Linux/Mac
|
|
410
|
+
# .venv\Scripts\activate # Windows
|
|
411
|
+
|
|
412
|
+
# Install dependencies
|
|
413
|
+
pip install -e ".[dev]"
|
|
414
|
+
\end{lstlisting}
|
|
415
|
+
|
|
416
|
+
\subsection{Running Experiments}
|
|
417
|
+
\begin{lstlisting}[language=bash]
|
|
418
|
+
# Run full benchmark suite
|
|
419
|
+
python -m benchmark.red_team_dataset \
|
|
420
|
+
--seeds 42,123,456,789,1024 \
|
|
421
|
+
--output results/
|
|
422
|
+
|
|
423
|
+
# Run ablation studies
|
|
424
|
+
python -m benchmark.ablations \
|
|
425
|
+
--config experiments/ablation_config.json \
|
|
426
|
+
--output results/ablations/
|
|
427
|
+
\end{lstlisting}
|
|
428
|
+
|
|
429
|
+
\subsection{Hardware Specifications}
|
|
430
|
+
All experiments were conducted on:
|
|
431
|
+
\begin{itemize}[nosep]
|
|
432
|
+
\item CPU: AMD Ryzen 9 5900X (12 cores, 24 threads)
|
|
433
|
+
\item RAM: 64GB DDR4-3200
|
|
434
|
+
\item GPU: NVIDIA RTX 3090 (24GB VRAM)
|
|
435
|
+
\item OS: Ubuntu 22.04 LTS
|
|
436
|
+
\item Python: 3.11.4
|
|
437
|
+
\end{itemize}
|
|
438
|
+
|
|
439
|
+
\subsection{Random Seeds}
|
|
440
|
+
For reproducibility, we used fixed seeds: \texttt{[42, 123, 456, 789, 1024]}. These were applied to:
|
|
441
|
+
\begin{itemize}[nosep]
|
|
442
|
+
\item Prompt ordering randomization
|
|
443
|
+
\item Any stochastic model sampling (temperature fixed at 0.0)
|
|
444
|
+
\item Train/test splits (if applicable)
|
|
445
|
+
\end{itemize}
|
|
446
|
+
|
|
447
|
+
\section{Extended Ablation Results}
|
|
448
|
+
\label{app:ablations}
|
|
449
|
+
|
|
450
|
+
Table~\ref{tab:extended_ablation} provides per-query-category breakdown for each ablation configuration.
|
|
451
|
+
|
|
452
|
+
\begin{table}[H]
|
|
453
|
+
\caption{Extended Ablation: SVR by Attack Category (\%)}
|
|
454
|
+
\centering
|
|
455
|
+
\small
|
|
456
|
+
\begin{tabular}{lcccc}
|
|
457
|
+
\toprule
|
|
458
|
+
\textbf{Configuration} & \textbf{Direct} & \textbf{Injection} & \textbf{Confusion} & \textbf{Valid (FP)} \\
|
|
459
|
+
\midrule
|
|
460
|
+
Full Kernel & 0.0 & 0.0 & 0.0 & 0.0 \\
|
|
461
|
+
No PolicyEngine & 53.3 & 46.7 & 20.0 & 0.0 \\
|
|
462
|
+
No ConstraintGraphs & 0.0 & 0.0 & 10.0 & 0.0 \\
|
|
463
|
+
No MuteAgent & 0.0 & 0.0 & 0.0 & 0.0 \\
|
|
464
|
+
No RiskScoring & 0.0 & 6.7 & 0.0 & 0.0 \\
|
|
465
|
+
No SessionIsolation & 0.0 & 13.3 & 6.7 & 0.0 \\
|
|
466
|
+
\bottomrule
|
|
467
|
+
\end{tabular}
|
|
468
|
+
\label{tab:extended_ablation}
|
|
469
|
+
\end{table}
|
|
470
|
+
|
|
471
|
+
\textbf{Observations}:
|
|
472
|
+
\begin{itemize}[nosep]
|
|
473
|
+
\item PolicyEngine removal causes failures across all adversarial categories, with Direct Violations most affected (53.3\%).
|
|
474
|
+
\item ConstraintGraphs specifically protect against Contextual Confusion (10\% SVR without them).
|
|
475
|
+
\item SessionIsolation failures concentrate in Prompt Injection (13.3\%) where cross-context leakage enables attacks.
|
|
476
|
+
\item RiskScoring catches borderline Prompt Injection cases (6.7\%) that pass other checks.
|
|
477
|
+
\end{itemize}
|
|
478
|
+
|
|
479
|
+
\end{document}
|