new-qwen/README.md

2.0 KiB
Raw Blame History

new-qwen

Клиент-серверная замена локального агента qwen-code.

  • serv отвечает за OAuth, сессии, работу с Qwen LLM и вызов инструментов.
  • bot отвечает за Telegram и пересылку сообщений на сервер.

Проект написан на Python stdlib, чтобы не зависеть от Node/npm в текущем окружении.

Архитектура

Telegram User
   |
   v
bot/app.py
   |
   v
serv/app.py
   |
   v
Qwen OAuth + OpenAI-compatible endpoint

Что уже реализовано

  • Qwen OAuth Device Flow, совместимый с qwen-code
  • хранение токенов в ~/.qwen/oauth_creds.json
  • HTTP API сервера
  • агентный цикл с tool calling
  • базовые инструменты: list_files, read_file, write_file, exec_command
  • Telegram polling без внешних библиотек
  • JSON-хранилище сессий

Ограничения текущей реализации

  • это упрощённая серверная архитектура, а не побайтный порт всего qwen-code
  • пока нет MCP, skill system, subagents и rich-streaming UI
  • Telegram-бот работает через long polling

Переменные окружения

Сервер:

cp serv/.env.example serv/.env

Бот:

cp bot/.env.example bot/.env

Запуск

Сервер:

python3 serv/app.py

Бот:

python3 bot/app.py

Авторизация Qwen OAuth

  1. Отправить боту /auth
  2. Открыть ссылку подтверждения
  3. После завершения авторизации писать обычные сообщения боту

Либо можно вызвать API сервера напрямую:

curl -X POST http://127.0.0.1:8080/api/v1/auth/device/start