多智慧體系統實戰:用LangChain+MCP構建一個自動化週報生成系統
技术架构
為什麼週報需要多智慧體?
週報是每個程式設計師的「週常痛點」——不是寫不出來,而是收集資料太麻煩:
- 從Jira拉取本週完成的任務
- 從Git統計程式碼提交量
- 從飛書/釘釘獲取會議記錄
- 從監控系統檢視線上告警
- 最後還要「潤色」成領導愛看的格式
如果一個Agent只能做一件事,那就讓多個Agent分工協作——這就是多智慧體系統的價值。
系統架構
┌─────────────────────────────────────────────────────────────┐
│ 協調Agent (Orchestrator) │
│ LangChain AgentExecutor │
└──────────┬──────────┬──────────┬──────────┬────────────────┘
│ │ │ │
┌─────▼────┐ ┌───▼────┐ ┌──▼───┐ ┌───▼────┐
│ 資料採集 │ │ 程式碼分析│ │ 會議摘要│ │ 報告生成│
│ Agent │ │ Agent │ │ Agent │ │ Agent │
└─────┬────┘ └───┬────┘ └──┬───┘ └───┬────┘
│ │ │ │
┌─────▼──────────▼──────────▼──────────▼────────────────┐
│ MCP Server 層 │
│ [Jira MCP] [Git MCP] [飛書 MCP] [監控 MCP] [郵件 MCP] │
└───────────────────────────────────────────────────────┘
第一步:定義Agent
from langchain_openai import ChatOpenAI
from langchain_mcp import MCPToolkit
jira_toolkit = MCPToolkit(url="http://localhost:8081/mcp/sse")
git_toolkit = MCPToolkit(url="http://localhost:8082/mcp/sse")
data_collector_agent = {
"name": "data_collector",
"role": "資料採集專家",
"goal": "從Jira和Git中收集本週的工作資料",
"tools": jira_toolkit.get_tools() + git_toolkit.get_tools(),
"llm": ChatOpenAI(model="gpt-4o", temperature=0)
}
第二步:實現MCP Server
Jira MCP Server
from mcp.server import Server, Tool
from jira import JIRA
server = Server("jira-mcp-server")
@server.tool(name="get_completed_issues", description="獲取指定時間範圍內完成的Jira任務")
async def get_completed_issues(start_date: str, end_date: str, assignee: str = None):
jql = f'updated >= "{start_date}" AND updated <= "{end_date}" AND status = Done'
if assignee:
jql += f' AND assignee = "{assignee}"'
issues = jira_client.search_issues(jql, maxResults=50)
return {"issues": [{"key": i.key, "summary": i.fields.summary} for i in issues]}
第三步:編排多智慧體工作流
from langgraph.graph import StateGraph, END
workflow = StateGraph(WeeklyReportState)
workflow.add_node("collect_jira", collect_jira_data)
workflow.add_node("collect_git", collect_git_data)
workflow.add_node("collect_meeting", collect_meeting_data)
workflow.add_node("generate_report", generate_report)
workflow.add_edge("collect_jira", "collect_git")
workflow.add_edge("collect_git", "collect_meeting")
workflow.add_edge("collect_meeting", "generate_report")
workflow.add_edge("generate_report", END)
workflow.set_entry_point("collect_jira")
app = workflow.compile()
總結
多智慧體系統讓週報生成從「手動拼湊」變成「自動流水線」:
- 分工明確:每個Agent只做一件事,做好一件事
- MCP解耦:Agent不直接呼叫API,透過MCP Server間接存取
- LangGraph編排:支援串列、並列、條件分支等複雜工作流
- 生產可用:定時排程、錯誤重試、幻覺防控
多智慧體不是「多個聊天機器人」,而是「一個軟體系統」——每個Agent是一個微服務,MCP是它們之間的API閘道。
本站提供瀏覽器本地工具,免註冊即可試用 →
#多智能体#LangChain#MCP#自动化周报#Agent协作