diff --git a/docs/docs/cloud/how-tos/configurable_headers.md b/docs/docs/cloud/how-tos/configurable_headers.md index 5338d858b..7a61dff0e 100644 --- a/docs/docs/cloud/how-tos/configurable_headers.md +++ b/docs/docs/cloud/how-tos/configurable_headers.md @@ -17,8 +17,58 @@ Here's how to customize the included and excluded headers: } ``` + The `include` and `exclude` lists accept exact header names or patterns using `*` to match any number of characters. For your security, no other regex patterns are supported. +## Using within your graph + +You can access the included headers in your graph using the `config` argument of any node. + +```python +def my_node(state, config): + organization_id = config["configurable"].get("x-organization-id") + ... +``` + +Or by fetching from context (useful in tools and or within other nested functions). + +```python +from langgraph.config import get_config + +def search_everything(query: str): + organization_id = get_config()["configurable"].get("x-organization-id") + ... +``` + + +You can even use this to dynamically compile the graph. + +```python +# my_graph.py. +import contextlib + +@contextlib.asynccontextmanager +async def generate_agent(config): + organization_id = config["configurable"].get("x-organization-id") + if organization_id == "org1": + graph = ... + yield graph + else: + graph = ... + yield graph + +``` + +```json +{ + "graphs": {"agent": "my_grph.py:generate_agent"} +} +``` + +For more examples on how to use runtime configuration, check out the [configuration how-to](../../how-tos/configuration.ipynb). + +### Opt-out of configurable headers + If you'd like to opt-out of configurable headers, you can simply set a wildcard pattern in the `exclude` list: ```json