GOSIM超级智能体大赛日渐临近(欢迎大家报名),我们的MoFA智能体编程框架也将随之发布。今天,我们掀起MoFA面纱的一角,来介绍一下如何用MoFA来写一个最简单的智能体:Hello, World!
程序员们都知道,hello_world程序通常是一个简单的计算机程序,它的功能就是向控制台打印类似于“Hello,World!”的消息。Hello World程序的编译执行也是做健全性检查的一个手段,hello_world跑通了意味着计算机软件已正确安装,配置,可以开始编写更复杂的程序了。
虽然MoFA并不是一门编程语言,而是建立在Python, XLang等语言上的AI智能体的编程框架。虽然AI智能体软件的编程模式与传统编程相比出现了很大的不同,我们还是想用这个程序员们“你懂的”方式介绍MoFA,并向编程语言和程序员们致敬
hello_world MoFA智能体主要可以通过配置三个YAML文件即可完成。对于资深程序员而言,YAML配置可能并不是真正的编程方式,MoFA还提供了Python和XLang语言包供程序员编程实现智能体应用。请容另文介绍。
前提条件:MoFA的安装
MoFA项目在GitCode和GitHub代码仓开放源代码。其安装指令可以到代码仓https://gitcode.com/moxin-org/mofa/获得。虽然现在的安装方式还没有达到极简的程度,但对于参加超级智能体大赛的选手们而言,每个选手都会得到一个预先安装好软件的云容器和MoFA编程环境。选手可以略过安装的步骤,直接编程。
用配置YML的方法构建hello_world智能体
智能体主脚本:hello_world.yml
# 版权所有 (C) 2024 The XLang Foundation
#
# 根据Apache许可证2.0版("许可证")授权许可。
---
name: hello_world_app # 应用的名称为 hello_world_app
type: compositeAgent # 定义类型为复合代理(compositeAgent)
version: 1.0 # 版本号为 1.0
description: "Hello World app" # 对应用的简短描述
imports:
- file: "llm_pool.yml" # 导入外部文件 llmPool.yml,配置大语言模型API。
nodes:
- name: SimpleAgent # 定义一个名为 SimpleAgent 的节点
type: agent # 该节点的类型为代理(agent)
model: deepseek-ai/DeepSeek-V2-Chat # 使用的模型为 deepseek-ai/DeepSeek-V2-Chat
description: "hello world agent" # 对该代理的简短描述
prompts:
- name: Hello_World_Agent # 定义一个名为 Hello_World_Agent 的提示
role: assistant # 该提示的角色为助手(assistant)
content: 你是一个智能助手,无论用户输入什么内容或提出什么问题,无论上下文为何,你都只回复 "Hello World"。不要提供额外的解释、建议或信息,只返回 "Hello World"。 # 该提示的内容
inputs:
- name: input1 # 输入定义,输入名为 input1
outputs:
- name: output1 # 输出定义,输出名为 output1
以上就是一个无论你问是什么,都会坚持回答你“Hello World"的一个对话智能体。
大语言模型调用配置脚本:llm_pool.yml
在llm_pool.yml中,配置agent使用的大语言模型API。在主脚本hello_world.yml中被导入。
# 版权声明 (C) 2024 The XLang Foundation
#
# 根据 Apache License 2.0 版本 (以下简称 “许可证”) 获得授权;
---name: my_llm_pool # 池名称:my_llm_pool
type: llmPool # 类型:llmPool(大语言模型调用池)
version: 1.0 # 版本号:1.0
description: "llm pool" # 描述:大语言模型调用池
varibles: # 变量部分定义
- name: deepseek_key
value: $keystore$
description: "deepseek API 密钥" # deepseek 的 API 密钥
llm_pool: # 大语言模型调用池的配置
- name: deepseek_001
tag: deepseek
content_type: "application/json" # 内容类型:JSON
url: https://api.siliconflow.cn/v1/chat/completions # deepseek API 的 URL
headers:
Authorization: Bearer ${deepseek_key} # 使用 deepseek 密钥的请求头
这样即完成了通过配置YAML文件的方法构建一个Hello World MoFA智能体。
运行Hello World智能体应用
通过MoFA的xMind Web Executor,可以运行MoFA的智能体应用。
如下面的例子,在MoFA Web Server的config.yml文件的RootAgents
根智能体配置下,加入HelloWorld
智能体的相关配置信息(见代码第18,19行),在命令行控制台运行xmind,即可在本地启动Web Server,并可以在浏览器里开始与HelloWorld智能体互动:无论您的输入是什么,它都以“Hello World“作答。
3. 智能体Web运行脚本:config.yml
# 版权声明 (C) 2024 The XLang Foundation
#
# 根据 Apache License 2.0 版本 (以下简称 “许可证”) 获得授权;
---
XlangStartDebuger: true # 是否启动 Xlang 调试器
XlangStartPythonDebuger: false # 是否启动 Python 调试器
Log:
OutputLevel: 79999 # 日志输出级别
MBSize: 10 # 日志文件的最大大小(单位:MB)
WebServer: # Web 服务器配置
Port: 9901 # 服务器端口号
ServiceEntry: ../Service/main.x # 服务入口文件路径
RootAgents: # 根智能体配置
- name: HelloWorld # 根智能体名称:HelloWorld
file: ../Examples/HelloWorld/hello_world.yml # 关联的 YAML 文件路径
- name: QAJudge # 其他根智能体名称
file: ../Examples/Simple/two_simples.yml # 关联的 YAML 文件路径
- name: ConversationalFlowOrchestrator # 其他根智能体
file: ../Examples/Routing/ConversationalFlowOrchestrator.yml # 关联的 YAML 文件路径
以下就是浏览器中的MoFA智能体交互界面。
hello_world MoFA志愿者活动
9月27日,在李龙江教授实验室的支持下,我们在电子科技大学进行了第一次的MoFA小规模实测,模拟进行Super Agent大赛。三位同学试用了MoFA,通过编程和配置的方式构建AI Agents。同学们积极、认真地忙碌了一下午,成功构建了智能体应用。
图:电子科大的同学们正在打MoFA Super Agent模拟大赛
你好,世界! 你好,程序员!希望MoFA帮助AI应用程序员们能练就强大的魔法!