Skip to content

Commit 1abbab8

Browse files
Merge branch 'main' into nikhilc/addMissingFeatures
2 parents 7c4a92f + 2f1f244 commit 1abbab8

22 files changed

Lines changed: 49 additions & 119 deletions

File tree

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# This will eventually be replaced by security group
2-
* @rahuldevikar761 @pontemonti @juliomenendez @nikhilNava
2+
* @microsoft/agent365-approvers

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
- id: check_python_sdk
6868
name: Check Python SDK changes
6969
run: |
70-
if git diff --name-only "${{ steps.git_refs.outputs.base }}" "${{ steps.git_refs.outputs.head }}" -- 'python/**' | grep -q .; then
70+
if git diff --name-only "${{ steps.git_refs.outputs.base }}" "${{ steps.git_refs.outputs.head }}" -- 'libraries/**' 'setup.py' 'pyproject.toml' 'versioning/**' | grep -q .; then
7171
echo "Python SDK changes detected"
7272
echo "changed=true" >> $GITHUB_OUTPUT
7373
else

README.md

Lines changed: 12 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,19 @@
1-
# Kairo Python SDK
1+
# Microsoft Agent 365 Python SDK
22

3-
A Python SDK for Kairo, providing telemetry and monitoring capabilities.
3+
The Microsoft Agent365 SDK provides comprehensive observability, tooling, and runtime capabilities for AI agents and tools built with Python.
44

5-
## Installation
5+
## 📚 Library Documentation
66

7-
```bash
8-
pip install microsoft-kairo
9-
```
7+
Each library includes comprehensive documentation:
108

11-
## Usage
12-
13-
### Basic Configuration
14-
15-
```python
16-
import microsoft_kairo
17-
18-
# Configure Kairo with console output (default)
19-
microsoft_kairo.configure_kairo(
20-
service_name="my-service",
21-
service_namespace="my-namespace",
22-
agent_id="agent-123"
23-
)
24-
```
25-
26-
### Advanced Configuration
27-
28-
```python
29-
import microsoft_kairo
30-
31-
# Configure with Azure Monitor
32-
microsoft_kairo.configure_kairo(
33-
service_name="my-service",
34-
service_namespace="my-namespace",
35-
agent_id="agent-123",
36-
exporter_type="azure_monitor",
37-
exporter_endpoint="InstrumentationKey=your-instrumentation-key"
38-
)
39-
40-
# Configure with OTLP exporter
41-
microsoft_kairo.configure_kairo(
42-
service_name="my-service",
43-
service_namespace="my-namespace",
44-
agent_id="agent-123",
45-
exporter_type="otlp",
46-
exporter_endpoint="http://localhost:4317"
47-
)
48-
```
49-
50-
### Available Exports
51-
52-
- `configure_kairo()`: Main configuration function
53-
- `KairoSpanProcessor`: Custom span processor class
54-
- `KAIRO_AGENT_ID_KEY`: Constant for agent ID attribute key
55-
56-
## Optional Dependencies
57-
58-
- `otlp`: OpenTelemetry OTLP exporter
59-
- `jaeger`: Jaeger exporter
60-
- `azure`: Azure Monitor exporter
61-
- `all`: All optional dependencies
62-
63-
Install with optional dependencies:
64-
65-
```bash
66-
pip install microsoft-kairo[azure]
67-
```
68-
69-
## Building and publishing the package
70-
71-
Build the package with:
72-
73-
```
74-
uv build --wheel
75-
```
76-
77-
which will generate a date-based wheel package in the `dist/` folder. Ex.: `dist\microsoft_kairo-2025.10.7+preview.15276-py3-none-any.whl`.
78-
79-
Then publish it with:
80-
81-
```
82-
uv run twine upload --config-file .\.pypirc -r Agent365 dist/*
83-
```
9+
| Library | Purpose | Documentation |
10+
|---------|---------|---------------|
11+
| **Observability Core** | Core telemetry and tracing | [`/libraries/microsoft-agents-a365-observability-core/README.md`](./libraries/microsoft-agents-a365-observability-core/README.md) |
12+
| **Runtime** | Environment management and utilities | [`/libraries/microsoft-agents-a365-runtime/README.md`](./libraries/microsoft-agents-a365-runtime/README.md) |
13+
| **Tooling** | MCP server configuration and utilities | [`/libraries/microsoft-agents-a365-tooling/README.md`](./libraries/microsoft-agents-a365-tooling/README.md) |
14+
| **OpenAI Extensions** | OpenAI integration and observability | [`/libraries/microsoft-agents-a365-observability-extensions-openai/README.md`](./libraries/microsoft-agents-a365-observability-extensions-openai/README.md) |
15+
| **LangChain Extensions** | LangChain integration and observability | [`/libraries/microsoft-agents-a365-observability-extensions-langchain/README.md`](./libraries/microsoft-agents-a365-observability-extensions-langchain/README.md) |
16+
| **Semantic Kernel Extensions** | Semantic Kernel integration | [`/libraries/microsoft-agents-a365-observability-extensions-semantickernel/README.md`](./libraries/microsoft-agents-a365-observability-extensions-semantickernel/README.md) |
8417

8518
## 📋 **Telemetry**
8619

libraries/microsoft-agents-a365-notifications/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ classifiers = [
2323
"Topic :: Communications",
2424
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
2525
]
26-
license = "MIT"
26+
license = {text = "MIT"}
2727
keywords = ["notifications", "messaging", "agents", "ai", "routing", "sdk"]
2828
dependencies = [
2929
"typing-extensions >= 4.0.0",

libraries/microsoft-agents-a365-observability-core/README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@ ENABLE_A365_OBSERVABILITY_EXPORTER=true # Use Agent365 exporter (otherwise fa
2727
PYTHON_ENVIRONMENT=production # Or development; influences target cluster/category resolution
2828
```
2929

30-
Alias (legacy) environment variables still honored for backward compatibility:
31-
32-
```properties
33-
ENABLE_KAIRO_EXPORTER=true # Legacy name (deprecated)
34-
```
35-
3630
Prefer the canonical `ENABLE_A365_OBSERVABILITY_EXPORTER`. If you omit `ENABLE_OBSERVABILITY` or set it to false, scopes become no‑ops and no spans are recorded.
3731

3832
## Configuration

libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/constants.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
TRACE_CONTENTS_SWITCH = "Azure.Experimental.TraceGenAIMessageContent"
1919
TRACE_CONTENTS_ENVIRONMENT_VARIABLE = "AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"
2020
ENABLE_OBSERVABILITY = "ENABLE_OBSERVABILITY"
21-
ENABLE_KAIRO_EXPORTER = "ENABLE_KAIRO_EXPORTER"
2221
ENABLE_A365_OBSERVABILITY_EXPORTER = "ENABLE_A365_OBSERVABILITY_EXPORTER"
2322
ENABLE_A365_OBSERVABILITY = "ENABLE_A365_OBSERVABILITY"
2423

@@ -103,9 +102,6 @@
103102
GEN_AI_EXECUTION_SOURCE_NAME_KEY = "gen_ai.channel.name"
104103
GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY = "gen_ai.channel.link"
105104

106-
# Legacy constant for backward compatibility
107-
KAIRO_AGENT_ID_KEY = AGENT_ID_KEY
108-
109105
# custom parent id and parent name key
110106
CUSTOM_PARENT_SPAN_ID_KEY = "custom.parent.span.id"
111107
CUSTOM_SPAN_NAME_KEY = "custom.span.name"

libraries/microsoft-agents-a365-observability-core/microsoft_agents_a365/observability/core/exporters/utils.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
from ..constants import (
1111
ENABLE_A365_OBSERVABILITY_EXPORTER,
12-
ENABLE_KAIRO_EXPORTER,
1312
GEN_AI_AGENT_ID_KEY,
1413
TENANT_ID_KEY,
1514
)
@@ -69,6 +68,5 @@ def partition_by_identity(
6968
def is_agent365_exporter_enabled() -> bool:
7069
"""Check if agent365 exporter is enabled."""
7170
# Check environment variable
72-
env_value = os.getenv(ENABLE_KAIRO_EXPORTER, "").lower()
7371
enable_exporter = os.getenv(ENABLE_A365_OBSERVABILITY_EXPORTER, "").lower()
74-
return (env_value or enable_exporter) in ("true", "1", "yes", "on")
72+
return (enable_exporter) in ("true", "1", "yes", "on")

libraries/microsoft-agents-a365-observability-core/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ classifiers = [
2222
"Topic :: Scientific/Engineering :: Artificial Intelligence",
2323
"Topic :: System :: Monitoring",
2424
]
25-
license = "MIT"
25+
license = {text = "MIT"}
2626
keywords = ["observability", "telemetry", "tracing", "opentelemetry", "monitoring", "ai", "agents"]
2727
dependencies = [
2828
"opentelemetry-api >= 1.36.0",
2929
"opentelemetry-sdk >= 1.36.0",
3030
"opentelemetry-exporter-otlp >= 1.36.0",
3131
"pydantic >= 2.0.0",
3232
"typing-extensions >= 4.0.0",
33-
"microsoft-agents-a365-runtime >= 2025.10.16"
33+
"microsoft-agents-a365-runtime >= 0.1.0"
3434
]
3535

3636
[project.urls]

libraries/microsoft-agents-a365-observability-extensions-langchain/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Check out these working examples:
125125

126126
- **Python**: 3.11+
127127
- **Dependencies**:
128-
- `microsoft-agents-a365-observability-core >= 2025.10.16`
128+
- `microsoft-agents-a365-observability-core >= 0.1.0`
129129
- `langchain >= 0.1.0`
130130
- `langchain-core >= 0.1.0`
131131
- `opentelemetry-api >= 1.20.0`

libraries/microsoft-agents-a365-observability-extensions-langchain/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ classifiers = [
2222
"Topic :: Scientific/Engineering :: Artificial Intelligence",
2323
"Topic :: System :: Monitoring",
2424
]
25-
license = "MIT"
25+
license = {text = "MIT"}
2626
keywords = ["observability", "telemetry", "tracing", "opentelemetry", "langchain", "agents", "ai"]
2727
dependencies = [
28-
"microsoft-agents-a365-observability-core >= 2025.10.16",
28+
"microsoft-agents-a365-observability-core >= 0.1.0",
2929
"langchain >= 0.1.0",
3030
"langchain-core >= 0.1.0",
3131
"opentelemetry-api >= 1.36.0",

0 commit comments

Comments
 (0)