前言

前期的文章中,我们介绍了如何使用 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 中进行了开源。开发者只需拖拽出所需的大模型,以及智能体,并进行连接,即可成功构建出自己的多智能体应用!

image

Step 1: 在 Workstation 中选择自己心仪的模型 API

image

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 类,支持开发者

  • 批量测试不同用户输入情况下,不同系统提示的表现,
  • 在一个多轮对话的场景下,测试不同系统提示的表现。

下面将展示在多轮对话场景中一个非常有趣的样例,下面是受测的一组系统提示,让我们看看装备了这组系统提示的智能体表现如何

  1. 扮演一个乐于助人的AI助手。
  2. 扮演一个不友好的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

上面我们已经介绍了如何生成系统提示,以及如何比较和测试不同的系统提示,最后,AgentScope 通过 SystemPromptOptimizer模块实现对系统提示的运行时优化

具体来说,该模块将基于当下的系统提示和对话历史进行“反思”,并提取出若干条可以加入到系统提示中的注意事项,从而避免在未来的运行过程中重复出现类似的错误。

通过上述的三个模块,AgentScope 建立了对系统提示的支持,更多的细节请参考 AgentScope 教程。

总结

AgentScope 的新版本主要从 RAG,可视化和系统提示优化三个角度进行了更新,旨在降低开发者的开发代价,提供更加友好的开发体验。欢迎广大的多智能体应用开发者尝鲜 AgentScope 新版本,也欢迎在GitHub上🌟和关注 AgentScope 项目。

延伸阅读和资源

 

点击链接👇直达原文

https://www.modelscope.cn/brand/view/AgentScope?from=csdnzishequ_text

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐