microsoft/TypeAgent
Sample code that explores an architecture for using language models to build a personal agent that can work with application agents.
TypeAgent – 개인용 AI 에이전트 샘플
무엇인가요
- Microsoft가 유지 관리하는 오픈소스 샘플로, 자연어로 말할 수 있는 단일 개인 보조자를 구축하는 방법을 보여줍니다.
- 코드는 대규모 언어 모델(LLM)과 전통적인 소프트웨어 구성 요소(액션, 메모리, 계획)를 구조화된 프롬프트 접근법을 통해 결합하는 방법을 보여줍니다.
핵심 아이디어
| 원칙 | 적용 방법 |
|---|---|
| 모델을 논리적 구조로 요약하기 | 액션은 유형화된 스키마(TypeChat을 통해)로 표현되며, 메모리는 온톨로지로 저장되며, 계획은 LLM, 품질 모델, 인간이 협력하는 "사고의 나무" 탐색을 사용합니다. |
| 구조로 정보 밀도 제어하기 | 액션 계약은 이산적이고 밀도 높게 설명되며, 메모리는 LLM의 어텐션 창에 맞는 타이트한 의미 구조에 보관되며, 각 탐색 노드는 하위 문제에 집중합니다. |
| 구조를 통해 협업 가능하게 하기 | 인간이 모호한 요청을 명확히 하고, 간단한 파서가 논리적 형태를 추출하며, 여러 모델(LLM, 우위/품질 모델)이 함께 작동하여 최선 우선 탐색 트리를 확장합니다. |
주요 구성 요소
- TypeAgent Shell – 사용자가 음성 기능을 지원하는 단일 인터페이스를 통해 여러 등록된 에이전트와 대화할 수 있는 Electron 기반 UI입니다.
- Dispatcher – 구조화된 프롬프트를 사용하여 사용자의 자연어 요청을 가장 적합한 유형화된 계약을 가진 에이전트로 라우팅합니다.
- KnowPro – 구조화된 RAG 메모리 계층을 구현: 대화 기록은 논리적 엔티티로 인덱싱되어 "우리가 논의한 책은 무엇이었나요?"와 같은 정확한 질의가 가능합니다.
- Cache – LLM 기반의 구조화된 프롬프트를 사용하여 액션 번역을 메모이제이션하여 모델 호출을 반복하지 않고 지연을 줄입니다.
- Agent SDK – 디스패처와 쉘에 연결하기 위해 에이전트가 구현해야 하는 TypeScript 인터페이스를 정의합니다.
포함된 샘플 에이전트 (모두 동일한 아키텍처 기반)
- 음악 플레이어, 채팅, 웹 브라우저, VS Code, 리스트 매니저, 캘린더, 이메일, 데스크톱 자동화, 이미지 편집기, 마크다운 에디터, 사진 몽타주 등.
시도하는 방법
- 플랫폼별 설치 문서(Windows, WSL2, Linux, macOS)를 따라 Node, Azure OpenAI 키 등을 설치합니다.
- TypeAgent Shell (
ts/packages/shell)을 실행합니다 – 음성 지원이 있는 대화 창이 나타납니다. - 내장된 에이전트와 상호작용하거나 SDK를 구현하고 디스패처에 에이전트를 등록하여 사용자 정의 에이전트를 추가합니다(예:
Echo튜토리얼 참조).
디자인의 주요 강점
- 구조화된 RAG – 전통적인 벡터 중심 검색을 스키마 기반 인덱스로 대체하여 대화적 사실의 재현률을 높입니다.
- 액션-메모리 결합 – "내 캘린더에 피클볼 게임을 추가해줘"와 같은 액션을 수행하면, 이후 액션에서 참조할 수 있는 메모리 항목이 자동으로 생성됩니다.
- AMP 아키텍처(액션-메모리-계획) – 세 가지 흐름을 연결하여 원활한 정보 교환을 가능하게 합니다.
현재 상태 및 제한 사항
- 초기 단계의 샘플 코드이며, 프로덕션용 프레임워크가 아닙니다.
- 개발자 마シン에서 Azure OpenAI 서비스에서만 테스트되었으며, 영어만 평가되었습니다.
- 잘 설계된 JSON 스키마에 의존합니다. 스키마가 사용자 의도를 포착하지 못하면 LLM이 유효하지 않은 응답을 생성할 수 있습니다.
- 내장된 텔레메트리 없음; 개발자는 자체 API 키를 제공해야 합니다.
누구에게 유용할까
- LLM 기반 에이전트의 구조화 방법을 탐구하는 연구자 또는 엔지니어.
- 개인 보조자, 액션 디스패처, 메모리 증강 챗봇을 구축하기 위한 참조 구현을 원하는 개발자.
- LLM 비용을 줄이고 신뢰성을 높이기 위해 "구조화된 프롬프트" 패턴에 관심 있는 팀.
Microsoft가 계획 중인 다음 단계
- 메모리 및 디스패치 레이어용 재사용 가능한 라이브러리 공개.
- 설치 가능한 패키지 및 새로운 에이전트의 동적 탐지 제공.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 추가 기능은 추측하지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트