-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
66 lines (54 loc) · 3.15 KB
/
Copy pathmain.py
File metadata and controls
66 lines (54 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
from crewai import Agent, Crew, LLM, Process, Task
from dotenv import load_dotenv
from tools.coding_tool import LangGraphCodingTool
from tools.knowledge_reader import ReadKnowledgeTool
load_dotenv()
architect_llm = LLM(
model="deepseek/deepseek-v4-flash",
api_key=os.getenv("ROUTERAI_API_KEY"),
base_url="https://api.routerai.com/v1",
)
knowledge_tool = ReadKnowledgeTool()
coding_tool = LangGraphCodingTool()
def main():
architect = Agent(
role="System Architect & Tech Lead",
goal=(
"Проектировать архитектуру приложения, сверяться с документацией "
"проекта и управлять написанием кода через Autonomous_NodeJS_Coder."
),
backstory=(
"Опытный Tech Lead. Перед началом работы ты должен обязательно прочитать "
"правила из knowledge/style-guide.md и спецификации из knowledge/api-contracts.md. "
"Используй инструмент ReadProjectDocs для чтения файлов. "
"После изучения документации декомпозируй задачу и передай детальное ТЗ "
"в Autonomous_NodeJS_Coder. Если задача требует валидации бизнес-логики, "
"обязательно приложи тестовый скрипт (параметр test_code)."
),
verbose=True,
allow_delegation=False,
llm=architect_llm,
tools=[knowledge_tool, coding_tool],
)
# ═══════════════════════════════════════════════════════════════
# ПРИМЕР ЗАДАЧИ — замените на свою
# ═══════════════════════════════════════════════════════════════
task = Task(
description=(
"Реализовать webhook-эндпоинт на Express.js для приёма входящих "
"сообщений. Сверься с api-contracts.md, чтобы понять, какой формат "
"JSON мы ожидаем на входе, и с style-guide.md для правильного "
"оформления контроллеров. Напиши ТЗ и заставь кодера реализовать "
"и протестировать скрипт."
),
expected_output="Рабочий файл server.js (или контроллер), прошедший валидацию кодером.",
agent=architect,
)
crew = Crew(agents=[architect], tasks=[task], process=Process.sequential)
print("=== ЗАПУСК ИИ-РАЗРАБОТЧИКОВ ===")
result = crew.kickoff()
print("\n=== ИТОГОВЫЙ РЕЗУЛЬТАТ ===")
print(result)
if __name__ == "__main__":
main()