strands-labs/ai-functions
Python functions powered by AI agents - with runtime post-conditions for reliable agentic workflows.
해결하는 문제
Strands AI Functions는 AI 에이전트를 일반적인 Python 함수처럼 다룰 수 있는 방법을 제공합니다. "프롬프트를 보내고 기도하는" 개발 방식의 문제를 해결하기 위해, 에이전트의 출력이 특정 요구 사항을 충족할 때까지 자동으로 수정하도록 강제하는 포스트 컨디션(post-conditions)을 도입했습니다. 또한 LLM의 텍스트 출력과 실제 세계의 데이터 사이의 격차를 메우기 위해, 에이전트가 Python 코드를 생성하고 실행하여 Pandas DataFrames와 같은 네이티브 객체를 반환할 수 있도록 합니다.
작동 방식
이 라이브러리는 @ai_function 데코레이터를 사용하여 Python 함수를 에이전트 작업으로 변환합니다. 문서 문자열은 프롬프트 템플릿 역할을 하며, 반환 타입 애너테이션은 예상되는 출력 형식을 정의합니다.
주요 아키텍처 구성 요소는 다음과 같습니다:
- 포스트 컨디션: 에이전트의 출력이 검사를 통과하지 못하면 자동으로 재프롬프트를 트리거하는 검증 함수.
- AI 스레드: 여러 호출에 걸쳐 대화 기록을 유지하는 상태 기반 핸들.
- 코디네이터와 워커: 여러 스레드가 서로를 발견하고 메시지를 주고받을 수 있는 시스템으로, 다중 에이전트 협업을 가능하게 합니다.
- 분산 실행: 코디네이터와 워커가 서로 다른 프로세스나 머신에서 실행될 수 있는 WebSocket 기반 프로토콜.
- 메모리 최적화: 자연어에 대한 "백프로파게이션" 시스템으로, 결과에 대한 피드백을 사용해 메모리 백엔드에 저장된 프롬프트, 사실, 코드를 업데이트하여 향후 실행을 개선합니다.
대상 사용자
출력 형식을 보장받고, 상태 기반 상호작용이 필요하며, 분산 시스템에서 에이전트 팀을 오케스트레이션할 수 있어야 하는 복잡한 AI 워크플로를 구축하는 Python 개발자.
주요 특징
- 자기 수정 루프: 사용자 정의 Python 또는 AI 기반 포스트 컨디션에 기반한 자동 재시도.
- 네이티브 Python 통합: 로컬 코드 실행을 통해 복잡한 객체(예: DataFrames)를 반환할 수 있는 능력.
- 다중 에이전트 오케스트레이션: 자율적인 에이전트 간 통신을 위한 내장된
list_threads및send_message도구. - 런타임 상호운용성: Claude Code, Kiro, Codex와 같은 외부 런타임을 표준 스레드처럼 다루는 래퍼.
- 분산 런타임: CLI와 WebSocket 서버를 제공하여 코디네이터를 시스템 전체에서 사용 가능한 에이전트 런타임으로 전환.
- 자연어 최적화: 성능 피드백을 기반으로 프롬프트와 로직을 업데이트하는 피드백 루프.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트