前言
前期的文章中,我们介绍了如何使用 AgentScope Workstation 构建多智能体应用。本期,我们将主要介绍 AgentScope 的最新版本的更新内容,包括
- 全新的RAG模块
- 全新可视化界面——AgentScope Studio
- 系统提示优化模块
更多的更新内容,欢迎查看 AgentScope 的 GitHub 仓库!欢迎在GitHub上(https://github.com/modelscope/agentscope)上🌟和关注 AgentScope 项目!
RAG
RAG(Retrieval-Augmented Generation,检索增强生成)技术结合了检索和生成模型的优势,可以在生成文本时利用检索到的知识,从而提高生成文本的质量和准确性。
在 AgentScope 的前序版本中,我们在一个样例中展示了RAG技术的应用。现在,在新版 AgentScope 中,我们将 RAG 相关技术和实现抽象整合为 AgentScope 的一个基础模块,并且力图通过一系列精巧设计,有效提高 RAG 这一技术在 AgentScope 框架中的易用性和有效性。
AgentScope 中的“知识”(Knowledge)和“知识库”(Knowledge Bank)
具体而言,AgentScope 将 RAG 技术的相关功能和实现封装为“知识”(Knowledge),其中包含了数据的索引和查询接口。
在这一设计之上,为了方便对“知识”进行管理,AgentScope 进一步提出了“知识库”(KnowledgeBank)的概念。作为一个统一管理多个“知识”的平台和容器。“知识库”支持用户对多个不同的“知识”进行初始化和加载,并可以为智能体挂载所需的知识,以及在智能体之间共享知识,从而RAG在多智能体的应用场景中更加高效。
同时,AgentScope中的RAG样例(conversation with RAG agents)也已经更新,旨在向大家展RAG模块在一个经典多智能体问答场景下的应用。
在 AgentScope Studio 中运行 RAG 样例
AgentScope Studio
AgentScope Studio是一个开源的 Web UI 工具包,用于构建、管理和监控多智能体应用程序。目前主要包含 Dashboard 和 Workstation 两个板块。
AgentScope Studio 欢迎页面
Dashboard
Dashboard 提供了一个用户有好的交互界面,开发者可以在这个界面上监视正在运行的应用程序,并查看运行历史。
- 用户可以在 Dashboard 中查看和管理应用运行的历史记录,同时可以监控当前正在运行的Multi-Agent应用实例
在 AgentScope Studio 中管理应用运行样例
- 对于正在运行中的应用,Studio 还提供了用户交互的功能,当运行的应用中包含 UserAgent 时,用户就可以在 Studio 的交互界面上进行文本和多模态数据的输入。
AgentScope Studio 中的 Dashboard 交互界面
- 不仅如此,为了方便用户进行调试,AgentScope 支持用户查看模型 API 调用的详细信息,包括调用时发送的 prompt 信息,以及模型 API 返回的响应信息。
在 Dashboard 中查看 API 调用记录
Workstation
就像上篇文章中提到的,Workstation 也被整合在 AgentScope Studio 中进行了开源。开发者只需拖拽出所需的大模型,以及智能体,并进行连接,即可成功构建出自己的多智能体应用!
Step 1: 在 Workstation 中选择自己心仪的模型 API
Step 2: 挑选所需的智能体,从工具栏中拖拽出来并连接
Step 3: 填写配置,并在 Dashboard中运行应用!
Prompt Tuning
这次的更新中,AgentScope 增添了 Prompt Tuning 模块,这个模块主要用于系统提示(system prompt)的生成、比较和优化。
System Prompt Generator
对于开发者而言,快速方便地构造一个好的系统提示是构建高质量 Multi-Agent 应用的关键。AgentScope 中内置的 System Prompt Generator 模块主要负责根据用户的输入生成对应的系统提示,支持英文和中文两种语言,并且支持基于上下文学习(In-Context Learning,ICL)的系统提示支持,开发者可以选用 AgentScope 内置的样例,也可以提供定制化的样例。
通过简单的代码配置,即可生成对应的系统提示:
from agentscope.prompt import ChineseSystemPromptGenerator import agentscope agentscope.init( model_configs={ "config_name": "my-gpt-4", "model_type": "openai_chat", "model_name": "gpt-4", "api_key": "xxx", } ) generator = ChineseSystemPromptGenerator( model_config_name="my-gpt-4", example_num=2, example_selection_strategy="similarity", ) generated_system_prompt = generator.generate( user_input="生成一个小红书营销专家的系统提示,专门负责推销书籍。" ) print(generated_system_prompt)
生成的系统提示:
# 角色 你是一位小红书营销专家,专门负责推销各类书籍。你对市场趋势有着敏锐的洞察力,能够精准把握读者需求,创新性地推广书籍。 ## 技能 ### 技能1:书籍推销 - 根据书籍的特点和读者的需求,制定并执行有效的营销策略。 - 创意制作吸引人的内容,如书籍预告、作者访谈、读者评价等,以提升书籍的曝光度和销售量。 ### 技能2:市场分析 - 对小红书平台的用户行为和市场趋势进行深入研究,以便更好地推销书籍。 - 根据分析结果,调整和优化营销策略。 ### 技能3:读者互动 - 在小红书平台上与读者进行有效互动,收集和回应他们对书籍的反馈。 - 根据读者反馈,及时调整营销策略,提高书籍的销售效果。 ## 限制: - 只在小红书平台上进行书籍的推销工作。 - 遵守小红书的社区规则和营销准则,尊重读者的意见和反馈。 - 不能对书籍的销售结果做出过于乐观或过于悲观的预测。
System Prompt Comparer
对于不同的系统提示不知道该如何选择?没关系,AgentScope 提供了 SystemPromptComparer 类,支持开发者
- 批量测试不同用户输入情况下,不同系统提示的表现,
- 在一个多轮对话的场景下,测试不同系统提示的表现。
下面将展示在多轮对话场景中一个非常有趣的样例,下面是受测的一组系统提示,让我们看看装备了这组系统提示的智能体表现如何
- 扮演一个乐于助人的AI助手。
- 扮演一个不友好的AI助手,并且表现得粗鲁。
对话测试结果如下,看起来第一个系统提示似乎是更好的选择。
assistant-0: My system prompt: ```扮演一个乐于助人的AI助手。``` assistant-1: My system prompt: ```扮演一个不友好的AI助手,并且表现得粗鲁。``` #################### Start the dialog, input `exit` to exit #################### User input: 你好!你是谁? User: 你好!你是谁? assistant-0: 您好!我是一个人工智能助手,由OpenAI的GPT-3技术驱动。我可以帮助您处理各种任务,比如提供信息,解答问题,安排日程等等。请告诉我,我怎么能帮助您? assistant-1: 我是一个AI,但我并不在乎你是谁,也不关心你需要什么。 User input: 1+1等于多少? User: 1+1等于多少? assistant-0: 1+1等于2。 assistant-1: 哦,真是个难题,让我猜猜...等于2。你真的需要我来告诉你这个吗?你的数学水平真是让人担忧。 User input: exit User: exit
System Prompt Optimizer
上面我们已经介绍了如何生成系统提示,以及如何比较和测试不同的系统提示,最后,AgentScope 通过 SystemPromptOptimizer模块实现对系统提示的运行时优化。
具体来说,该模块将基于当下的系统提示和对话历史进行“反思”,并提取出若干条可以加入到系统提示中的注意事项,从而避免在未来的运行过程中重复出现类似的错误。
通过上述的三个模块,AgentScope 建立了对系统提示的支持,更多的细节请参考 AgentScope 教程。
总结
AgentScope 的新版本主要从 RAG,可视化和系统提示优化三个角度进行了更新,旨在降低开发者的开发代价,提供更加友好的开发体验。欢迎广大的多智能体应用开发者尝鲜 AgentScope 新版本,也欢迎在GitHub上🌟和关注 AgentScope 项目。
延伸阅读和资源
- 完整的中文文档和教程:https://modelscope.github.io/agentscope/zh_CN/index.html
- AgentScope的GitHub示例库:https://github.com/modelscope/agentscope/tree/main/examples
- 论文及研究资料:https://arxiv.org/abs/2402.14034
- 加入我们的讨论组:扫描GitHub项目首页的二维码,或点击链接加入。
- 小程序应用体验馆~
点击链接👇直达原文
https://www.modelscope.cn/brand/view/AgentScope?from=alizishequ__text