Agent 6: Code Reviewer & Bug Finder Agent
১. এই এজেন্ট কী কাজ করবে?
আমরা অনেক সময় কোড লিখে বুঝতে পারি না যে কোডটি অপ্টিমাইজড (Fast) হয়েছে কি না বা ভেতরে কোনো লুকানো বাগ (Bug) আছে কি না। এই এজেন্টকে আপনি আপনার পাইথন ফাইলের লোকেশন দিয়ে দেবেন। সে কোডটি পড়ে রিভিউ করবে, কোথায় ভুল আছে তা ধরিয়ে দেবে এবং কীভাবে আরও সুন্দর করে লেখা যায় তার সাজেশন দেবে।
২. কী কী টুলস এবং লাইব্রেরি লাগবে?
google-generativeai(Gemini API) অথবাopenai(ChatGPT API): কোড পড়ে বোঝার জন্য (এক্ষেত্রে আমরা ফ্রি Gemini API ব্যবহার করবো)।os: ফাইল রিড করার জন্য।
৩. এ টু জেড কোড (A to Z Code)
প্রথমে টার্মিনালে pip install google-generativeai লিখে লাইব্রেরিটি ইনস্টল করে নিন। এরপর নিচের কোডটি agent_code_reviewer.py নামে সেভ করুন। (আপনাকে Google AI Studio থেকে একটি ফ্রি API Key নিতে হবে)।
import google.generativeai as genai
import os
class CodeReviewerAgent:
def __init__(self, api_key):
# Gemini API কনফিগার করা
genai.configure(api_key=api_key)
self.model = genai.GenerativeModel('gemini-1.5-flash')
def read_code(self, file_path):
try:
with open(file_path, 'r', encoding='utf-8') as f:
return f.read()
except Exception as e:
print(f"[Agent] ফাইল পড়তে সমস্যা হয়েছে: {e}")
return None
def review_code(self, file_path):
print(f"[Agent] '{file_path}' ফাইলটি স্ক্যান করা হচ্ছে...")
code = self.read_code(file_path)
if not code:
return
# AI-কে দেওয়া কমান্ড (Prompt)
prompt = f"""
You are an expert Python Developer. Please review the following Python code.
1. Point out any bugs or errors.
2. Suggest ways to make the code faster or more readable.
3. Provide the corrected/improved version of the code.
Here is the code:
\n\n{code}
"""
print("[Agent] AI রিভিউ তৈরি করছে, কিছুক্ষণ অপেক্ষা করুন...")
response = self.model.generate_content(prompt)
print("\n" + "="*50)
print("💡 কোড রিভিউ রিপোর্ট:")
print("="*50)
print(response.text)
if __name__ == "__main__":
# আপনার API Key এখানে দিন
API_KEY = "YOUR_GEMINI_API_KEY_HERE"
# যে ফাইলটি রিভিউ করতে চান তার নাম/পাথ দিন
target_file = "my_script.py"
agent = CodeReviewerAgent(API_KEY)
if os.path.exists(target_file):
agent.review_code(target_file)
else:
print(f"[Agent] '{target_file}' নামের কোনো ফাইল খুঁজে পাওয়া যায়নি!")
৪. কীভাবে এটি আরও অ্যাডভান্সড করবেন?
- এটি শুধু একটি ফাইল রিড করে। আপনি চাইলে
os.walkব্যবহার করে পুরো ফোল্ডারের (Project) সব ফাইল স্ক্যান করার অপশন যুক্ত করতে পারেন। - রিভিউ রিপোর্টটি সরাসরি প্রিন্ট না করে একটি
review_report.mdফাইলে সেভ করানোর লজিক দিতে পারেন।