Async Streaming Agent
Code
1import asyncio23from kern.agent import Agent, RunOutput4from kern.models.ibm import WatsonX56agent = Agent(7 model=WatsonX(id="ibm/granite-20b-code-instruct"), debug_mode=True, markdown=True8)910# Get the response in a variable11# run_response: Iterator[RunOutputEvent] = agent.run("Share a 2 sentence horror story", stream=True)12# for chunk in run_response:13# print(chunk.content)1415# Print the response in the terminal16asyncio.run(agent.aprint_response("Share a 2 sentence horror story", stream=True))Usage
Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateSet your API key
1export IBM_WATSONX_API_KEY=xxx2export IBM_WATSONX_PROJECT_ID=xxxInstall dependencies
1uv pip install -U ibm-watsonx-ai kern-aiRun Agent
1python cookbook/11_models/ibm/watsonx/async_basic_stream.pyThis example combines asynchronous execution with streaming. It creates an agent with debug_mode=True for additional logging and uses the asynchronous API with streaming to get and display responses as they're generated.