Agently
Agently 是一个专为构建生产级生成式 AI(GenAI)应用而设计的开发框架,旨在帮助开发者快速、稳定地打造可维护的 AI 工作流。它主要解决了当前 AI 原型在落地生产环境时常见的工程化难题:例如模型输出格式不稳定导致解析失败、复杂业务逻辑难以编排,以及多轮对话中状态管理混乱等问题。
通过 Agently,开发者可以采用“契约优先”的方式严格约束模型输出,确保数据结构的一致性;利用独特的 TriggerFlow 事件驱动机制,以链式调用语法轻松编排包含条件判断、循环及批处理的复杂流程。此外,它支持无缝切换底层大模型,无需重写核心业务代码,极大提升了系统的灵活性与可维护性。
这款工具非常适合需要构建高可靠性 AI 应用的软件工程师、技术团队及 AI 研究者。无论是从 LangChain 等现有框架迁移,还是从零开始设计多智能体协作系统,Agently 都能提供结构化的开发体验和完善的官方技能库支持,让 AI 应用开发变得更加高效可控。
使用场景
某电商团队正在开发一个自动化“智能售后处理系统”,需要根据用户投诉内容自动判断责任方、生成赔偿方案并调用内部 API 执行。
没有 Agently 时
- 输出格式不稳定:大模型返回的 JSON 结构经常漂移或缺少关键字段,导致后端解析频繁报错,需编写大量冗余的正则清洗代码。
- 流程逻辑难以维护:随着业务规则增加(如区分物流破损与质量问题),硬编码的
if-else嵌套极深,新增分支极易引发回归错误。 - 多轮对话状态丢失:在需要用户补充证据的复杂场景中,会话上下文管理混乱,常出现忘记前文信息或重复询问的情况。
- 模型切换成本高:一旦想从成本较低的模型切换到高精度模型,往往需要重写大量提示词适配代码和参数配置。
使用 Agently 后
- 契约式输出控制:利用
output()配合ensure_keys强制约束返回结构,确保每次都能获得符合后端要求的标准 JSON,彻底消除解析异常。 - 事件驱动流编排:通过
TriggerFlow的to/if/match语法清晰定义业务流转,将复杂的判定逻辑可视化,新增规则只需添加节点而非重构代码。 - 原生会话状态管理:内置
Session机制自动维护多轮交互状态,智能体能够精准记忆用户提供的证据细节,实现流畅的追问与处理。 - 模型无缝热切换:凭借框架的抽象层,仅需修改配置文件即可在底层切换任意大模型,上层业务逻辑与调用代码无需任何改动。
Agently 通过工程化的控制能力,将不稳定的生成式 AI 转化为可预测、易维护的生产级应用核心。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Agently 4 🚀
更快地构建生产级 AI 应用,确保输出稳定且工作流易于维护。
官方技能
现已发布可安装的 Agently 官方技能,地址如下:
- GitHub:https://github.com/AgentEra/Agently-Skills
- 安装命令:
npx skills add AgentEra/Agently-Skills
安装后您将获得:
- 针对实际 Agently 工作的更优实现路由,从单请求设计到 TriggerFlow、多智能体、MCP、工具、会话以及 FastAPI 集成
- 针对常见生产任务的即用型技能指南,无需在每次编码中重复解释框架概念
- LangChain 和 LangGraph 的迁移手册,帮助现有智能体系统更快迁移到 Agently
- 更高质量的编码智能体体验,因为技能包为智能体提供了具体的 Agently 模式、边界和推荐实现路径
📚 快速链接
- 文档(英文):https://agently.tech/docs
- 文档(中文):https://agently.cn/docs
- 智能体系统手册(英文):https://agently.tech/docs/en/agent-systems/overview.html
- 智能体系统手册(中文):https://agently.cn/docs/agent-systems/overview.html
- 官方 Agelyt 技能:https://github.com/AgentEra/Agently-Skills
- 安装 Agelyt 技能:
npx skills add AgentEra/Agently-Skills
可选配套包:Agelyt Devtools
agently-devtools 是一个独立的配套包,用于运行时观测和开发者工具。
- 安装:
pip install agently-devtools - 依赖方向:
agently-devtools -> agently - 兼容性:
agently-devtools 0.1.x针对agently >=4.0.9,<4.1.0 - 集成入口:
ObservationBridge和create_local_observation_app
DevTools 包是可选的,不会在 agently 和 agently-devtools 之间形成反向依赖。
🤔 为什么选择 Agelyt?
许多 GenAI POC 在生产环境中失败,并非由于模型性能不足,而是因为缺少工程层面的控制:
| 常见挑战 | Agelyt 如何帮助 |
|---|---|
| 输出模式漂移,JSON 解析失败 | 使用 output() + ensure_keys 实现“契约优先”的输出控制 |
| 工作流复杂且难以维护 | 使用 to / if / match / batch / for_each 进行 TriggerFlow 编排 |
| 多轮状态不稳定 | 使用 Session(v4.0.8.1+),支持会话激活、上下文窗口控制、自定义记忆策略及持久化 |
| 工具调用难以审计 | 通过 extra.tool_logs 记录工具日志 |
| 切换模型成本高昂 | 使用 OpenAICompatible 统一模型设置 |
Agelyt 将 LLM 的不确定性转化为稳定、可测试、易于维护的工程系统。
✨ 核心特性
1) 📝 契约优先的输出控制
使用 output() 定义结构,并通过 ensure_keys 强制确保关键字段。
result = (
agent
.input("分析用户反馈")
.output({
"sentiment": (str, "positive/neutral/negative"),
"key_issues": [(str, "问题摘要")],
"priority": (int, "1-5,5为最高")
})
.start(ensure_keys=["sentiment", "key_issues[*]"])
)
2) ⚡ 结构化流式处理(即时)
在生成时即可消费结构化字段。
response = (
agent
.input("解释递归并给出两条建议")
.output({"definition": (str, "一句话"), "tips": [(str, "建议")]})
.get_response()
)
for msg in response.get_generator(type="instant"):
if msg.path == "definition" and msg.delta:
ui.update_definition(msg.delta)
if msg.wildcard_path == "tips[*]" and msg.delta:
ui.add_tip(msg.delta)
3) 🧩 TriggerFlow 编排
可读性强、易于测试的工作流,支持分支和并发。
(
flow.to(handle_request)
.if_condition(lambda d: d.value["type"] == "query")
.to(handle_query)
.elif_condition(lambda d: d.value["type"] == "order")
.to(check_inventory)
.to(create_order)
.end_condition()
)
4) 🧠 Session(多轮上下文,v4.0.8.1+)
内置 SessionExtension,支持 activate_session/deactivate_session、上下文窗口控制、自定义记忆策略以及 JSON/YAML 持久化。
from agently import Agently
agent = Agently.create_agent()
# 按用户激活会话(通过 session_id 复用)
agent.activate_session(session_id="demo_user_1001")
# 可选:按最大长度自动裁剪窗口
agent.set_settings("session.max_length", 12000)
# 可选:自定义策略(分析 -> 调整大小)
session = agent.activated_session
assert session is not None
def analysis_handler(full_context,context_window,memo,session_settings):
if len(context_window) > 6:
return "keep_last_six"
return None
def keep_last_six(full_context,context_window,memo,session_settings):
return None,list(context_window[-6:]),memo
session.register_analysis_handler(analysis_handler)
session.register_resize_handler("keep_last_six",keep_last_six)
5) 🔧 工具调用 + 日志
工具的选择和使用会被记录在 extra.tool_logs 中。
@agent.tool_func
def add(a: int,b: int) -> int:
return a + b
response = agent.input("12+34=?").use_tool(add).get_response()
full = response.get_data(type="all")
print(full["extra"]["tool_logs"])
6) 🌐 统一模型设置(OpenAI兼容)
一份配置即可适配多个服务商及本地模型。
from agently import Agently
Agently.set_settings(
"OpenAICompatible",
{
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-chat",
"auth": "DEEPSEEK_API_KEY",
},
)
🚀 快速入门
安装
pip install -U agently
要求:Python >= 3.10,推荐使用 Agently >= 4.0.7.2
5分钟示例
1. 结构化输出
from agently import Agently
agent = Agently.create_agent()
result = (
agent.input("用一句话介绍 Python,并列出 2 个优点")
.output({
"introduction": (str, "一句话"),
"advantages": [(str, "优点")]
})
.start(ensure_keys=["introduction", "advantages[*]"])
)
print(result)
2. 工作流路由
from agently import TriggerFlow, TriggerFlowEventData
flow = TriggerFlow()
@flow.chunk
def classify_intent(data: TriggerFlowEventData):
text = data.value
if "price" in text:
return "price_query"
if "feature" in text:
return "feature_query"
if "buy" in text:
return "purchase"
return "other"
@flow.chunk
def handle_price(_: TriggerFlowEventData):
return {"response": "定价取决于具体方案..."}
@flow.chunk
def handle_feature(_: TriggerFlowEventData):
return {"response": "我们的产品支持..."}
(
flow.to(classify_intent)
.match()
.case("price_query")
.to(handle_price)
.case("feature_query")
.to(handle_feature)
.case_else()
.to(lambda d: {"response": "您想了解什么呢?"})
.end_match()
.end()
)
print(flow.start("这个要多少钱?"))
✅ 您的应用已准备好上线吗?— 上线准备检查清单
基于使用 Agently 成功交付实际项目的团队经验,这份 生产就绪检查清单 可帮助您在发布前降低常见风险。
| 领域 | 检查项 | 推荐做法 |
|---|---|---|
| 📝 输出稳定性 | 关键接口是否稳定? | 使用 output() 定义模式,并通过 ensure_keys 锁定关键字段。 |
| ⚡ 实时用户体验 | 生成过程中需要实时更新吗? | 使用 type="instant" 的结构化流式事件进行消费。 |
| 🔍 可观测性 | 工具调用可审计吗? | 检查 extra.tool_logs 获取完整的参数和结果。 |
| 🧩 工作流健壮性 | 复杂的工作流是否经过充分测试? | 对每个 TriggerFlow 分支以及并发限制进行单元测试,确保输出符合预期。 |
| 🧠 内存与上下文 | 多轮交互体验是否一致? | 定义会话/记忆摘要、裁剪及持久化策略。 |
| 📄 提示词管理 | 逻辑能否安全演进? | 对提示词进行版本控制和配置,以追踪变更历史。 |
| 🌐 模型策略 | 是否可以切换或降级模型? | 使用 OpenAICompatible 统一配置,实现快速服务商切换。 |
| 🚀 性能与规模 | 能否应对高并发场景? | 在真实的 Web 服务场景中验证异步性能。 |
| 🧪 质量保证 | 回归测试是否完整? | 为核心场景创建固定输入及预期输出的测试用例。 |
📈 谁正在使用 Agently 解决实际问题?
“Agently 帮助我们把评审规则转化为可执行的工作流,并将关键评分准确率稳定在 75% 以上,显著提升了投标评审效率。” — 某大型能源国企项目负责人
“Agently 实现了从澄清到查询规划再到结果呈现的闭环流程,首次响应准确率达到 90% 以上,且生产环境表现稳定。” — 某大型能源集团数据负责人
“借助 Agently 的编排和会话能力,我们快速开发并上线了一款用于课程管理和答疑的教学助理系统,并持续迭代优化。” — 某大学教学助理项目负责人
您的项目也可以成为下一个成功案例。
📢 在 GitHub Discussions 分享您的案例 →
❓ 常见问题解答
问:Agently 与 LangChain 或 LlamaIndex 有何不同?
答: Agently 专为生产环境打造。它专注于稳定的接口(契约优先的输出)、易读易测的编排(TriggerFlow)以及可观察的工具调用(tool_logs)。对于那些在上线后需要可靠性和可维护性的团队来说,Agently 是更合适的选择。
问:支持哪些模型?切换模型的成本高吗?
答: 通过 OpenAICompatible,您可以连接 OpenAI、Claude、DeepSeek、Qwen 等大多数兼容 OpenAI 的 API,以及 Llama/Qwen 等本地模型。同一套业务代码无需修改即可切换模型,从而减少供应商锁定的风险。
问:学习曲线如何?我应该从哪里开始?
答: 核心 API 非常简单——您可以在几分钟内运行第一个代理。建议从 快速入门 开始,然后深入学习 输出控制 和 TriggerFlow。
问:如何部署基于 Agently 的服务?
答: Agently 不会限制您的部署方式。它提供了异步 API 和 FastAPI 示例。FastAPI 集成示例涵盖了 SSE、WebSocket 和标准 POST 请求。
问:是否提供企业级支持?
答: 是的。本仓库中的核心框架仍以 Apache 2.0 协议开源。企业级支持、私有扩展、托管服务以及基于 SLA 的合作,则通过单独的商业协议提供。您可以通过 社区 与我们联系。
问:Agently 的开源版与企业版有何区别?
答: 开源核心包括本仓库中的通用框架和公开功能。而企业版(例如私有扩展包、高级治理模块、私有部署支持以及 SLA 服务)则通过商业条款另行提供。
🧭 文档指南(核心路径)
- 入门
- 输出控制(结构化输出)
- 结果与流式事件
- 会话与记忆
- TriggerFlow 编排
- 概述:https://agently.tech/docs/en/triggerflow/overview.html
- when 分支:https://agently.tech/docs/en/triggerflow/when-branch.html
- if / elif / else:https://agently.tech/docs/en/triggerflow/if-branch.html
- match / case:https://agently.tech/docs/en/triggerflow/match-branch.html
- batch:https://agently.tech/docs/en/triggerflow/batch.html
- for_each:https://agently.tech/docs/en/triggerflow/for-each.html
- 运行时流:https://agently.tech/docs/en/triggerflow/runtime-stream.html
- 工具与扩展
- 提示词管理:https://agently.tech/docs/en/prompt-management/overview.html
- 异步支持与配置:https://agently.tech/docs/en/async-support.html / https://agently.tech/docs/en/settings.html
- 工作手册:https://agently.tech/docs/en/agent-systems/overview.html
🤝 社区
- 讨论区:https://github.com/AgentEra/Agently/discussions
- 问题反馈:https://github.com/AgentEra/Agently/issues
- 微信群:https://doc.weixin.qq.com/forms/AIoA8gcHAFMAScAhgZQABIlW6tV3l7QQf
📄 许可证
Agently 采用开源核心 + 商业扩展的模式:
- 本仓库中的开源核心:Apache 2.0
- 商标使用政策:TRADEMARK.md
- 贡献者权利协议:CLA.md
- 企业级扩展及商业服务:通过单独的商业协议提供
开始构建您的生产就绪型 AI 应用 →
pip install -U agently
版本历史
v4.0.92026/03/28v4.0.82026/02/22v4.0.72026/01/08v4.0.62025/11/10v4.0.52025/10/09v4.0.32025/09/16v4.0.12025/09/12v4.0.02025/09/11v4.0.0-beta-32025/08/18v4.0.0-beta-22025/08/13v4.0.0-beta-12025/07/19v3.5.1.22025/06/25v3.5.1.02025/04/18v3.5.0.12025/04/06v3.5.0.02025/03/30v3.4.2.72025/03/21v3.4.2.62025/02/19v3.4.2.32025/02/11v3.4.2.02025/02/11v3.4.1.62025/02/08常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器