极致顺滑的AI应用开发心流体验,原来AI应用开发可以这么简单
易用、灵活、高效
用3.5+级别的低价模型平替原本只能用GPT-4完成的工作,成本立减99%
支持各类主流模型随意切换不冲击业务逻辑,帮助开发者提升模型输出控制能力
代码级编排复杂工作流,构建复杂AI应用场景
符合工程开发直觉的开发语法设计打磨,让开发者专注在业务表达,屏蔽无关思考,文思泉涌,根本停不下来
框架特性
-
AnyModel 任意模型无感切换
-
与应用代码表达解耦,任意切换基础模型不冲击业务逻辑
-
支持海量主流商用模型API、本地私有化部署模型
-
支持多模型混用协同,不同模型分工处理复杂问题
-
支持各类模型流式输出、协程异步请求,方便工程复杂编排
-
-
AgenticRequest 增强模型输出控制能力
-
遵循工程开发习惯设计的模型请求语法,直观易用符合直觉
-
强大的模型输出控制能力,结构化数据输出成功率超过90%
-
支持意图识别、思维链、角色控制、知识插入等应用场景
-
无需特殊接口即可获得工具调用、ReAct等高级能力
-
-
Workflow 强大又易用的工作流编程方案
-
精心打磨的工作流编程开发语法,紧跟思路开发顺畅不卡壳
-
支持环状结构、并行分支、条件分发等复杂工作流结构
-
支持数据块间时序传递、工作流全局传递、跨工作流传递
-
对比知名AI开发框架友商,能力毫不逊色甚至更强
-
-
Agently Instant 兼顾结构化输出和流式输出
-
让流式输出和结构化输出二者可以兼得!
-
在多分支复杂任务中,输出即可用,快人一步,执行效率提升高达55%
-
提供监听器和Generator不同模式,兼容适配不同开发场景
-
精心设计的定位语法配合Agently Output结构化控制能力,追踪复杂结构任意位置的键值
-
代码示例
运行结果
嗨,Max!编程就像是在创造一个故事或者一个世界,不过用的是计算机能理解的“语言”。编程可以做很多有趣和有用的事情哦:
1. **创造游戏**:就像你玩的“我的世界”和“模拟城市”,这些游戏都是通过编程来创造的。你可以用编程来设计自己的游戏,决定游戏里面的规则和故事。
2. **解决问题**:编程能帮助解决数学问题,比如计算你的成绩或者帮你理解数学概念。
3. **制作动画和电影**:你看过动画片吗?很多动画电影和电视节目都是用特殊的编程软件制作的,让角色动起来。
4. **控制机器人**:如果你喜欢去动物园,想象一下如果你能通过编程控制一个机器人,让它去探索动物的生活,是不是很有趣?
5. **网站和应用程序**:像你浏览的网页,或者玩的游戏,都是程序员用编程语言创造出来的。
6. **学习新事物**:编程能帮你通过类比学习新概念,比如你可以把编程比作是搭建一个游乐场,每条代码就像是你用的积木,一块一块搭建成一个完整的游乐场。
7. **分享故事**:如果你喜欢听故事,编程也可以帮你把故事变成互动的形式,让故事更加生动有趣。
编程就像是一种魔法,能把你脑海中的想象变成现实。怎么样,是不是很酷?
运行结果
Agently是一个帮助大语言模型(LLM)应用开发者快速构建AI agent原生应用的开发框架。
它允许插件开发者将插件打包在框架主包之外,并单独分享他们的插件包给其他开发者。
开发者只需要下载插件包,将文件解压到他们的工作文件夹中,然后轻松安装插件。
Agently还提供了创建和管理基于大语言模型的Agent实例的功能,并能管理他们的人设和记忆,适用于客服机器人、角色扮演机器人等应用。
此外,Agently还不断更新版本,为开发者提供更多便利的功能和工具。
更多信息可以参考Agently的GitHub官方仓库:[Agently](https://github.com/AgentEra/Agently)
%%{ init: { 'flowchart': { 'curve': 'linear' }, 'theme': 'neutral' } }%%
%% Rendered By Agently %%
flowchart LR
classDef chunk_style fill:#fbfcdb,stroke:#666,stroke-width:1px,color:#333;
classDef condition_chunk_style fill:#ECECFF,stroke:#9370DB,stroke-width:1px,color:#333;
classDef loop_style fill:#f5f7fa,stroke:#666,stroke-width:1px,color:#333,stroke-dasharray: 5 5
START("START"):::chunk_style -.-> |"#42; -->-- default"| user_input("user_input"):::chunk_style
user_input("user_input"):::chunk_style -.-> |"#42; -->-- default"| f2ae2b1d-7d5a-5790-ae34-89c833ac5088::chunk::7{{"Condition"}}:::condition_chunk_style
f2ae2b1d-7d5a-5790-ae34-89c833ac5088::chunk::7{{"Condition"}}:::condition_chunk_style -.-> |"#42; -- ◇ -- default"| goodbye("goodbye"):::chunk_style
goodbye("goodbye"):::chunk_style -.-> |"#42; -->-- default"| get_all_chat_history("get_all_chat_history"):::chunk_style
get_all_chat_history("get_all_chat_history"):::chunk_style -.-> |"#42; -->-- default"| END("END"):::chunk_style
f2ae2b1d-7d5a-5790-ae34-89c833ac5088::chunk::7{{"Condition"}}:::condition_chunk_style -.-> |"#42; -- ◇ -- default"| assistant_reply("assistant_reply"):::chunk_style
user_input("user_input"):::chunk_style -.-> |"#42; -->-- user_input"| update_chat_history("update_chat_history"):::chunk_style
assistant_reply("assistant_reply"):::chunk_style -.-> |"#42; -->-- assistant_reply"| update_chat_history("update_chat_history"):::chunk_style
update_chat_history("update_chat_history"):::chunk_style -.-> |"#42; -->-- default"| user_input("user_input"):::chunk_style
运行结果
Instant模式输出:
2024-11-03 02:20:01.650752 words.[].$delta [0] cat
2024-11-03 02:20:01.831325 words.[].$delta [1] mouse
2024-11-03 02:20:01.835427 words.[] [0] cat
2024-11-03 02:20:01.849140 words.[].$delta [2] run
2024-11-03 02:20:01.850624 words.[] [1] mouse
2024-11-03 02:20:01.912867 words [] ['cat', 'mouse', 'run']
2024-11-03 02:20:01.913157 words.[] [2] run
2024-11-03 02:20:01.962901 sentence.$delta [] The
2024-11-03 02:20:01.980559 sentence.$delta [] cat
2024-11-03 02:20:01.998184 sentence.$delta [] chased
2024-11-03 02:20:02.015376 sentence.$delta [] the
2024-11-03 02:20:02.032466 sentence.$delta [] mouse
2024-11-03 02:20:02.050336 sentence.$delta [] as
2024-11-03 02:20:02.088583 sentence.$delta [] it
2024-11-03 02:20:02.091482 sentence.$delta [] ran
2024-11-03 02:20:02.102013 sentence.$delta [] for
2024-11-03 02:20:02.118886 sentence.$delta [] its
2024-11-03 02:20:02.136612 sentence.$delta [] life
2024-11-03 02:20:02.154099 sentence.$delta [] .
2024-11-03 02:20:02.258635 sentence [] The cat chased the mouse as it ran for its life.
2024-11-03 02:20:02.556008 numbers.[] [0] {'value': 123}
2024-11-03 02:20:02.556662 numbers.[].value [0] 123
2024-11-03 02:20:02.747380 numbers.[] [1] {'value': 456}
2024-11-03 02:20:02.748144 numbers.[].value [1] 456
2024-11-03 02:20:02.938182 numbers.[] [2] {'value': 789}
2024-11-03 02:20:02.938688 numbers.[].value [2] 789
2024-11-03 02:20:03.483925 [] {'words': ['cat', 'mouse', 'run'], 'sentence': 'The cat chased the mouse as it ran for its life.', 'numbers': [{'value': 123}, {'value': 456}, {'value': 789}, {'value': 101112}]}
2024-11-03 02:20:03.484688 numbers [] [{'value': 123}, {'value': 456}, {'value': 789}, {'value': 101112}]
2024-11-03 02:20:03.485579 numbers.[] [3] {'value': 101112}
2024-11-03 02:20:03.486465 numbers.[].value [3] 101112
最终Result:
2024-11-03 02:20:03.490869 {'words': ['cat', 'mouse', 'run'], 'sentence': 'The cat chased the mouse as it ran for its life.', 'numbers': [{'value': 123}, {'value': 456}, {'value': 789}, {'value': 101112}]}