You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2.`Runner.run`関数を呼び出す際に`input` に追加します。これは `instructions`の戦術に似ていますが、[chain of command](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command)の中でより下位のメッセージを持てます。
Copy file name to clipboardExpand all lines: docs/ko/context.md
+31-31Lines changed: 31 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,30 +4,30 @@ search:
4
4
---
5
5
# 컨텍스트 관리
6
6
7
-
컨텍스트라는 용어는 여러 의미로 사용됩니다. 여기서 중요한 컨텍스트는 두 가지입니다:
7
+
컨텍스트는 의미가 중첩된 용어입니다. 관심을 가질 수 있는 컨텍스트는 크게 두 가지 범주가 있습니다:
8
8
9
-
1. 코드에서 로컬로 사용할 수 있는 컨텍스트: 도구 함수 실행 시, `on_handoff` 같은 콜백, 라이프사이클 훅 등에서 필요할 수 있는 데이터와 의존성
10
-
2.LLM 에서 사용할 수 있는 컨텍스트: LLM 이 응답을 생성할 때 볼 수 있는 데이터
9
+
1. 코드에서 로컬로 사용할 수 있는 컨텍스트: 도구 함수 실행 시, `on_handoff` 같은 콜백 중, 라이프사이클 훅 등에서 필요할 수 있는 데이터와 의존성입니다
10
+
2.LLM에서 사용할 수 있는 컨텍스트: 응답을 생성할 때 LLM이 보게 되는 데이터입니다
11
11
12
12
## 로컬 컨텍스트
13
13
14
-
이는 [`RunContextWrapper`][agents.run_context.RunContextWrapper] 클래스와 그 안의 [`context`][agents.run_context.RunContextWrapper.context]속성으로 표현됩니다. 동작 방식은 다음과 같습니다:
14
+
이는 [`RunContextWrapper`][agents.run_context.RunContextWrapper] 클래스와 그 안의 [`context`][agents.run_context.RunContextWrapper.context]프로퍼티로 표현됩니다. 동작 방식은 다음과 같습니다:
15
15
16
-
1. 원하는 Python 객체를 만듭니다. 일반적으로 dataclass 또는 Pydantic 객체를 사용합니다
17
-
2. 해당 객체를 다양한 실행 메서드에 전달합니다(예: `Runner.run(..., **context=whatever**))`
18
-
3. 모든 도구 호출, 라이프사이클 훅 등에는 `RunContextWrapper[T]` 래퍼 객체가 전달되며, 여기서 `T` 는 컨텍스트 객체 타입을 나타내며 `wrapper.context` 를 통해 접근할 수 있습니다
16
+
1. 원하는 어떤 파이썬 객체든 생성합니다. 흔한 패턴은 dataclass 또는 Pydantic 객체를 사용하는 것입니다
17
+
2. 해당 객체를 다양한 run 메서드(예: `Runner.run(..., context=whatever)`)에 전달합니다
18
+
3. 모든 도구 호출, 라이프사이클 훅 등에는 래퍼 객체 `RunContextWrapper[T]`가 전달되며, 여기서 `T`는 `wrapper.context`로 접근할 수 있는 컨텍스트 객체의 타입을 나타냅니다
19
19
20
-
가장 **중요한** 점: 특정 agent run 에 대해 각 에이전트, 도구 함수, 라이프사이클 등은 동일한 _type_ 의 컨텍스트를 사용해야 합니다.
20
+
가장 **중요한** 점: 특정 에이전트 run에 대해, 해당 run에서 사용되는 모든 에이전트, 도구 함수, 라이프사이클 등은 동일한 컨텍스트 _타입_을 사용해야 합니다
21
21
22
22
컨텍스트는 다음과 같은 용도로 사용할 수 있습니다:
23
23
24
-
- 실행을 위한 컨텍스트 데이터(예: 사용자 이름/uid 또는 사용자에 대한 기타 정보)
25
-
-의존성(예: 로거 객체, 데이터 페처 등)
26
-
-헬퍼 함수
24
+
-실행에 대한 컨텍스트 데이터(예: 사용자 이름/uid 또는 사용자에 대한 기타 정보)
25
+
- 의존성(예: 로거 객체, 데이터 페처 등)
26
+
- 헬퍼 함수
27
27
28
-
!!! danger "주의"
28
+
!!! danger "Note"
29
29
30
-
컨텍스트 객체는 LLM 에게 **전송되지 않습니다**. 순수하게 로컬 객체이며, 읽기/쓰기 및 메서드 호출이 가능합니다.
30
+
컨텍스트 객체는 **LLM에 전송되지 않습니다**. 이는 순수하게 로컬 객체로, 읽고/쓰고/메서드를 호출할 수 있습니다
31
31
32
32
```python
33
33
import asyncio
@@ -66,18 +66,18 @@ if __name__ == "__main__":
66
66
asyncio.run(main())
67
67
```
68
68
69
-
1. 이것이 컨텍스트 객체입니다. 여기서는 dataclass 를 사용했지만, 어떤 타입이든 사용할 수 있습니다.
70
-
2. 이것은 도구입니다. `RunContextWrapper[UserInfo]`를 받는 것을 볼 수 있습니다. 도구 구현은 컨텍스트에서 값을 읽습니다.
71
-
3.에이전트에 제네릭 `UserInfo` 를 지정하여, 타입 체커가 오류를 잡을 수 있게 합니다(예: 다른 컨텍스트 타입을 받는 도구를 전달하려 할 때).
72
-
4. 컨텍스트는 `run`함수로 전달됩니다.
73
-
5. 에이전트는 도구를 올바르게 호출하여 나이를 가져옵니다.
69
+
1. 이것이 컨텍스트 객체입니다. 여기서는 dataclass를 사용했지만 어떤 타입이든 사용할 수 있습니다
70
+
2. 이것은 도구입니다. `RunContextWrapper[UserInfo]`를 받는 것을 볼 수 있습니다. 도구 구현은 컨텍스트에서 값을 읽습니다
71
+
3.타입체커가 오류를 잡을 수 있도록(예: 다른 컨텍스트 타입을 받는 도구를 전달하려고 할 때) 에이전트에 제네릭 `UserInfo`를 표시합니다
72
+
4. 컨텍스트는 `run`함수에 전달됩니다
73
+
5. 에이전트는 도구를 올바르게 호출하고 나이를 얻습니다
74
74
75
75
---
76
76
77
77
### 고급: `ToolContext`
78
78
79
-
경우에 따라 실행 중인 도구의 추가 메타데이터(예: 이름, 호출 ID, 원문 인자 문자열)에 접근하고 싶을 수 있습니다.
80
-
이를 위해 `RunContextWrapper`를 확장한 [`ToolContext`][agents.tool_context.ToolContext] 클래스를 사용할 수 있습니다.
79
+
일부 경우에는 실행 중인 도구에 대한 추가 메타데이터(예: 이름, 호출 ID, 원문 인자 문자열)에 접근하고 싶을 수 있습니다.
80
+
이를 위해 `RunContextWrapper`를 확장한 [`ToolContext`][agents.tool_context.ToolContext] 클래스를 사용할 수 있습니다.
81
81
82
82
```python
83
83
from typing import Annotated
@@ -105,23 +105,23 @@ agent = Agent(
105
105
)
106
106
```
107
107
108
-
`ToolContext`는 `RunContextWrapper`와 동일한 `.context`속성을 제공하며,
109
-
현재 도구 호출에 특화된 추가 필드가 있습니다:
108
+
`ToolContext`는 `RunContextWrapper`와 동일한 `.context`프로퍼티를 제공하며,
109
+
여기에 더해 현재 도구 호출에 특화된 추가 필드를 제공합니다:
110
110
111
-
-`tool_name` – 호출 중인 도구의 이름
112
-
-`tool_call_id` – 이 도구 호출의 고유 식별자
111
+
-`tool_name` – 호출되는 도구의 이름
112
+
-`tool_call_id` – 이 도구 호출을 위한 고유 식별자
113
113
-`tool_arguments` – 도구에 전달된 원문 인자 문자열
114
114
115
-
실행 중 도구 수준의 메타데이터가 필요할 때 `ToolContext`를 사용하세요.
116
-
에이전트와 도구 간의 일반적인 컨텍스트 공유에는 `RunContextWrapper` 로 충분합니다.
115
+
실행 중 도구 수준의 메타데이터가 필요할 때 `ToolContext`를 사용하세요.
116
+
에이전트와 도구 간 일반적인 컨텍스트 공유에는 `RunContextWrapper`만으로도 충분합니다.
117
117
118
118
---
119
119
120
120
## 에이전트/LLM 컨텍스트
121
121
122
-
LLM 이 호출될 때, LLM 이 볼 수 있는 **유일한**데이터는 대화 히스토리에서 옵니다. 즉, 새로운 데이터를 LLM 이 보게 하려면 그 히스토리에 포함되도록 해야 합니다. 방법은 몇 가지가 있습니다:
122
+
LLM이 호출될 때, LLM이 볼 수 있는 데이터는 대화 히스토리에서 온 것 **뿐**입니다. 즉, 새로운 데이터를 LLM에서 사용할 수 있게 만들고 싶다면, 해당 데이터가 그 히스토리에 포함되도록 하는 방식으로 해야 합니다. 이를 위한 몇 가지 방법이 있습니다:
123
123
124
-
1.에이전트`instructions` 에 추가하세요. 이는 "system prompt" 또는 "developer message"라고도 합니다. 시스템 프롬프트는 정적 문자열일 수도 있고, 컨텍스트를 입력받아 문자열을 출력하는 동적 함수일 수도 있습니다. 항상 유용한 정보(예: 사용자 이름이나 현재 날짜)에 흔히 사용됩니다
125
-
2.`Runner.run` 함수를 호출할 때 `input` 에 추가하세요. 이는 `instructions`전략과 유사하지만, [지휘 계통](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command) 하위의 메시지를 사용할 수 있습니다
126
-
3. 함수 도구로 노출하세요. 이는 _on-demand_ 컨텍스트에 유용합니다 — LLM 이 데이터가 필요할 때를 스스로 판단하고, 도구를 호출해 해당 데이터를 가져옵니다
127
-
4.파일 검색 또는 웹 검색을 사용하세요. 이는 파일이나 데이터베이스에서 관련 데이터를 가져오거나(파일 검색), 웹에서 가져오는(웹 검색) 특수 도구입니다. 관련 컨텍스트 데이터로 응답을 "그라운딩"하는 데 유용합니다
124
+
1.Agent`instructions`에 추가할 수 있습니다. 이는 "system prompt" 또는 "developer message"라고도 합니다. 시스템 프롬프트는 정적인 문자열일 수도 있고, 컨텍스트를 받아 문자열을 출력하는 동적 함수일 수도 있습니다. 이는 항상 유용한 정보(예: 사용자 이름 또는 현재 날짜)에 대한 일반적인 전술입니다
125
+
2.`Runner.run` 함수를 호출할 때 `input`에 추가합니다. 이는 `instructions`전술과 유사하지만, [chain of command](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command)에서 더 낮은 수준의 메시지를 둘 수 있습니다
126
+
3. 함수 도구를 통해 노출합니다. 이는 _온디맨드_ 컨텍스트에 유용합니다. LLM이 언제 어떤 데이터가 필요한지 결정하고, 해당 데이터를 가져오기 위해 도구를 호출할 수 있습니다
127
+
4.retrieval 또는 웹 검색을 사용합니다. 이는 파일이나 데이터베이스에서 관련 데이터를 가져오거나(retrieval), 웹에서 가져올 수 있는(웹 검색) 특수 도구입니다. 이는 응답을 관련 컨텍스트 데이터에 "그라운딩"하는 데 유용합니다
0 commit comments