LangGraph Studio นำเสนอวิธีใหม่ในการพัฒนาแอปพลิเคชัน LLM โดยการจัดหา IDE ตัวแทนพิเศษที่ช่วยให้สามารถสร้างภาพ การโต้ตอบ และการแก้ไขข้อบกพร่องของแอปพลิเคชันตัวแทนที่ซับซ้อน
ด้วยกราฟภาพและความสามารถในการแก้ไขสถานะ คุณจะเข้าใจขั้นตอนการทำงานของตัวแทนได้ดีขึ้นและทำซ้ำได้รวดเร็วยิ่งขึ้น LangGraph Studio ทำงานร่วมกับ LangSmith เพื่อให้คุณสามารถทำงานร่วมกับเพื่อนร่วมทีมเพื่อแก้ไขข้อบกพร่องในโหมดความล้มเหลว
ขณะที่อยู่ในช่วงเบต้า LangGraph Studio จะให้บริการฟรีสำหรับผู้ใช้ LangSmith ทุกคนในทุกระดับแผน ลงทะเบียนเพื่อใช้งาน LangSmith ที่นี่
ดาวน์โหลดไฟล์ .dmg
ล่าสุดของ LangGraph Studio โดยคลิกที่นี่หรือไปที่หน้าเผยแพร่
ปัจจุบันรองรับเฉพาะ macOS เท่านั้น รองรับ Windows และ Linux ในเร็วๆ นี้ นอกจากนี้เรายังต้องอาศัย Docker Engine ในการทำงาน ขณะนี้เรารองรับรันไทม์ต่อไปนี้เท่านั้น:
LangGraph Studio ต้องใช้นักเทียบท่าเขียนเวอร์ชัน 2.22.0+ หรือสูงกว่า โปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งและใช้งาน Docker Desktop หรือ Orbstack ก่อนดำเนินการต่อ
หากต้องการใช้ LangGraph Studio ตรวจสอบให้แน่ใจว่าคุณมีโปรเจ็กต์ที่ตั้งค่าแอป LangGraph ไว้
สำหรับตัวอย่างนี้ เราจะใช้ที่เก็บตัวอย่างนี้ที่นี่ซึ่งใช้ไฟล์ requirements.txt
สำหรับการขึ้นต่อกัน:
git clone https://github.com/langchain-ai/langgraph-example.git
หากคุณต้องการใช้ไฟล์ pyproject.toml
แทนในการจัดการการขึ้นต่อกัน คุณสามารถใช้พื้นที่เก็บข้อมูลตัวอย่างนี้ได้
git clone https://github.com/langchain-ai/langgraph-example-pyproject.git
จากนั้น คุณจะต้องสร้างไฟล์ .env
พร้อมด้วยตัวแปรสภาพแวดล้อมที่เกี่ยวข้อง:
cp .env.example .env
จากนั้นคุณควรเปิดไฟล์ .env
และกรอกคีย์ OpenAI, Anthropic และ Tavily API ที่เกี่ยวข้อง
หากคุณได้ตั้งค่าไว้ในสภาพแวดล้อมของคุณแล้ว คุณสามารถบันทึกลงในไฟล์ .env นี้ได้ด้วยคำสั่งต่อไปนี้:
echo " OPENAI_API_KEY= " $OPENAI_API_KEY " " > .env
echo " ANTHROPIC_API_KEY= " $ANTHROPIC_API_KEY " " >> .env
echo " TAVILY_API_KEY= " $TAVILY_API_KEY " " >> .env
หมายเหตุ: อย่าเพิ่ม LANGSMITH_API_KEY ให้กับไฟล์ .env เราจะดำเนินการนี้ให้คุณโดยอัตโนมัติเมื่อคุณตรวจสอบสิทธิ์ และการตั้งค่าด้วยตนเองอาจทำให้เกิดข้อผิดพลาดได้
เมื่อคุณตั้งค่าโปรเจ็กต์แล้ว คุณจะสามารถใช้งานได้ใน LangGraph Studio มาดำน้ำกันเถอะ!
เมื่อคุณเปิดแอปเดสก์ท็อป LangGraph Studio เป็นครั้งแรก คุณจะต้องเข้าสู่ระบบผ่าน LangSmith
เมื่อคุณตรวจสอบสิทธิ์เรียบร้อยแล้ว คุณสามารถเลือกโฟลเดอร์แอปพลิเคชัน LangGraph ที่จะใช้ได้ คุณสามารถลากและวางหรือเลือกด้วยตนเองในตัวเลือกไฟล์ก็ได้ หากคุณกำลังใช้โปรเจ็กต์ตัวอย่าง โฟลเดอร์จะเป็น langgraph-example
สำคัญ
ไดเร็กทอรีแอปพลิเคชันที่คุณเลือกต้องมีไฟล์ langgraph.json
ที่กำหนดค่าไว้อย่างถูกต้อง ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าได้ที่นี่และวิธีตั้งค่าแอป LangGraph ที่นี่
เมื่อคุณเลือกโปรเจ็กต์ที่ถูกต้อง LangGraph Studio จะเริ่มเซิร์ฟเวอร์ LangGraph API และคุณจะเห็น UI พร้อมกราฟของคุณแสดงผล
ตอนนี้เราสามารถรันกราฟได้แล้ว! LangGraph Studio ช่วยให้คุณสามารถรันกราฟด้วยอินพุตและการกำหนดค่าที่แตกต่างกัน
หากต้องการเริ่มการทำงานใหม่:
agent
รายการกราฟสอดคล้องกับคีย์ graphs
ในการกำหนดค่า langgraph.json
ของคุณInput
Submit
เพื่อเรียกใช้กราฟที่เลือกวิดีโอต่อไปนี้แสดงวิธีเริ่มการทำงานใหม่:
หากต้องการเปลี่ยนการกำหนดค่าสำหรับการรันกราฟที่กำหนด ให้กดปุ่ม Configurable
ในส่วน Input
จากนั้นคลิก Submit
เพื่อเรียกใช้กราฟ
สำคัญ
เพื่อให้มองเห็นเมนู Configurable
สอบให้แน่ใจว่าได้ระบุ config schema เมื่อสร้าง StateGraph
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับวิธีเพิ่มสคีมาการกำหนดค่าลงในกราฟของคุณได้ที่นี่
วิดีโอต่อไปนี้แสดงวิธีแก้ไขการกำหนดค่าและเริ่มการทำงานใหม่:
เมื่อคุณเปิด LangGraph Studio คุณจะอยู่ในหน้าต่างเธรดใหม่โดยอัตโนมัติ หากคุณมีเธรดที่มีอยู่เปิดอยู่ ให้ทำตามขั้นตอนเหล่านี้เพื่อสร้างเธรดใหม่:
+
เพื่อเปิดเมนูชุดข้อความใหม่วิดีโอต่อไปนี้แสดงวิธีการสร้างเธรด:
หากต้องการเลือกเธรด:
New Thread
/ Thread
ที่ด้านบนของบานหน้าต่างด้านขวาเพื่อเปิดรายการเธรดแบบเลื่อนลงวิดีโอต่อไปนี้แสดงวิธีการเลือกเธรด:
LangGraph Studio ช่วยให้คุณสามารถแก้ไขสถานะเธรดและแยกเธรดเพื่อสร้างการดำเนินการกราฟทางเลือกด้วยสถานะที่อัปเดต โดยทำดังนี้:
Fork
เพื่ออัปเดตสถานะและสร้างการดำเนินการกราฟใหม่ด้วยสถานะที่อัปเดตวิดีโอต่อไปนี้แสดงวิธีแก้ไขเธรดในสตูดิโอ:
คุณอาจต้องการดำเนินการกราฟของคุณทีละขั้นตอน หรือหยุดการดำเนินการกราฟก่อน/หลังดำเนินการโหนดใดโหนดหนึ่ง คุณสามารถทำได้โดยเพิ่มการขัดจังหวะ สามารถตั้งค่าการขัดจังหวะสำหรับโหนดทั้งหมด (เช่น การดำเนินการผ่านตัวแทนทีละขั้นตอน) หรือสำหรับโหนดเฉพาะ การขัดจังหวะใน LangGraph Studio หมายความว่าการประมวลผลกราฟจะถูกขัดจังหวะทั้งก่อนและหลังการทำงานของโหนดที่กำหนด
หากต้องการดูการดำเนินการของตัวแทนทีละขั้นตอน คุณสามารถเพิ่มการขัดจังหวะให้กับโหนดทั้งหมดหรือชุดย่อยในกราฟได้:
Interrupt
Interrupt on all
วิดีโอต่อไปนี้แสดงวิธีเพิ่มการขัดจังหวะให้กับโหนดทั้งหมด:
+
ปรากฏทางด้านซ้ายของโหนด+
เพื่อเรียกใช้กราฟที่เลือกInput
/ การกำหนดค่า แล้วคลิก Submit
วิดีโอต่อไปนี้แสดงวิธีการเพิ่มการขัดจังหวะให้กับโหนดเฉพาะ:
หากต้องการลบการขัดจังหวะ เพียงทำตามขั้นตอนเดียวกันแล้วกดปุ่ม x
ทางด้านซ้ายของโหนด
นอกเหนือจากการขัดจังหวะโหนดและการแก้ไขสถานะกราฟแล้ว คุณอาจต้องการสนับสนุนเวิร์กโฟลว์แบบมนุษย์ในวงด้วยความสามารถในการอัปเดตสถานะด้วยตนเอง นี่คือ agent.py
เวอร์ชันแก้ไขที่มี agent
และโหนด human
โดยที่การประมวลผลกราฟจะถูกขัดจังหวะบนโหนด human
สิ่งนี้จะช่วยให้คุณสามารถส่งข้อมูลโดยเป็นส่วนหนึ่งของโหนด human
ได้ สิ่งนี้มีประโยชน์เมื่อคุณต้องการให้เอเจนต์รับอินพุตจากผู้ใช้ สิ่งนี้จะแทนที่วิธีที่คุณอาจใช้ input()
หากคุณเรียกใช้สิ่งนี้จากบรรทัดคำสั่ง
from typing import TypedDict , Annotated , Sequence , Literal
from langchain_core . messages import BaseMessage , HumanMessage
from langchain_anthropic import ChatAnthropic
from langgraph . graph import StateGraph , END , add_messages
class AgentState ( TypedDict ):
messages : Annotated [ Sequence [ BaseMessage ], add_messages ]
model = ChatAnthropic ( temperature = 0 , model_name = "claude-3-sonnet-20240229" )
def call_model ( state : AgentState ) -> AgentState :
messages = state [ "messages" ]
response = model . invoke ( messages )
return { "messages" : [ response ]}
# no-op node that should be interrupted on
def human_feedback ( state : AgentState ) -> AgentState :
pass
def should_continue ( state : AgentState ) -> Literal [ "agent" , "end" ]:
messages = state [ 'messages' ]
last_message = messages [ - 1 ]
if isinstance ( last_message , HumanMessage ):
return "agent"
return "end"
workflow = StateGraph ( AgentState )
workflow . set_entry_point ( "agent" )
workflow . add_node ( "agent" , call_model )
workflow . add_node ( "human" , human_feedback )
workflow . add_edge ( "agent" , "human" )
workflow . add_conditional_edges (
"human" ,
should_continue ,
{
"agent" : "agent" ,
"end" : END ,
},
)
graph = workflow . compile ( interrupt_before = [ "human" ])
วิดีโอต่อไปนี้แสดงวิธีการส่งการอัปเดตสถานะด้วยตนเอง (เช่น ข้อความในตัวอย่างของเรา) เมื่อถูกขัดจังหวะ:
LangGraph Studio ช่วยให้คุณสามารถแก้ไขการกำหนดค่าโครงการ ( langgraph.json
) แบบโต้ตอบได้
หากต้องการแก้ไขการกำหนดค่าจากสตูดิโอ ให้ทำตามขั้นตอนเหล่านี้:
Configure
ที่ด้านล่างขวา นี่จะเป็นการเปิดเมนูการกำหนดค่าแบบโต้ตอบพร้อมค่าที่สอดคล้องกับ langgraph.json
ที่มีอยู่Save and Restart
เพื่อโหลดเซิร์ฟเวอร์ LangGraph API อีกครั้งด้วยการกำหนดค่าที่อัปเดตวิดีโอต่อไปนี้แสดงวิธีแก้ไขการกำหนดค่าโปรเจ็กต์จากสตูดิโอ:
ด้วย LangGraph Studio คุณสามารถแก้ไขโค้ดกราฟของคุณและซิงค์การเปลี่ยนแปลงแบบเรียลไทม์กับกราฟเชิงโต้ตอบได้
หากต้องการแก้ไขกราฟของคุณจากสตูดิโอ ให้ทำตามขั้นตอนเหล่านี้:
Open in VS Code
ที่ด้านล่างขวา ซึ่งจะเป็นการเปิดโครงการที่เปิดอยู่ในสตูดิโอ LangGraph ในปัจจุบัน.py
ซึ่งมีการกำหนดกราฟที่คอมไพล์แล้วหรือการอ้างอิงที่เกี่ยวข้องวิดีโอต่อไปนี้แสดงวิธีการเปิดตัวแก้ไขโค้ดจากสตูดิโอ:
หลังจากที่คุณแก้ไขโค้ดที่สำคัญแล้ว คุณยังสามารถเล่นซ้ำโหนดในกราฟได้อีกด้วย ตัวอย่างเช่น หากตัวแทนตอบสนองได้ไม่ดี คุณสามารถอัปเดตการใช้งานโหนดตัวแทนในโปรแกรมแก้ไขโค้ดของคุณและรันใหม่ได้ ซึ่งจะทำให้การวนซ้ำกับเอเจนต์ที่ทำงานระยะยาวง่ายขึ้นมาก
LangGraph Studio อาศัย Docker Compose เพื่อรัน API, Redis และ Postgres ซึ่งจะสร้างเครือข่ายของตัวเองขึ้นมา ดังนั้น ในการเข้าถึงบริการในพื้นที่ คุณจำเป็นต้องใช้ host.docker.internal
เป็นชื่อโฮสต์แทน localhost
ดู #112 สำหรับรายละเอียดเพิ่มเติม
ตามค่าเริ่มต้น เราพยายามทำให้อิมเมจมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ ดังนั้นการขึ้นต่อกันบางอย่าง เช่น gcc
หรือ build-essentials
จะหายไปจากอิมเมจพื้นฐาน หากคุณต้องการติดตั้งการขึ้นต่อกันเพิ่มเติม คุณสามารถทำได้โดยเพิ่มคำแนะนำ Dockerfile เพิ่มเติมในส่วน dockerfile_lines
ของไฟล์ langgraph.json
:
{
"dockerfile_lines": [
"RUN apt-get update && apt-get install -y gcc"
]
}
ดูวิธีปรับแต่ง Dockerfile สำหรับรายละเอียดเพิ่มเติม