GhostOS
เป็นเฟรมเวิร์ก Agent ที่ขับเคลื่อนด้วย LLM มีอินเทอร์เฟซ MOSS (การจำลองระบบปฏิบัติการที่เน้น LLM) ให้กับ LLM ซึ่งทำ:
GhostOS
ช่วยให้ตัวแทน LLM มีอินเทอร์เฟซ Python ที่สมบูรณ์ของทัวริง และเอเจนต์สามารถเขียนโค้ด python เพื่อสร้างเครื่องมือ (เป็นไลบรารี) และรวมเข้าด้วยกัน (โมดูลนำเข้าหรือการฉีดการพึ่งพา) เอง นอกจากนี้ เอเจนต์ยังถูกสร้างขึ้นจากโค้ด และสามารถเรียกเป็นฟังก์ชันโดยเอเจนต์อื่นๆ ได้
ดังนั้นจึงเปิดใช้งานเมตาเอเจนต์เพื่อกำหนดหรือเพิ่มประสิทธิภาพตัวแทนโดเมนอื่น ๆ และรวมเข้าด้วยกันในระหว่างการประมวลผล (ในทางทฤษฎี) ด้วยวิธีการเหล่านี้ เรามีเป้าหมายที่จะพัฒนา Meta-Agent ที่พัฒนาตนเองได้
รายการกระดาษ:
เอเจนต์ชื่อ DirectoryEditThought
ติดตั้งบริบทหลามดังนี้:
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 จะสะท้อนโมดูลนี้ไปยัง LLM พร้อมรายละเอียดของค่าที่นำเข้า เช่น FileEditThought
, DirectoryEditor
และ MultiTask
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
ทำ:
/code_edits
โดย moss.dir_editor
FileEditorThought
MultiTask
และดำเนินการตามความคิดเพื่อรอผลลัพธ์ จนถึงขณะนี้ GhostOS
ยังอยู่ในช่วงเริ่มต้นของการทดลองและการสำรวจ เรากำลังวางแผนที่จะเปิดตัวเวอร์ชันแรกในเดือนตุลาคม คุณสามารถเล่นกับชุดทดสอบสาธิตได้:
ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง 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
ความคิดของตัวแทนถูกกำหนดไว้ที่ file_editor_ thought.py และบริบทหลามของมันคือ file_editor_moss.py สิ่งที่ llm ได้รับในรันไทม์คือสิ่งที่คุณเห็นในไฟล์นี้
รันกรณีทดสอบ:
venv/bin/python ghostos/demo/src/examples/code_edits/tool_generation_test.py
ในกรณีนี้ เอเจนต์จะได้รับคำสั่งให้ใช้คลาส MockCache
จากคลาสนามธรรม Cache
หลังจากรันเคส ไฟล์ tool_generation_test.py จะถูกเปลี่ยนแปลง
ความคิดของตัวแทนถูกกำหนดไว้ที่ pymodule_editor.py และบริบทของหลามคือ pymodule_editor_moss.py
รันกรณีทดสอบ:
venv/bin/python ghostos/demo/src/examples/code_edits/modify_directory_test.py
ในกรณีนี้ เอเจนต์ที่ติดตั้ง DirectoryEdit และเอเจนต์ FileEditThought อื่น จะได้รับคำสั่งให้แก้ไขไฟล์ทั้งหมดในไดเร็กทอรี code_edits
ควรเรียกไลบรารี MultiTask
เพื่อจัดส่งงานต่างๆ ไปยัง FileEditThought และงานต่างๆ จะทำงานแบบขนาน หลังจากงานทั้งหมดเสร็จสิ้น เจ้าหน้าที่จะตอบกลับผลลัพธ์ในเชิงรุก
ทั้งบริบท Thought และ Python ของ Agent ถูกกำหนดไว้ที่ directory_editor_ thought.py เราคาดหวังว่าเมตาเอเจนต์สามารถกำหนดตัวแทนโดเมนด้วยบริบทหลามเช่นนี้
GhostFunc
เป็นของเล่นที่เราใช้ในการทดสอบ MOSS ในการพัฒนาช่วงแรกๆ มีเครื่องมือตกแต่ง สามารถห่อฟังก์ชันลายเซ็นเฉพาะกับฟังก์ชันที่ขับเคลื่อนด้วย LLM ที่สร้างโค้ดระหว่างการโทร
รันกรณีทดสอบ:
venv/bin/python ghostos/demo/src/examples/ghostfunc/get_weather.py
ดูรายละเอียดเพิ่มเติมใน get_weather.py
เรากำลังวางแผนที่จะเปิดตัวเวอร์ชันแรกของโปรเจ็กต์นี้ในเดือนตุลาคม โปรเจ็กต์นี้ควรจะเป็นเฟรมเวิร์กเอเจนต์ที่มีต้นแบบแอปแทนที่จะเป็นแอปพลิเคชัน ตอนนี้เรามุ่งเน้นไปที่การพัฒนาส่วนประกอบของ GhostOS
บางส่วนด้วยตัวเอง ยังมีงานที่ต้องทำอีกมาก...