Claude Code 및 12개 다른 코딩 에이전트를 위한 398개의 에이전트 스킬과 플러그인.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
Agently
Agently는 구조화된 출력, 관찰 가능한 Actions, 런타임 Skills, MCP 기능을 갖춘 GenAI 애플리케이션 백엔드 구축을 위한 Python 프레임워크입니다.
- Install
- pip install agently
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-30.
Agently 4.1.4.10 - AI 애플리케이션 런타임 프레임워크
구조화된 출력, 관찰 가능한 Action, 런타임 Skill, MCP 기능, 프로세스 스트림, 복구 가능한 워크플로로 AI 서비스 백엔드를 구축하세요.
English | 中文介绍
Docs · Quickstart · Why Agently · Capabilities · Architecture · Ecosystem
이 README가 대상으로 하는 독자
Agently는 "모델이 한 번은 해낼 수 있다"에서 "애플리케이션이 그것을 안정적으로 해내야 한다"로 넘어가는 팀을 위한 것입니다:
어시스턴트, 내부 코파일럿, 지식 도구, 운영 워크플로, 또는 AI 기반 API를 만드는 프로덕트 엔지니어
모델 제공자, 도구, MCP 서버, 샌드박스, 워크플로, 관찰 가능성에 대한 명확한 확장 지점이 필요한 플랫폼 팀
유지보수성, 명시적 제어, 디버깅 가능성, 프로덕션 인수인계를 기준으로 AI 프레임워크를 비교하는 기술 리드
권장 패턴을 재사용 가능한 프로젝트 가이던스로 인코딩할 수 있는 프레임워크를 원하는 코딩 에이전트 사용자
핵심 설계 질문은 단순합니다: 모델 동작을 유용하게 유지하면서도 애플리케이션 코드에 안정적인 계약, 관찰 가능한 실행, 재시작에 안전한 워크플로 경계를 어떻게 제공할 것인가?
Agently 4.1.4.10은 장기 실행 작업의 파일 전달을 수정하고 FastMCP 3/4를 지원하면서 기존 4.1 API를 유지합니다. 콘텐츠 정확성과 비즈니스 완료 판단은 여전히 애플리케이션 수준의 검토가 필요합니다.
기존의 단일 실행 Agent 구성은 그대로 사용할 수 있습니다:
Action과 Skill은 AgentExecution의 fluent 타이핑, 내장 Execution,
effort, strategy, Action 프로토콜, 동시성 선택지를 IDE에서 제공하며,
안정적인 상호작용, 검토, 최종 검증, 아티팩트 전달 API에 이제
완전한 예제가 제공됩니다. 또한 수락된 재시도 스트림 재생, fail-closed 모델 별칭, 실행 범위 Skill, 프로그래밍 방식 Action 호출, 더 명확한 동시 디버그 출력이 추가되었습니다.
4.1.4.10 릴리스 노트, 4.1.4.9 릴리스 노트, 4.1.4.8 릴리스 노트,
4.1.4.7 릴리스 노트,
4.1.4.6 릴리스 노트,
4.1.4.5 릴리스 노트,
4.1.4.4 릴리스 노트,
4.1.4.3 릴리스 노트, 그리고
4.1.4 릴리스 노트에서
현재 릴리스와 업그레이드 경로를 확인하세요.
Agently를 선택하는 이유
많은 AI 프레임워크는 탐색이나 광범위한 통합 스택 조립에 강합니다. Agently는 모델 애플리케이션이 모델 변경, 출력 드리프트, 스트리밍 UX, 액션 실행, 워크플로 신호, 서비스 경계를 견디도록 만드는 엔지니어링 계층에 최적화되어 있습니다.
Agently는 다음과 같은 점을 중요하게 여길 때 적합합니다:
AI 서비스는 프롬프트 글루가 아니라 런타임 실행이어야 한다 - AgentExecution은 direct, flat, TaskBoard 전략 전반에 걸쳐 한 번의 실행에 대한 프롬프트, 전략, Action, Skill 바인딩, 프로세스 스트림, TaskContext 증거, 결과 뷰를 소유합니다. 4.1.4.8 릴리스 노트, 4.1.4 릴리스 노트, Agent Auto Orchestration 예제를 참고하세요.
모델 전환이 비즈니스 로직을 다시 작성하게 해서는 안 된다 - Agently는 제공자 설정, 프롬프트 슬롯, 응답 파싱, 액션 실행, 응답 읽기를 하나의 요청/런타임 계약으로 정규화합니다. Model Setup, Models Overview, Requests Overview를 참고하세요.
구조화된 출력은 제공자 기능이 아니라 프레임워크 보장이어야 한다 - .output(...) 스키마, 필수 필드 추출, 파서 피드백, 재시도, ensure_keys, ensure_all_keys, 검증 핸들러가 Agently 내부에서 함께 동작합니다. Schema as Prompt, Output Control, examples/basic/의 예제를 참고하세요.
스트리밍은 최종 토큰 이전에 구조를 노출해야 한다 - instant 모드에서는 모델이 여전히 스트리밍 중일 때 소비자가 구조화된 필드에 반응할 수 있어 UI 업데이트, SSE 라우트, 워크플로 신호에 유용합니다. Model Response, FastAPI Service Exposure, examples/fastapi/를 참고하세요.
Action은 관찰 가능하고 모델 이식 가능해야 한다 - 로컬 함수, 내장 액션, MCP 서버, shell/Python/Node/SQLite/TaskWorkspace 헬퍼, 커스텀 실행기가 구조화된 레코드를 생성하고 하나의 Action Runtime을 공유할 수 있습니다. Action Runtime, MCP, examples/action_runtime/을 참고하세요.
Skill은 숨겨진 실행 경로가 아니라 불변 가이던스여야 한다 - SkillLibrary는 설치된 리비전을 소유하고, AgentExecution은 선택과 정확한 리비전 바인딩을 소유하며, TaskContext는 공개를 소유합니다. Agently.skills_executor는 관리/컨텍스트 호환성 전용으로 남습니다. Skills와 examples/skills_executor/를 참고하세요.
실행 의존성에는 라이프사이클 소유자가 있어야 한다 - Execution Resource 제공자는 MCP 프로세스, 브라우저 세션, shell/Python/Node 런타임, SQLite 핸들, 샌드박스 같은 재사용 가능한 리소스를 관리합니다. 내장 gVisor, Seatbelt, Landlock 후보는 선택되기 전까지 비활성 상태로 유지되며 필요 시 외부 메커니즘을 프로브합니다. Execution Resource와 examples/execution_resource/를 참고하세요.
생성된 계획은 검증된 태스크 그래프가 되어야 한다 - Dynamic Task는 모델 생성 또는 앱 생성 DAG 데이터를 Agently.create_dynamic_task(...)를 통해 검증되고 관찰 가능한 태스크 실행으로 전환합니다. Dynamic Task와 examples/dynamic_task/를 참고하세요.
워크플로는 그래프 형태가 아니라 신호 기반이어야 한다 - TriggerFlow는 이벤트, 팬아웃, 런타임 스트림, 일시정지/재개, 저장/로드, 서브플로, 종료 스냅샷을 지원하며, instant 구조화 출력은 전체 응답을 기다리지 않고 워크플로 입력이 될 수 있습니다. TriggerFlow Overview, Events and Streams, examples/trigger_flow/를 참고하세요.
일반적인 모델 앱 패턴은 조합 가능해야 한다 - router, To-Do/의존성 실행, planning, reflection, evaluator/reviser, 멀티 에이전트 협업을 동일한 요청/액션/신호 프리미티브로 구축할 수 있습니다. Playbooks, TriggerFlow Model Integration, examples/step_by_step/을 참고하세요.
서비스는 깔끔한 프로젝트 경계를 유지해야 한다 - async API, FastAPI 헬퍼, 설정 파일, 프롬프트 파일, DevTools 관찰, 동반 코딩 에이전트 스킬이 사소하지 않은 프로젝트에 적합합니다. Project Framework, FastAPI Service Exposure, Observability를 참고하세요.
현재 프레임워크 버전: 4.1.4.8.
Python: >=3.10.
프레임워크 포지셔닝
다른 프레임워크가 틀렸다는 것이 아닙니다. 이들은 서로 다른 무게 중심을 선택합니다.
프레임워크
주요 강점
Agently가 의도적으로 다른 점
LangChain
광범위한 통합, 사전 구축된 에이전트, 애플리케이션 빌딩 블록
Agently는 더 좁고 더 시스템 지향적입니다: 제공자 적응, 프롬프트 슬롯, 구조화된 출력, 응답 파싱, 액션 실행, 설정, 관찰 가능성이 하나의 요청/런타임 계약으로 정규화됩니다. Requests, Action Runtime, examples/action_runtime/을 참고하세요.
LangGraph
장기 실행 상태 기반 에이전트를 위한 저수준 오케스트레이션 런타임
TriggerFlow는 Agently 모델 애플리케이션 스택 내부의 오케스트레이션 계층입니다: 워크플로 신호가 구조화된 응답 이벤트, 액션, 런타임 스트림, 일시정지/재개, 실행 상태, 종료 스냅샷과 직접 조합됩니다. TriggerFlow Events and Streams, Persistence and Blueprint, examples/trigger_flow/를 참고하세요.
CrewAI
멀티 에이전트 크루와 흐름 제어 기반 에이전트 팀워크
Agently는 멀티 에이전트 협업을 저수준 요청, 액션, 신호, 워크플로 프리미티브 위에 구축 가능한 하나의 패턴으로 취급하며, 유일한 애플리케이션 형태로 보지 않습니다. Playbooks와 examples/step_by_step/을 참고하세요.
AutoGen
대화형 에이전트와 멀티 에이전트 대화 패턴
Agently는 개방형 에이전트 채팅을 기본 경계로 삼기보다 모델 출력 계약, 명시적 액션 로그, 신호 기반 워크플로, 라이프사이클 스냅샷, 서비스 지향 실행 핸들을 강조합니다.
직접 SDK 호출
최소한의 추상화로 최대의 제어
Agently는 별도의 오케스트레이션 서비스를 강제하지 않으면서 출력 파싱, 액션, 세션, 구성, 관찰 가능성, 워크플로를 위한 재사용 가능한 계약을 추가합니다.
애플리케이션에 AI 실행 기반이 필요할 때 Agently를 사용하세요. 제품이 하나 또는 두 개의 단순 프롬프트에 불과하다면 직접 SDK 호출에 더 가깝게 머무르세요. 자연어 에이전트 협업이 주요 제품 프리미티브일 때는 특화된 멀티 에이전트 프레임워크를 사용하세요.
실질적인 차이는 네 계층에서 드러납니다:
LangChain의 통합 우선 스타일에 대하여: LangChain은 광범위하고 유연한 모델, 도구, 검색, 에이전트 빌딩 블록을 원할 때 강합니다. Agently의 베팅은 프로덕션 모델 앱에 더 균일한 요청 계약이 필요하다는 것입니다: 서로 다른 모델 제공자라도 동일한 프롬프트 슬롯, 구조화 파서, 재시도/검증 경로, 재사용 가능한 결과 리더, Action Runtime에 공급되어야 합니다. 이는 기본 모델이나 제공자를 교체할 때 다운스트림 비즈니스 로직이 기대하는 형태가 바뀔 가능성을 줄입니다. Requests Overview와 Action Runtime부터 시작하세요.
제공자 네이티브 구조화 출력을 유일한 보장으로 삼는 것에 대하여: Agently는 모델 제공자를 사용할 수 있지만, 출력 품질 경로가 제공자 측 JSON 스키마나 도구 호출 파라미터에만 의존하지 않습니다. 프레임워크가 스키마-프롬프트 작성, 필수 필드 추출, 파서 피드백, 재시도, ensure_keys, ensure_all_keys, 검증 핸들러를 소유합니다. 이는 대상 모델이 다른 제공자와 동일한 구조화 출력이나 도구 호출 시맨틱을 노출하지 않을 때 중요합니다. Schema as Prompt와 Output Control을 참고하세요.
그래프 전용 오케스트레이션에 대하여: LangGraph는 그래프 형태의 상태 기반 에이전트와 내구성 있는 실행에 강합니다. TriggerFlow의 핵심은 이벤트/신호 기반이며, Agently의 instant 응답 모드는 모델이 여전히 스트리밍 중일 때 구조화된 필드를 노출할 수 있습니다. 이를 통해 전체 모델 응답이 끝나기를 기다리는 대신 부분 구조화 출력, 액션 결과, 사람 입력, 서브플로 상태로 워크플로 신호를 구동할 수 있습니다. Model Response, TriggerFlow Events and Streams, 스트리밍/서비스 패턴은 examples/fastapi/를 참고하세요.
멀티 에이전트를 프레임워크 루트로 취급하는 것에 대하여: 멀티 에이전트 협업은 유용하지만, Agently에서는 요청, Action, TriggerFlow 신호, 서브플로, Session, 런타임 리소스 위에 구축할 수 있는 하나의 시나리오입니다. Router, To-Do/의존성 실행, planning, reflection, evaluator/reviser, 에이전트 팀 패턴은 모두 동일한 저수준 엔지니어링 기반 위의 구성입니다. Playbooks, TriggerFlow Model Integration, examples/step_by_step/을 참고하세요.
빠른 시작
설치:
pip install -U agently
DeepSeek 또는 다른 OpenAI 호환 호스팅 엔드포인트 사용:
from agently import Agently
Agently . set_settings (
"OpenAICompatible" ,
{
"base_url" : "https://api.deepseek.com/v1" ,
"model" : "deepseek-v4-flash" ,
"api_key" : "${ENV.DEEPSEEK_API_KEY}" ,
"model_type" : "chat" ,
"request_options" : {
"thinking" : { "type" : "disabled" },
"temperature" : 0.2 ,
},
},
)
agent = Agently . create_agent ()
result = (
agent
. input ( "Introduce Python in one sentence and state three distinct strengths." )
. output ({
"intro" : ( str , "one sentence" , True ),
"strengths" : {
"first" : ( str , "first strength" , True ),
"second" : ( str , "second strength" , True ),
"third" : ( str , "third strength" , True ),
},
})
. get_result ()
)
print ( result . get_data ())
제공자 설정을 변경하여 로컬 Ollama 사용:
ollama pull qwen2.5:7b
Agently . set_settings (
"OpenAICompatible" ,
{
"base_url" : "http://127.0.0.1:11434/v1" ,
"model" : "qwen2.5:7b" ,
"api_key" : "ollama" ,
"model_type" : "chat" ,
},
)
같은 애플리케이션이 여러 모델을 필요로 할 때 Model Pool 사용:
Agently . set_settings ( "model_pool" , {
"support-chat" : "deepseek-v4-flash-prod" ,
"reasoning" : "deepseek-reason-prod" ,
})
Agently . set_settings ( "model_profiles" , {
"deepseek-v4-flash-prod" : {
"provider" : "OpenAICompatible" ,
"base_url" : "https://api.deepseek.com/v1" ,
"model" : "deepseek-v4-flash" ,
"api_key_pool" : "deepseek-prod" ,
"request_options" : { "thinking" : { "type" : "disabled" }},
},
"deepseek-reason-prod" : {
"provider" : "OpenAICompatible" ,
"base_url" : "https://api.deepseek.com/v1" ,
"model" : "deepseek-v4-flash" ,
"api_key_pool" : "deepseek-prod" ,
"request_options" : {
"thinking" : { "type" : "enabled" },
"reasoning_effort" : "high" ,
},
},
})
Agently . set_settings ( "api_key_pools" , {
"deepseek-prod" : {
"selection" : { "strategy" : "round_robin" },
"failover" : {
"strategy" : "try_next" ,
"max_attempts" : 2 ,
"retry_status_codes" : [ 401 , 403 , 429 ],
},
"keys" : [
{ "id" : "a" , "value" : "${ENV.DEEPSEEK_API_KEY_A}" },
{ "id" : "b" , "value" :…
No comments yet.
to comment.