feat: initial brojs-agent implementation

AI-агент для автоматического выполнения заданий курса KFU-26-1.
Стек: deepagents + LangGraph + LangChain + OpenRouter (gpt-oss-20b:free).

- Главный агент-оркестратор с субагентами
- homework_direct_agent и rework_agent для сдачи/пересдачи
- Gitea REST API инструменты (git.brojs.ru/glevelll)
- BroJS Journal MCP клиент (platform.brojs.ru)
- LangGraph pipeline: последовательное выполнение всех заданий
- Middleware: SanitizeToolCalls + ValidateJournalWorkflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 23:08:14 +03:00
commit c95d7375cc
23 changed files with 1663 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
"""Спецификации субагентов (без инструментов — добавляются в agent.py)."""
from src.agent.llm import llm
from src.agent.prompts import (
homework_doing_instructions,
journal_tasks_submissions_instructions,
research_instructions,
)
subagent_specs_without_tools: list[dict] = [
{
"name": "web_search",
"description": (
"Ищет информацию в интернете, находит URL и открывает страницы, "
"чтобы извлекать факты только из реально прочитанного контента"
),
"model": llm,
"system_prompt": research_instructions,
},
{
"name": "homework_doing",
"description": (
"Выполняет домашние задания: читает условие, пишет код, "
"создаёт репозиторий на git.brojs.ru, тестирует решение и сдаёт на проверку"
),
"model": llm,
"system_prompt": homework_doing_instructions,
},
{
"name": "journal_bh_tasks_submissions",
"description": (
"BroJS Journal: задания и сдачи — список заданий, чтение задания, "
"проверка статуса, установка ответа, отправка на проверку"
),
"model": llm,
"system_prompt": journal_tasks_submissions_instructions,
},
]