<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code Review on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/code-review/</link><description>Recent content in Code Review on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 22 May 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/code-review/feed.xml" rel="self" type="application/rss+xml"/><item><title>CrewAI 完全指南（二）：三個真實場景實戰——競情分析、程式碼審查、客服自動化</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/crewai-series-part2-real-world-tasks-zh/</link><pubDate>Fri, 22 May 2026 09:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/crewai-series-part2-real-world-tasks-zh/</guid><description>前言 上一篇我們建立了第一個 CrewAI 應用。
這篇直接進入真實工作場景，用三個完整範例展示 CrewAI 能為企業解決什麼問題。每個範例都有完整可執行的程式碼，以及設計上的關鍵決策說明。
場景一：競爭對手情報分析系統 業務背景 產品經理每週需要花 2-3 小時手動追蹤競爭對手動態：新功能、定價變化、媒體報導。這是一個重複性高、但需要一定判斷力的工作，非常適合 CrewAI 自動化。
系統設計 使用者輸入：公司名稱清單 + 分析重點 ↓ [情報收集員] 搜尋每家公司的最新動態 ↓ [分析師] 分析收集到的情報，找出威脅與機會 ↓ [報告撰寫員] 產出格式化的週報，附行動建議 完整程式碼 1import os 2from crewai import Agent, Task, Crew, Process 3from crewai_tools import SerperDevTool, ScrapeWebsiteTool 4from pydantic import BaseModel 5from typing import List 6 7os.environ[&amp;#34;OPENAI_API_KEY&amp;#34;] = &amp;#34;your-api-key&amp;#34; 8os.environ[&amp;#34;SERPER_API_KEY&amp;#34;] = &amp;#34;your-serper-key&amp;#34; 9 10search_tool = SerperDevTool() 11scrape_tool = ScrapeWebsiteTool() 12 13# ---- Pydantic 模型定義輸出結構 ---- 14 15class CompetitorInsight(BaseModel): 16 company: str 17 recent_news: List[str] 18 new_features: List[str] 19 pricing_changes: str 20 threat_level: str # low / medium / high 21 opportunities: List[str] 22 23class IntelligenceReport(BaseModel): 24 summary: str 25 competitors: List[CompetitorInsight] 26 key_threats: List[str] 27 recommended_actions: List[str] 28 29# ---- 定義 Agents ---- 30 31intelligence_collector = Agent( 32 role=&amp;#34;市場情報收集員&amp;#34;, 33 goal=&amp;#34;系統性地收集競爭對手的最新公開資訊，確保資訊的時效性和完整性&amp;#34;, 34 backstory=&amp;#34;&amp;#34;&amp;#34;你是一位專業的市場情報分析師，擅長從公開資源中找到有價值的競爭情報。 35 你熟悉如何在新聞、官方部落格、社群媒體、產品更新公告中尋找關鍵訊號。 36 你注重資料的來源和時效性，只引用近期（3 個月內）的資訊。&amp;#34;&amp;#34;&amp;#34;, 37 tools=[search_tool, scrape_tool], 38 llm=&amp;#34;gpt-4o-mini&amp;#34;, 39 verbose=True, 40 max_iter=15, 41) 42 43market_analyst = Agent( 44 role=&amp;#34;市場策略分析師&amp;#34;, 45 goal=&amp;#34;分析競爭情報，識別對公司的威脅和市場機會，提供有深度的策略洞察&amp;#34;, 46 backstory=&amp;#34;&amp;#34;&amp;#34;你是一位有豐富經驗的市場策略分析師，曾在頂尖顧問公司工作多年。 47 你擅長從零散的資訊中找出規律和趨勢，並評估其業務影響。 48 你的分析既有宏觀視野，也有具體的行動建議。&amp;#34;&amp;#34;&amp;#34;, 49 verbose=True, 50 llm=&amp;#34;gpt-4o&amp;#34;, 51) 52 53report_writer = Agent( 54 role=&amp;#34;商業報告撰寫員&amp;#34;, 55 goal=&amp;#34;將分析結果轉化為清晰、可行動的週報，讓高層能快速掌握重點&amp;#34;, 56 backstory=&amp;#34;&amp;#34;&amp;#34;你是一位資深的商業報告撰寫專家，了解高層主管的閱讀習慣： 57 重點先說、數據說話、建議要具體。你的報告簡潔有力，能讓繁忙的決策者 58 在 5 分鐘內掌握所有關鍵資訊。&amp;#34;&amp;#34;&amp;#34;, 59 verbose=True, 60 llm=&amp;#34;gpt-4o&amp;#34;, 61) 62 63# ---- 定義 Tasks ---- 64 65collection_task = Task( 66 description=&amp;#34;&amp;#34;&amp;#34;收集以下競爭對手的最近 4 週內公開資訊： 67 競爭對手清單：{competitors} 68 分析重點：{focus_areas} 69 70 對每家公司，請搜尋並整理： 71 1.</description></item></channel></rss>