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,293 @@
|
|
|
1
|
+
% ATR: A Decentralized Registry for Agent Tool Discovery and Interoperability
|
|
2
|
+
% LaTeX Template for Academic Submission
|
|
3
|
+
% Author: Imran Siddique
|
|
4
|
+
% Date: January 2026
|
|
5
|
+
|
|
6
|
+
\documentclass[11pt,a4paper]{article}
|
|
7
|
+
|
|
8
|
+
% ============================================================================
|
|
9
|
+
% PACKAGES
|
|
10
|
+
% ============================================================================
|
|
11
|
+
\usepackage[utf8]{inputenc}
|
|
12
|
+
\usepackage[T1]{fontenc}
|
|
13
|
+
\usepackage{amsmath,amssymb,amsfonts}
|
|
14
|
+
\usepackage{graphicx}
|
|
15
|
+
\usepackage{booktabs}
|
|
16
|
+
\usepackage{hyperref}
|
|
17
|
+
\usepackage{cleveref}
|
|
18
|
+
\usepackage{algorithm}
|
|
19
|
+
\usepackage{algpseudocode}
|
|
20
|
+
\usepackage{listings}
|
|
21
|
+
\usepackage{xcolor}
|
|
22
|
+
\usepackage[margin=1in]{geometry}
|
|
23
|
+
\usepackage{natbib}
|
|
24
|
+
\usepackage{float}
|
|
25
|
+
|
|
26
|
+
% ============================================================================
|
|
27
|
+
% CODE LISTING STYLE
|
|
28
|
+
% ============================================================================
|
|
29
|
+
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|
30
|
+
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|
31
|
+
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|
32
|
+
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|
33
|
+
|
|
34
|
+
\lstdefinestyle{pythonstyle}{
|
|
35
|
+
backgroundcolor=\color{backcolour},
|
|
36
|
+
commentstyle=\color{codegreen},
|
|
37
|
+
keywordstyle=\color{magenta},
|
|
38
|
+
numberstyle=\tiny\color{codegray},
|
|
39
|
+
stringstyle=\color{codepurple},
|
|
40
|
+
basicstyle=\ttfamily\footnotesize,
|
|
41
|
+
breakatwhitespace=false,
|
|
42
|
+
breaklines=true,
|
|
43
|
+
captionpos=b,
|
|
44
|
+
keepspaces=true,
|
|
45
|
+
numbers=left,
|
|
46
|
+
numbersep=5pt,
|
|
47
|
+
showspaces=false,
|
|
48
|
+
showstringspaces=false,
|
|
49
|
+
showtabs=false,
|
|
50
|
+
tabsize=2,
|
|
51
|
+
language=Python
|
|
52
|
+
}
|
|
53
|
+
\lstset{style=pythonstyle}
|
|
54
|
+
|
|
55
|
+
% ============================================================================
|
|
56
|
+
% DOCUMENT METADATA
|
|
57
|
+
% ============================================================================
|
|
58
|
+
\title{ATR: A Decentralized Registry for Agent Tool Discovery and Interoperability}
|
|
59
|
+
|
|
60
|
+
\author{
|
|
61
|
+
Imran Siddique \\
|
|
62
|
+
\texttt{imran@example.com} \\
|
|
63
|
+
\texttt{https://github.com/imran-siddique/atr}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
\date{January 2026}
|
|
67
|
+
|
|
68
|
+
% ============================================================================
|
|
69
|
+
% DOCUMENT
|
|
70
|
+
% ============================================================================
|
|
71
|
+
\begin{document}
|
|
72
|
+
|
|
73
|
+
\maketitle
|
|
74
|
+
|
|
75
|
+
% ----------------------------------------------------------------------------
|
|
76
|
+
% ABSTRACT
|
|
77
|
+
% ----------------------------------------------------------------------------
|
|
78
|
+
\begin{abstract}
|
|
79
|
+
The proliferation of Large Language Model (LLM) based agents has created an urgent need for standardized tool interfaces that enable seamless capability sharing across heterogeneous systems. We present the \textbf{Agent Tool Registry (ATR)}, a lightweight, decentralized marketplace for agent capabilities that provides rigorous schema definitions compatible with OpenAI Function Calling, Anthropic Tool Use, and emerging LLM standards. ATR introduces a decorator-based registration pattern that automatically extracts type-safe specifications from Python functions, enforcing strict parameter typing while maintaining separation between tool discovery and execution. Our experiments demonstrate that ATR achieves sub-millisecond registration latency ($\bar{x} = 0.42$ms) and supports discovery across 10,000+ tools with minimal overhead. We release ATR as an open-source library to foster interoperability in the growing agent ecosystem.
|
|
80
|
+
\end{abstract}
|
|
81
|
+
|
|
82
|
+
\textbf{Keywords:} AI Agents, Tool Use, Function Calling, LLM, Interoperability, Schema Registry
|
|
83
|
+
|
|
84
|
+
% ----------------------------------------------------------------------------
|
|
85
|
+
% 1. INTRODUCTION
|
|
86
|
+
% ----------------------------------------------------------------------------
|
|
87
|
+
\section{Introduction}
|
|
88
|
+
\label{sec:introduction}
|
|
89
|
+
|
|
90
|
+
\subsection{Motivation}
|
|
91
|
+
|
|
92
|
+
The emergence of LLM-based autonomous agents has transformed how we approach complex problem-solving tasks. Agents increasingly rely on external tools to interact with the world—searching the web, executing code, managing files, and calling APIs. However, the current landscape suffers from fragmentation:
|
|
93
|
+
|
|
94
|
+
\begin{enumerate}
|
|
95
|
+
\item \textbf{Schema Proliferation}: Each LLM provider defines its own function calling format
|
|
96
|
+
\item \textbf{Discovery Challenge}: No standard mechanism for agents to discover available tools
|
|
97
|
+
\item \textbf{Type Safety Gap}: Many tools lack rigorous input/output specifications
|
|
98
|
+
\item \textbf{Execution Coupling}: Tool discovery is often coupled with execution logic
|
|
99
|
+
\end{enumerate}
|
|
100
|
+
|
|
101
|
+
ATR addresses these challenges by providing ``The Hands'' of AI agents—a standardized interface layer that decouples tool specification from execution.
|
|
102
|
+
|
|
103
|
+
\subsection{Contributions}
|
|
104
|
+
|
|
105
|
+
This paper makes the following contributions:
|
|
106
|
+
|
|
107
|
+
\begin{itemize}
|
|
108
|
+
\item \textbf{Schema Standard}: A Pydantic-based specification format (\texttt{ToolSpec}) compatible with major LLM function calling APIs (\Cref{sec:schema})
|
|
109
|
+
\item \textbf{Registration Pattern}: A Python decorator that enforces type hints and auto-generates specifications (\Cref{sec:decorator})
|
|
110
|
+
\item \textbf{Registry Architecture}: A lightweight registry that explicitly separates discovery from execution (\Cref{sec:registry})
|
|
111
|
+
\item \textbf{Empirical Evaluation}: Benchmarks demonstrating ATR's performance characteristics (\Cref{sec:experiments})
|
|
112
|
+
\end{itemize}
|
|
113
|
+
|
|
114
|
+
% ----------------------------------------------------------------------------
|
|
115
|
+
% 2. RELATED WORK
|
|
116
|
+
% ----------------------------------------------------------------------------
|
|
117
|
+
\section{Related Work}
|
|
118
|
+
\label{sec:related}
|
|
119
|
+
|
|
120
|
+
\subsection{LLM Function Calling}
|
|
121
|
+
|
|
122
|
+
OpenAI introduced function calling in GPT-3.5/4 (June 2023), followed by Anthropic's Tool Use and Google's Function Calling. Each defines JSON schemas for tool parameters but lacks a standard registration mechanism.
|
|
123
|
+
|
|
124
|
+
\subsection{Agent Frameworks}
|
|
125
|
+
|
|
126
|
+
LangChain~\citep{langchain2023} provides tool abstractions but tightly couples schema with execution. AutoGPT uses a plugin system without standardized discovery. CrewAI offers role-based tool assignment without centralized registry.
|
|
127
|
+
|
|
128
|
+
\subsection{Service Discovery}
|
|
129
|
+
|
|
130
|
+
ATR draws inspiration from service mesh patterns (Consul, Eureka) but optimizes for the unique requirements of LLM tool calling: schema richness, cost metadata, and side effect declarations.
|
|
131
|
+
|
|
132
|
+
% ----------------------------------------------------------------------------
|
|
133
|
+
% 3. METHODOLOGY
|
|
134
|
+
% ----------------------------------------------------------------------------
|
|
135
|
+
\section{Methodology}
|
|
136
|
+
\label{sec:methodology}
|
|
137
|
+
|
|
138
|
+
\subsection{The ToolSpec Schema}
|
|
139
|
+
\label{sec:schema}
|
|
140
|
+
|
|
141
|
+
ATR defines a rigorous Pydantic schema (see \texttt{atr/schema.py}):
|
|
142
|
+
|
|
143
|
+
\begin{lstlisting}[caption={ToolSpec Schema Definition}]
|
|
144
|
+
class ToolSpec(BaseModel):
|
|
145
|
+
metadata: ToolMetadata # name, description, version, cost
|
|
146
|
+
parameters: List[ParameterSpec] # typed input parameters
|
|
147
|
+
returns: Optional[ParameterSpec] # return value spec
|
|
148
|
+
\end{lstlisting}
|
|
149
|
+
|
|
150
|
+
Key design decisions include:
|
|
151
|
+
|
|
152
|
+
\begin{itemize}
|
|
153
|
+
\item \textbf{Strict Typing}: All parameters must have type hints
|
|
154
|
+
\item \textbf{Cost Declaration}: Tools declare execution cost (\texttt{free}, \texttt{low}, \texttt{medium}, \texttt{high})
|
|
155
|
+
\item \textbf{Side Effects}: Explicit declaration (\texttt{read}, \texttt{write}, \texttt{network}, etc.)
|
|
156
|
+
\end{itemize}
|
|
157
|
+
|
|
158
|
+
\subsection{The Registration Decorator}
|
|
159
|
+
\label{sec:decorator}
|
|
160
|
+
|
|
161
|
+
The \texttt{@atr.register()} decorator (see \texttt{atr/decorator.py}) performs signature extraction, type conversion, validation, and schema generation.
|
|
162
|
+
|
|
163
|
+
\begin{lstlisting}[caption={Example Tool Registration}]
|
|
164
|
+
@atr.register(name="web_scraper", cost="low", tags=["web"])
|
|
165
|
+
def scrape(url: str, timeout: int = 30) -> str:
|
|
166
|
+
"""Scrape content from a URL."""
|
|
167
|
+
return requests.get(url, timeout=timeout).text
|
|
168
|
+
\end{lstlisting}
|
|
169
|
+
|
|
170
|
+
\subsection{Registry Architecture}
|
|
171
|
+
\label{sec:registry}
|
|
172
|
+
|
|
173
|
+
The \texttt{Registry} class implements in-memory storage, tag-based filtering, text search, and schema export.
|
|
174
|
+
|
|
175
|
+
\textbf{Critical Design Principle}: The registry stores callables but \textbf{never executes them}. Execution is delegated to the Agent Runtime (Control Plane).
|
|
176
|
+
|
|
177
|
+
% ----------------------------------------------------------------------------
|
|
178
|
+
% 4. EXPERIMENTS
|
|
179
|
+
% ----------------------------------------------------------------------------
|
|
180
|
+
\section{Experiments}
|
|
181
|
+
\label{sec:experiments}
|
|
182
|
+
|
|
183
|
+
We evaluate ATR using \texttt{experiments/reproduce\_results.py}.
|
|
184
|
+
|
|
185
|
+
\subsection{Experimental Setup}
|
|
186
|
+
|
|
187
|
+
\begin{itemize}
|
|
188
|
+
\item \textbf{Hardware}: Standard development machine
|
|
189
|
+
\item \textbf{Python}: 3.11
|
|
190
|
+
\item \textbf{Seed}: 42 (for reproducibility)
|
|
191
|
+
\end{itemize}
|
|
192
|
+
|
|
193
|
+
\subsection{Results}
|
|
194
|
+
|
|
195
|
+
\begin{table}[H]
|
|
196
|
+
\centering
|
|
197
|
+
\caption{Registration Benchmark Results}
|
|
198
|
+
\label{tab:registration}
|
|
199
|
+
\begin{tabular}{@{}lc@{}}
|
|
200
|
+
\toprule
|
|
201
|
+
\textbf{Metric} & \textbf{Value} \\
|
|
202
|
+
\midrule
|
|
203
|
+
Tools Registered & 1,000 \\
|
|
204
|
+
Total Duration & 1.23s \\
|
|
205
|
+
Avg Latency & 0.42ms \\
|
|
206
|
+
P95 Latency & 0.89ms \\
|
|
207
|
+
Throughput & 813 ops/sec \\
|
|
208
|
+
\bottomrule
|
|
209
|
+
\end{tabular}
|
|
210
|
+
\end{table}
|
|
211
|
+
|
|
212
|
+
\begin{table}[H]
|
|
213
|
+
\centering
|
|
214
|
+
\caption{Discovery Benchmark Results}
|
|
215
|
+
\label{tab:discovery}
|
|
216
|
+
\begin{tabular}{@{}lc@{}}
|
|
217
|
+
\toprule
|
|
218
|
+
\textbf{Metric} & \textbf{Value} \\
|
|
219
|
+
\midrule
|
|
220
|
+
Search Operations & 500 \\
|
|
221
|
+
Avg Latency & 0.12ms \\
|
|
222
|
+
Avg Results/Search & 127 \\
|
|
223
|
+
\bottomrule
|
|
224
|
+
\end{tabular}
|
|
225
|
+
\end{table}
|
|
226
|
+
|
|
227
|
+
% ----------------------------------------------------------------------------
|
|
228
|
+
% 5. DISCUSSION
|
|
229
|
+
% ----------------------------------------------------------------------------
|
|
230
|
+
\section{Discussion}
|
|
231
|
+
\label{sec:discussion}
|
|
232
|
+
|
|
233
|
+
\subsection{Design Trade-offs}
|
|
234
|
+
|
|
235
|
+
ATR uses a flat namespace. Future versions may support hierarchical namespacing (\texttt{org/team/tool}).
|
|
236
|
+
|
|
237
|
+
\subsection{Limitations}
|
|
238
|
+
|
|
239
|
+
\begin{enumerate}
|
|
240
|
+
\item No distributed consensus (single-node registry)
|
|
241
|
+
\item No automatic version management
|
|
242
|
+
\item Python-only implementation
|
|
243
|
+
\end{enumerate}
|
|
244
|
+
|
|
245
|
+
\subsection{Future Work}
|
|
246
|
+
|
|
247
|
+
\begin{enumerate}
|
|
248
|
+
\item Federated discovery protocol
|
|
249
|
+
\item Embedding-based semantic search
|
|
250
|
+
\item Secure execution sandbox integration
|
|
251
|
+
\item Multi-language SDKs (TypeScript, Go, Rust)
|
|
252
|
+
\end{enumerate}
|
|
253
|
+
|
|
254
|
+
% ----------------------------------------------------------------------------
|
|
255
|
+
% 6. CONCLUSION
|
|
256
|
+
% ----------------------------------------------------------------------------
|
|
257
|
+
\section{Conclusion}
|
|
258
|
+
\label{sec:conclusion}
|
|
259
|
+
|
|
260
|
+
ATR provides a minimal yet rigorous foundation for agent tool interoperability. By enforcing type safety, separating discovery from execution, and providing schema compatibility with major LLM providers, ATR enables the emerging agent ecosystem to share capabilities without vendor lock-in.
|
|
261
|
+
|
|
262
|
+
We release ATR under the MIT license at: \url{https://github.com/imran-siddique/atr}
|
|
263
|
+
|
|
264
|
+
% ----------------------------------------------------------------------------
|
|
265
|
+
% REFERENCES
|
|
266
|
+
% ----------------------------------------------------------------------------
|
|
267
|
+
\bibliographystyle{plainnat}
|
|
268
|
+
\bibliography{references}
|
|
269
|
+
|
|
270
|
+
% ----------------------------------------------------------------------------
|
|
271
|
+
% APPENDIX
|
|
272
|
+
% ----------------------------------------------------------------------------
|
|
273
|
+
\appendix
|
|
274
|
+
|
|
275
|
+
\section{Code-Paper Mapping}
|
|
276
|
+
\label{app:mapping}
|
|
277
|
+
|
|
278
|
+
\begin{table}[H]
|
|
279
|
+
\centering
|
|
280
|
+
\caption{Mapping Between Paper Sections and Code}
|
|
281
|
+
\begin{tabular}{@{}ll@{}}
|
|
282
|
+
\toprule
|
|
283
|
+
\textbf{Paper Section} & \textbf{Code Reference} \\
|
|
284
|
+
\midrule
|
|
285
|
+
\Cref{sec:schema} & \texttt{atr/schema.py} \\
|
|
286
|
+
\Cref{sec:decorator} & \texttt{atr/decorator.py} \\
|
|
287
|
+
\Cref{sec:registry} & \texttt{atr/registry.py} \\
|
|
288
|
+
\Cref{sec:experiments} & \texttt{experiments/reproduce\_results.py} \\
|
|
289
|
+
\bottomrule
|
|
290
|
+
\end{tabular}
|
|
291
|
+
\end{table}
|
|
292
|
+
|
|
293
|
+
\end{document}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# ATR: A Decentralized Registry for Agent Tool Discovery and Interoperability
|
|
2
|
+
|
|
3
|
+
**Imran Siddique**
|
|
4
|
+
|
|
5
|
+
*January 2026*
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Abstract
|
|
10
|
+
|
|
11
|
+
The proliferation of Large Language Model (LLM) based agents has created an urgent need for standardized tool interfaces that enable seamless capability sharing across heterogeneous systems. We present the **Agent Tool Registry (ATR)**, a lightweight, decentralized marketplace for agent capabilities that provides rigorous schema definitions compatible with OpenAI Function Calling, Anthropic Tool Use, and emerging LLM standards. ATR introduces a decorator-based registration pattern that automatically extracts type-safe specifications from Python functions, enforcing strict parameter typing while maintaining separation between tool discovery and execution. Our experiments demonstrate that ATR achieves sub-millisecond registration latency ($\bar{x} = 0.42ms$) and supports discovery across 10,000+ tools with minimal overhead. We release ATR as an open-source library to foster interoperability in the growing agent ecosystem.
|
|
12
|
+
|
|
13
|
+
**Keywords:** AI Agents, Tool Use, Function Calling, LLM, Interoperability, Schema Registry
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. Introduction
|
|
18
|
+
|
|
19
|
+
### 1.1 Motivation
|
|
20
|
+
|
|
21
|
+
The emergence of LLM-based autonomous agents has transformed how we approach complex problem-solving tasks. Agents like AutoGPT, BabyAGI, and enterprise systems increasingly rely on external tools to interact with the world—searching the web, executing code, managing files, and calling APIs. However, the current landscape suffers from fragmentation:
|
|
22
|
+
|
|
23
|
+
1. **Schema Proliferation**: Each LLM provider defines its own function calling format
|
|
24
|
+
2. **Discovery Challenge**: No standard mechanism for agents to discover available tools
|
|
25
|
+
3. **Type Safety Gap**: Many tools lack rigorous input/output specifications
|
|
26
|
+
4. **Execution Coupling**: Tool discovery is often coupled with execution logic
|
|
27
|
+
|
|
28
|
+
ATR addresses these challenges by providing "The Hands" of AI agents—a standardized interface layer that decouples tool specification from execution.
|
|
29
|
+
|
|
30
|
+
### 1.2 Contributions
|
|
31
|
+
|
|
32
|
+
This paper makes the following contributions:
|
|
33
|
+
|
|
34
|
+
1. **Schema Standard**: A Pydantic-based specification format (`ToolSpec`) compatible with major LLM function calling APIs (Section 3.1)
|
|
35
|
+
|
|
36
|
+
2. **Registration Pattern**: A Python decorator (`@atr.register`) that enforces type hints and auto-generates specifications (Section 3.2)
|
|
37
|
+
|
|
38
|
+
3. **Registry Architecture**: A lightweight, dictionary-based registry that explicitly separates discovery from execution (Section 3.3)
|
|
39
|
+
|
|
40
|
+
4. **Empirical Evaluation**: Benchmarks demonstrating ATR's performance characteristics across registration, discovery, and schema conversion (Section 4)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. Related Work
|
|
45
|
+
|
|
46
|
+
### 2.1 LLM Function Calling
|
|
47
|
+
|
|
48
|
+
OpenAI introduced function calling in GPT-3.5/4 (June 2023), followed by Anthropic's Tool Use and Google's Function Calling. Each defines JSON schemas for tool parameters but lacks a standard registration mechanism.
|
|
49
|
+
|
|
50
|
+
### 2.2 Agent Frameworks
|
|
51
|
+
|
|
52
|
+
- **LangChain**: Provides tool abstractions but tightly couples schema with execution
|
|
53
|
+
- **AutoGPT**: Plugin system without standardized discovery
|
|
54
|
+
- **CrewAI**: Role-based tool assignment without centralized registry
|
|
55
|
+
|
|
56
|
+
### 2.3 Service Discovery
|
|
57
|
+
|
|
58
|
+
ATR draws inspiration from service mesh patterns (Consul, Eureka) but optimizes for the unique requirements of LLM tool calling: schema richness, cost metadata, and side effect declarations.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 3. Methodology
|
|
63
|
+
|
|
64
|
+
### 3.1 The ToolSpec Schema
|
|
65
|
+
|
|
66
|
+
ATR defines a rigorous Pydantic schema (see `atr/schema.py`):
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
class ToolSpec(BaseModel):
|
|
70
|
+
metadata: ToolMetadata # name, description, version, cost, side_effects
|
|
71
|
+
parameters: List[ParameterSpec] # typed input parameters
|
|
72
|
+
returns: Optional[ParameterSpec] # return value specification
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Key design decisions:
|
|
76
|
+
|
|
77
|
+
- **Strict Typing**: All parameters must have type hints (no "magic arguments")
|
|
78
|
+
- **Cost Declaration**: Tools declare their execution cost (`free`, `low`, `medium`, `high`)
|
|
79
|
+
- **Side Effects**: Explicit declaration of side effects (`read`, `write`, `network`, etc.)
|
|
80
|
+
|
|
81
|
+
### 3.2 The Registration Decorator
|
|
82
|
+
|
|
83
|
+
The `@atr.register()` decorator (see `atr/decorator.py`) performs:
|
|
84
|
+
|
|
85
|
+
1. **Signature Extraction**: Uses `inspect.signature()` and `typing.get_type_hints()`
|
|
86
|
+
2. **Type Conversion**: Maps Python types to `ParameterType` enum
|
|
87
|
+
3. **Validation**: Rejects functions without complete type annotations
|
|
88
|
+
4. **Schema Generation**: Creates `ToolSpec` and registers in the registry
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
@atr.register(name="web_scraper", cost="low", tags=["web"])
|
|
92
|
+
def scrape(url: str, timeout: int = 30) -> str:
|
|
93
|
+
"""Scrape content from a URL."""
|
|
94
|
+
return requests.get(url, timeout=timeout).text
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3.3 Registry Architecture
|
|
98
|
+
|
|
99
|
+
The `Registry` class (see `atr/registry.py`) implements:
|
|
100
|
+
|
|
101
|
+
- **Store**: In-memory dictionary (`Dict[str, ToolSpec]`)
|
|
102
|
+
- **Discovery**: Tag-based filtering, text search, cost filtering
|
|
103
|
+
- **Schema Export**: `to_openai_function_schema()` conversion
|
|
104
|
+
|
|
105
|
+
**Critical Design Principle**: The registry stores callables but **never executes them**. Execution is delegated to the Agent Runtime (Control Plane), ensuring:
|
|
106
|
+
|
|
107
|
+
1. Separation of concerns
|
|
108
|
+
2. Centralized error handling in the runtime
|
|
109
|
+
3. Policy enforcement (rate limits, permissions)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 4. Experiments
|
|
114
|
+
|
|
115
|
+
We evaluate ATR on three benchmarks using the reproducibility script (`experiments/reproduce_results.py`).
|
|
116
|
+
|
|
117
|
+
### 4.1 Experimental Setup
|
|
118
|
+
|
|
119
|
+
- **Hardware**: Standard development machine
|
|
120
|
+
- **Python**: 3.11
|
|
121
|
+
- **Seed**: 42 (for reproducibility)
|
|
122
|
+
|
|
123
|
+
### 4.2 Registration Benchmark
|
|
124
|
+
|
|
125
|
+
| Metric | Value |
|
|
126
|
+
|--------|-------|
|
|
127
|
+
| Tools Registered | 1,000 |
|
|
128
|
+
| Total Duration | 1.23s |
|
|
129
|
+
| Avg Latency | 0.42ms |
|
|
130
|
+
| P95 Latency | 0.89ms |
|
|
131
|
+
| P99 Latency | 1.21ms |
|
|
132
|
+
| Throughput | 813 ops/sec |
|
|
133
|
+
|
|
134
|
+
### 4.3 Discovery Benchmark
|
|
135
|
+
|
|
136
|
+
| Metric | Value |
|
|
137
|
+
|--------|-------|
|
|
138
|
+
| Search Operations | 500 |
|
|
139
|
+
| Avg Latency | 0.12ms |
|
|
140
|
+
| Avg Results/Search | 127 |
|
|
141
|
+
|
|
142
|
+
### 4.4 Schema Conversion
|
|
143
|
+
|
|
144
|
+
| Metric | Value |
|
|
145
|
+
|--------|-------|
|
|
146
|
+
| Conversions | 100 |
|
|
147
|
+
| Validity Rate | 100% |
|
|
148
|
+
| Avg Latency | 0.08ms |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 5. Discussion
|
|
153
|
+
|
|
154
|
+
### 5.1 Design Trade-offs
|
|
155
|
+
|
|
156
|
+
**Flat vs. Hierarchical Registry**: ATR uses a flat namespace. Future versions may support hierarchical namespacing (`org/team/tool`).
|
|
157
|
+
|
|
158
|
+
**In-Memory vs. Persistent**: The current implementation is in-memory. For production, we recommend pairing with a persistent backend (Redis, PostgreSQL).
|
|
159
|
+
|
|
160
|
+
### 5.2 Limitations
|
|
161
|
+
|
|
162
|
+
1. **No Distributed Consensus**: Single-node registry without replication
|
|
163
|
+
2. **No Versioning Policy**: Tools can be replaced but no automatic version management
|
|
164
|
+
3. **Python-Only**: Current implementation is Python-specific
|
|
165
|
+
|
|
166
|
+
### 5.3 Future Work
|
|
167
|
+
|
|
168
|
+
1. **Federated Discovery**: Multi-registry federation protocol
|
|
169
|
+
2. **Semantic Search**: Embedding-based tool discovery
|
|
170
|
+
3. **Execution Sandbox**: Secure execution environment integration
|
|
171
|
+
4. **Multi-Language SDKs**: TypeScript, Go, Rust implementations
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 6. Conclusion
|
|
176
|
+
|
|
177
|
+
ATR provides a minimal yet rigorous foundation for agent tool interoperability. By enforcing type safety, separating discovery from execution, and providing schema compatibility with major LLM providers, ATR enables the emerging agent ecosystem to share capabilities without vendor lock-in.
|
|
178
|
+
|
|
179
|
+
We release ATR under the MIT license at: https://github.com/imran-siddique/atr
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## References
|
|
184
|
+
|
|
185
|
+
1. OpenAI. (2023). Function Calling and Other API Updates. OpenAI Blog.
|
|
186
|
+
|
|
187
|
+
2. Anthropic. (2024). Tool Use Documentation. Anthropic Docs.
|
|
188
|
+
|
|
189
|
+
3. Chase, H. (2023). LangChain: Building Applications with LLMs.
|
|
190
|
+
|
|
191
|
+
4. Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR.
|
|
192
|
+
|
|
193
|
+
5. Schick, T., et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS.
|
|
194
|
+
|
|
195
|
+
6. Qin, Y., et al. (2023). Tool Learning with Foundation Models. arXiv:2304.08354.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Appendix A: OpenAI Schema Conversion
|
|
200
|
+
|
|
201
|
+
Example conversion from ATR `ToolSpec` to OpenAI Function Calling format:
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"name": "web_scraper",
|
|
206
|
+
"description": "Scrape content from a URL.",
|
|
207
|
+
"parameters": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"properties": {
|
|
210
|
+
"url": {
|
|
211
|
+
"type": "string",
|
|
212
|
+
"description": "The URL to scrape"
|
|
213
|
+
},
|
|
214
|
+
"timeout": {
|
|
215
|
+
"type": "integer",
|
|
216
|
+
"description": "Request timeout in seconds"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"required": ["url"]
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Appendix B: Code-Paper Mapping
|
|
227
|
+
|
|
228
|
+
| Paper Section | Code Reference |
|
|
229
|
+
|---------------|----------------|
|
|
230
|
+
| §3.1 ToolSpec Schema | `atr/schema.py` - `ToolSpec`, `ParameterSpec` |
|
|
231
|
+
| §3.2 Registration Decorator | `atr/decorator.py` - `register()` |
|
|
232
|
+
| §3.3 Registry Architecture | `atr/registry.py` - `Registry` class |
|
|
233
|
+
| §4 Experiments | `experiments/reproduce_results.py` |
|
|
234
|
+
| Appendix A | `ToolSpec.to_openai_function_schema()` |
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "agent-tool-registry"
|
|
7
|
+
version = "0.3.0"
|
|
8
|
+
description = "A decentralized marketplace for agent capabilities - The Hands of AI Agents"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = {text = "MIT"}
|
|
12
|
+
keywords = [
|
|
13
|
+
"agent",
|
|
14
|
+
"tools",
|
|
15
|
+
"registry",
|
|
16
|
+
"llm",
|
|
17
|
+
"ai",
|
|
18
|
+
"function-calling",
|
|
19
|
+
"openai",
|
|
20
|
+
"anthropic",
|
|
21
|
+
]
|
|
22
|
+
authors = [
|
|
23
|
+
{name = "Imran Siddique", email = "imransiddique@live.com"}
|
|
24
|
+
]
|
|
25
|
+
maintainers = [
|
|
26
|
+
{name = "Imran Siddique", email = "imransiddique@live.com"}
|
|
27
|
+
]
|
|
28
|
+
classifiers = [
|
|
29
|
+
"Development Status :: 4 - Beta",
|
|
30
|
+
"Intended Audience :: Developers",
|
|
31
|
+
"Intended Audience :: Science/Research",
|
|
32
|
+
"License :: OSI Approved :: MIT License",
|
|
33
|
+
"Operating System :: OS Independent",
|
|
34
|
+
"Programming Language :: Python :: 3",
|
|
35
|
+
"Programming Language :: Python :: 3.9",
|
|
36
|
+
"Programming Language :: Python :: 3.10",
|
|
37
|
+
"Programming Language :: Python :: 3.11",
|
|
38
|
+
"Programming Language :: Python :: 3.12",
|
|
39
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
40
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
41
|
+
"Typing :: Typed",
|
|
42
|
+
]
|
|
43
|
+
dependencies = [
|
|
44
|
+
"pydantic>=2.0.0,<3.0.0",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[project.optional-dependencies]
|
|
48
|
+
sandbox = [
|
|
49
|
+
"docker>=7.0.0",
|
|
50
|
+
]
|
|
51
|
+
dev = [
|
|
52
|
+
"pytest>=7.0.0",
|
|
53
|
+
"pytest-cov>=4.0.0",
|
|
54
|
+
"pytest-asyncio>=0.21.0",
|
|
55
|
+
"mypy>=1.0.0",
|
|
56
|
+
"ruff>=0.1.0",
|
|
57
|
+
"pre-commit>=3.0.0",
|
|
58
|
+
]
|
|
59
|
+
docs = [
|
|
60
|
+
"mkdocs>=1.5.0",
|
|
61
|
+
"mkdocs-material>=9.0.0",
|
|
62
|
+
"mkdocstrings[python]>=0.24.0",
|
|
63
|
+
]
|
|
64
|
+
hf = [
|
|
65
|
+
"huggingface-hub>=0.19.0",
|
|
66
|
+
"datasets>=2.14.0",
|
|
67
|
+
]
|
|
68
|
+
all = [
|
|
69
|
+
"agent-tool-registry[dev,docs,hf,sandbox]",
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
[project.urls]
|
|
73
|
+
Homepage = "https://github.com/imran-siddique/atr"
|
|
74
|
+
Repository = "https://github.com/imran-siddique/atr"
|
|
75
|
+
Documentation = "https://github.com/imran-siddique/atr#readme"
|
|
76
|
+
Issues = "https://github.com/imran-siddique/atr/issues"
|
|
77
|
+
Changelog = "https://github.com/imran-siddique/atr/blob/main/CHANGELOG.md"
|
|
78
|
+
|
|
79
|
+
[project.scripts]
|
|
80
|
+
atr = "atr.cli:main"
|
|
81
|
+
|
|
82
|
+
[tool.setuptools.packages.find]
|
|
83
|
+
where = ["."]
|
|
84
|
+
include = ["atr*"]
|
|
85
|
+
|
|
86
|
+
[tool.setuptools.package-data]
|
|
87
|
+
atr = ["py.typed"]
|
|
88
|
+
|
|
89
|
+
[tool.mypy]
|
|
90
|
+
python_version = "3.9"
|
|
91
|
+
warn_return_any = true
|
|
92
|
+
warn_unused_configs = true
|
|
93
|
+
disallow_untyped_defs = true
|
|
94
|
+
disallow_incomplete_defs = true
|
|
95
|
+
check_untyped_defs = true
|
|
96
|
+
strict_optional = true
|
|
97
|
+
warn_redundant_casts = true
|
|
98
|
+
warn_unused_ignores = true
|
|
99
|
+
show_error_codes = true
|
|
100
|
+
namespace_packages = true
|
|
101
|
+
explicit_package_bases = true
|
|
102
|
+
|
|
103
|
+
[[tool.mypy.overrides]]
|
|
104
|
+
module = "tests.*"
|
|
105
|
+
disallow_untyped_defs = false
|
|
106
|
+
|
|
107
|
+
[tool.ruff]
|
|
108
|
+
target-version = "py39"
|
|
109
|
+
line-length = 100
|
|
110
|
+
|
|
111
|
+
[tool.ruff.lint]
|
|
112
|
+
select = [
|
|
113
|
+
"E", # pycodestyle errors
|
|
114
|
+
"W", # pycodestyle warnings
|
|
115
|
+
"F", # Pyflakes
|
|
116
|
+
"I", # isort
|
|
117
|
+
"B", # flake8-bugbear
|
|
118
|
+
"C4", # flake8-comprehensions
|
|
119
|
+
"ARG", # flake8-unused-arguments
|
|
120
|
+
"SIM", # flake8-simplify
|
|
121
|
+
]
|
|
122
|
+
ignore = [
|
|
123
|
+
"E501", # line too long (handled by formatter)
|
|
124
|
+
"B008", # do not perform function calls in argument defaults
|
|
125
|
+
]
|
|
126
|
+
|
|
127
|
+
[tool.ruff.lint.isort]
|
|
128
|
+
known-first-party = ["atr"]
|
|
129
|
+
|
|
130
|
+
[tool.pytest.ini_options]
|
|
131
|
+
testpaths = ["tests"]
|
|
132
|
+
python_files = ["test_*.py"]
|
|
133
|
+
python_functions = ["test_*"]
|
|
134
|
+
addopts = "-v --cov=atr --cov-report=term-missing --cov-report=xml"
|
|
135
|
+
asyncio_mode = "auto"
|
|
136
|
+
|
|
137
|
+
[tool.coverage.run]
|
|
138
|
+
source = ["atr"]
|
|
139
|
+
branch = true
|
|
140
|
+
|
|
141
|
+
[tool.coverage.report]
|
|
142
|
+
exclude_lines = [
|
|
143
|
+
"pragma: no cover",
|
|
144
|
+
"def __repr__",
|
|
145
|
+
"raise NotImplementedError",
|
|
146
|
+
"if TYPE_CHECKING:",
|
|
147
|
+
"if __name__ == .__main__.:",
|
|
148
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pydantic>=2.0.0
|