MOFA: 你好,世界!

文摘   2024-09-30 23:14   四川  

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智能体

  1. 智能体主脚本:hello_world.yml

# 版权所有 (C) 2024 The XLang Foundation# # 根据Apache许可证2.0版("许可证")授权许可。
--- name: hello_world_app # 应用的名称为 hello_world_apptype: compositeAgent # 定义类型为复合代理(compositeAgent)version: 1.0 # 版本号为 1.0description: "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"的一个对话智能体。

  1. 大语言模型调用配置脚本: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_pooltype: llmPool # 类型:llmPool(大语言模型调用池)version: 1.0 # 版本号:1.0description: "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应用程序员们能练就强大的魔法!

魔法师召唤:GOSIM CHINA 2024 超级智能体黑客马拉松编程大赛报名啦

睿类文特
岂能尽得真实,但求更明道理。为睿智的您综合和深入地解读人工智能、互联网和IT领域的事儿,成为您与科技最前沿之间的桥梁。