Pi Agent: Session Management

最終更新:2026-08-31

--- title: "セッション管理" description: "Pi Agentのセッション管理をマスターし、作成、永続化、復元、分岐、共有を理解します。" order: 8 lang: ja

セッションはAgentの「記憶カプセル」——保存して後で続きをできる;分岐して可能性を探れる。


1. セッションとは

セッションは完全なインタラクションを記録します:

PYTHON
from pi_agent import Agent, Session

session = Session(name="project_review")
agent = Agent(name="reviewer", session=session)

agent.chat("Review main.py")
agent.chat("What security issues are there?")

print(len(session.messages))  # 4 (2 user + 2 assistant)

2. セッションの永続化

(1) ファイルに保存

PYTHON
from pi_agent import Agent

agent = Agent(name="tutor")
agent.chat("Teach me Python decorators")

agent.session.save("decorator_session.json")

(2) ファイルから読み込み

PYTHON
from pi_agent import Agent

agent = Agent(name="tutor")
agent.session.load("decorator_session.json")

agent.chat("How does it differ from class method decorators?")

(3) 自動保存

PYTHON
agent = Agent(name="tutor", auto_save=True, save_dir="./sessions/")

3. セッションの分岐

分岐は任意の時点から並行する会話パスを作成します:

例1:異なるアプローチの探索(難易度:⭐⭐)

PYTHON
from pi_agent import Agent

agent = Agent(name="architect")
agent.chat("Design a user authentication system architecture")
# AgentがJWTアプローチを提示

branch1 = agent.branch(name="jwt_branch")

agent.chat("Redesign using OAuth2")
# AgentがOAuth2アプローチを提示

branch1.chat("How to handle token refresh in JWT?")

# 2つの独立したセッション
print(agent.session.messages)       # JWT -> OAuth2パス
print(branch1.session.messages)     # JWT -> refreshパス

4. セッション管理CLI

BASH
pi-agent sessions list
pi-agent sessions show decorator_session
pi-agent chat --session decorator_session
pi-agent sessions delete old_session
pi-agent sessions export decorator_session --format markdown --output chat.md

5. セッション検索とタグ

(1) タグの追加

PYTHON
agent.session.add_tag("python")
agent.session.add_tag("decorator")
agent.session.add_tag("advanced")

(2) セッションの検索

PYTHON
from pi_agent import SessionManager

manager = SessionManager()
sessions = manager.find_by_tag("python")
sessions = manager.find_by_date("2026-08-28")
sessions = manager.search("decorator closure")

(3) CLI検索

BASH
pi-agent sessions search "decorator"
pi-agent sessions list --tag python --date 2026-08-28

6. セッションの共有

(1) Markdownでエクスポート

PYTHON
agent.session.export("chat.md", format="markdown")

(2) JSONでエクスポート

PYTHON
agent.session.export("chat.json", format="json")

(3) 別のAgentと共有

PYTHON
new_agent = Agent(name="continuer")
new_agent.session.import_from(agent.session)
new_agent.chat("Continue the discussion, dive deeper into metaclasses")

❓ よくある質問

Q セッションファイルはどこに保存される?
A デフォルトは~/.pi-agent/sessions/save_dirパラメータでカスタマイズ可能。
Q セッションファイルはどれくらい大きくなる?
A 会話の長さに依存します。100ターンで約50〜200KB。画像や長いコードはサイズを増加させます。
Q 2つのセッションをマージできる?
A はい。session.merge(other_session)を使用。メッセージはタイムスタンプでソートされます。

📖 まとめ


📝 練習問題

  1. 基礎(難易度:⭐): セッションを作成し、5往復の会話をして、保存してから再読み込みしてください。
  2. 中級(難易度:⭐⭐): 1つのセッションから2つの分岐を作成し、異なるアプローチを探索して結果を比較してください。
  3. 上級(難易度:⭐⭐⭐): 全セッションの統計(タグ、ターン数、トークン使用量)を表示する「セッションダッシュボード」スクリプトを構築してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%