基本介绍
Agently 是一款应用开发框架,开发者可以通过在代码中直接使用和构建 AI 代理的方式,快速构建 AI 代理原生应用程序。对于开发者来说,创建一个 AI 代理实例并与之交互的过程,就好像在极少量代码中调用函数一样简单。
Agently 的主要特性如下:
Agently 的目标是成为友好的开发框架,主要有以下几个方面的内涵:
Agently 构建的代理结构如下图所示:
开源地址:https://github.com/Maplemx/Agently
官网地址:https://agently.cn/index.html
模型支持:https://agently.cn/guides/model_settings/index.html
工作流:https://agently.cn/guides/workflow/index.html
创始人:莫欣(先生)
安装方法
Agently 的安装极其简单,只需要在终端命令行中执行以下命令,等待 Python 包安装完成即可。
pip install -U Agently
🔔 pip 版本需要满足一定要求,若遇到安装问题请先升级 pip 版本
🔔 升级命令:python3 -m pip install --upgrade pip
输出信息:Successfully installed pip-24.2
使用方法(示例)
1、生成内容
import Agently
'''
创建 Agent 实例
'''
agent = (
Agently.create_agent()
.set_settings("current_model", "ZhipuAI")
.set_settings("model.ZhipuAI.auth", { "api_key": "your_api_key" })
)
'''
基础请求示例
'''
result = (
agent
.input("为我输出5个单词和3个句子")
.instruct("输出语言", "中文")
.output({
"单词": [("str", )],
"句子": ("list", ),
})
.start()
)
print(result)
# 输出如下:
{'单词': ['书籍', '音乐', '快乐', '创新', '和平'], '句子': ['我喜欢阅读各种各样的书籍。', '音乐是我生活中不可或缺的部分。', '快乐是一种心态,也是一种选择。']}
可以看到,在创建 Agent 实例时笔者指定语言模型为 ZhipuAI(智谱清言),并提供可用的 API KEY,然后通过 Agent 实例发出基础请求以调用智谱清言 API 的能力,最终自动生成所需内容(即以中文输出 5 个单词、3 个句子)。
智谱清言 API KEY 获取地址:
https://open.bigmodel.cn/usercenter/apikeys
2、聊天互动
import Agently
agent_factory = Agently.AgentFactory()
agent_factory\
.set_settings("current_model", "ZhipuAI")\
.set_settings("model.ZhipuAI.auth", { "api_key": "your_api_key" })
agent = agent_factory.create_agent()
agent.active_session()
while True:
user_input = input("[用户]: ")
if user_input == "#exit":
print("Bye")
break
print("[AGENT]: ", end="")
agent\
.input(user_input)\
.on_delta(lambda data: print(data, end=""))\
.start()
print("")
3、分析日志
import Agently, os
agent_factory = Agently.AgentFactory()
agent_factory\
.set_settings("current_model", "ZhipuAI")\
.set_settings("model.ZhipuAI.auth", { "api_key": "xxx" })
agent = agent_factory.create_agent()
agent.active_session()
os.system("kubectl describe no > /data/gitlab/node.log")
with open('/data/gitlab/node.log', 'r') as f:
user_input = f.read() + '\n分析以上信息中是否存在异常,若存在异常请给出解决方案'
print("[AGENT]: ", end="")
agent\
.input(user_input)\
.on_delta(lambda data: print(data, end=""))\
.start()
print("\n")
以上脚本可以结合 Crontab 计划任务,定期获取 Kubernetes 集群的节点详情写入日志文件,然后由 Agent 代理调用智谱清言 API 分析日志信息是否存在异常,并给出解决方案。后续还可以通过发送邮件等方式进行告警,有效缩短运维人员分析日志、解决问题的时间。
更多使用方法及实战案例详见:
https://github.com/Maplemx/Agently/tree/main/playground