An AI-powered development team that automates the Software Development Life Cycle (SDLC) β from reading a Jira ticket all the way to merging a tested, human-approved Pull Request and deploying to production.
Jira Ticket
β
βΌ
βββββββββββββββ βββββββββββββββ ββββββββββββββββββββ
β PM Agent βββββΆ β Coder Agent βββββΆ β DevOps Agent β
β β β β β (staging deploy) β
β - Δα»c Jira β β - ViαΊΏt code β β - TαΊ‘o branch β
β - LαΊp kαΊΏ β β - Review β β - Commit & PR β
β hoαΊ‘ch β β code β β - Deploy staging β
βββββββββββββββ βββββββββββββββ ββββββββββββββββββββ
β
βββββββββββββββββββββββββββββ
βΌ
ββββββββββββββββββββ
β Tester Agent β
β β
β - ChαΊ‘y test suiteβ
β - Check endpointsβ
β - Pass / Fail β
ββββββββββββββββββββ
β
ββββββββββββββ΄βββββββββββββ
β Fail β Pass
βΌ βΌ
Coder Agent βββββββββββββββββ
(rework) β Human Review β
β β
β Approve β β
β Production π β
βββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β DevOps Agent β
β (production) β
β - Merge PR β
β - Jira β Done β
ββββββββββββββββββββ
| ThΓ nh phαΊ§n | CΓ΄ng nghα» | MΓ΄ tαΊ£ |
|---|---|---|
| Orchestration | LangGraph.js | Δiα»u phα»i luα»ng giα»―a cΓ‘c agent |
| LLM | Claude Sonnet (Anthropic) | NΓ£o xα» lΓ½ cα»§a tα»«ng agent |
| MCP Servers | Model Context Protocol | "Tay" cα»§a agent β gα»i Jira, GitHub, Filesystem |
| Dashboard | Next.js 15 + React 19 | Giao diα»n theo dΓ΅i realtime qua SSE |
| Styling | Tailwind CSS | Dark GitHub-style theme |
| Validation | Zod | Schema cho env vars vΓ MCP tools |
Todo β Ready for Dev β In Progress β Ready for Testing β Testing β Ready for Release β Done
(hoαΊ·c Canceled nαΊΏu bα» tα»« chα»i)
- Node.js >= 22
- pnpm >= 10 (
npm install -g pnpm) - TΓ i khoαΊ£n Anthropic (Claude API key)
- TΓ i khoαΊ£n Jira Cloud vα»i API token
- TΓ i khoαΊ£n GitHub vα»i Personal Access Token (scopes:
repo,workflow)
git clone https://github.com/<your-org>/tedu-ai-devteam.git
cd tedu-ai-devteampnpm installcp .env.example .envMα» .env vΓ Δiα»n thΓ΄ng tin:
# LLM
ANTHROPIC_API_KEY=sk-ant-...
# Jira
JIRA_BASE_URL=https://your-company.atlassian.net
JIRA_EMAIL=your@email.com
JIRA_API_TOKEN=your_jira_api_token
JIRA_PROJECT_KEY=TEDU
# GitHub
GITHUB_TOKEN=ghp_...
GITHUB_OWNER=your_github_username_or_org
GITHUB_REPO=your_repository_name
GITHUB_BASE_BRANCH=mainLαΊ₯y Jira API Token: https://id.atlassian.com/manage-profile/security/api-tokens
LαΊ₯y GitHub PAT: Settings β Developer settings β Personal access tokens β Tokens (classic)
Mα» 2 terminal chαΊ‘y song song:
Terminal 1 β Next.js Dashboard:
pnpm devTruy cαΊp: http://localhost:3000
Terminal 2 β Agent package (nαΊΏu test standalone):
pnpm agent:startpnpm build-
NhαΊp Jira Ticket ID (vΓ dα»₯:
TEDU-42) vΓ o Γ΄ input -
NhαΊ₯n Run Agent
-
Theo dΓ΅i trαΊ‘ng thΓ‘i realtime:
- π Development Plan β kαΊΏ hoαΊ‘ch tα»« PM Agent
- π» Code Changes β danh sΓ‘ch file Δược thay Δα»i
- β /β Test Results β kαΊΏt quαΊ£ tα»« Tester Agent (coverage, failed tests, staging URL)
- βΈ Approve Production Deploy β panel xuαΊ₯t hiα»n khi test pass, chα» phΓͺ duyα»t
-
Sau khi review, nhαΊ₯n:
- β Approve & Deploy to Production β merge PR, deploy production, ΔΓ³ng ticket
- β Reject (Rework) β trαΊ£ vα» Coder Agent Δα» sα»a
tedu-ai-devteam/
βββ apps/
β βββ web/ # Next.js 15 Dashboard
β βββ src/
β βββ app/
β β βββ api/agent/ # SSE streaming endpoint
β β β βββ route.ts
β β β βββ resume/route.ts
β β βββ layout.tsx
β β βββ page.tsx
β βββ components/
β β βββ AgentDashboard.tsx
β β βββ StatusBadge.tsx
β β βββ LogStream.tsx
β βββ lib/
β βββ useAgentStream.ts
β
βββ packages/
β βββ agents/ # LangGraph orchestration
β β βββ src/
β β βββ graph.ts # StateGraph definition
β β βββ state.ts # AgentState + types
β β βββ env.ts # Zod-validated env vars
β β βββ index.ts # Public exports
β β βββ nodes/
β β β βββ pm-agent.ts # Product Manager Agent
β β β βββ coder-agent.ts # Coder Agent
β β β βββ devops-agent.ts # DevOps Agent (staging + production)
β β β βββ tester-agent.ts # Tester Agent (QA)
β β β βββ human-review.ts # Human-in-the-loop interrupt
β β βββ edges/
β β β βββ routing.ts # Conditional routing functions
β β βββ tools/
β β βββ mcp-client.ts # MCP client factory
β β βββ invoke-with-tools.ts # ReAct loop helper
β β
β βββ mcp-servers/ # MCP tool servers
β βββ src/
β βββ jira-server.ts # Jira API tools
β βββ github-server.ts # GitHub API tools
β βββ filesystem-server.ts # Local filesystem tools
β
βββ .env.example
βββ .gitignore
βββ package.json
βββ pnpm-workspace.yaml
βββ tsconfig.json
| Tool | MΓ΄ tαΊ£ |
|---|---|
get_ticket_details |
LαΊ₯y thΓ΄ng tin chi tiαΊΏt ticket |
update_ticket_status |
Chuyα»n trαΊ‘ng thΓ‘i ticket (transition) |
add_comment |
ThΓͺm comment vΓ o ticket |
| Tool | MΓ΄ tαΊ£ |
|---|---|
create_branch |
TαΊ‘o branch mα»i tα»« base |
commit_files |
Commit nhiα»u file cΓΉng lΓΊc |
create_pull_request |
TαΊ‘o PR vα»i title/body |
deploy_to_staging |
Trigger workflow deploy staging |
run_tests |
Trigger test pipeline |
check_endpoints |
Smoke test HTTP endpoints |
merge_pull_request |
Merge PR ΔΓ£ Δược approve |
| Tool | MΓ΄ tαΊ£ |
|---|---|
read_file |
Δα»c file (cΓ³ path-traversal guard) |
write_file |
Ghi/tαΊ‘o file |
list_directory |
Liα»t kΓͺ thΖ° mα»₯c |
delete_file |
XoΓ‘ file |
- Runtime: Node.js 22+ (ESM only)
- Language: TypeScript 5 (strict mode)
- Orchestration:
@langchain/langgraph^1.2 - LLM Client:
@langchain/anthropic(Claude Sonnet 4.5) - MCP SDK:
@modelcontextprotocol/sdk^1.27 - Validation:
zod^4 - Frontend: Next.js 15, React 19, Tailwind CSS 3, Shadcn UI
- Package Manager: pnpm 10 (monorepo)
Cannot find module '@tedu/agents'
β ChαΊ‘y pnpm install tα»« root Δα» link workspace packages.
JIRA_BASE_URL is required
β File .env chΖ°a Δược tαΊ‘o hoαΊ·c thiαΊΏu biαΊΏn. Kiα»m tra lαΊ‘i .env.example.
Agent dα»«ng α» awaiting_approval khΓ΄ng tαΊ£i SSE
β TrΓ¬nh duyα»t cΓ³ thα» ΔΓ£ ΔΓ³ng EventSource. Reload trang vΓ nhαΊp lαΊ‘i ticket ID β workflow sαΊ½ resume tα»« checkpoint.
TypeScript errors sau khi pull code mα»i
pnpm install
cd packages/agents && npx tsc --noEmit
cd apps/web && npx tsc --noEmitMIT Β© TEDU