1.5 KiB
1.5 KiB
Stream‑mode LangChain Agent
What this project does
This repository contains a minimal example that demonstrates how to replace the
invoke() call of a LangChain agent with the streaming interface stream(). The
output is printed token by token so that the user can see the agent “think” in
real time.
The script uses the BroJS LLM provider and a tiny mock tool called
get_price to illustrate how tools are called while streaming.
File structure
├── main.py # Entry point – shows three example invocations
├── requirements.txt # Dependencies (no exact versions)
└── README.md # This file
Installation
pip install -r requirements.txt
export JOURNAL_MCP_PAT=YOUR_BROJS_TOKEN # required for the LLM
python main.py
Example output
Running python main.py produces something like:
=== Example 1 ===
--- Step 0 ---
Paris is the capital of France.
--- End ---
=== Example 2 ===
--- Step 0 ---
The price of milk in Kazan is 89 rubles.
--- End ---
=== Example 3 ===
--- Step 0 ---
The price of bread in Kazan is 45 rubles.
The price of coffee in Moscow is 120 rubles.
--- End ---
How it works
- The agent is created with
create_agentand a single tool. agent.stream()returns an iterator that yields tuples(chunk_type, chunk_data)wherechunk_typecan be'messages'or'updates'.- Tokens are printed as they arrive, and step changes are highlighted with a separator line.
Feel free to extend the tool set or modify the prompt – the streaming logic remains unchanged.