Implement LangGraph reflection agent with structured critic, rewrite loop, max_rounds cap, and CLI demo logging.: update README.md
This commit is contained in:
@@ -1,15 +1,44 @@
|
|||||||
# LangGraph Reflection Agent
|
# LangGraph Reflection Agent
|
||||||
|
|
||||||
This repository contains a simple implementation of a LangGraph agent that writes a short answer to a question, critiques it, and rewrites if necessary.
|
Небольшой CLI-агент на `LangGraph`, который:
|
||||||
|
|
||||||
## Requirements
|
1. пишет первичный ответ на вопрос;
|
||||||
|
2. отдельным узлом `reflect` критикует его по полноте, конкретике и отсутствию воды;
|
||||||
|
3. при `needs_revision` запускает `rewrite`;
|
||||||
|
4. завершает работу после `ok` или по достижении `max_rounds`.
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install langgraph langchain-openai
|
pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
Для запуска нужен OpenAI-совместимый API:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export OPENAI_API_KEY=...
|
||||||
|
export OPENAI_BASE_URL=...
|
||||||
|
export OPENAI_MODEL=...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Запуск
|
||||||
|
|
||||||
|
Запуск с вопросом из задания:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python main.py "Объясни студенту разницу между tool и resource в MCP"
|
python main.py "Объясни студенту разницу между tool и resource в MCP"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Запуск без аргументов использует тот же вопрос по умолчанию:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python main.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Что реализовано
|
||||||
|
|
||||||
|
- `ReflectState(TypedDict)` с полями `question`, `draft`, `critique`, `verdict`, `round`, `max_rounds`
|
||||||
|
- узлы `draft_answer`, `reflect`, `rewrite`
|
||||||
|
- цикл `rewrite -> reflect` при `needs_revision`
|
||||||
|
- ограничение числа доработок через `max_rounds`
|
||||||
|
- CLI-демо с финальным ответом, вердиктом критика и количеством раундов
|
||||||
|
|||||||
Reference in New Issue
Block a user