在探索大语言模型的创意应用过程中,我们开发了一个基于多 Agent 的智能诗歌创作系统。本文将介绍如何通过多个专业化的 Agent 协同工作,实现根据地点和天气信息自动创作诗歌的功能。
GitHub Code 项目地址
核心架构设计
1. Agent 基类设计
from pydantic import BaseModel
from typing import Optional
class Agent(BaseModel):
name: str = "Agent"
model: str = "gpt-4o" # deepseek-chat, mixtral-8x7b-32768, Qwen/Qwen2-72B-Instruct, gpt-4o, llama3-70b-8192
instructions: str = "你是一个非常有用的人工智能助手,你使用中文回答用户的问题。"
tools: list = []
2. 消息处理机制
def run_full_turn(agent, messages, logger):
current_agent = agent
num_init_messages = len(messages)
messages = messages.copy()
while True:
# turn python functions into tools and save a reverse map
tool_schemas = [function_to_schema(tool) for tool in current_agent.tools]
tools = {
tool.__name__: tool for tool in current_agent.tools}
# === 1. get openai completion ===
response = get_model_response_with_tools(
model_name=current_agent.model,
messages=[{
"role": "system", "content": current_agent