官方文档:[Agently中文官网](http://www.agently.cn/),包含最新的模型切换、AgenticRequest、Workflow等教程文档。
GitHub项目:[Agently GitHub](https://github.com/AgentEra/Agently),可以查看项目的源代码和示例。
Agently开发框架的使用教程:
安装
在终端命令行中执行以下命令来安装Agently:
pip install -U Agently
基础使用示例
以下是一个简单的示例,展示如何使用Agently创建一个AI代理并进行交互:
import Agently
# 创建一个Agent实例
agent = Agently.create_agent()
# 设置当前使用的模型为OpenAI
agent.set_settings("current_model", "OpenAI")
# 设置OpenAI模型的认证信息
agent.set_settings("model.OpenAI.auth", { "api_key": "你的OpenAI API密钥" })
# 向代理发送输入请求并获取结果
result = agent.input("Give me 3 words").output([("String", "one word")]).start()
print(result)
高级功能示例
1. 模型切换
Agently支持多种主流模型的无感切换,可以根据需要轻松更改模型而不影响业务逻辑。例如,将模型切换为Claude:
agent.set_settings("current_model", "Claude")
agent.set_settings("model.Claude.auth", { "api_key": "你的Claude API密钥" })
2. 工作流编程
可以使用Agently的工作流功能来处理复杂的任务流程。以下是一个示例:
workflow = Agently.create_workflow()
# 定义工作流步骤
workflow.add_step("step1", agent.input("任务第一步").output(...))
workflow.add_step("step2", agent.input("任务第二步").output(...))
# 执行工作流
workflow.start()
3. 结构化数据交互
Agently允许与代理进行结构化数据的交互,方便处理复杂的数据格式。例如:
result = agent.input("为我输出5个单词和3个句子").output({
"单词": [("str", )],
"句子": ("list", ),
}).start()
print(result)
3. 创建工作流实例
定义了一个简单的工作流,包含两个任务 prepare_data
和 echo
,并指定了它们的执行顺序。通过 Agently 框架,可以方便地管理和可视化工作流,适合用于构建复杂的 AI 应用场景。
workflow = Agently.Workflow()
这里创建了一个工作流对象 workflow
,用于定义和管理任务之间的执行流程。
4. 定义任务:prepare_data
@workflow.chunk()
def prepare_data(inputs, storage):
input_data = inputs["default"]
return input_data
-
@workflow.chunk()
是一个装饰器,用于将函数标记为工作流中的一个任务。 -
prepare_data
函数接收两个参数:inputs
(输入数据)和storage
(存储对象,用于在任务之间传递数据)。 -
函数从
inputs
中获取默认输入数据,并将其返回。返回的数据可以被传递给下一个任务。
5. 定义任务:echo
@workflow.chunk()
def echo(inputs, storage):
print(inputs["default"])
return storage.get("saved_data")
-
同样使用
@workflow.chunk()
装饰器标记为工作流任务。 -
echo
函数接收inputs
和storage
参数。 -
它首先打印
inputs
中的默认数据。 -
然后从
storage
中获取saved_data
并返回。这可能是之前任务存储的数据,或者是一个默认值。
6. 定义工作流的执行顺序
(
workflow
.connect_to("prepare_data")
.connect_to("echo")
.connect_to("END")
)
-
使用链式调用的方式定义任务的执行顺序。
-
connect_to("prepare_data")
表示工作流从prepare_data
任务开始。 -
connect_to("echo")
表示在prepare_data
任务完成后,执行echo
任务。 -
connect_to("END")
表示工作流在echo
任务完成后结束。
7. 可视化工作流
workflow.draw(type="img")
-
调用
draw
方法以图像形式可视化工作流的结构。 -
参数
type="img"
指定输出类型为图像,方便开发者直观地看到工作流的任务连接关系。