agent-gantry 0.1.0__tar.gz

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.
Files changed (180) hide show
  1. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/01-advanced-routing-orchestration.md +74 -0
  2. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/02-enterprise-security-governance.md +92 -0
  3. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/03-frictionless-onboarding.md +107 -0
  4. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/04-developer-experience-ui.md +109 -0
  5. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/05-smart-learning.md +121 -0
  6. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/06-state-management.md +146 -0
  7. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/README.md +96 -0
  8. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +57 -0
  9. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  10. agent_gantry-0.1.0/.github/ISSUE_TEMPLATE/general_feature_request.md +53 -0
  11. agent_gantry-0.1.0/.github/copilot-instructions.md +238 -0
  12. agent_gantry-0.1.0/.github/workflows/ci.yml +102 -0
  13. agent_gantry-0.1.0/.github/workflows/publish.yml +31 -0
  14. agent_gantry-0.1.0/.gitignore +92 -0
  15. agent_gantry-0.1.0/CHANGELOG.md +51 -0
  16. agent_gantry-0.1.0/CONTRIBUTING.md +358 -0
  17. agent_gantry-0.1.0/LICENSE +21 -0
  18. agent_gantry-0.1.0/PKG-INFO +768 -0
  19. agent_gantry-0.1.0/PUBLISHING.md +87 -0
  20. agent_gantry-0.1.0/QUICK_REFERENCE.md +257 -0
  21. agent_gantry-0.1.0/README.md +620 -0
  22. agent_gantry-0.1.0/agent_gantry/README.md +100 -0
  23. agent_gantry-0.1.0/agent_gantry/__init__.py +39 -0
  24. agent_gantry-0.1.0/agent_gantry/adapters/README.md +177 -0
  25. agent_gantry-0.1.0/agent_gantry/adapters/__init__.py +27 -0
  26. agent_gantry-0.1.0/agent_gantry/adapters/embedders/README.md +42 -0
  27. agent_gantry-0.1.0/agent_gantry/adapters/embedders/__init__.py +21 -0
  28. agent_gantry-0.1.0/agent_gantry/adapters/embedders/base.py +70 -0
  29. agent_gantry-0.1.0/agent_gantry/adapters/embedders/nomic.py +278 -0
  30. agent_gantry-0.1.0/agent_gantry/adapters/embedders/openai.py +59 -0
  31. agent_gantry-0.1.0/agent_gantry/adapters/embedders/simple.py +58 -0
  32. agent_gantry-0.1.0/agent_gantry/adapters/executors/README.md +36 -0
  33. agent_gantry-0.1.0/agent_gantry/adapters/executors/__init__.py +9 -0
  34. agent_gantry-0.1.0/agent_gantry/adapters/executors/a2a_executor.py +177 -0
  35. agent_gantry-0.1.0/agent_gantry/adapters/executors/base.py +73 -0
  36. agent_gantry-0.1.0/agent_gantry/adapters/executors/mcp_client.py +199 -0
  37. agent_gantry-0.1.0/agent_gantry/adapters/rerankers/README.md +29 -0
  38. agent_gantry-0.1.0/agent_gantry/adapters/rerankers/__init__.py +9 -0
  39. agent_gantry-0.1.0/agent_gantry/adapters/rerankers/base.py +39 -0
  40. agent_gantry-0.1.0/agent_gantry/adapters/rerankers/cohere.py +46 -0
  41. agent_gantry-0.1.0/agent_gantry/adapters/tool_spec/__init__.py +19 -0
  42. agent_gantry-0.1.0/agent_gantry/adapters/tool_spec/base.py +138 -0
  43. agent_gantry-0.1.0/agent_gantry/adapters/tool_spec/providers.py +526 -0
  44. agent_gantry-0.1.0/agent_gantry/adapters/tool_spec/registry.py +183 -0
  45. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/README.md +37 -0
  46. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/__init__.py +21 -0
  47. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/base.py +139 -0
  48. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/lancedb.py +690 -0
  49. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/memory.py +134 -0
  50. agent_gantry-0.1.0/agent_gantry/adapters/vector_stores/remote.py +104 -0
  51. agent_gantry-0.1.0/agent_gantry/cli/README.md +24 -0
  52. agent_gantry-0.1.0/agent_gantry/cli/__init__.py +11 -0
  53. agent_gantry-0.1.0/agent_gantry/cli/__main__.py +8 -0
  54. agent_gantry-0.1.0/agent_gantry/cli/main.py +83 -0
  55. agent_gantry-0.1.0/agent_gantry/core/README.md +212 -0
  56. agent_gantry-0.1.0/agent_gantry/core/__init__.py +19 -0
  57. agent_gantry-0.1.0/agent_gantry/core/context.py +108 -0
  58. agent_gantry-0.1.0/agent_gantry/core/executor.py +436 -0
  59. agent_gantry-0.1.0/agent_gantry/core/gantry.py +981 -0
  60. agent_gantry-0.1.0/agent_gantry/core/registry.py +194 -0
  61. agent_gantry-0.1.0/agent_gantry/core/router.py +399 -0
  62. agent_gantry-0.1.0/agent_gantry/core/security.py +164 -0
  63. agent_gantry-0.1.0/agent_gantry/integrations/README.md +273 -0
  64. agent_gantry-0.1.0/agent_gantry/integrations/__init__.py +19 -0
  65. agent_gantry-0.1.0/agent_gantry/integrations/decorator.py +614 -0
  66. agent_gantry-0.1.0/agent_gantry/integrations/framework_adapters.py +57 -0
  67. agent_gantry-0.1.0/agent_gantry/metrics/README.md +24 -0
  68. agent_gantry-0.1.0/agent_gantry/metrics/__init__.py +10 -0
  69. agent_gantry-0.1.0/agent_gantry/metrics/token_usage.py +152 -0
  70. agent_gantry-0.1.0/agent_gantry/observability/README.md +27 -0
  71. agent_gantry-0.1.0/agent_gantry/observability/__init__.py +17 -0
  72. agent_gantry-0.1.0/agent_gantry/observability/console.py +247 -0
  73. agent_gantry-0.1.0/agent_gantry/observability/opentelemetry_adapter.py +125 -0
  74. agent_gantry-0.1.0/agent_gantry/observability/telemetry.py +101 -0
  75. agent_gantry-0.1.0/agent_gantry/providers/README.md +28 -0
  76. agent_gantry-0.1.0/agent_gantry/providers/__init__.py +9 -0
  77. agent_gantry-0.1.0/agent_gantry/providers/a2a_client.py +208 -0
  78. agent_gantry-0.1.0/agent_gantry/schema/README.md +29 -0
  79. agent_gantry-0.1.0/agent_gantry/schema/__init__.py +77 -0
  80. agent_gantry-0.1.0/agent_gantry/schema/a2a.py +89 -0
  81. agent_gantry-0.1.0/agent_gantry/schema/config.py +158 -0
  82. agent_gantry-0.1.0/agent_gantry/schema/events.py +68 -0
  83. agent_gantry-0.1.0/agent_gantry/schema/execution.py +83 -0
  84. agent_gantry-0.1.0/agent_gantry/schema/introspection.py +130 -0
  85. agent_gantry-0.1.0/agent_gantry/schema/query.py +122 -0
  86. agent_gantry-0.1.0/agent_gantry/schema/skill.py +167 -0
  87. agent_gantry-0.1.0/agent_gantry/schema/tool.py +229 -0
  88. agent_gantry-0.1.0/agent_gantry/servers/README.md +29 -0
  89. agent_gantry-0.1.0/agent_gantry/servers/__init__.py +21 -0
  90. agent_gantry-0.1.0/agent_gantry/servers/a2a_server.py +234 -0
  91. agent_gantry-0.1.0/agent_gantry/servers/mcp_server.py +249 -0
  92. agent_gantry-0.1.0/docs/README.md +18 -0
  93. agent_gantry-0.1.0/docs/cli.md +39 -0
  94. agent_gantry-0.1.0/docs/configuration.md +212 -0
  95. agent_gantry-0.1.0/docs/index.md +17 -0
  96. agent_gantry-0.1.0/docs/issue_template_implementation.md +190 -0
  97. agent_gantry-0.1.0/docs/llm_sdk_compatibility.md +801 -0
  98. agent_gantry-0.1.0/docs/local_persistence_and_skills.md +129 -0
  99. agent_gantry-0.1.0/docs/phase2.md +374 -0
  100. agent_gantry-0.1.0/docs/phase5_mcp.md +365 -0
  101. agent_gantry-0.1.0/docs/phase6_a2a.md +382 -0
  102. agent_gantry-0.1.0/docs/semantic_tool_decorator.md +337 -0
  103. agent_gantry-0.1.0/docs/vector_store_llm_integration.md +127 -0
  104. agent_gantry-0.1.0/examples/README.md +117 -0
  105. agent_gantry-0.1.0/examples/agent_frameworks/README.md +54 -0
  106. agent_gantry-0.1.0/examples/agent_frameworks/agent_framework_example.py +72 -0
  107. agent_gantry-0.1.0/examples/agent_frameworks/autogen_example.py +60 -0
  108. agent_gantry-0.1.0/examples/agent_frameworks/crewai_example.py +79 -0
  109. agent_gantry-0.1.0/examples/agent_frameworks/generic_adapters_example.py +52 -0
  110. agent_gantry-0.1.0/examples/agent_frameworks/google_adk_example.py +90 -0
  111. agent_gantry-0.1.0/examples/agent_frameworks/langchain_example.py +80 -0
  112. agent_gantry-0.1.0/examples/agent_frameworks/langgraph_example.py +74 -0
  113. agent_gantry-0.1.0/examples/agent_frameworks/llamaindex_example.py +56 -0
  114. agent_gantry-0.1.0/examples/agent_frameworks/semantic_kernel_example.py +75 -0
  115. agent_gantry-0.1.0/examples/basics/README.md +19 -0
  116. agent_gantry-0.1.0/examples/basics/async_demo.py +36 -0
  117. agent_gantry-0.1.0/examples/basics/multi_tool_demo.py +111 -0
  118. agent_gantry-0.1.0/examples/basics/tool_creation_patterns.py +114 -0
  119. agent_gantry-0.1.0/examples/basics/tool_demo.py +36 -0
  120. agent_gantry-0.1.0/examples/execution/README.md +20 -0
  121. agent_gantry-0.1.0/examples/execution/batch_execution_demo.py +49 -0
  122. agent_gantry-0.1.0/examples/execution/circuit_breaker_demo.py +45 -0
  123. agent_gantry-0.1.0/examples/execution/security_demo.py +53 -0
  124. agent_gantry-0.1.0/examples/fast_track_demo.py +173 -0
  125. agent_gantry-0.1.0/examples/llm_integration/README.md +25 -0
  126. agent_gantry-0.1.0/examples/llm_integration/anthropic_demo.py +113 -0
  127. agent_gantry-0.1.0/examples/llm_integration/decorator_demo.py +59 -0
  128. agent_gantry-0.1.0/examples/llm_integration/google_genai_demo.py +137 -0
  129. agent_gantry-0.1.0/examples/llm_integration/groq_demo.py +100 -0
  130. agent_gantry-0.1.0/examples/llm_integration/llm_demo.py +149 -0
  131. agent_gantry-0.1.0/examples/llm_integration/mistral_demo.py +100 -0
  132. agent_gantry-0.1.0/examples/llm_integration/multi_turn_conversation.py +160 -0
  133. agent_gantry-0.1.0/examples/llm_integration/openai_demo.py +121 -0
  134. agent_gantry-0.1.0/examples/llm_integration/token_savings_demo.py +256 -0
  135. agent_gantry-0.1.0/examples/observability/README.md +16 -0
  136. agent_gantry-0.1.0/examples/observability/multi_provider_metrics_demo.py +59 -0
  137. agent_gantry-0.1.0/examples/observability/telemetry_demo.py +36 -0
  138. agent_gantry-0.1.0/examples/observability/token_savings_demo.py +101 -0
  139. agent_gantry-0.1.0/examples/project_demo/main.py +93 -0
  140. agent_gantry-0.1.0/examples/project_demo/tools/tools.py +2243 -0
  141. agent_gantry-0.1.0/examples/protocols/README.md +21 -0
  142. agent_gantry-0.1.0/examples/protocols/a2a_integration_demo.py +209 -0
  143. agent_gantry-0.1.0/examples/protocols/claude_desktop_config.json +14 -0
  144. agent_gantry-0.1.0/examples/protocols/mcp_integration_demo.py +201 -0
  145. agent_gantry-0.1.0/examples/routing/README.md +25 -0
  146. agent_gantry-0.1.0/examples/routing/custom_adapter_demo.py +65 -0
  147. agent_gantry-0.1.0/examples/routing/filtering_demo.py +47 -0
  148. agent_gantry-0.1.0/examples/routing/health_aware_routing_demo.py +68 -0
  149. agent_gantry-0.1.0/examples/routing/nomic_tool_demo.py +114 -0
  150. agent_gantry-0.1.0/examples/testing_limits/README.md +20 -0
  151. agent_gantry-0.1.0/examples/testing_limits/real_world_30_tools_test.py +311 -0
  152. agent_gantry-0.1.0/examples/testing_limits/stress_test_100_tools.py +157 -0
  153. agent_gantry-0.1.0/pyproject.toml +164 -0
  154. agent_gantry-0.1.0/tests/README.md +29 -0
  155. agent_gantry-0.1.0/tests/__init__.py +3 -0
  156. agent_gantry-0.1.0/tests/conftest.py +93 -0
  157. agent_gantry-0.1.0/tests/test_decorator.py +572 -0
  158. agent_gantry-0.1.0/tests/test_examples_agent_frameworks.py +109 -0
  159. agent_gantry-0.1.0/tests/test_framework_adapters.py +36 -0
  160. agent_gantry-0.1.0/tests/test_gantry.py +232 -0
  161. agent_gantry-0.1.0/tests/test_lancedb_nomic.py +510 -0
  162. agent_gantry-0.1.0/tests/test_llm_sdk_compatibility.py +390 -0
  163. agent_gantry-0.1.0/tests/test_modules/__init__.py +1 -0
  164. agent_gantry-0.1.0/tests/test_modules/module_a.py +18 -0
  165. agent_gantry-0.1.0/tests/test_modules/module_b.py +18 -0
  166. agent_gantry-0.1.0/tests/test_modules/module_c_duplicate.py +12 -0
  167. agent_gantry-0.1.0/tests/test_modules/module_custom_attr.py +12 -0
  168. agent_gantry-0.1.0/tests/test_modules/module_no_tools.py +4 -0
  169. agent_gantry-0.1.0/tests/test_observability_token_usage.py +259 -0
  170. agent_gantry-0.1.0/tests/test_phase2.py +445 -0
  171. agent_gantry-0.1.0/tests/test_phase3_routing.py +145 -0
  172. agent_gantry-0.1.0/tests/test_phase4_adapters.py +86 -0
  173. agent_gantry-0.1.0/tests/test_phase5_mcp.py +513 -0
  174. agent_gantry-0.1.0/tests/test_phase6_a2a.py +423 -0
  175. agent_gantry-0.1.0/tests/test_refactoring_improvements.py +299 -0
  176. agent_gantry-0.1.0/tests/test_retrieval.py +55 -0
  177. agent_gantry-0.1.0/tests/test_token_savings_and_accuracy.py +134 -0
  178. agent_gantry-0.1.0/tests/test_tool.py +164 -0
  179. agent_gantry-0.1.0/tests/test_tool_spec_adapters.py +519 -0
  180. agent_gantry-0.1.0/uv.lock +8864 -0
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: "🎯 Advanced Routing & Orchestration"
3
+ about: Feature requests for hierarchical routing, tool chaining, and parameter-aware routing
4
+ title: "[Routing] "
5
+ labels: ["enhancement", "routing", "orchestration"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] Hierarchical / Domain Routing (Router of Routers)
12
+ - [ ] Tool Chaining / Pipelines (Atomic Workflows)
13
+ - [ ] Parameter-Aware Routing (Contextual Feasibility)
14
+
15
+ ## Problem Statement
16
+ <!-- Describe the current limitation or problem this feature would solve -->
17
+
18
+ **Current Behavior:**
19
+ <!-- What happens now? -->
20
+
21
+ **Desired Behavior:**
22
+ <!-- What should happen instead? -->
23
+
24
+ ## Proposed Solution
25
+
26
+ ### Overview
27
+ <!-- High-level description of your proposed solution -->
28
+
29
+ ### Technical Details
30
+ <!-- Technical implementation details, if applicable -->
31
+
32
+ ### Example Usage
33
+ <!-- Provide a code example or pseudocode showing how this would work -->
34
+
35
+ ```python
36
+ # Example usage
37
+ ```
38
+
39
+ ## Use Case
40
+ <!-- Describe a real-world scenario where this feature would be valuable -->
41
+
42
+ **Example Scenario:**
43
+
44
+
45
+ **Expected Benefit:**
46
+
47
+
48
+ ## Context: Current Architecture
49
+
50
+ Currently, Agent-Gantry excels at "Flat" Semantic Retrieval (finding the best tool for a query). This feature request aims to expand beyond that foundation.
51
+
52
+ ### Hierarchical / Domain Routing
53
+ - **Goal**: As tool counts grow from 100 to 10,000, implement a "Router of Routers" pattern
54
+ - **Example**: First route to "Finance Domain", then to "Tax Calculator"
55
+ - **Benefit**: Improved scalability and reduced noise in vector search
56
+
57
+ ### Tool Chaining / Pipelines
58
+ - **Goal**: Support Atomic Workflows—pre-defined chains of tools exposed as a single "Meta-Tool"
59
+ - **Example**: `onboard_employee` executes `create_email` → `create_slack` → `send_welcome`
60
+ - **Benefit**: Reduce LLM complexity by handling multi-step workflows internally
61
+
62
+ ### Parameter-Aware Routing
63
+ - **Goal**: Enhance router to check Contextual Feasibility beyond semantic similarity
64
+ - **Example**: If a tool requires `order_id` and no such entity exists in conversation history, penalize that tool's score
65
+ - **Benefit**: More accurate tool selection based on available context
66
+
67
+ ## Additional Context
68
+ <!-- Add any other context, screenshots, or references -->
69
+
70
+ ## Related Issues
71
+ <!-- Link to related issues or PRs -->
72
+
73
+ ---
74
+ **Note**: This feature aligns with the strategic roadmap for scaling Agent-Gantry to handle enterprise-scale tool inventories and complex orchestration patterns.
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: "🔒 Enterprise Security & Governance"
3
+ about: Feature requests for HITL, PII redaction, rate limiting, and compliance features
4
+ title: "[Security] "
5
+ labels: ["enhancement", "security", "governance", "compliance"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] Human-in-the-Loop (HITL) Protocol
12
+ - [ ] PII Redaction / Data Loss Prevention (DLP)
13
+ - [ ] Rate Limiting & Quotas
14
+ - [ ] Other Compliance/Governance Feature
15
+
16
+ ## Problem Statement
17
+ <!-- Describe the current security or governance gap this feature would address -->
18
+
19
+ **Current Behavior:**
20
+ <!-- What security/governance mechanisms exist today? -->
21
+
22
+ **Desired Behavior:**
23
+ <!-- What additional safeguards are needed? -->
24
+
25
+ ## Proposed Solution
26
+
27
+ ### Overview
28
+ <!-- High-level description of your proposed solution -->
29
+
30
+ ### Security Model
31
+ <!-- Describe the security model, threat model, or compliance requirement -->
32
+
33
+ ### Technical Details
34
+ <!-- Technical implementation details, if applicable -->
35
+
36
+ ### Example Usage
37
+ <!-- Provide a code example showing how this would work -->
38
+
39
+ ```python
40
+ # Example usage
41
+ ```
42
+
43
+ ## Use Case
44
+ <!-- Describe a real-world scenario where this security feature is critical -->
45
+
46
+ **Example Scenario:**
47
+
48
+
49
+ **Risk Mitigation:**
50
+
51
+
52
+ ## Context: Current Security Features
53
+
54
+ Agent-Gantry currently provides:
55
+ - ✅ Zero-Trust architecture with capability-based permissions
56
+ - ✅ Circuit breakers for automatic failure detection
57
+ - ✅ Tool-level health tracking and observability
58
+
59
+ This feature request aims to enhance compliance and governance capabilities.
60
+
61
+ ### Human-in-the-Loop (HITL) Protocol
62
+ - **Goal**: Standardized hook for "Sensitive Tools" requiring human approval
63
+ - **Example**: Instead of executing `delete_production_db` immediately, return `PendingApproval` status requiring secondary confirmation
64
+ - **Benefit**: Prevent catastrophic actions through mandatory human oversight
65
+
66
+ ### PII Redaction / DLP
67
+ - **Goal**: Middleware to automatically detect and redact sensitive information
68
+ - **Example**: Strip credit cards, API keys, PII from tool inputs/outputs before logging to telemetry
69
+ - **Benefit**: Compliance with GDPR, HIPAA, and other data protection regulations
70
+
71
+ ### Rate Limiting & Quotas
72
+ - **Goal**: Per-tool or per-user rate limits
73
+ - **Example**: "The `send_sms` tool can only be called 10 times per hour"
74
+ - **Benefit**: Prevent abuse, control costs, and ensure fair resource usage
75
+
76
+ ## Compliance Requirements
77
+ <!-- List any specific compliance standards this feature would help meet -->
78
+ - [ ] GDPR (General Data Protection Regulation)
79
+ - [ ] HIPAA (Health Insurance Portability and Accountability Act)
80
+ - [ ] SOC 2
81
+ - [ ] ISO 27001
82
+ - [ ] PCI DSS
83
+ - [ ] Other:
84
+
85
+ ## Additional Context
86
+ <!-- Add any other context, security considerations, or references -->
87
+
88
+ ## Related Issues
89
+ <!-- Link to related issues or PRs -->
90
+
91
+ ---
92
+ **Note**: This feature aligns with the strategic goal of making Agent-Gantry production-ready for enterprise deployments with strict compliance requirements.
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: "🚀 Frictionless Onboarding (Importers)"
3
+ about: Feature requests for automatic tool import from various sources (OpenAPI, databases, etc.)
4
+ title: "[Importer] "
5
+ labels: ["enhancement", "importer", "dx", "onboarding"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] OpenAPI / Swagger Ingestion
12
+ - [ ] Database Introspection
13
+ - [ ] Other Tool Source Integration
14
+
15
+ ## Problem Statement
16
+ <!-- Describe the current onboarding friction this feature would eliminate -->
17
+
18
+ **Current Behavior:**
19
+ <!-- How do users currently register tools from this source? -->
20
+
21
+ **Desired Behavior:**
22
+ <!-- What one-line import experience should exist? -->
23
+
24
+ ## Proposed Solution
25
+
26
+ ### Overview
27
+ <!-- High-level description of the importer -->
28
+
29
+ ### Import Source
30
+ <!-- Describe the source system, format, or protocol -->
31
+
32
+ ### Technical Details
33
+ <!-- Technical implementation details, if applicable -->
34
+
35
+ ### Example Usage
36
+ <!-- Provide a code example showing the one-line import -->
37
+
38
+ ```python
39
+ # Example usage
40
+ from agent_gantry import AgentGantry
41
+
42
+ gantry = AgentGantry()
43
+
44
+ # One-line import example
45
+ ```
46
+
47
+ ## Use Case
48
+ <!-- Describe a real-world scenario where this importer would be valuable -->
49
+
50
+ **Example Scenario:**
51
+
52
+
53
+ **Expected Benefit:**
54
+
55
+
56
+ ## Context: Current Tool Registration
57
+
58
+ Currently, Agent-Gantry supports tool registration from:
59
+ - ✅ Python functions (via `@gantry.register` decorator)
60
+ - ✅ MCP servers (via `add_mcp_server`)
61
+ - ✅ A2A agents (via `add_a2a_agent`)
62
+
63
+ This feature request aims to expand "one-line import" capabilities for additional sources.
64
+
65
+ ### OpenAPI / Swagger Ingestion
66
+ - **Goal**: One-line import for existing REST APIs
67
+ - **Example**: `gantry.ingest_openapi("https://api.stripe.com/v1/spec.json")`
68
+ - **Benefit**: Auto-generate tool definitions and schemas for every endpoint
69
+ - **Output**: Creates tools like `stripe_create_charge`, `stripe_list_customers`, etc.
70
+
71
+ ### Database Introspection
72
+ - **Goal**: Auto-generate tools for SQL queries based on schema
73
+ - **Example**: `gantry.ingest_postgres(connection_string, tables=["users", "orders"])`
74
+ - **Benefit**: Creates CRUD tools like `search_users`, `get_user_by_id`, `update_order_status`
75
+ - **Output**: Type-safe tools based on database schema
76
+
77
+ ### Other Integration Ideas
78
+ - GraphQL schema introspection
79
+ - gRPC service definitions
80
+ - Kubernetes API resources
81
+ - Cloud provider APIs (AWS, GCP, Azure)
82
+ - SaaS APIs (Slack, GitHub, Jira, etc.)
83
+
84
+ ## Schema Mapping
85
+ <!-- Describe how the source schema would map to Agent-Gantry tool definitions -->
86
+
87
+ **Source Schema:**
88
+ ```
89
+ <!-- Example of source format -->
90
+ ```
91
+
92
+ **Generated Tool:**
93
+ ```python
94
+ # Example of generated AgentGantry tool
95
+ ```
96
+
97
+ ## Authentication & Configuration
98
+ <!-- How would authentication and configuration be handled? -->
99
+
100
+ ## Additional Context
101
+ <!-- Add any other context, API documentation links, or references -->
102
+
103
+ ## Related Issues
104
+ <!-- Link to related issues or PRs -->
105
+
106
+ ---
107
+ **Note**: This feature aligns with the strategic goal of reducing friction in tool onboarding and accelerating time-to-value for Agent-Gantry users.
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: "🎨 Developer Experience & UI"
3
+ about: Feature requests for Gantry Dashboard, visualization, testing, and debugging tools
4
+ title: "[DX] "
5
+ labels: ["enhancement", "dx", "ui", "tooling"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] Gantry Dashboard (Web UI)
12
+ - [ ] Simulation & Replay (Snapshot Testing)
13
+ - [ ] Visualization Tools
14
+ - [ ] Debugging Tools
15
+ - [ ] Other DX Enhancement
16
+
17
+ ## Problem Statement
18
+ <!-- Describe the current DX limitation this feature would solve -->
19
+
20
+ **Current Behavior:**
21
+ <!-- What developer workflow exists today? -->
22
+
23
+ **Desired Behavior:**
24
+ <!-- What improved workflow should exist? -->
25
+
26
+ ## Proposed Solution
27
+
28
+ ### Overview
29
+ <!-- High-level description of your proposed solution -->
30
+
31
+ ### User Interface
32
+ <!-- If this involves a UI, describe the interface or provide mockups -->
33
+
34
+ ### Technical Details
35
+ <!-- Technical implementation details, if applicable -->
36
+
37
+ ### Example Usage
38
+ <!-- Provide examples or screenshots showing how this would work -->
39
+
40
+ ```python
41
+ # Example usage or CLI command
42
+ ```
43
+
44
+ ## Use Case
45
+ <!-- Describe a real-world developer workflow this would improve -->
46
+
47
+ **Example Scenario:**
48
+
49
+
50
+ **Expected Benefit:**
51
+
52
+
53
+ ## Context: Current Developer Tools
54
+
55
+ Agent-Gantry currently provides:
56
+ - ✅ CLI for listing and searching tools (`agent-gantry list`, `agent-gantry search`)
57
+ - ✅ Structured logging and telemetry
58
+ - ✅ OpenTelemetry integration for tracing
59
+
60
+ This feature request aims to enhance the developer experience with additional tooling.
61
+
62
+ ### Gantry Dashboard (Web UI)
63
+ - **Goal**: Lightweight local web server for development and debugging
64
+ - **Technology**: Streamlit, FastUI, or similar
65
+ - **Features**:
66
+ - Visualize the Vector Space (see how tools cluster)
67
+ - Monitor Circuit Breaker status (manually reset tripped breakers)
68
+ - View Traces/Logs in real-time
69
+ - Manually test tools without an LLM
70
+ - Inspect tool registrations and metadata
71
+ - Performance metrics and health dashboard
72
+
73
+ ### Simulation & Replay
74
+ - **Goal**: Record and replay tool execution sessions for testing
75
+ - **Features**:
76
+ - Record a session of tool executions
77
+ - Replay sessions against new tool code
78
+ - Detect regressions (Snapshot Testing for Agents)
79
+ - Compare behavior before/after changes
80
+ - **Use Case**: Ensure tool changes don't break existing agent workflows
81
+
82
+ ### Visualization Tools
83
+ - **Ideas**:
84
+ - Tool similarity heatmaps
85
+ - Routing decision trees
86
+ - Token usage analytics
87
+ - Tool execution timelines
88
+
89
+ ### Debugging Tools
90
+ - **Ideas**:
91
+ - Interactive tool tester
92
+ - Schema validator
93
+ - Embedding inspector
94
+ - Query analyzer (why was this tool ranked high/low?)
95
+
96
+ ## UI/UX Considerations
97
+ <!-- Describe any specific UI/UX requirements or considerations -->
98
+
99
+ ## Technical Stack Preferences
100
+ <!-- Any preferences for frameworks, libraries, or approaches? -->
101
+
102
+ ## Additional Context
103
+ <!-- Add any other context, mockups, or references -->
104
+
105
+ ## Related Issues
106
+ <!-- Link to related issues or PRs -->
107
+
108
+ ---
109
+ **Note**: This feature aligns with the strategic goal of providing a best-in-class developer experience for building and debugging agent systems.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: "🧠 Smart Learning"
3
+ about: Feature requests for feedback loops, RLHF for tools, and adaptive routing
4
+ title: "[Learning] "
5
+ labels: ["enhancement", "learning", "rlhf", "adaptive"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] Feedback Loop (RLHF for Tools)
12
+ - [ ] Adaptive Embeddings
13
+ - [ ] Tool Performance Learning
14
+ - [ ] User Preference Learning
15
+ - [ ] Other Learning Feature
16
+
17
+ ## Problem Statement
18
+ <!-- Describe the current limitation in learning/adaptation this feature would address -->
19
+
20
+ **Current Behavior:**
21
+ <!-- How does routing/selection work today? -->
22
+
23
+ **Desired Behavior:**
24
+ <!-- How should the system learn and adapt? -->
25
+
26
+ ## Proposed Solution
27
+
28
+ ### Overview
29
+ <!-- High-level description of the learning mechanism -->
30
+
31
+ ### Learning Mechanism
32
+ <!-- Describe how feedback is collected and applied -->
33
+
34
+ ### Technical Details
35
+ <!-- Technical implementation details, if applicable -->
36
+
37
+ ### Example Usage
38
+ <!-- Provide a code example showing how this would work -->
39
+
40
+ ```python
41
+ # Example usage
42
+ from agent_gantry import AgentGantry
43
+
44
+ gantry = AgentGantry()
45
+
46
+ # Example of feedback collection and learning
47
+ ```
48
+
49
+ ## Use Case
50
+ <!-- Describe a real-world scenario where learning would improve outcomes -->
51
+
52
+ **Example Scenario:**
53
+
54
+
55
+ **Expected Improvement:**
56
+
57
+
58
+ ## Context: Current Routing Behavior
59
+
60
+ Agent-Gantry currently uses:
61
+ - ✅ Semantic similarity (vector search)
62
+ - ✅ Intent classification
63
+ - ✅ MMR diversity
64
+ - ✅ Static health metrics (success rate, circuit breaker state)
65
+
66
+ This feature request aims to add **adaptive learning** capabilities that improve over time.
67
+
68
+ ### Feedback Loop (RLHF for Tools)
69
+ - **Goal**: Learn from tool selection feedback to improve future routing
70
+ - **Mechanism**:
71
+ - If an LLM tries to use a tool and fails (or user explicitly says "wrong tool")
72
+ - Record this negative feedback in a feedback store
73
+ - Adjust embeddings or routing weights to penalize Tool A for Query X
74
+ - Even if semantically similar, learn that Tool A is bad for this query type
75
+ - **Example**:
76
+ ```python
77
+ # User corrects tool selection
78
+ await gantry.record_feedback(
79
+ query="cancel my subscription",
80
+ selected_tool="pause_subscription", # Wrong
81
+ correct_tool="cancel_subscription", # Correct
82
+ feedback_type="tool_selection_error"
83
+ )
84
+
85
+ # Future queries automatically improve
86
+ tools = await gantry.retrieve_tools("cancel my subscription")
87
+ # Now correctly ranks cancel_subscription higher
88
+ ```
89
+
90
+ ### Adaptive Embeddings
91
+ - **Goal**: Fine-tune embeddings based on actual usage patterns
92
+ - **Approach**:
93
+ - Collect positive/negative pairs from tool execution outcomes
94
+ - Periodically retrain or adjust embeddings
95
+ - Learn domain-specific semantics
96
+
97
+ ### Tool Performance Learning
98
+ - **Goal**: Learn which tools work well together, which fail frequently, etc.
99
+ - **Metrics**: Track correlation between tool pairs, failure patterns, timing
100
+
101
+ ### User Preference Learning
102
+ - **Goal**: Learn per-user or per-team tool preferences
103
+ - **Example**: Team A prefers `slack_notify` over `email_notify`
104
+
105
+ ## Feedback Collection Strategy
106
+ <!-- How would feedback be collected? Manual, automatic, both? -->
107
+
108
+ ## Privacy & Data Considerations
109
+ <!-- Any privacy concerns with collecting feedback data? -->
110
+
111
+ ## Evaluation Metrics
112
+ <!-- How would you measure if the learning is working? -->
113
+
114
+ ## Additional Context
115
+ <!-- Add any other context, research papers, or references -->
116
+
117
+ ## Related Issues
118
+ <!-- Link to related issues or PRs -->
119
+
120
+ ---
121
+ **Note**: This feature aligns with the strategic goal of creating a self-improving tool orchestration system that gets better with use.
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: "💾 State Management"
3
+ about: Feature requests for session memory, context persistence, and stateful tools
4
+ title: "[State] "
5
+ labels: ["enhancement", "state", "memory", "session"]
6
+ assignees: []
7
+ ---
8
+
9
+ ## Feature Area
10
+ <!-- Check the area(s) this feature request relates to -->
11
+ - [ ] Session Memory / Context Store
12
+ - [ ] Cross-Tool State Sharing
13
+ - [ ] Persistent State Storage
14
+ - [ ] State Scoping (user, session, global)
15
+ - [ ] Other State Management Feature
16
+
17
+ ## Problem Statement
18
+ <!-- Describe the current limitation in state management this feature would address -->
19
+
20
+ **Current Behavior:**
21
+ <!-- How is state currently handled? -->
22
+
23
+ **Desired Behavior:**
24
+ <!-- What state management capabilities are needed? -->
25
+
26
+ ## Proposed Solution
27
+
28
+ ### Overview
29
+ <!-- High-level description of the state management solution -->
30
+
31
+ ### State Model
32
+ <!-- Describe the state model, scope, and lifecycle -->
33
+
34
+ ### Technical Details
35
+ <!-- Technical implementation details, if applicable -->
36
+
37
+ ### Example Usage
38
+ <!-- Provide a code example showing how state would be accessed -->
39
+
40
+ ```python
41
+ # Example usage
42
+ from agent_gantry import AgentGantry
43
+
44
+ gantry = AgentGantry()
45
+
46
+ @gantry.register
47
+ async def read_file(filename: str, ctx) -> str:
48
+ """Read a file and remember it."""
49
+ # Store in session memory
50
+ content = read_from_disk(filename)
51
+ ctx.memory["last_file"] = filename
52
+ ctx.memory["file_content"] = content
53
+ return content
54
+
55
+ @gantry.register
56
+ async def summarize_last_file(ctx) -> str:
57
+ """Summarize the last file that was read."""
58
+ # Access from session memory
59
+ filename = ctx.memory.get("last_file")
60
+ content = ctx.memory.get("file_content")
61
+ return f"Summary of {filename}: {generate_summary(content)}"
62
+ ```
63
+
64
+ ## Use Case
65
+ <!-- Describe a real-world scenario where state management would be valuable -->
66
+
67
+ **Example Scenario:**
68
+
69
+
70
+ **Expected Benefit:**
71
+
72
+
73
+ ## Context: Current State Handling
74
+
75
+ Currently, Agent-Gantry is largely stateless:
76
+ - ✅ Tools are pure functions or async callables
77
+ - ✅ Context is passed via LLM conversation history
78
+ - ⚠️ No built-in mechanism for tools to share state
79
+ - ⚠️ Tools must pass state via arguments every time
80
+
81
+ This feature request aims to add **session-scoped state management** for tools.
82
+
83
+ ### Session Memory
84
+ - **Goal**: Tools can persist state within a session without external DBs
85
+ - **Example**: "What file was I reading?" without passing filename every time
86
+ - **Scope**: Per-session, per-user, or per-conversation
87
+ - **Storage**: In-memory by default, pluggable backends (Redis, etc.)
88
+
89
+ ### Use Cases
90
+ 1. **Multi-Step Workflows**: Tool A stores intermediate results for Tool B
91
+ 2. **File Operations**: Remember "current working directory" or "active file"
92
+ 3. **Conversation Context**: Track entities, IDs, or references mentioned in conversation
93
+ 4. **Caching**: Store expensive computation results within a session
94
+ 5. **User Preferences**: Remember user choices within a session
95
+
96
+ ### State API Design Considerations
97
+ ```python
98
+ # Option 1: Context parameter
99
+ @gantry.register
100
+ async def my_tool(arg: str, ctx: ExecutionContext) -> str:
101
+ ctx.memory["key"] = "value"
102
+ return ctx.memory.get("other_key", default="")
103
+
104
+ # Option 2: Session object
105
+ @gantry.register(stateful=True)
106
+ async def my_tool(arg: str, session: Session) -> str:
107
+ await session.set("key", "value")
108
+ return await session.get("other_key")
109
+
110
+ # Option 3: Decorator-based
111
+ @gantry.register
112
+ @gantry.with_memory(scope="session")
113
+ async def my_tool(arg: str, memory: dict) -> str:
114
+ memory["key"] = "value"
115
+ return memory.get("other_key", "")
116
+ ```
117
+
118
+ ## State Scoping
119
+ <!-- Define different scope levels for state -->
120
+ - [ ] **Session-scoped**: State persists for a single agent session
121
+ - [ ] **User-scoped**: State persists across sessions for a user
122
+ - [ ] **Global-scoped**: State shared across all users (with proper isolation)
123
+ - [ ] **Tool-scoped**: Each tool instance has its own state
124
+
125
+ ## Persistence Strategy
126
+ <!-- How should state be persisted? -->
127
+ - [ ] In-memory only (lost on restart)
128
+ - [ ] Redis/Memcached
129
+ - [ ] Database (PostgreSQL, SQLite)
130
+ - [ ] File-based
131
+ - [ ] Pluggable backend
132
+
133
+ ## Thread Safety & Concurrency
134
+ <!-- How should concurrent access be handled? -->
135
+
136
+ ## TTL & Expiration
137
+ <!-- Should state expire automatically? -->
138
+
139
+ ## Additional Context
140
+ <!-- Add any other context, architecture diagrams, or references -->
141
+
142
+ ## Related Issues
143
+ <!-- Link to related issues or PRs -->
144
+
145
+ ---
146
+ **Note**: This feature aligns with the strategic goal of supporting stateful tool patterns and multi-step agent workflows without requiring external state management.