## Description
`graphrag-lexical-graph` depends on `llama-index-embeddings-bedrock` → `aioboto3` → `aiobotocore` which pins `botocore` to narrow micro-version
ranges (e.g., `>=1.38.23,<1.38.28`). This conflicts with applications using `bedrock-agentcore>=1.9.1` which requires `botocore>=1.43.0`.
This makes it impossible to install `graphrag-lexical-graph` in the same Python environment as `bedrock-agentcore` using standard dependency
resolution.
## Dependency Chain
graphrag-lexical-graph==3.18.3
└── llama-index-embeddings-bedrock==0.8.0
└── aioboto3
└── aiobotocore==2.25.1
└── botocore>=1.38.23,<1.38.28 ← CONFLICTS
bedrock-agentcore==1.9.1
└── botocore>=1.43.0 ← REQUIRES NEWER
## Error Message (uv resolver)
graphrag-lexical-graph==3.18.3 depends on one of:
botocore>=1.38.23,<1.38.28
botocore>=1.39.9,<1.39.12
botocore>=1.40.15,<1.40.19
botocore>=1.40.37,<1.40.62
And because bedrock-agentcore==1.9.1 depends on botocore>=1.43.0,
graphrag-lexical-graph==3.18.3 and bedrock-agentcore are incompatible.
## Use Case
Integrating graphrag-toolkit retrieval into an application that uses Bedrock AgentCore Runtime (e.g., a serve layer that hosts both the AgentCore app
and the graphrag retriever in the same process).
## Workaround
Install with lowest resolution:
```bash
pip install --resolution lowest-direct graphrag-lexical-graph==3.18.3
Or with uv:
uv pip install graphrag-lexical-graph==3.18.3 --resolution lowest-direct
This picks compatible versions of aiobotocore that work with both packages.
Suggested Fix
Consider making llama-index-embeddings-bedrock an optional dependency (extras) since not all users need it — users who already have their own
embedding implementation (direct Bedrock calls) don't need the llama-index embedding wrapper and its transitive dependency chain.
Environment
- graphrag-lexical-graph: 3.18.3
- bedrock-agentcore: 1.9.1
- Python: 3.12
- Resolver: uv 0.8.13
Body: