Skip to content

Commit fabba01

Browse files
docs: update translated document pages (#2527)
1 parent 176dde9 commit fabba01

File tree

6 files changed

+716
-326
lines changed

6 files changed

+716
-326
lines changed

docs/ja/running_agents.md

Lines changed: 141 additions & 72 deletions
Large diffs are not rendered by default.

docs/ja/sessions/index.md

Lines changed: 118 additions & 57 deletions
Large diffs are not rendered by default.

docs/ko/running_agents.md

Lines changed: 124 additions & 55 deletions
Large diffs are not rendered by default.

docs/ko/sessions/index.md

Lines changed: 104 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ search:
44
---
55
# 세션
66

7-
Agents SDK는 여러 에이전트 실행에 걸쳐 대화 기록을 자동으로 유지하기 위한 내장 세션 메모리를 제공하므로, 턴 사이에 `.to_input_list()`를 수동으로 처리할 필요가 없습니다.
7+
Agents SDK 는 내장된 세션 메모리를 제공하여 여러 번의 에이전트 실행에 걸쳐 대화 기록을 자동으로 유지하므로, 턴 사이에 `.to_input_list()` 를 수동으로 처리할 필요가 없습니다.
88

9-
세션은 특정 세션의 대화 기록을 저장하여, 명시적인 수동 메모리 관리 없이도 에이전트가 컨텍스트를 유지할 수 있게 합니다. 이는 에이전트가 이전 상호작용을 기억하길 원하는 채팅 애플리케이션이나 멀티턴 대화를 구축할 때 특히 유용합니다.
9+
세션은 특정 세션의 대화 기록을 저장하여, 에이전트가 명시적인 수동 메모리 관리 없이도 컨텍스트를 유지할 수 있게 합니다. 이는 채팅 애플리케이션이나 멀티턴 대화를 구축할 때, 에이전트가 이전 상호작용을 기억하길 원하는 경우에 특히 유용합니다.
1010

1111
## 빠른 시작
1212

@@ -49,19 +49,80 @@ print(result.final_output) # "Approximately 39 million"
4949

5050
## 동작 방식
5151

52-
세션 메모리가 활성화되면:
52+
세션 메모리가 활성화되어 있을 때:
5353

54-
1. **각 실행 전**: 러너가 세션의 대화 기록을 자동으로 가져와 입력 아이템 앞에 추가합니다
54+
1. **각 실행 전**: 러너가 세션의 대화 기록을 자동으로 가져와 입력 아이템 앞에 덧붙입니다
5555
2. **각 실행 후**: 실행 중 생성된 모든 새 아이템(사용자 입력, 어시스턴트 응답, 도구 호출 등)이 자동으로 세션에 저장됩니다
56-
3. **컨텍스트 보존**: 동일한 세션으로 이후 실행을 할 때마다 전체 대화 기록이 포함되어, 에이전트가 컨텍스트를 유지할 수 있습니다
56+
3. **컨텍스트 보존**: 동일한 세션으로 이어지는 각 실행에는 전체 대화 기록이 포함되어, 에이전트가 컨텍스트를 유지할 수 있습니다
5757

58-
이를 통해 `.to_input_list()`를 수동으로 호출하고 실행 사이의 대화 상태를 관리할 필요가 없어집니다.
58+
이로써 `.to_input_list()` 를 수동으로 호출하고 실행 간 대화 상태를 관리할 필요가 없어집니다.
59+
60+
## 준비된 입력 커스터마이징
61+
62+
세션을 전달하면, 러너는 보통 모델 입력을 다음과 같이 준비합니다:
63+
64+
1. 세션 히스토리(`session.get_items(...)` 에서 가져옴)
65+
2. 새 턴 입력
66+
67+
모델 호출 전에 해당 병합 단계를 커스터마이징하려면 [`RunConfig.session_input_callback`][agents.run.RunConfig.session_input_callback] 을 사용하세요. 콜백은 두 개의 리스트를 받습니다:
68+
69+
- `history`: 가져온 세션 히스토리(이미 input-item 형식으로 정규화됨)
70+
- `new_input`: 현재 턴의 새 입력 아이템
71+
72+
모델에 보낼 최종 입력 아이템 리스트를 반환하세요.
73+
74+
```python
75+
from agents import Agent, RunConfig, Runner, SQLiteSession
76+
77+
78+
def keep_recent_history(history, new_input):
79+
# Keep only the last 10 history items, then append the new turn.
80+
return history[-10:] + new_input
81+
82+
83+
agent = Agent(name="Assistant")
84+
session = SQLiteSession("conversation_123")
85+
86+
result = await Runner.run(
87+
agent,
88+
"Continue from the latest updates only.",
89+
session=session,
90+
run_config=RunConfig(session_input_callback=keep_recent_history),
91+
)
92+
```
93+
94+
세션이 아이템을 저장하는 방식은 바꾸지 않으면서, 히스토리의 커스텀 프루닝(pruning), 재정렬, 선택적 포함이 필요할 때 사용하세요.
95+
96+
## 가져오는 히스토리 제한
97+
98+
각 실행 전에 가져올 히스토리 양을 제어하려면 [`SessionSettings`][agents.memory.SessionSettings] 를 사용하세요.
99+
100+
- `SessionSettings(limit=None)` (기본값): 사용 가능한 모든 세션 아이템을 가져옵니다
101+
- `SessionSettings(limit=N)`: 가장 최근의 `N` 개 아이템만 가져옵니다
102+
103+
실행별로 [`RunConfig.session_settings`][agents.run.RunConfig.session_settings] 를 통해 적용할 수 있습니다:
104+
105+
```python
106+
from agents import Agent, RunConfig, Runner, SessionSettings, SQLiteSession
107+
108+
agent = Agent(name="Assistant")
109+
session = SQLiteSession("conversation_123")
110+
111+
result = await Runner.run(
112+
agent,
113+
"Summarize our recent discussion.",
114+
session=session,
115+
run_config=RunConfig(session_settings=SessionSettings(limit=50)),
116+
)
117+
```
118+
119+
세션 구현이 기본 세션 설정을 노출하는 경우, `RunConfig.session_settings` 는 해당 실행에서 `None` 이 아닌 값들을 오버라이드합니다. 이는 긴 대화에서, 세션의 기본 동작을 바꾸지 않으면서도 가져오기 크기에 상한을 두고 싶을 때 유용합니다.
59120

60121
## 메모리 작업
61122

62123
### 기본 작업
63124

64-
세션은 대화 기록을 관리하기 위한 여러 작업을 지원합니다:
125+
세션은 대화 기록 관리를 위한 여러 작업을 지원합니다:
65126

66127
```python
67128
from agents import SQLiteSession
@@ -88,7 +149,7 @@ await session.clear_session()
88149

89150
### 수정 시 pop_item 사용
90151

91-
`pop_item` 메서드는 대화에서 마지막 아이템을 되돌리거나 수정하려는 경우 특히 유용합니다:
152+
`pop_item` 메서드는 대화에서 마지막 아이템을 되돌리거나 수정하고 싶을 때 특히 유용합니다:
92153

93154
```python
94155
from agents import Agent, Runner, SQLiteSession
@@ -119,11 +180,11 @@ print(f"Agent: {result.final_output}")
119180

120181
## 세션 유형
121182

122-
SDK는 다양한 사용 사례를 위한 여러 세션 구현을 제공합니다:
183+
SDK 는 다양한 사용 사례를 위해 여러 세션 구현을 제공합니다:
123184

124185
### OpenAI Conversations API 세션
125186

126-
`OpenAIConversationsSession`을 통해 [OpenAI의 Conversations API](https://platform.openai.com/docs/api-reference/conversations)를 사용합니다.
187+
`OpenAIConversationsSession` 을 통해 [OpenAI's Conversations API](https://platform.openai.com/docs/api-reference/conversations) 를 사용합니다.
127188

128189
```python
129190
from agents import Agent, Runner, OpenAIConversationsSession
@@ -157,9 +218,9 @@ result = await Runner.run(
157218
print(result.final_output) # "California"
158219
```
159220

160-
### OpenAI Responses 압축 세션
221+
### OpenAI Responses compaction 세션
161222

162-
`OpenAIResponsesCompactionSession`을 사용하면 Responses API(`responses.compact`)로 세션 기록을 압축할 수 있습니다. 이는 기본 세션을 감싸는 래퍼이며, `should_trigger_compaction`에 따라 각 턴 이후 자동으로 압축할 수 있습니다.
223+
`OpenAIResponsesCompactionSession` 을 사용하면 Responses API(`responses.compact`) 로 세션 히스토리를 압축(compact)할 수 있습니다. 이는 하위 세션을 래핑하며, `should_trigger_compaction` 에 따라 각 턴 자동으로 압축할 수 있습니다.
163224

164225
#### 일반적인 사용(자동 압축)
165226

@@ -178,13 +239,13 @@ result = await Runner.run(agent, "Hello", session=session)
178239
print(result.final_output)
179240
```
180241

181-
기본적으로 후보 임계값에 도달하면 각 턴 이후 압축이 실행됩니다.
242+
기본적으로 후보 임계값에 도달하면 각 턴 압축이 실행됩니다.
182243

183-
#### 자동 압축은 스트리밍을 차단할 수 있음
244+
#### 자동 압축은 스트리밍을 블로킹할 수 있음
184245

185-
압축은 세션 기록을 지우고 다시 쓰므로, SDK는 압축이 끝날 때까지 실행이 완료된 것으로 간주하지 않습니다. 스트리밍 모드에서는 압축이 무거운 경우 마지막 출력 토큰 이후에도 `run.stream_events()`가 몇 초 동안 열린 상태로 유지될 수 있습니다.
246+
압축은 세션 히스토리를 비우고 다시 쓰므로, SDK 는 실행이 완료되었다고 간주하기 전에 압축이 끝나길 기다립니다. 스트리밍 모드에서는 압축이 무거운 경우 마지막 출력 토큰 이후에도 `run.stream_events()` 가 몇 초 동안 열려 있을 수 있다는 뜻입니다.
186247

187-
지연이 낮은 스트리밍이나 빠른 턴 전환이 필요하다면 자동 압축을 비활성화하고, 턴 사이(또는 유휴 시간)에 직접 `run_compaction()`을 호출하세요. 자체 기준에 따라 언제 압축을 강제할지 결정할 수 있습니다.
248+
낮은 지연의 스트리밍이나 빠른 턴 전환이 필요하다면 자동 압축을 비활성화하고, 턴 사이(또는 유휴 시간)에 직접 `run_compaction()` 을 호출하세요. 자체 기준에 따라 언제 압축을 강제할지 결정할 수 있습니다.
188249

189250
```python
190251
from agents import Agent, Runner, SQLiteSession
@@ -207,7 +268,7 @@ await session.run_compaction({"force": True})
207268

208269
### SQLite 세션
209270

210-
SQLite를 사용하는 기본 경량 세션 구현입니다:
271+
SQLite 를 사용하는 기본 경량 세션 구현입니다:
211272

212273
```python
213274
from agents import SQLiteSession
@@ -228,7 +289,7 @@ result = await Runner.run(
228289

229290
### 비동기 SQLite 세션
230291

231-
`aiosqlite` 기반의 SQLite 영속성이 필요하면 `AsyncSQLiteSession`을 사용하세요.
292+
`aiosqlite` 기반 SQLite 영속성이 필요할 때 `AsyncSQLiteSession` 을 사용하세요.
232293

233294
```bash
234295
pip install aiosqlite
@@ -245,7 +306,7 @@ result = await Runner.run(agent, "Hello", session=session)
245306

246307
### Redis 세션
247308

248-
여러 워커 또는 서비스 간에 공유되는 세션 메모리가 필요하면 `RedisSession`을 사용하세요.
309+
여러 워커나 서비스에 걸쳐 공유되는 세션 메모리가 필요하면 `RedisSession` 을 사용하세요.
249310

250311
```bash
251312
pip install openai-agents[redis]
@@ -265,7 +326,7 @@ result = await Runner.run(agent, "Hello", session=session)
265326

266327
### SQLAlchemy 세션
267328

268-
SQLAlchemy가 지원하는 어떤 데이터베이스든 사용할 수 있는 프로덕션 준비 세션입니다:
329+
SQLAlchemy 가 지원하는 어떤 데이터베이스든 사용할 수 있는 프로덕션 준비 세션입니다:
269330

270331
```python
271332
from agents.extensions.memory import SQLAlchemySession
@@ -283,13 +344,13 @@ engine = create_async_engine("postgresql+asyncpg://user:pass@localhost/db")
283344
session = SQLAlchemySession("user_123", engine=engine, create_tables=True)
284345
```
285346

286-
자세한 문서는 [SQLAlchemy Sessions](sqlalchemy_session.md)를 참고하세요.
347+
자세한 문서는 [SQLAlchemy Sessions](sqlalchemy_session.md) 를 참고하세요.
287348

288349

289350

290351
### 고급 SQLite 세션
291352

292-
대화 분기, 사용량 분석, structured outputs 쿼리를 지원하는 강화된 SQLite 세션입니다:
353+
대화 브랜칭, 사용량 분석, structured queries 를 제공하는 강화된 SQLite 세션입니다:
293354

294355
```python
295356
from agents.extensions.memory import AdvancedSQLiteSession
@@ -309,9 +370,9 @@ await session.store_run_usage(result) # Track token usage
309370
await session.create_branch_from_turn(2) # Branch from turn 2
310371
```
311372

312-
자세한 문서는 [Advanced SQLite Sessions](advanced_sqlite_session.md)를 참고하세요.
373+
자세한 문서는 [Advanced SQLite Sessions](advanced_sqlite_session.md) 를 참고하세요.
313374

314-
### 암호화된 세션
375+
### 암호화 세션
315376

316377
어떤 세션 구현에도 적용 가능한 투명한 암호화 래퍼입니다:
317378

@@ -336,33 +397,33 @@ session = EncryptedSession(
336397
result = await Runner.run(agent, "Hello", session=session)
337398
```
338399

339-
자세한 문서는 [Encrypted Sessions](encrypted_session.md)를 참고하세요.
400+
자세한 문서는 [Encrypted Sessions](encrypted_session.md) 를 참고하세요.
340401

341402
### 기타 세션 유형
342403

343-
몇 가지 내장 옵션이 더 있습니다. `examples/memory/` `extensions/memory/` 아래의 소스 코드를 참고하세요.
404+
몇 가지 내장 옵션이 더 있습니다. `examples/memory/` `extensions/memory/` 아래의 소스 코드를 참고하세요.
344405

345406
## 세션 관리
346407

347-
### 세션 ID 명명
408+
### 세션 ID 네이밍
348409

349-
대화를 정리하는 데 도움이 되는 의미 있는 세션 ID를 사용하세요:
410+
대화를 정리하는 데 도움이 되는 의미 있는 세션 ID 를 사용하세요:
350411

351412
- 사용자 기반: `"user_12345"`
352413
- 스레드 기반: `"thread_abc123"`
353414
- 컨텍스트 기반: `"support_ticket_456"`
354415

355416
### 메모리 영속성
356417

357-
- 임시 대화에는 인메모리 SQLite(`SQLiteSession("session_id")`)를 사용하세요
358-
- 영속 대화에는 파일 기반 SQLite(`SQLiteSession("session_id", "path/to/db.sqlite")`)를 사용하세요
359-
- `aiosqlite` 기반 구현이 필요하면 비동기 SQLite(`AsyncSQLiteSession("session_id", db_path="...")`)를 사용하세요
360-
- 공유되고 지연이 낮은 세션 메모리가 필요하면 Redis 백엔드 세션(`RedisSession.from_url("session_id", url="redis://...")`)을 사용하세요
361-
- SQLAlchemy가 지원하는 기존 데이터베이스를 사용하는 프로덕션 시스템에는 SQLAlchemy 기반 세션(`SQLAlchemySession("session_id", engine=engine, create_tables=True)`)을 사용하세요
362-
- 내장 텔레메트리, 트레이싱, 데이터 격리를 갖추고 30개 이상의 데이터베이스 백엔드를 지원하는 프로덕션 클라우드 네이티브 배포에는 Dapr 상태 저장소 세션(`DaprSession.from_address("session_id", state_store_name="statestore", dapr_address="localhost:50001")`)을 사용하세요
363-
- OpenAI Conversations API에 기록을 저장하고 싶다면 OpenAI 호스트하는 스토리지(`OpenAIConversationsSession()`)를 사용하세요
364-
- 투명한 암호화 및 TTL 기반 만료로 어떤 세션이든 감싸려면 암호화된 세션(`EncryptedSession(session_id, underlying_session, encryption_key)`)을 사용하세요
365-
- 더 고급 사용 사례를 위해 다른 프로덕션 시스템(예: Django)을 대상으로 커스텀 세션 백엔드 구현을 고려하세요
418+
- 임시 대화에는 인메모리 SQLite (`SQLiteSession("session_id")`) 를 사용하세요
419+
- 영속 대화에는 파일 기반 SQLite (`SQLiteSession("session_id", "path/to/db.sqlite")`) 를 사용하세요
420+
- `aiosqlite` 기반 구현이 필요하면 비동기 SQLite (`AsyncSQLiteSession("session_id", db_path="...")`) 를 사용하세요
421+
- 공유되고 지연이 낮은 세션 메모리가 필요하면 Redis 기반 세션 (`RedisSession.from_url("session_id", url="redis://...")`) 을 사용하세요
422+
- SQLAlchemy 가 지원하는 기존 데이터베이스를 사용하는 프로덕션 시스템에는 SQLAlchemy 기반 세션 (`SQLAlchemySession("session_id", engine=engine, create_tables=True)`) 을 사용하세요
423+
- 내장 텔레메트리, 트레이싱, 데이터 격리를 갖춘 30+ 데이터베이스 백엔드 지원이 필요한 프로덕션 클라우드 네이티브 배포에는 Dapr state store 세션 (`DaprSession.from_address("session_id", state_store_name="statestore", dapr_address="localhost:50001")`) 을 사용하세요
424+
- 히스토리를 OpenAI Conversations API 에 저장하고 싶다면 OpenAI 호스트하는 스토리지 (`OpenAIConversationsSession()`) 를 사용하세요
425+
- 투명한 암호화와 TTL 기반 만료를 위해 어떤 세션이든 래핑하려면 암호화 세션 (`EncryptedSession(session_id, underlying_session, encryption_key)`) 을 사용하세요
426+
- 더 고급 사용 사례를 위해 다른 프로덕션 시스템(예: Django) 커스텀 세션 백엔드 구현을 고려하세요
366427

367428
### 여러 세션
368429

@@ -523,11 +584,11 @@ result = await Runner.run(
523584

524585
| Package | Description |
525586
|---------|-------------|
526-
| [openai-django-sessions](https://pypi.org/project/openai-django-sessions/) | Django가 지원하는 어떤 데이터베이스(PostgreSQL, MySQL, SQLite 등)에서도 사용할 수 있는 Django ORM 기반 세션 |
587+
| [openai-django-sessions](https://pypi.org/project/openai-django-sessions/) | Django 가 지원하는 어떤 데이터베이스(PostgreSQL, MySQL, SQLite 등)에도 사용할 수 있는 Django ORM 기반 세션 |
527588

528-
세션 구현을 만들었다면, 여기에 추가할 수 있도록 문서 PR을 제출해 주세요!
589+
세션 구현을 만들었다면, 여기에 추가할 수 있도록 문서 PR 을 제출해 주세요!
529590

530-
## API 레퍼런스
591+
## API 참조
531592

532593
자세한 API 문서는 다음을 참고하세요:
533594

@@ -536,8 +597,8 @@ result = await Runner.run(
536597
- [`OpenAIResponsesCompactionSession`][agents.memory.openai_responses_compaction_session.OpenAIResponsesCompactionSession] - Responses API 압축 래퍼
537598
- [`SQLiteSession`][agents.memory.sqlite_session.SQLiteSession] - 기본 SQLite 구현
538599
- [`AsyncSQLiteSession`][agents.extensions.memory.async_sqlite_session.AsyncSQLiteSession] - `aiosqlite` 기반 비동기 SQLite 구현
539-
- [`RedisSession`][agents.extensions.memory.redis_session.RedisSession] - Redis 백엔드 세션 구현
600+
- [`RedisSession`][agents.extensions.memory.redis_session.RedisSession] - Redis 기반 세션 구현
540601
- [`SQLAlchemySession`][agents.extensions.memory.sqlalchemy_session.SQLAlchemySession] - SQLAlchemy 기반 구현
541-
- [`DaprSession`][agents.extensions.memory.dapr_session.DaprSession] - Dapr 상태 저장소 구현
542-
- [`AdvancedSQLiteSession`][agents.extensions.memory.advanced_sqlite_session.AdvancedSQLiteSession] - 분기 및 분석 기능을 갖춘 강화된 SQLite
602+
- [`DaprSession`][agents.extensions.memory.dapr_session.DaprSession] - Dapr state store 구현
603+
- [`AdvancedSQLiteSession`][agents.extensions.memory.advanced_sqlite_session.AdvancedSQLiteSession] - 브랜칭과 분석을 포함한 강화된 SQLite
543604
- [`EncryptedSession`][agents.extensions.memory.encrypt_session.EncryptedSession] - 어떤 세션에도 적용 가능한 암호화 래퍼

0 commit comments

Comments
 (0)