이 가이드는 double-texting이 무엇인지에 대한 지식을 전제로 하며, double-texting 개념 가이드에서 이에 대해 배울 수 있습니다. 이 가이드는 double texting을 위한 interrupt 옵션을 다루며, 이는 그래프의 이전 실행을 중단하고 double-text로 새로운 실행을 시작합니다. 이 옵션은 첫 번째 실행을 삭제하지 않고, 데이터베이스에 유지하되 상태를 interrupted로 설정합니다. 아래는 interrupt 옵션을 사용하는 간단한 예제입니다.

Setup

먼저, JS와 CURL 모델 출력을 출력하기 위한 간단한 헬퍼 함수를 정의하겠습니다 (Python을 사용하는 경우 이 부분을 건너뛸 수 있습니다):
  • Javascript
  • CURL
function prettyPrint(m) {
  const padded = " " + m['type'] + " ";
  const sepLen = Math.floor((80 - padded.length) / 2);
  const sep = "=".repeat(sepLen);
  const secondSep = sep + (padded.length % 2 ? "=" : "");

  console.log(`${sep}${padded}${secondSep}`);
  console.log("\n\n");
  console.log(m.content);
}
이제 필요한 패키지를 import하고 client, assistant, thread를 인스턴스화하겠습니다.
  • Python
  • Javascript
  • CURL
import asyncio

from langchain_core.messages import convert_to_messages
from langgraph_sdk import get_client

client = get_client(url=<DEPLOYMENT_URL>)
# Using the graph deployed with the name "agent"
assistant_id = "agent"
thread = await client.threads.create()

Create runs

이제 두 개의 실행을 시작하고 두 번째 실행이 완료될 때까지 join할 수 있습니다:
  • Python
  • Javascript
  • CURL
# the first run will be interrupted
interrupted_run = await client.runs.create(
    thread["thread_id"],
    assistant_id,
    input={"messages": [{"role": "user", "content": "what's the weather in sf?"}]},
)
# sleep a bit to get partial outputs from the first run
await asyncio.sleep(2)
run = await client.runs.create(
    thread["thread_id"],
    assistant_id,
    input={"messages": [{"role": "user", "content": "what's the weather in nyc?"}]},
    multitask_strategy="interrupt",
)
# wait until the second run completes
await client.runs.join(thread["thread_id"], run["run_id"])

View run results

thread가 첫 번째 실행의 부분 데이터 + 두 번째 실행의 데이터를 가지고 있음을 확인할 수 있습니다
  • Python
  • Javascript
  • CURL
state = await client.threads.get_state(thread["thread_id"])

for m in convert_to_messages(state["values"]["messages"]):
    m.pretty_print()
Output:
================================ Human Message =================================

what's the weather in sf?
================================== Ai Message ==================================

[{'id': 'toolu_01MjNtVJwEcpujRGrf3x6Pih', 'input': {'query': 'weather in san francisco'}, 'name': 'tavily_search_results_json', 'type': 'tool_use'}]
Tool Calls:
tavily_search_results_json (toolu_01MjNtVJwEcpujRGrf3x6Pih)
Call ID: toolu_01MjNtVJwEcpujRGrf3x6Pih
Args:
query: weather in san francisco
================================= Tool Message =================================
Name: tavily_search_results_json

[{"url": "https://www.wunderground.com/hourly/us/ca/san-francisco/KCASANFR2002/date/2024-6-18", "content": "High 64F. Winds W at 10 to 20 mph. A few clouds from time to time. Low 49F. Winds W at 10 to 20 mph. Temp. San Francisco Weather Forecasts. Weather Underground provides local & long-range weather ..."}]
================================ Human Message =================================

what's the weather in nyc?
================================== Ai Message ==================================

[{'id': 'toolu_01KtE1m1ifPLQAx4fQLyZL9Q', 'input': {'query': 'weather in new york city'}, 'name': 'tavily_search_results_json', 'type': 'tool_use'}]
Tool Calls:
tavily_search_results_json (toolu_01KtE1m1ifPLQAx4fQLyZL9Q)
Call ID: toolu_01KtE1m1ifPLQAx4fQLyZL9Q
Args:
query: weather in new york city
================================= Tool Message =================================
Name: tavily_search_results_json

[{"url": "https://www.accuweather.com/en/us/new-york/10021/june-weather/349727", "content": "Get the monthly weather forecast for New York, NY, including daily high/low, historical averages, to help you plan ahead."}]
================================== Ai Message ==================================

The search results provide weather forecasts and information for New York City. Based on the top result from AccuWeather, here are some key details about the weather in NYC:

* This is a monthly weather forecast for New York City for the month of June.
* It includes daily high and low temperatures to help plan ahead.
* Historical averages for June in NYC are also provided as a reference point.
* More detailed daily or hourly forecasts with precipitation chances, humidity, wind, etc. can be found by visiting the AccuWeather page.

So in summary, the search provides a convenient overview of the expected weather conditions in New York City over the next month to give you an idea of what to prepare for if traveling or making plans there. Let me know if you need any other details!
원래의 중단된 실행이 interrupted 상태인지 확인합니다
  • Python
  • Javascript
print((await client.runs.get(thread["thread_id"], interrupted_run["run_id"]))["status"])
Output:
'interrupted'

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I