Code generation agent design in Agentic AI - ML Experiment: Train & Evaluate
Start learning this pattern below
Jump into concepts and practice - no test required
import random class CodeGenerationAgent: def __init__(self, model): self.model = model def generate_code(self, prompt): # Improved prompt engineering by adding context enhanced_prompt = f"Generate Python code for: {prompt}. Ensure completeness and correctness." # Use beam search simulation for diverse outputs candidates = [self.model.generate(enhanced_prompt) for _ in range(5)] # Post-generation validation: select the most complete candidate best_code = max(candidates, key=self._completeness_score) return best_code def _completeness_score(self, code): # Simple heuristic: count number of function definitions and return statements func_count = code.count('def ') return_count = code.count('return ') return func_count + return_count # Mock model for demonstration class MockModel: def generate(self, prompt): # Simulate code generation with varying completeness samples = [ 'def add(a, b):\n return a + b', 'def add(a, b):\n sum = a + b\n return sum', 'def add(a, b):\n pass', 'def add_numbers(x, y):\n result = x + y\n return result', 'def add(a, b):\n return a + b\n\n# extra comment' ] return random.choice(samples) # Usage example model = MockModel() agent = CodeGenerationAgent(model) prompt = "function to add two numbers" code_output = agent.generate_code(prompt) print(code_output)
Before: Relevance 65%, Completeness 60%
After: Relevance 82%, Completeness 78%
Practice
What is the main purpose of a code generation agent in AI?
Solution
Step 1: Understand the role of a code generation agent
A code generation agent is designed to write code automatically based on instructions it receives.Step 2: Compare options with this role
Only To automatically write code from given instructions matches this purpose. Other options describe unrelated tasks.Final Answer:
To automatically write code from given instructions -> Option CQuick Check:
Code generation agent purpose = automatic code writing [OK]
- Confusing code generation with debugging
- Thinking it executes code faster
- Assuming it replaces all programmers
Which of the following is the correct way to instruct a code generation agent to create a Python function named add that returns the sum of two numbers?
Solution
Step 1: Identify the correct instruction for addition
The instruction must specify a function named add that returns the sum (x + y).Step 2: Check each option
Write a function add(x, y) that returns x + ycorrectly instructs to write a function add(x, y) returning x + y. Others describe subtraction or multiplication.Final Answer:
Write a function add(x, y) that returns x + y -> Option DQuick Check:
Correct function instruction =Write a function add(x, y) that returns x + y[OK]
- Choosing instructions for subtraction or multiplication
- Ignoring function name or return statement
- Confusing wording of instructions
Given this instruction to a code generation agent: Write a Python function multiply that returns the product of two numbers. Which of the following code outputs is correct when calling multiply(3, 4)?
Solution
Step 1: Understand the function's purpose
The function multiply should return the product of two numbers, so multiply(3, 4) should return 3 * 4 = 12.Step 2: Evaluate each output option
12 is 12, which matches the expected product. Others are incorrect or errors.Final Answer:
12 -> Option BQuick Check:
3 * 4 = 12 [OK]
- Adding instead of multiplying
- Concatenating numbers as strings
- Assuming function causes error
Consider this code generated by an agent:
def divide(x, y):
return x / y
result = divide(10, 0)What is the main issue with this code?
Solution
Step 1: Analyze the function call
The function divide is called with y=0, which causes division by zero.Step 2: Identify the error type
Division by zero causes a runtime error (ZeroDivisionError) in Python.Final Answer:
Runtime error due to division by zero -> Option AQuick Check:
Divide by zero causes runtime error [OK]
- Thinking it's a syntax error
- Assuming code runs without error
- Confusing logical error with runtime error
You want a code generation agent to create a Python function that filters out all negative numbers from a list and returns the positive numbers only. Which instruction will most likely produce the correct function?
Solution
Step 1: Understand the filtering goal
The goal is to keep only positive numbers, so the instruction must specify returning positive numbers.Step 2: Evaluate each instruction
Write a function that returns only positive numbers from the listcorrectly asks for a function returning only positive numbers. Others do different tasks.Final Answer:
Write a function that returns only positive numbers from the list -> Option AQuick Check:
Filter positive numbers =Write a function that returns only positive numbers from the list[OK]
- Choosing instructions that filter negatives instead
- Confusing filtering with summing or sorting
- Ignoring the word 'positive' in instruction
