Files
2026-05-26 13:53:26 +00:00

61 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Streammode 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
```bash
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_agent` and a single tool.
* `agent.stream()` returns an iterator that yields tuples `(chunk_type,
chunk_data)` where `chunk_type` can 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.