GhostOS
LLM 기반 에이전트 프레임워크입니다. 이는 다음을 수행하는 LLM에 대한 MOSS(LLM 지향 운영 체제 시뮬레이션) 인터페이스를 제공합니다.
GhostOS
LLM 에이전트에 Turing-complete Python 인터페이스를 제공합니다. 그리고 에이전트는 Python 코드를 작성하여 도구(라이브러리)를 생성하고 도구 자체를 통합(가져오기 모듈 또는 종속성 주입)할 수 있습니다. 또한 에이전트는 코드로 구축되며 다른 에이전트에서 함수로 호출할 수 있습니다.
따라서 메타 에이전트는 다른 도메인 에이전트를 정의하거나 최적화하고 처리 중에 이를 통합할 수 있습니다(이론적으로). 이러한 방법을 통해 Self-Evolving Meta-Agent 개발을 목표로 하고 있습니다.
논문 목록:
DirectoryEditThought
라는 에이전트에는 다음과 같은 Python 컨텍스트가 장착되어 있습니다.
from typing import TYPE_CHECKING
from ghostos . thoughts . magic_moss_thought import MagicMossThought
from ghostos . core . ghosts import Replier , MultiTask , NewTask
from ghostos . core . moss import Moss as Parent
from ghostos . libraries . file_editor import DirectoryEditor , FileEditor
from ghostos . thoughts . file_editor_thought import FileEditorThought
from pydantic import Field
class Moss ( Parent ):
"""
you are equipped with some tools helping you to manage the current directory.
and the FileEditorThought are helpful to manage a single file.
"""
replier : Replier
multitask : MultiTask
"""useful to handle multiple tasks, such as manage several files by FileEditorThought."""
dir_editor : DirectoryEditor
"""
the editor of the current directory.
you can read or edit the files by FileEditorThought.
so don't make up anything, based on what you informed.
"""
우리가 보는 것은 DirectoryEditThought
얻는 것입니다. MOSS는 FileEditThought
, DirectoryEditor
및 MultiTask
와 같은 가져온 값의 세부 정보와 함께 이 모듈을 LLM에 대한 프롬프트에 반영합니다. DirectoryEditThought
다음 도구를 사용하여 계획을 코딩해야 합니다.
사용자 쿼리: please checkout content of the '.py' files in code_edits directory, and translate the comments in chinese into english if you found them in the code.
LLM 세대:
def main ( moss : Moss ) -> Operator :
# List all .py files in the code_edits directory
code_edits_files = moss . dir_editor . edit_dir ( "code_edits" ). list ( pattern = "*.py" , absolute = True , formated = False ,
summary = False )
# Create tasks for checking out the content of each file
tasks = []
for file in code_edits_files :
task = (
f"translate_comments_ { file . split ( '/' )[ - 1 ] } " ,
f"Translate comments in { file } from Chinese to English" ,
FileEditorThought ( filepath = file ),
"Please read the file content and translate any comments in Chinese to English."
)
tasks . append ( task )
# Run the tasks
return moss . multitask . wait_on_tasks ( * tasks )
이 코드 생성에서 DirectoryEditThought
다음을 수행합니다.
moss.dir_editor
로 /code_edits
의 파일을 반복합니다.FileEditorThought
로 각 파일에 대한 작업을 생성합니다.MultiTask
스케줄러를 통해 작업을 발송하고 결과를 기다리는 생각을 작동합니다. 지금까지 GhostOS
아직 실험과 탐구의 초기 단계에 있습니다. 10월에 첫 번째 버전을 출시할 예정입니다. 데모 테스트 케이스를 사용해 보시기 바랍니다:
먼저 python > 3.12
설치했는지 확인한 후 다음을 수행하세요.
클론 저장소:
# clone the repository
git clone https://github.com/ghost-in-moss/GhostOS.git ghostos_test
# go to the directory
cd ghostos_test
# create python venv
python -m venv venv
# activate venv
source venv/bin/activate
Python venv를 활성화한 후 시로 종속성을 설치합니다.
# install poetry in the venv
python -m pip install poetry
# install requirements by poetry
poetry install
llms API 키를 구성합니다.
export OPENAI_API_KEY= " sk-YOUR-KEY " # openai api-key
# optional:
export MOONSHOT_API_KEY= " sk-YOUR-Key " # moonshot api-key
export OPENAI_PROXY= " xxxx " # OPENAI proxy if you need
GhostOS
yaml 파일을 사용하여 LLM 라이브러리를 구성합니다. ghostos/demo/configs/llms_conf.yml을 원하는 대로 편집할 수 있습니다. yaml 구조는 LLMConfig를 따릅니다.
AIFunc
은 함수처럼 작동하는 경량 에이전트입니다. AIFunc
복잡한 요청을 처리하는 동안 다른 AIFunc
호출할 수 있습니다.
테스트 케이스 실행:
venv/bin/python ghostos/demo/src/examples/run_aifunc_test.py
이 경우 우리는 에이전트와 같은 AIFunc에게 두 가지 작업을 수행하도록 요청합니다.
AgentFn
이 WeatherAIFunc
및 NewsAIFunc
호출하여 하위 작업을 지원하고 최종 결과를 제공할 것으로 기대합니다.
테스트 AIFuncs는 aifuncs에 정의되어 있습니다.
테스트 케이스 실행:
venv/bin/python ghostos/demo/src/examples/code_edits/file_editor_test.py
이 경우 에이전트는 file_editor_test.py 파일의 모든 중국어 문자를 바꾸라는 지침을 따릅니다.
Agent's Thought는 file_editor_thought.py에 정의되어 있으며, Python 컨텍스트는 file_editor_moss.py입니다. 런타임에 LLM이 얻는 것은 이 파일에서 볼 수 있는 것입니다.
테스트 케이스 실행:
venv/bin/python ghostos/demo/src/examples/code_edits/tool_generation_test.py
이 경우 에이전트는 Cache
추상 클래스에서 MockCache
클래스를 구현하라는 지시를 받습니다. 케이스를 실행한 후에는 tool_ Generation_test.py 파일이 변경됩니다.
Agent's Thought는 pymodule_editor.py에 정의되어 있으며, Python 컨텍스트는 pymodule_editor_moss.py입니다.
테스트 케이스 실행:
venv/bin/python ghostos/demo/src/examples/code_edits/modify_directory_test.py
이 경우 DirectoryEdit가 장착된 에이전트와 FileEditThought 다른 에이전트는 code_edits
디렉터리의 모든 파일을 수정하라는 지시를 받습니다. 여러 작업을 FileEditThought에 전달하기 위해 MultiTask
라이브러리를 호출해야 하며 작업은 병렬로 실행됩니다. 모든 작업이 완료되면 상담원이 적극적으로 결과를 답변해 드립니다.
에이전트의 Thought와 Python 컨텍스트는 모두directory_editor_thought.py에 정의되어 있습니다. 우리는 메타 에이전트가 이와 같은 Python 컨텍스트를 사용하여 도메인 에이전트를 정의할 수 있을 것으로 기대합니다.
GhostFunc
는 개발 초기에 MOSS를 테스트하는 데 사용한 장난감입니다. 데코레이터를 제공하고 호출 중에 코드를 생성하는 LLM 기반 함수에 서명 전용 함수를 래핑할 수 있습니다.
테스트 케이스 실행:
venv/bin/python ghostos/demo/src/examples/ghostfunc/get_weather.py
get_weather.py에서 자세한 내용을 확인하세요.
우리는 이 프로젝트의 첫 번째 버전을 10월에 출시할 예정입니다. 이 프로젝트는 애플리케이션이 아닌 앱 프로토타입을 갖춘 에이전트 프레임워크로 추정됩니다. 현재 우리는 일부 GhostOS
구성 요소를 자체적으로 개발하는 데 집중하고 있습니다. 아직 할 일이 많아요..