AI 대리자 GitHub 피로감 검출기
중급
이것은자동화 워크플로우로, 13개의 노드를 포함합니다.주로 Set, Code, Github, GmailTool, GithubTool 등의 노드를 사용하며. Groq AI를 사용하여 GitHub 활동을 분석하여 팀 피로를 검출하고 건강 보고서를 생성
사전 요구사항
- •GitHub Personal Access Token
- •Google 계정 및 Gmail API 인증 정보
- •대상 API의 인증 정보가 필요할 수 있음
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "Th6oymAWb3801GGM",
"meta": {
"instanceId": "e93a01df1c52af0d5a5bffda998d2d45d3e65e41e9b02e756e368c852da9b80b"
},
"name": "ai agent github burnout detector",
"tags": [
{
"id": "Tqphal8U1xgK62Ru",
"name": "burnout-detector",
"createdAt": "2025-10-11T15:33:02.359Z",
"updatedAt": "2025-10-11T15:33:02.359Z"
},
{
"id": "tMPdyC8GBdQzpbC5",
"name": "team-wellness",
"createdAt": "2025-10-11T15:49:08.958Z",
"updatedAt": "2025-10-11T15:49:08.958Z"
}
],
"nodes": [
{
"id": "ce1eaca0-50f9-49de-a865-51c602300439",
"name": "PR 가져오기",
"type": "n8n-nodes-base.github",
"position": [
1104,
-176
],
"webhookId": "1a85b560-3afe-49b9-89be-65f0e0b6922d",
"parameters": {
"owner": {
"__rl": true,
"mode": "url",
"value": "=https://github.com/{{ $('Config').first().json.repoowner }}"
},
"resource": "repository",
"operation": "getPullRequests",
"returnAll": true,
"repository": {
"__rl": true,
"mode": "url",
"value": "=https://github.com/{{ $('Config').first().json.repoowner }}/{{ $('Config').first().json.reponame }}"
},
"getRepositoryPullRequestsFilters": {
"state": "all",
"direction": "desc"
}
},
"credentials": {
"githubApi": {
"id": "OWMEIJM53SaS58Kt",
"name": "GitHub account"
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "799820e9-9d39-4300-9c90-31a35c953e1c",
"name": "설정",
"type": "n8n-nodes-base.set",
"position": [
592,
-176
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "{\n \"repoowner\": \"suarifymy\",\n \"reponame\": \"adk-samples\",\n \"period\":7,\n \"emailreport\": \"aiix.space.noreply@gmail.com\"\n}\n"
},
"typeVersion": 3.3
},
{
"id": "15e831a2-2321-488f-856a-875c3389f96e",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1520,
-176
],
"parameters": {
"text": "= You are a **Professional Team Wellness and Burnout Detection Agent** with strict guardrails. \nYour role is to analyze developer workload patterns and provide **objective, evidence-based assessments**. \n\n### Core Rules\n1. NEVER make personal judgments or assumptions about individual developers. \n2. ONLY analyze observable patterns in code activity data. \n3. ALWAYS provide evidence-based reasoning for all assessments. \n4. NEVER suggest disciplinary actions or performance reviews. \n5. FOCUS on systemic issues and team-level recommendations. \n6. ALWAYS include confidence scores and data limitations. \n7. RESPECT privacy and confidentiality of team members. \n8. PROVIDE actionable, constructive recommendations only. \n9. AVOID alarmist language—use a professional, measured tone. \n10. ALWAYS structure responses with clear sections and evidence. \n\n### Tools Available\n1. **Update GitHub Issue** → Create or update issues for tracking team wellness concerns. \n2. **Email Tool** → Send urgent notifications to team leads. \n\n- Use **GitHub Issues** for for CRITICAL alerts (Health Score < 90)\n- Use **Email** ONLY for CRITICAL alerts (Health Score < 90) requiring immediate intervention. \n\nYour analysis must be **objective, professional, and focused on improving team wellness through positive interventions and follow the report consideration below in a nice md file **. Always update github issues tool.\n\n\noutput report considerations.Please do redaction on any name.\n \noutput html report examples\n```\n# 📊 Team Health Report\n\n\n👩💻 Team Activity Snapshot\n📊 Overall Summary\n- Total commits: 6\n- Pull requests opened: 1\n- Workflows run: 1\n- Late‑night commits: 3\n- Weekend commits: 2\n- Failed workflows: 0 ✅\nThe team is keeping activity light this cycle, with a few late‑night pushes and some weekend work showing up.\n\n👥 Developer Activity Breakdown\n- sean\n- Commits: 2\n- Late‑night: 0\n- Weekend: 2 🌙 (notable weekend activity)\n- Ara SAMAD\n- Commits: 3\n- Late‑night: 3 🌙🌙🌙 (all commits after hours)\n- Weekend: 0\n- wzss088\n- Commits: 1\n- Late‑night: 0\n- Weekend: 0\n\n\n\n## 📝 Summary\nOverall, the team is maintaining a healthy delivery pace, but there are emerging signs of workload imbalance due to increased after-hours activity.\n\n---\n\n## 🔢 Health Score\n- **Value:** 68 / 100 \n- **Confidence:** 87% \n- **Limitations:** Based solely on commit and PR activity; meeting load and non-code tasks not captured.\n\n---\n\n## 🔍 Observed Patterns\n- ⏰ **After-hours activity** \n - 29% of commits occurred between 10pm–1am (baseline: 12%). \n - Confidence: 0.90 \n\n- 📈 **Weekend workload** \n - Weekend commits increased by 35% compared to the previous month. \n - Confidence: 0.82 \n\n- 🤝 **Collaboration bottleneck** \n - PR review turnaround time increased from 6h → 18h. \n - Confidence: 0.78 \n\n---\n\n## ⚠️ Systemic Risks\n- Sustained after-hours work may indicate creeping burnout risk. \n - Evidence: 3 consecutive weeks of elevated late-night commits. \n - Confidence: 0.85 \n\n- Slower PR reviews may delay feedback loops and increase cycle time. \n - Evidence: Median cycle time rose from 2.1 days → 3.4 days. \n - Confidence: 0.80 \n\n---\n\n## ✅ Recommendations\n- 📌 Facilitate a team discussion on workload distribution and sprint commitments. *(Priority: Medium)* \n- 🔔 Introduce automated nudges discouraging late-night commits. *(Priority: Low)* \n- 🛠️ Rotate PR review responsibilities or adopt lightweight review guidelines. *(Priority: High)* \n\n--- \n```\nPLease use the tool to send report. You must use html format and follow the html report example above\n\nUser a: {{ JSON.stringify( $('Analyze Patterns Developer').first().json )}}",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "ce574d0d-76e2-4c6c-b1ab-850aa544e8cc",
"name": "Groq 채팅 모델 보고서",
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"position": [
1376,
160
],
"parameters": {
"model": "openai/gpt-oss-120b",
"options": {}
},
"credentials": {
"groqApi": {
"id": "myslm11JTfGc28Kr",
"name": "Groq account"
}
},
"typeVersion": 1
},
{
"id": "76fd974d-f101-45d0-afcf-4a4ed9c6b3b8",
"name": "Gmail에 메시지 보내기",
"type": "n8n-nodes-base.gmailTool",
"position": [
1744,
160
],
"webhookId": "13fd9a8a-dcd7-4602-9f77-c22edc2dbcab",
"parameters": {
"sendTo": "={{ $('Config').first().json.emailreport }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {
"appendAttribution": false
},
"subject": " 📊 Team Health and Wellness Report",
"descriptionType": "manual",
"toolDescription": "Update reports to stakeholder via email"
},
"credentials": {
"gmailOAuth2": {
"id": "1mQ36iw0MWrsb0cL",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "df7238d2-665d-4da6-aa96-5f430ed04d14",
"name": "작업 없음, 아무 동작 안 함",
"type": "n8n-nodes-base.noOp",
"position": [
1872,
-176
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e71ac601-0698-49f4-a220-e1c3d2fa60ba",
"name": "개발자 패턴 분석",
"type": "n8n-nodes-base.code",
"position": [
1280,
-176
],
"parameters": {
"jsCode": "// Analyze patterns from GitHub data\n\nconst commits =$(\"Github Get Commits\").all();\nconst pullRequests = $('Get Prs').all();\nconst workflows = $(\"Github Get Workflows\").all();\nconst analysisPeriod =$('Config').first().json.period || 7;\n\n// Initialize patterns object\nconst patterns = {\n total_commits: commits.length,\n total_prs: pullRequests.length,\n total_workflows: workflows.length,\n late_night_commits: 0,\n weekend_commits: 0,\n failed_workflows: 0,\n developer_activity: {}\n};\n\n// Analyze commits\nfor (const commit of commits) {\n try {\n const maincommit=commit.json.commit\n const commitTime = new Date(maincommit.author.date);\n const hour = commitTime.getHours();\n const weekday = commitTime.getDay();\n const author = maincommit.author.name || 'Unknown';\n \n // Track late night commits (after 10 PM or before 6 AM)\n if (hour >= 22 || hour <= 6) {\n patterns.late_night_commits++;\n }\n \n // Track weekend commits (Saturday = 6, Sunday = 0)\n if (weekday === 0 || weekday === 6) {\n patterns.weekend_commits++;\n }\n \n // Track per-developer activity\n if (!patterns.developer_activity[author]) {\n patterns.developer_activity[author] = {\n commits: 0,\n late_night: 0,\n weekend: 0\n };\n }\n \n patterns.developer_activity[author].commits++;\n if (hour >= 22 || hour <= 6) {\n patterns.developer_activity[author].late_night++;\n }\n if (weekday === 0 || weekday === 6) {\n patterns.developer_activity[author].weekend++;\n }\n } catch (e) {\n console.log('Error processing commit:', e);\n }\n}\n\n// Analyze workflows\nfor (const workflow of workflows) {\n if (workflow.conclusion === 'failure') {\n patterns.failed_workflows++;\n }\n}\n\n// Calculate rates\nconst failureRate = (patterns.failed_workflows / Math.max(patterns.total_workflows, 1)) * 100;\nconst lateNightRate = (patterns.late_night_commits / Math.max(patterns.total_commits, 1)) * 100;\nconst weekendRate = (patterns.weekend_commits / Math.max(patterns.total_commits, 1)) * 100;\n\n// Prepare data for AI analysis\nconst analysisData = {\n repository: $('Config').first().json.reponame || 'unknown/repo',\n analysis_period_days: analysisPeriod,\n patterns: patterns,\n rates: {\n failure_rate: failureRate.toFixed(1),\n late_night_rate: lateNightRate.toFixed(1),\n weekend_rate: weekendRate.toFixed(1)\n },\n raw_data: {\n // commits: commits,\n // pull_requests: pullRequests,\n // workflows: workflows\n }\n};\n\nreturn [{\n json: analysisData\n}];"
},
"typeVersion": 2
},
{
"id": "0ce251fc-69de-4b91-ae36-bf1f92e8ed59",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-256
],
"parameters": {
"color": 4,
"width": 1952,
"height": 624,
"content": " "
},
"typeVersion": 1
},
{
"id": "3f33cf1e-7011-4a0e-b550-58be70d6ee16",
"name": "스티커 노트15",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
-256
],
"parameters": {
"color": 4,
"width": 580,
"height": 624,
"content": "# Team-Wellness : AI Burnout Detector Agent [devex]\n\n## Demo \n* [github action code alternative ]( https://github.com/suarifymy/adk-samples/blob/main/.github/workflows/devex-ai-burnout-detector.yml)\n* [sample report ](https://github.com/suarifymy/adk-samples/issues/1/)\n \n\n## How it works \nPeriodically, there will be a job to fetch GitHub Commits , PRs, Active Flows. Then the llm ai agent analyzes total comits, late night commits, weekend commmits , failed workflow and developer's activity and work intensity patterns. Lastly, creates a github issues and sends an email\n\n \n## Setup\n - Follow setup link [n8n-github-account-setup](\nhttps://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.github/) , [n8n-groq-setup](https://docs.n8n.io/integrations/builtin/credentials/groq/) ,[n8n-gmail-setup](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/) \n- Change the `config` node"
},
"typeVersion": 1
},
{
"id": "5be57b6b-349f-48a3-aa10-5552799a8ac2",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
352,
-176
],
"parameters": {
"rule": {
"interval": [
{
"daysInterval": 7
}
]
}
},
"typeVersion": 1.2
},
{
"id": "4f6b2323-c3d1-49ce-9a37-616bccf907cc",
"name": "Github 커밋 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
944,
-176
],
"parameters": {
"url": "=https://api.github.com/repos/{{ $('Config').first().json.repoowner }}/{{ $('Config').first().json.reponame }}/commits",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "created",
"value": "={{ $now.minus({ days: $json.period || 7 }).toISO() }}..*"
}
]
},
"nodeCredentialType": "githubApi"
},
"credentials": {
"githubApi": {
"id": "OWMEIJM53SaS58Kt",
"name": "GitHub account"
}
},
"typeVersion": 4.2
},
{
"id": "fb1996f6-35dd-4567-89fc-29c77716c57e",
"name": "Github 워크플로우 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
768,
-176
],
"parameters": {
"url": "=https://api.github.com/repos/{{ $json.repoowner}}/{{ $json.reponame}}/actions/runs",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "created",
"value": "={{ $now.minus({ days: $json.period || 7 }).toISO() }}..*"
},
{
"name": "per_page",
"value": "50"
}
]
},
"nodeCredentialType": "githubApi"
},
"credentials": {
"githubApi": {
"id": "OWMEIJM53SaS58Kt",
"name": "GitHub account"
}
},
"typeVersion": 4.1
},
{
"id": "8deb394b-2654-4202-bff2-08eb40bd87a2",
"name": "Github 이슈 업데이트",
"type": "n8n-nodes-base.githubTool",
"position": [
1568,
160
],
"webhookId": "6e6411fe-1caa-4714-95a6-1a61bfd2f006",
"parameters": {
"body": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Body', ``, 'string') }}",
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.repoowner }}"
},
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"labels": [],
"assignees": [],
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.reponame }}"
},
"descriptionType": "manual",
"toolDescription": "#Update Github Issue\nCreate an issue in GitHub on the team wellness"
},
"credentials": {
"githubApi": {
"id": "OWMEIJM53SaS58Kt",
"name": "GitHub account"
}
},
"typeVersion": 1.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "420ee020-9770-4587-ada3-664ab22396b1",
"connections": {
"799820e9-9d39-4300-9c90-31a35c953e1c": {
"main": [
[
{
"node": "fb1996f6-35dd-4567-89fc-29c77716c57e",
"type": "main",
"index": 0
}
]
]
},
"ce1eaca0-50f9-49de-a865-51c602300439": {
"main": [
[
{
"node": "e71ac601-0698-49f4-a220-e1c3d2fa60ba",
"type": "main",
"index": 0
}
]
]
},
"15e831a2-2321-488f-856a-875c3389f96e": {
"main": [
[
{
"node": "df7238d2-665d-4da6-aa96-5f430ed04d14",
"type": "main",
"index": 0
}
]
]
},
"5be57b6b-349f-48a3-aa10-5552799a8ac2": {
"main": [
[
{
"node": "799820e9-9d39-4300-9c90-31a35c953e1c",
"type": "main",
"index": 0
}
]
]
},
"4f6b2323-c3d1-49ce-9a37-616bccf907cc": {
"main": [
[
{
"node": "ce1eaca0-50f9-49de-a865-51c602300439",
"type": "main",
"index": 0
}
]
]
},
"8deb394b-2654-4202-bff2-08eb40bd87a2": {
"ai_tool": [
[
{
"node": "15e831a2-2321-488f-856a-875c3389f96e",
"type": "ai_tool",
"index": 0
}
]
]
},
"fb1996f6-35dd-4567-89fc-29c77716c57e": {
"main": [
[
{
"node": "4f6b2323-c3d1-49ce-9a37-616bccf907cc",
"type": "main",
"index": 0
}
]
]
},
"ce574d0d-76e2-4c6c-b1ab-850aa544e8cc": {
"ai_languageModel": [
[
{
"node": "15e831a2-2321-488f-856a-875c3389f96e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"76fd974d-f101-45d0-afcf-4a4ed9c6b3b8": {
"ai_tool": [
[
{
"node": "15e831a2-2321-488f-856a-875c3389f96e",
"type": "ai_tool",
"index": 0
}
]
]
},
"e71ac601-0698-49f4-a220-e1c3d2fa60ba": {
"main": [
[
{
"node": "15e831a2-2321-488f-856a-875c3389f96e",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Perplexity와 GPT를 사용하여 WordPress에 SEO 최적화 블로그 생성, 키워드와 미디어 포함
Perplexity와 GPT를 사용하여 WordPress에 SEO 최적화 블로그를 만들어 키워드와 미디어 포함
Set
Code
Limit
+
Set
Code
Limit
124 노드Paul
콘텐츠 제작
특정 도구를 사용하여 WordPress에 SEO 최적화 블로그 생성
특정 도구를 사용하여 WordPress에 SEO 최적화 블로그 생성
Set
Code
Limit
+
Set
Code
Limit
124 노드Paul
콘텐츠 제작
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
반려동물 가게 4
🐶 펫 샵 예약 AI 대리자
If
Set
Code
+
If
Set
Code
187 노드Bruno Dias
인공지능
dian-memo_03 내보내기
AI 음성 및 텍스트 메모 - LINE 메시지, Supabase 벡터 데이터베이스 및 Gmail 통합
If
Set
Code
+
If
Set
Code
30 노드kote2
AI RAG
AI 기반 지식 어시스턴트
Google Sheets, OpenAI 및 Supabase 벡터 검색을 활용한 AI 기반 지식 어시스턴트
Set
Code
Gmail
+
Set
Code
Gmail
14 노드Akhil Varma Gadiraju
엔지니어링
워크플로우 정보
난이도
중급
노드 수13
카테고리-
노드 유형11
저자
Sean Lon
@seanlonI embarked on my coding journey at the age of 13, driven by a deep passion for AI, automation, and engineering. Over the years, I've taken on various roles including Developer, Engineer, Senior Engineer, Architect, Principal Engineer, Freelance Consultant, and Head of Engineering.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유