AgentEra/Agently

[GenAI Application Development Framework] 🚀 Build GenAI application quick and easy 💬 Easy to interact with GenAI agent in code using structure data and chained-calls syntax 🧩 Use Event-Driven Flow *TriggerFlow* to manage complex GenAI working logic 🔀 Switch to any model without rewrite application code

Agently – 生产就绪的 AI 应用运行时

它是什么 – 一个 Python 库,为您提供一种结构化、可观测且重启安全的方式来构建 AI 驱动的服务(助手、副驾驶、工作流 API 等)。它位于大语言模型和您的业务代码之间,将单个模型调用转化为功能完整的运行时单元,包括:

  • 类型化的请求/响应契约 – 您使用 .output(...) 预先声明预期的 JSON 模式;框架会为您验证、重试和提取字段。
  • 带部分结构的流式传输 – instant 模式在每个字段被填充时发出事件,因此 UI 或下游工作流可以在整个响应完成之前做出反应。
  • 操作/工具 – 函数(Python、shell、Node、SQLite、MCP 服务器、沙盒运行时)被注册为 Actions,模型可以调用它们,并带有完整的日志和可观测性。
  • 技能 – 不可变的、版本化的指导片段,可以附加到执行中,而不会隐藏在模型内部。
  • 执行资源 – 可复用的运行时环境(浏览器、沙盒、gVisor 等),由工作流延迟启动并拥有。
  • TriggerFlow 编排 – 一个信号驱动的工作流引擎,支持暂停/恢复、子流程、事件扇出和持久化快照。
  • 动态任务 – 将模型生成的 DAG 数据转化为经过验证的、可观测的任务图。

适用人群 – 构建可靠 AI 服务的产品工程师、需要明确模型提供商和工具扩展点的平台团队,以及希望有明确契约和可调试执行而不是临时提示词粘合的技术负责人。

关键概念

概念 作用 README 中的示例
AgentExecution 拥有单个模型调用、其提示槽、选定的操作/技能以及结果数据的运行时单元。 agent.input(...).output(...).get_result()
结构化请求 从命名槽构建的提示;使用 .output({"field": (type, description, required)}) 声明输出模式。 agent.role(...).info(...).instruct(...).input(...).output({...})
即时流式传输 在模型仍在生成令牌时发出 event.path 更新,支持 UI 更新或工作流信号。 for event in result.get_generator(type="instant"):
操作 模型可以请求的可调用对象(Python、shell、Node、MCP 等);日志附加到执行结果上。 @agent.action_func def calculate_total(...):
技能 可绑定到执行而本身不执行的版本化指导库。 Agently.skills_executor(只读)
执行资源 管理工作流生命周期内的外部运行时(浏览器、沙盒、gVisor、SQLite)。 Execution Resource providers manage reusable resources such as MCP processes, browser sessions…
TriggerFlow 事件驱动的工作流引擎,支持暂停/恢复、子流程和持久化快照。 TriggerFlow supports events, fan-out, runtime streams, pause/resume, save/load…
动态任务 将模型生成的 DAG 数据转换为经过验证的任务图,可以逐步执行。 Agently.create_dynamic_task(...)

如何使用(README 中的快速开始)

  1. 安装 – pip install -U agently。
  2. 配置模型提供商 – 例如,通过 Agently.set_settings("OpenAICompatible", {...}) 配置 DeepSeek 或本地 Ollama 端点。
  3. 创建代理 – agent = Agently.create_agent()。
  4. 声明提示和输出模式 – 链式调用 .role()、.info()、.input() 和 .output({...})。
  5. 运行 – 调用 .get_result()(或异步变体)以获得带有 get_data()、get_text() 等的 AgentExecutionResult。
  6. 添加操作/技能 – 使用 @agent.action_func 注册 Python 函数,或启用内置帮助器(agent.enable_python()、agent.enable_shell()、…)。
  7. 编排 – 对于长时间运行、信号驱动的工作流,使用 TriggerFlow 或 Dynamic Task API。

为什么选择 Agently 而不是其他替代方案

  • 统一契约 – 切换模型提供商不需要重写业务逻辑;相同的 .output 模式、操作日志和技能绑定保持不变。
  • 内置可观测性 – 操作生成结构化日志,公开流事件,框架提供开发工具用于调试。
  • 生产就绪功能 – 支持重试的输出解析、暂停-恢复工作流快照、资源生命周期管理和显式错误处理。
  • 专注的范围 – 与 LangChain 庞大的集成面不同,Agently 专注于请求/响应契约、工具执行和信号驱动编排,许多生产团队觉得更易于维护。

了解更多 – 文档网站(https://agently.tech/docs)、详细的发布说明 Markdown 文件,以及 examples/ 目录(基本用法、FastAPI 服务、操作运行时、触发流、动态任务等)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目