本文将手把手教您开发第一个对话型智能体(Agent),通过20行Python代码实现诗歌创作机器人。文末提供完整可运行的代码仓库。
一、环境准备
from openai import OpenAI
from swarm import Swarm, Agent
swarm的安装参考swarm 安装教程(100%成功)-CSDN博客
二、核心概念解析
2.1 Agent技术架构
智能体(Agent)是一种能够感知环境、自主决策并采取行动以实现特定目标的系统。它们模拟人类的智能行为,具备环境感知、规划、记忆和工具使用等能力。在技术架构上,智能体通常由以下关键组件组成:
- 大语言模型(LLM):作为智能体的核心,用于理解和生成自然语言,支持复杂的语言处理任务。
- 规划(Planning):负责将复杂任务分解为可执行的子任务,并制定执行策略。这通常通过提示工程(如ReAct、CoT推理模式)来实现,使智能体能够逐步解决问题。
- 记忆(Memory):包括短期记忆和长期记忆。短期记忆用于存储会话上下文,支持多轮对话;长期记忆则存储用户特征、业务数据等,通常通过向量数据库实现快速存取。
- 工具(Tools):智能体通过调用外部工具(如API、插件)来扩展其能力,例如进行信息检索、数据分析或与物理世界交互。
- 行动(Action):将规划和决策转化为具体的输出,包括与外部环境的互动或工具调用,以完成预设目标。
通过整合这些组件,智能体能够模拟人类的思考过程,灵活调用各类工具,逐步达成预设目标。这使得它们在各种应用场景中发挥重要作用,如自动化财报分析、智能客服、个性化推荐等。
此外,随着技术的进步,基于大语言模型的多智能体系统也在发展。这些系统通过多个智能体的协作,能够处理更复杂的任务,模拟人类团队的合作方式,提高问题解决的效率和效果。
2.2 Swarm框架介绍及参数详解
Swarm是OpenAI于2024年10月12日开源的实验性多智能体编排框架,旨在简化多智能体系统的构建、协调和部署。 其设计强调轻量级、高度可控和易于测试,适用于处理大量独立功能和指令的场景。
- Swarm Github地址:https://github.com/openai/swarm/tree/main
三、代码逐行教学
3.1 初始化大模型客户端
import os
from openai import OpenAI
from swarm import Swarm, Agent
from IPython.display import Markdown, display
client = OpenAI(api_key="your_api_key", base_url="https://api.deepseek.com")
swarm_client = Swarm(client)
3.2 创建智能体
# 配置诗歌创作智能体
poetry_agent = Agent(
name="诗歌机器人", # 智能体名称
model="deepseek-chat", # 指定模型版本
instructions="""你是一位精通诗歌创作的AI助手,请遵守:
1. 所有回答必须为七言绝句
2. 押平声韵,一韵到底
3. 意象优美,情感真挚""", # 行为准则
temperature=0.7 # 平衡创造性与规范性(可选)
)
3.3 运行对话循环
print("欢迎使用唐诗创作助手(输入exit退出)")
while True:
user_input = input("\n请输入主题:").strip()
if user_input.lower() in ["exit", "退出","quit"]:
break
response = swarm_client.run(
agent=poetry_agent,
messages=[{"role": "user", "content": user_input}]
)
print("\n创作结果:")
print(response.messages[-1]["content"])
四、效果展示
请输入您的问题:请描述一下菊花
金风拂面菊初黄,
玉露凝香月影长。
不与群芳争艳色,
独留清气傲秋霜。
五、智能体实现多轮对话
代码:
import os
from openai import OpenAI
from swarm import Swarm, Agent
from IPython.display import Markdown, display
import swarm
client = OpenAI(api_key="sk-381a8fe6e2d24b94988e3b093bd82fd8", base_url="https://api.deepseek.com")
swarm_client = Swarm(client)
# 配置诗歌创作智能体
poetry_agent = Agent(
name="诗歌机器人", # 智能体名称
model="deepseek-chat", # 指定模型版本
instructions="""你是一位精通诗歌创作的AI助手,请遵守:
1. 所有回答必须为七言绝句
2. 押平声韵,一韵到底
3. 意象优美,情感真挚""", # 行为准则
temperature=0.7 # 平衡创造性与规范性(可选)
)
# 初始化对话历史
dialog_history = [
{"role":"system","content":"当前对话主题:古典诗歌创作"}
]
while True:
question = input("请输入您的问题")
if question in ["quit","exit","退出"]:
print("对话已结束,感谢使用!")
break
dialog_history.append({"role":"user","content":question})
# 获取响应
response = swarm_client.run(
agent = poetry_agent,
messages = dialog_history
)
# 输出生成的响应内容
new_response = response.messages[-1]["content"]
print(f"\n诗歌创作助手:\n{new_response}\n")
# 添加回复到消息队列中
dialog_history.append(({"role":"assistant","content":new_response}))
效果:
请输入您的问题请描述一下太阳
诗歌创作助手:
金光万道破云开,
暖意融融照九垓。
万物生长皆赖此,
人间处处有春来。
请输入您的问题请参照刚刚创作的诗歌,取一个相反的意象,再创作一首
诗歌创作助手:
乌云蔽日暗天光,
冷雨凄风透骨凉。
草木凋零人迹少,
孤鸦啼处断愁肠。
请输入您的问题exit
对话已结束,感谢使用!