Show HN: Agency – Python을 통한 인간, AI 및 기타 컴퓨팅 시스템의 통합
요약
Agency는 액터 모델(Actor model)을 기반으로 인간, AI, 소프트웨어 시스템을 통합하는 Python 라이브러리입니다. 멀티프로세싱과 AMQP를 지원하여 확장 가능한 에이전트 아키텍처 구축을 돕습니다.
핵심 포인트
- 액터 모델 기반의 유연한 에이전트 통합 프레임워크
- 멀티프로세싱 및 AMQP를 통한 높은 확장성 제공
- 액세스 정책 및 콜백을 통한 정교한 제어와 관찰 가능성
- OpenAI 및 HuggingFace 에이전트와 쉽게 연동 가능
요약
Agency는 에이전트 통합 시스템을 구축하기 위한 액터 모델 (Actor model) 프레임워크를 제공하는 Python 라이브러리입니다.
이 라이브러리는 에이전트를 기존 소프트웨어 시스템과 유연하고 확장 가능한 방식으로 연결할 수 있는 사용하기 쉬운 API를 제공하여, 사용자가 필요한 모든 아키텍처를 개발할 수 있도록 지원합니다.
Agency의 목표는 실험과 구축을 위한 최소한의 기반을 제공함으로써 개발자가 맞춤형 에이전트 기반 애플리케이션을 만들 수 있도록 하는 것입니다. 따라서 자신만의 맞춤형 에이전트 시스템을 구축하고자 한다면 Agency가 적합할 수 있습니다.
특징
사용하기 쉬운 API
성능 및 확장성
- 동시성을 위한 멀티프로세싱 (multiprocessing) 및 멀티스레딩 (multithreading) 지원
- 네트워크 연결된 에이전트 시스템을 위한 AMQP 지원
관찰 가능성 및 제어
- 액션 (action) 및 라이프사이클 (lifecycle) 콜백
- 액세스 정책 및 권한 콜백
- 상세한 로깅 (logging)
examples/demo에서 데모 애플리케이션 사용 가능
- 실험을 위한 다양한 에이전트 예제
- 두 가지 OpenAI 에이전트 예제
- HuggingFace transformers 에이전트 예제
- 운영체제 (Operating system) 액세스
- Gradio UI 포함
- 참조 및 개발을 위한 Docker 설정
API 개요
Agency에서 모든 엔티티는 Agent 클래스의 인스턴스로 표현됩니다. 여기에는 애플리케이션의 일부로서 통신할 수 있는 모든 AI 기반 에이전트, 소프트웨어 인터페이스 또는 인간 사용자가 포함됩니다.
모든 에이전트는 다른 에이전트가 런타임 (run time)에 발견하고 호출할 수 있는 "액션 (actions)"을 노출할 수 있습니다. 간단한 에이전트의 예는 다음과 같습니다:
class CalculatorAgent(Agent):
@action
def add(a, b):
...
이는 add라는 단일 액션을 가진 에이전트를 정의합니다. 다른 에이전트들은 CalculatorAgent 인스턴스에 메시지를 보내고 add 액션을 지정함으로써 이 메서드를 호출할 수 있습니다. 예를 들어:
other_agent.send({
'to': 'CalcAgent',
'action': {
...
액션 (Actions)은 액세스 정책 (access policy)을 지정할 수 있으며, 이를 통해 안전을 위한 액세스 제어가 가능합니다.
@action(access_policy=ACCESS_PERMITTED) # 이는 언제든 액션을 허용합니다
def add(a, b):
...
...
에이전트 (Agents)는 또한 다양한 목적을 위한 콜백 (callbacks)을 정의할 수 있습니다:
class CalculatorAgent(Agent):
...
def before_action(self, message: dict):
...
Space는 에이전트들을 서로 연결하는 방식입니다. 에이전트는 공통의 Space에 추가되기 전까지는 다른 에이전트와 통신할 수 없습니다.
선택할 수 있는 두 가지 포함된 Space 구현체가 있습니다:
LocalSpace- 동일한 애플리케이션 내에서 에이전트들을 연결합니다.AMQPSpace- RabbitMQ와 같은 AMQP 서버를 사용하여 네트워크를 통해 에이전트들을 연결합니다.
마지막으로, LocalSpace를 생성하고 두 개의 에이전트를 추가하는 간단한 예제입니다.
space = LocalSpace()
space.add(CalculatorAgent, "CalcAgent")
space.add(MyAgent, "MyAgent")
...
이것들은 Agency가 제공하는 기본적인 기능들일 뿐입니다. 더 자세한 정보는 도움말 사이트를 참조하세요.
설치 (Install)
pip install agency
또는
poetry add agency
데모 애플리케이션 (The Demo Application)
데모 애플리케이션은 실험적인 개발 환경이자 라이브러리 기능의 쇼케이스로서 유지 관리됩니다. 여기에는 서로 통신할 수 있는 여러 에이전트 예제가 포함되어 있으며, 사용자가 직접 에이전트로서 액션을 호출할 수 있는 "슬래시 (slash)" 구문을 지원합니다.
데모를 실행하려면 examples/demo의 지침을 따르세요.
다음은 OpenAIFunctionAgent가 명령을 따르고 Host 에이전트와 상호작용하는 예제를 보여주는 Gradio UI의 스크린샷입니다.
기여하기 (Contributing)
부디 참여해 주세요!
기여를 고려하고 계신다면, 기여 가이드를 확인해 주세요.
계획된 작업 (Planned Work)
제안 사항이나 다른 의견이 있다면, 언제든지 이슈를 추가하거나 토론 (discussion)을 열어 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기