
Злиття Мети's Моделі Llama 4 з Microsoft's Фреймворк AutoGen відкриває нові можливості для створення розумних та ефективних AI агенти. Ці технології, у поєднанні, дозволяють розробникам створювати програми, які можуть обробляти природну мову, розуміти зображення, міркувати над складними проблемами та співпрацювати з іншими агентами для виконання завдань.
полум'я 4 надає вражаючі мультимодальні можливості та великі контекстні вікна AutoGen забезпечує структуровану основу для оркестрації кількох агентів у спільних робочих процесах. Разом вони утворюють потужний інструментарій для наступного покоління AI додатків.
Цей посібник розповідає про процес Будівля AI агенти, що використовують ці інструменти, із практичними прикладами коду та стратегіями впровадження для розробників усіх рівнів кваліфікації.
Що робить полум'я 4 та AutoGen Ідеальний матч?
Meta's Сімейство Llama 4 виділяється серед AI світ зі своїми власні мультимодальні можливості і підхід раннього синтезу. У поєднанні з AutoGen—Microsoft's фреймворк для побудови розмовних багатоагентних систем—розробники можуть створювати AI агенти, які ефективно міркують, співпрацюють та адаптуються.
Пропонуються моделі Llama 4, включаючи варіанти Scout і Maverick мультимодальна обробка раннього синтезу який з самого початку обробляє текст, зображення та відеокадри як єдину послідовність токенів. Ця можливість у поєднанні з AutoGen's гнучка архітектура агентів, дозволяє створювати AI системи що може:
Дозволяти's створити практичну багатоагентну систему, яка демонструє ці можливості, створивши генератор проектних пропозицій, який аналізує вимоги клієнтів та генерує індивідуальні пропозиції щодо роботи.
Побудова практичного AI Агентна система
Дозволяти's створити мультиагентну систему, яка допомагає фрілансерам генерувати індивідуальні пропозиції роботи. Наша система:
- Збір вимог клієнта
- Зберіть кваліфікацію фрілансера
- Формуйте професійні пропозиції з відповідними цінами.
Крок 0: Налаштування середовища
Спочатку встановіть необхідні пакети:
пітон
pip встановити autogen-agentchat~=0.2
pip встановити ipython

Крок 1: Налаштування доступу до API
Ми будемо використовувати Together API для доступу до Llama 4:
python
import os
import autogen
from IPython.display import display, Markdown
# Load API key from file
with open("together_ai_api.txt") as file:
LLAMA_API_KEY = file.read().strip()
os.environ["LLAMA_API_KEY"] = LLAMA_API_KEY
# Configure LLM settings
llm_config = {
"config_list": [
{
"model": "meta-llama/Llama-4-Scout", # Use Scout for efficiency
"api_key": os.environ.get("LLAMA_API_KEY"),
"base_url": "https://api.together.xyz/v1",
}
],
"temperature": 0.2, # Lower for more consistent outputs
"timeout": 180
}
Крок 2: Створення спеціалізованих агентів
Наша система потребує трьох окремих агентів із певними ролями:
Агент клієнтського введення
python
# Agent 1: Interfaces with the human user
client_agent = autogen.UserProxyAgent(
name="Client_Input_Agent",
human_input_mode="ALWAYS", # Always gets input from human
max_consecutive_auto_reply=1,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
system_message="""Act as the primary contact between the human user and other agents.
First, collect initial project details (requirements, timeline, budget).
When asked questions by the Scope Architect, relay user's answers about skills and experience.
Type TERMINATE when the proposal is satisfactory or the user wants to stop."""
)
Цей агент служить мостом між користувачем-людиною та AI системи, збір інформації і представлення кінцевого результату.
Агент Scope Architect
python
# Agent 2: Analyzes requirements and asks qualifying questions
scope_architect_agent = autogen.AssistantAgent(
name="Scope_Architect",
llm_config=llm_config,
max_consecutive_auto_reply=1,
system_message="""You are a Scope Architect who analyzes project requirements.
After receiving initial details from Client_Input_Agent, ask targeted questions about:
- The freelancer's relevant past projects and experience
- Their key skills and tools for this specific project
- Estimated completion time for the described work
Once you have sufficient information, create a concise summary of BOTH
the project requirements AND freelancer qualifications for the Rate Recommender."""
)
Архітектор Scope працює як аналітик вимог, збираючи важливу інформацію, необхідну для точної пропозиції.
Оцініть Рекомендаційного Агента
python
# Agent 3: Creates structured proposal with pricing
rate_recommender_agent = autogen.AssistantAgent(
name="Rate_Recommender",
llm_config=llm_config,
max_consecutive_auto_reply=1,
system_message="""Generate professional project proposals based on gathered information.
Wait for the Scope Architect's complete summary before proceeding.
Include these sections in your proposal:
1. Custom Introduction: Personalized greeting referencing client and project
2. Project Scope & Timeline: Clear deliverables with timeline estimates
3. Pricing Options: 2-3 tiers (hourly/fixed/retainer) with justification
4. Next Steps: Brief suggestion for kickoff discussion
Format using proper markdown. Avoid commentary - deliver only the final proposal."""
)
Цей агент створює кінцевий результат, перетворюючи зібрану інформацію в структуровану пропозицію.
Крок 3: Створення допоміжного агента (необов’язково)
python
# Optional helper to initiate the conversation
user_proxy = autogen.UserProxyAgent(
name="user_proxy",
max_consecutive_auto_reply=1,
llm_config=llm_config,
system_message="Initiate the conversation between agents."
)
Крок 4: Налаштування групового чату
Тепер ми створимо середовище розмови, де агенти зможуть співпрацювати:
python
# Group Chat Configuration
groupchat = autogen.GroupChat(
agents=[client_agent, scope_architect_agent, rate_recommender_agent],
messages=[],
max_round=4, # Prevent infinite loops
speaker_selection_method="round_robin", # Orderly participation
)
# Conversation Manager
manager = autogen.GroupChatManager(
groupchat=groupchat,
llm_config=llm_config,
system_message="""Direct the conversation flow through these steps:
1. Client_Input_Agent shares project details
2. Scope_Architect asks qualifying questions
3. Client_Input_Agent provides freelancer information
4. Scope_Architect summarizes all information
5. Rate_Recommender creates the final proposal
End when the proposal is complete or Client_Input_Agent says TERMINATE."""
)
Така схема забезпечує організований потік розмови з чітким розподілом ролей та обов'язків.
Крок 5: Початок розмови
Дозволяти's розпочати робочий процес нашого агента:
python
# Begin the proposal generation process
print("Starting the proposal generation process...")
print("Please provide project details when prompted.")
initial_message = """
Begin the proposal creation process:
1. First collect project details from the user
2. Then gather freelancer qualifications
3. Finally generate a professional proposal
"""
user_proxy.initiate_chat(
manager,
message=initial_message
)
Крок 6: Отримання остаточної пропозиції
Після завершення розмови ми витягнемо та відобразимо остаточну пропозицію:
python
# Find and display the proposal
chat_history = manager.chat_messages[client_agent]
final_proposal = None
for msg in reversed(chat_history):
if msg.get("role") == "assistant" and msg.get("name") == rate_recommender_agent.name:
if "Introduction" in msg.get("content", ""):
final_proposal = msg
break
if final_proposal:
proposal_text = final_proposal.get("content", "Proposal not found.")
try:
display(Markdown(proposal_text))
except NameError:
print("\n--- FINAL PROPOSAL ---\n")
print(proposal_text)
else:
print("Could not find the final proposal in the conversation.")
Удосконалені методи для кращого будівництва AI Агенти

Хоча наша базова реалізація працює добре, ось кілька просунутих підходів, щоб зробити вашу AI потужніші агенти:
A.Інтеграція зовнішнього інструменту
Одна з сильних сторін AutoGen — це можливість оснащувати агентів зовнішніми інструментами. Ось як надати вашому рекомендатору цін можливості дослідження ринку :
python
# Define function for market research
def research_market_rates(job_type, experience_level):
"""Access external data for pricing information"""
# This would typically connect to an API or database
# Using simple dictionary for demonstration
rate_data = {
"web_development": {
"beginner": "$30-50/hr",
"intermediate": "$50-90/hr",
"expert": "$90-200/hr"
},
"data_analysis": {
"beginner": "$25-45/hr",
"intermediate": "$45-85/hr",
"expert": "$85-180/hr"
}
}
# Retrieve appropriate rate range
try:
return rate_data[job_type][experience_level]
except KeyError:
return "Rate information not available for this combination"
# Configure LLM with function
rate_recommender_config = {
**llm_config,
"functions": [
{
"name": "research_market_rates",
"description": "Find current market rates for specific job types and experience levels",
"parameters": {
"type": "object",
"properties": {
"job_type": {
"type": "string",
"enum": ["web_development", "data_analysis", "content_writing", "graphic_design"]
},
"experience_level": {
"type": "string",
"enum": ["beginner", "intermediate", "expert"]
}
},
"required": ["job_type", "experience_level"]
}
}
]
}
# Update the Rate Recommender with function capabilities
rate_recommender_agent = autogen.AssistantAgent(
name="Rate_Recommender",
llm_config=rate_recommender_config,
system_message="""Generate proposals with accurate market-based pricing.
Use the research_market_rates function to get current pricing information."""
)
# Register the function with the agent
rate_recommender_agent.register_function(
function_map={"research_market_rates": research_market_rates}
)
Це вдосконалення дозволяє Rate Recommender отримувати доступ до зовнішніх даних про ціни, що робить пропозиції більш точними та конкурентними.
B. Реалізація постійної пам'яті
Додавання можливостей пам’яті допомагає агентам підтримувати контекст під час кількох взаємодій:
python
# Create a simple memory system for agents
class AgentMemory:
def __init__(self):
self.memories = {}
def store(self, agent_name, key, value):
"""Save information to agent memory"""
if agent_name not in self.memories:
self.memories[agent_name] = {}
self.memories[agent_name][key] = value
def retrieve(self, agent_name, key=None):
"""Get information from agent memory"""
if agent_name not in self.memories:
return None
if key:
return self.memories[agent_name].get(key)
else:
return self.memories[agent_name]
# Initialize memory
memory = AgentMemory()
# Example of storing client information
def process_client_input(message):
"""Extract and store client information"""
# This would typically use more sophisticated parsing
if "budget:" in message.lower():
budget = message.split("budget:")[1].strip().split("\n")[0]
memory.store("client", "budget", budget)
if "timeline:" in message.lower():
timeline = message.split("timeline:")[1].strip().split("\n")[0]
memory.store("client", "timeline", timeline)
return message
# Add memory hook to client agent
def memory_hook(recipient, messages, sender, config):
"""Process and store incoming messages"""
if sender.name == "Client_Input_Agent" and messages:
process_client_input(messages[0].get("content", ""))
return False, None # Continue normal processing
# Register the hook
client_agent.register_hook("memory_hook", memory_hook)
Ця система пам’яті допомагає агентам згадувати важливу інформацію під час розмови, навіть якщо вона явно не згадується в останніх повідомленнях.
Практичні застосування за межами створення пропозицій
Архітектуру, яку ми створили, можна адаптувати до багатьох інших бізнес-сценаріїв:
A. Конвеєр створення вмісту
Змініть наших агентів для обробки робочих процесів виробництва вмісту:
B. Система аналізу SEO
Створіть спеціалізований інструмент SEO за допомогою цих агентів:
C. Автоматизація підтримки клієнтів
Перетворення архітектури на систему підтримки:
Поради щодо оптимізації продуктивності
Для готовності до виробництва AI агентні системи:
- Розумний вибір моделі: Використовуйте легкі моделі для більш простих завдань (забір, маршрутизація) і зарезервуйте більші моделі для складних міркувань (створення пропозицій, ціноутворення).
- Реалізувати кешування: Зберігайте часті відповіді, щоб зменшити виклики API та покращити час відповіді:
python
# Simple cache implementation
response_cache = {}
def get_cached_response(query_key, generator_function, ttl=3600):
"""Get cached response or generate new one"""
if query_key in response_cache:
timestamp, response = response_cache[query_key]
if time.time() - timestamp < ttl:
return response
# Generate fresh response
new_response = generator_function()
response_cache[query_key] = (time.time(), new_response)
return new_response
Пакетна обробка: незалежні завдання обробляйте паралельно, а не послідовно:
python
import asyncio
async def run_parallel_research():
task1 = asyncio.create_task(research_agent.async_run("Research topic A"))
task2 = asyncio.create_task(research_agent.async_run("Research topic B"))
task3 = asyncio.create_task(research_agent.async_run("Research topic C"))
results = await asyncio.gather(task1, task2, task3)
return results
Технічна перевага Llama 4 для AI Агенти
полум'я 4's специфічні характеристики роблять його особливо придатним для застосування агентами:
- Мультимодальна архітектура раннього синтезу дозволяє агентам природно обробляти текст і зображення разом, на відміну від попередніх підходів, які зберігали модальності окремо.
- Дизайн суміші експертів дозволяє моделі активувати лише відповідні параметри для кожного завдання, роблячи відповіді швидшими та точнішими.
- Виняткова обробка тривалого контексту (до 10 млн токенів у Scout) дозволяє агентам зберігати історію розмов і посилатися на довгі документи без втрати узгодженості.
- Багатомовні можливості 12 офіційно підтримуваних мов роблять агентів доступними для користувачів у всьому світі.
він, ти можеш створити AI агенти, які не лише розуміють та відповідають на запити, а й активно співпрацюють для вирішення складних проблем, що дійсно представляють наступне покоління AI застосування.
Популярні поширені запитання
Чим Llama 4 відрізняється від інших мовних моделей?
Llama 4 використовує підхід раннього злиття для мультимодальної обробки та розріджену архітектуру Mixture of Experts для підвищення ефективності. Він розглядає текст, зображення та відео як одну послідовність токенів і активує лише відповідні «експертні» підмоделі для кожного входу.
Чи може AutoGen працювати з LLM, крім Llama 4?
Так, AutoGen не залежить від моделі та може працювати з різними LLM, включаючи OpenAI моделі, антропні моделі та інші моделі з відкритим кодом, такі як Mistral AI або DeepSeek.
Чи будує будівля AI агентам потрібні розширені навички програмування?
Не обов'язково. Маючи базові знання Python і розуміючи LLM, ви можете налаштувати та запустити робочі процеси агентів. AutoGen спрощує процес створення та координації кількох агентів.
Чи можна ці AI агенти працюють на локальному обладнанні?
Так, AutoGen підтримує інтеграцію з локальними LLM за допомогою таких інструментів, як Ollama, що дозволяє запускати агентів на вашому власному обладнанні.
Як безпечно працювати з ключами API у виробництві?
Зберігайте ключі API у змінних середовища або захищених сховищах, а не в коді. Використовуйте належну автентифікацію та шифрування для робочих розгортань.
Чи можу я розширити агенти за допомогою спеціальних інструментів і API?
Абсолютно. AutoGen дозволяє підключати агентів до зовнішніх API, баз даних і спеціальних інструментів, що дозволяє їм взаємодіяти з різними системами та службами.
Рекомендована література:
Висновок
Обладнання для прокату AI агенти з Llama 4 та AutoGen відкривають захопливі можливості для створення інтелектуальних, спільних систем, здатних вирішувати складні завдання. Поєднання полум'я 4's мультимодальний інтелект та AutoGen's гнучка структура агентів надає розробникам потужні інструменти для створення AI агенти, які можуть міркувати, співпрацювати та адаптуватися до різних сценаріїв.
Наш приклад проекту — багатоагентний генератор пропозицій — демонструє лише одне практичне застосування цих технологій. Ці ж принципи можна застосувати до будувати AI агенти для створення контенту, аналіз даних, обслуговування клієнтів, дослідження, управління проектами та багато інших сфер.
Коли ви будуєте свій власний AI агенти з Llama 4 та AutoGen, пам’ятайте про ці ключові принципи:


