Agently

GitHub
1.5k 172 简单 1 次阅读 2天前Apache-2.0语言模型开发框架Agent
AI 解读 由 AI 自动生成,仅供参考

Agently 是一个专为构建生产级生成式 AI(GenAI)应用而设计的开发框架,旨在帮助开发者快速、稳定地打造可维护的 AI 工作流。它主要解决了当前 AI 原型在落地生产环境时常见的工程化难题:例如模型输出格式不稳定导致解析失败、复杂业务逻辑难以编排,以及多轮对话中状态管理混乱等问题。

通过 Agently,开发者可以采用“契约优先”的方式严格约束模型输出,确保数据结构的一致性;利用独特的 TriggerFlow 事件驱动机制,以链式调用语法轻松编排包含条件判断、循环及批处理的复杂流程。此外,它支持无缝切换底层大模型,无需重写核心业务代码,极大提升了系统的灵活性与可维护性。

这款工具非常适合需要构建高可靠性 AI 应用的软件工程师、技术团队及 AI 研究者。无论是从 LangChain 等现有框架迁移,还是从零开始设计多智能体协作系统,Agently 都能提供结构化的开发体验和完善的官方技能库支持,让 AI 应用开发变得更加高效可控。

使用场景

某电商团队正在开发一个自动化“智能售后处理系统”,需要根据用户投诉内容自动判断责任方、生成赔偿方案并调用内部 API 执行。

没有 Agently 时

  • 输出格式不稳定:大模型返回的 JSON 结构经常漂移或缺少关键字段,导致后端解析频繁报错,需编写大量冗余的正则清洗代码。
  • 流程逻辑难以维护:随着业务规则增加(如区分物流破损与质量问题),硬编码的 if-else 嵌套极深,新增分支极易引发回归错误。
  • 多轮对话状态丢失:在需要用户补充证据的复杂场景中,会话上下文管理混乱,常出现忘记前文信息或重复询问的情况。
  • 模型切换成本高:一旦想从成本较低的模型切换到高精度模型,往往需要重写大量提示词适配代码和参数配置。

使用 Agently 后

  • 契约式输出控制:利用 output() 配合 ensure_keys 强制约束返回结构,确保每次都能获得符合后端要求的标准 JSON,彻底消除解析异常。
  • 事件驱动流编排:通过 TriggerFlowto/if/match 语法清晰定义业务流转,将复杂的判定逻辑可视化,新增规则只需添加节点而非重构代码。
  • 原生会话状态管理:内置 Session 机制自动维护多轮交互状态,智能体能够精准记忆用户提供的证据细节,实现流畅的追问与处理。
  • 模型无缝热切换:凭借框架的抽象层,仅需修改配置文件即可在底层切换任意大模型,上层业务逻辑与调用代码无需任何改动。

Agently 通过工程化的控制能力,将不稳定的生成式 AI 转化为可预测、易维护的生产级应用核心。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个用于构建生产级 AI 应用的框架,主要依赖大模型 API(支持 OpenAI 兼容接口),无需本地部署大型模型或特定 GPU 环境。可选安装 agently-devtools 包用于运行时观察和开发工具支持(版本需与 agently 匹配)。
python>=3.10
agently>=4.0.7.2
agently-devtools (可选)
Agently hero image

快速开始

image

Agently 4 🚀

更快地构建生产级 AI 应用,确保输出稳定且工作流易于维护。

英文介绍 | 中文介绍

license PyPI version Downloads GitHub Stars Twitter Follow WeChat


🔥 最新文档 | 🚀 5分钟快速入门 | 💡 核心特性


官方技能

现已发布可安装的 Agently 官方技能,地址如下:

安装后您将获得:

  • 针对实际 Agently 工作的更优实现路由,从单请求设计到 TriggerFlow、多智能体、MCP、工具、会话以及 FastAPI 集成
  • 针对常见生产任务的即用型技能指南,无需在每次编码中重复解释框架概念
  • LangChain 和 LangGraph 的迁移手册,帮助现有智能体系统更快迁移到 Agently
  • 更高质量的编码智能体体验,因为技能包为智能体提供了具体的 Agently 模式、边界和推荐实现路径

📚 快速链接

可选配套包:Agelyt Devtools

agently-devtools 是一个独立的配套包,用于运行时观测和开发者工具。

  • 安装:pip install agently-devtools
  • 依赖方向:agently-devtools -> agently
  • 兼容性:agently-devtools 0.1.x 针对 agently >=4.0.9,<4.1.0
  • 集成入口:ObservationBridgecreate_local_observation_app

DevTools 包是可选的,不会在 agentlyagently-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 服务)则通过商业条款另行提供。

🧭 文档指南(核心路径)

🤝 社区

📄 许可证

Agently 采用开源核心 + 商业扩展的模式:

  • 本仓库中的开源核心:Apache 2.0
  • 商标使用政策:TRADEMARK.md
  • 贡献者权利协议:CLA.md
  • 企业级扩展及商业服务:通过单独的商业协议提供

开始构建您的生产就绪型 AI 应用 →
pip install -U agently

有疑问?请阅读 文档 或加入 社区

版本历史

v4.0.92026/03/28
v4.0.82026/02/22
v4.0.72026/01/08
v4.0.62025/11/10
v4.0.52025/10/09
v4.0.32025/09/16
v4.0.12025/09/12
v4.0.02025/09/11
v4.0.0-beta-32025/08/18
v4.0.0-beta-22025/08/13
v4.0.0-beta-12025/07/19
v3.5.1.22025/06/25
v3.5.1.02025/04/18
v3.5.0.12025/04/06
v3.5.0.02025/03/30
v3.4.2.72025/03/21
v3.4.2.62025/02/19
v3.4.2.32025/02/11
v3.4.2.02025/02/11
v3.4.1.62025/02/08

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

155.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|4天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|4天前
插件Agent图像

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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架