<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/openagents_overview.png"/>
<a href="https://github.com/xlang-ai/OpenAgents/raw/main/README.md">English</a> •
<a href="https://github.com/xlang-ai/OpenAgents/raw/main/README_ZH.md">中文</a> •
<a href="https://github.com/xlang-ai/OpenAgents/raw/main/README_JA.md">日本語</a> •
<a>한국어</a>
현재의 언어 에이전트 프레임워크는 개념 증명용 언어 에이전트 구축을 용이하게 하는 것을 목표로 하지만, 일반 사용자의 에이전트 접근성을 간과하며 응용 수준의 설계에는 관심을 덜 두고 있습니다. 우리는 OpenAgents를 구축했으며, 와일드한 일상생활에서 언어 에이전트를 사용하고 호스팅 하기 위한 오픈 플랫폼입니다.
우리는 OpenAgents에 세 가지 에이전트를 구현했으며, 이들을 무료로 제공합니다! 1. 데이터 에이전트는 Python/SQL과 데이터 도구로 데이터 분석을 수행할 수 있습니다. 2. 플러그인 에이전트는 하루에 200개 이상의 일상 도구를 제공합니다. 3. 웹 에이전트는 자율적인 웹 브라우징을 수행합니다.
OpenAgents는 데이터 분석, 플러그인 호출, 브라우저 제어 등을 ChatGPT Plus와 동일하게 수행할 수 있지만, 아래 이유들을 위해 오픈 코드로 이를 구현하였습니다. 1. 쉬운 배포 2. 풀 스택 3. 챗 웹 유저 인터페이스 4. 에이전트 방법 5. …
OpenAgents는 웹 UI를 통해 일반 사용자가 에이전트 기능과 상호 작용할 수 있도록 하여 신속한 응답과 일반적인 오류에 최적화된 환경을 제공합니다. 동시에 개발자와 연구원들에게는 로컬 환경에서의 원활한 배포 경험을 제공하여 혁신적인 언어 에이전트의 개발과 실제 세계에서의 평가를 용이하게 합니다. 또한 우리는 언어 에이전트의 실제 세계에서의 연구와 개발을 위한 기반을 마련하고자 하는 것에 대한 힘든 점과, 기회에 대해 명확히 설명합니다.
우리는 여러분들의 기여를 환영합니다. 시작하기 전에, 이슈와 PR에 대한 CONTRIBUTING.md 가이드라인을 읽어보시기 바랍니다. 이는 기여 과정이 원활하고 프로젝트의 기준과 일관성을 유지할 수 있도록 도움을 줄 것입니다.
만약 온라인 데모나 로컬 배포에 문제가 발생하면, 도움을 받기 위해 Discord에 가입해주세요. 또는 기능이나 코드에 문제가 있을 경우, 이슈를 생성해주세요.
우리는 실제 세계에서 사용되는 인공지능 에이전트를 구축했습니다. (OpenAgents 데모를 확인하세요). 다음은 OpenAgents 플랫폼에 대한 간략한 개요입니다. 자세한 개념 및 디자인에 대한 자세한 내용은 문서에서 찾아볼 수 있습니다.
데이터 에이전트는 효율적인 데이터 작업을 위해 설계된 포괄적인 도구 모음입니다. 데이터 에이전트는 다음과 같은 기능을 제공합니다:
데이터 에이전트는 코드를 작성하고 실행하는 능력을 갖추고 있어 다양한 데이터 중심 작업을 간소화합니다. 다양한 사용 사례들을 통해 데이터 에이전트의 잠재력을 발견해보세요.
<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/data_agent.png" width="784"/>
더 많은 사용 사례 스크린샷을 보고 싶다면 클릭해주세요.
<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/data_agent_demo.png" width="784"/>
플러그인 에이전트는 200개가 넘는 제3자 플러그인과 원활하게 통합됩니다. 각 플러그인은 일상생활의 다양한 부분을 풍부하게 만들기 위해 선별되었습니다. 이러한 플러그인들을 활용하여 에이전트는 여러분이 다양한 작업과 활동을 더 효율적으로 처리할 수 있도록 도와줍니다.
🔌 플러그인 예시:
시너지의 힘을 발휘하세요! 플러그인 에이전트는 여러 플러그인을 동시에 사용할 수 있게 해줍니다. 여행 계획을 세우고 계시나요? Klook, 통화 변환기, WeatherViz의 기능들을 동시에 사용해 보세요.
자동 플러그인 선택 기능으로 선택 과정을 간소화하세요. 에이전트에게 필요에 맞는 최상의 플러그인을 직관적으로 검색하고 제안해 주도록 해보세요.
더 많은 사용 사례를 통해 플러그인 에이전트의 작동 방식을 확인해보세요.

더 많은 사용 사례 스크린샷을 보고 싶다면 클릭해주세요.
<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/plugins_agent_demo.png" width="784"/>
웹 에이전트는 크롬 확장 프로그램의 기능을 활용하여 웹 사이트를 자동으로 탐색하고 탐구하는 기능을 제공합니다. 이 에이전트는 웹 브라우징 경험을 간소화하여 관련 정보를 찾고 원하는 자료에 쉽게 액세스할 수 있도록 도와줍니다.
웹 에이전트가 수행할 수 있는 작업들:
이러한 사용 사례에서 웹 에이전트의 잠재력을 확인해보세요.

더 많은 사용 사례 스크린샷을 보고 싶다면 클릭해주세요.
<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/web_agent_demo.png" width="784"/>
OpenAgents 플랫폼 코드를 배포했습니다. 자유롭게 로컬 호스트에 배포해보세요!
다음은 OpenAgents의 간략한 시스템 디자인입니다:
<img src="https://github.com/xlang-ai/OpenAgents/raw/main/pics/system_design.png"/>
로컬 환경 설정 및 로컬 호스트에 배포하기 위해 다음 폴더 및 README 파일을 확인해 주세요:
p.s. : 코드의 가독성을 높이기 위해 일부 인수들의 이름이 변경되었습니다. 2023년 10월 26일 이전에 코드를 가져온 경우, 최신 코드를 가져오려면 키 이름이 다르기 때문에 이전 로컬 채팅 기록이 손실된다는 점을 참고하세요.
OpenAgents를 확장하는 방법에 대해 알아보기 전에, OpenAgents의 코드 구조를 간략히 살펴보겠습니다. 코드 구조는 아래와 같습니다:
├── backend # backend code
│ ├── README.md # backend README for setup
│ ├── api # RESTful APIs, to be called by the frontend
│ ├── app.py # main flask app
│ ├── display_streaming.py # rendering the streaming response
│ ├── kernel_publisher.py # queue for code execution
│ ├── main.py # main entry for the backend
│ ├── memory.py # memory(storage) for the backend
│ ├── schemas.py # constant definitions
│ ├── setup_script.sh # one-click setup script for the backend
│ ├── static # static files, e.g., cache and figs
│ └── utils # utilities
├── frontend # frontend code
│ ├── README.md # frontend README for setup
│ ├── components # React components
│ ├── hooks # custom React hooks
│ ├── icons # icon assets
│ ├── next-env.d.ts # TypeScript declarations for Next.js environment variables
│ ├── next-i18next.config.js # configuration settings for internationalization
│ ├── next.config.js # configuration settings for Next.js
│ ├── package-lock.json # generated by npm that describes the exact dependency tree
│ ├── package.json # manifest file that describes the dependencies
│ ├── pages # Next.js pages
│ ├── postcss.config.js # configuration settings for PostCSS
│ ├── prettier.config.js # configuration settings for Prettier
│ ├── public # static assets
│ ├── styles # global styles
│ ├── tailwind.config.js # configuration settings for Tailwind CSS
│ ├── tsconfig.json # configuration settings for TypeScript
│ ├── types # type declarations
│ ├── utils # utilities or helper functions
│ ├── vitest.config.ts # configuration settings for ViTest
│ └── webot_extension.zip # Chrome extension for Web Agent
└── real_agents # language agents
├── adapters # shared components for the three agents to adapt to the backend
├── data_agent # data agent implementation
├── plugins_agent # plugins agent implementation
└── web_agent # web agent implementation
위의 코드 구조에서는 backend/와 frontend/가 독립적이고 직접 배포 가능하다는 것을 보여줍니다. (여기를 보세요.)
이는 수정할 수 없다는 의미가 아닌, 전통적인 클라이언트-서버 아키텍처를 따라 원하는대로 백엔드와 프론트엔드를 확장할 수 있다는 것을 의미합니다.
real_agents/는 "하나의 에이전트, 하나의 폴더"로 설계되어 새로운 에이전트를 쉽게 확장할 수 있도록 구성되었습니다.
"real agents"라는 이름을 사용한 이유는 개념적인 언어 에이전트 부분뿐만 아니라 언어 에이전트와 백엔드 간의 간극을 채우기 위한 내용도 포함되어 있기 때문입니다.
예를 들어, adapters/ 폴더에는 스트림 파싱, 데이터 모델, 메모리, 콜백 등과 같은 공유 어댑터 컴포넌트가 포함되어 있습니다.
개념과 구현 설계에 대한 자세한 내용은 논문을 참조하시기 바랍니다.
또한, 우리는 실제 에이전트를 구축하는데 코드 기반을 제공해 준 LangChain에게 감사의 말씀을 전합니다.
저희가 제공하는 세 가지의 에이전트 말고도 다른 새로운 에이전트를 구축하고 싶으시다면 아래 스텝을 따라 주세요:
- 새로운 에이전트를 구현하기 위해 이전 에이전트가 구현된 real_agents/ 폴더를 참조하고, 새로운 폴더를 생성하십시오.
- 새로운 폴더에 있는 에이전트 로직을 구현하십시오. 필요한 경우 adapters/ 폴더 내의 컴포넌트를 사용하십시오.
- 먼저, 새로운 에이전트를 위한 채팅 API를 정의하기 위해 backend/api/ 폴더에 chat_<new_agent>.py 파일을 추가하세요. 이 파일은 프론트엔드에서 호출될 것입니다.
- 필요한 경우, backend/schemas.py파일에 새로운 상수를 등록하세요.
- 프론트엔드에서 새로운 OpenAgentID를 추가하고, 이에 해당하는 API를 frontend/utils/app/api.ts와 frontend/utils/app/const.ts에 추가해주세요.
- 필요한 경우, frontend/components/Chat/Chat.tsx와 frontend/components/Chat/ChatMessage.tsx에서 에이전트 UI를 구현해주세요.
- 로컬 호스트 스크립트를 실행하고 새로운 에이전트를 테스트해보세요.
참고: 새로운 데이터 유형(예: 텍스트, 이미지, 테이블 및 JSON 이외의 유형)의 경우, 백엔드의 display_streaming.py에서 해당 데이터의 구문 분석 로직을 구현하고 새로운 데이터 모델을 추가해야 할 수도 있습니다.
LLM(Large Language Model)을 에이전트 백본으로 확장하는 것은, LLM이 이미 호스팅되어 API를 통해 호출될 수 있는 경우 더욱 간단해집니다. backend/api/language_model.py에서 새로운 모델을 등록하기만 하면 됩니다. lemur-chat을 참고하면 템플릿으로 사용할 수 있습니다.
LLM이 아직 호스팅되지 않은 경우, LLM을 새로 배포하고 API로 노출하는 방법에 대한 튜토리얼이 여기에 있습니다. (LLM 호스팅은 todo).
플러그인 에이전트에 있는 도구를 확장해보고 싶다면, 아래 스텝을 따르세요:
- real_agents/plugins_agent/plugins/에 이미 구축된 플러그인들을 참고하고, 도구에 대한 새로운 폴더를 생성해주세요.
- 새로운 폴더에 도구 로직을 구현해주세요. 도구가 인식되기 위해 ai-plugin.json과 openapi.yaml 파일이 필수적입니다(이는 수동으로 작성하는 대신 다른 예시를 따라서 LLM이 생성할 수 있습니다). 또한 paths/ 폴더는 실제 도구 API 호출을 위한 경로입니다.
- real_agents/plugins_agent/plugin_names.py에 새로운 도구 이름을 등록해주세요.
감사하게도 오픈 소스 커뮤니티인 LangChain, ChatBot UI, Taxy.ai browser extension 등의 노력 덕분에 저희는 인터페이스 프로토타입을 더 편리하고 효율적으로 구축할 수 있었습니다.
저희는 여러분들의 기여와 조언을 환영하며, 함께 더 나은 결과물을 만들어나갈 수 있기를 기대합니다! 기여하고 싶으시다면 다음 단계를 따라주세요:
시작하기 전에, 여기를 확인하는 것을 강력히 권장합니다.
전체 문서에 대해서는 여기를 확인해주세요. 문서는 데모 변경 및 코드 릴리스와 함께 최신화될 예정입니다.
$ claude mcp add OpenAgents \
-- python -m otcore.mcp_server <graph>