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 애플리케이션 런타임

정의 – 구조화되고, 관찰 가능하며, 재시작에 안전한 방식으로 AI 기반 서비스(어시스턴트, 코파일럿, 워크플로 API 등)를 구축할 수 있는 Python 라이브러리입니다. 대규모 언어 모델과 비즈니스 코드 사이에 위치하여 단일 모델 호출을 완전한 기능의 런타임 유닛으로 변환합니다.

  • 타입화된 요청/응답 계약 – .output(...)으로 기대하는 JSON 스키마를 사전에 선언합니다. 프레임워크가 검증, 재시도, 필드 추출을 처리합니다.
  • 부분 구조 스트리밍 – instant 모드는 각 필드가 채워질 때마다 이벤트를 발생시켜 UI나 하위 워크플로가 전체 응답이 완료되기 전에 반응할 수 있습니다.
  • 액션/도구 – 함수(Python, 셸, 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, 셸, 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. 모델 제공자 구성 – 예: DeepSeek 또는 로컬 Ollama 엔드포인트를 Agently.set_settings("OpenAICompatible", {...})로 설정.
  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), 상세한 릴리스 노트 마크다운 파일, 및 examples/ 디렉토리(기본 사용법, FastAPI 서비스, 액션 런타임, 트리거 플로우, 동적 작업 등).

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트