sktk は何をしますか?
統一API、ガードレール、永続セッション、マルチエージェントオーケストレーション、組み込み検索により、Python LLMエージェントの構築を簡素化します。
概要
sktkは、PythonでLLMエージェントを構築するための高レベルフレームワークです。複雑な内部処理を抽象化し、以下の機能を提供します:
- 統一API: OpenAI、Anthropic、Google、ローカルモデルなど、あらゆるLLMプロバイダを単一のインターフェースで扱えます。
- ガードレール: 入出力の検証、ポリシーベースの制約、コンテンツフィルタリングを組み込みサポート。
- 永続セッション: 会話履歴やエージェントの状態を外部ストレージ(Redis、PostgreSQL、ファイルなど)に保存・復元。
- マルチエージェントオーケストレーション: 複数のエージェントを協調させ、複雑なタスクを分解・委譲することが可能。
- 組み込み検索: RAG(Retrieval-Augmented Generation)に対応し、ベクトルデータベースやドキュメントインデックスからの情報取得。
対応プラットフォーム
- Cody
- Claude Code
クイックスタート
pip install sktk
from sktk import Agent, Tool
agent = Agent(
model="gpt-4",
system_prompt="あなたは有能なアシスタントです。"
)
response = agent.run("Pythonでファイルを読み込む方法を教えてください。")
print(response)
主な機能
ガードレール
from sktk import Guardrail
# 機密情報の漏洩を防止
guard = Guardrail(
rules=["機密情報の出力を禁止"],
action="block"
)
agent = agent.with_guardrail(guard)
永続セッション
from sktk import SessionStore
store = SessionStore(type="redis", url="redis://localhost:6379")
session = agent.create_session(store=store)
# 後で続きから再開
agent.resume_session(session_id=session.id)
マルチエージェント
from sktk import Agent, Orchestrator
researcher = Agent(model="claude-3", system_prompt="調査を担当します。")
writer = Agent(model="gpt-4", system_prompt="文章作成を担当します。")
orchestrator = Orchestrator()
orchestrator.add_agent(researcher)
orchestrator.add_agent(writer)
result = orchestrator.run("量子コンピュータについてレポートを作成してください。")
組み込み検索(RAG)
from sktk import Retriever
retriever = Retriever(
backend="chroma",
collection_name="docs"
)
agent = agent.with_retriever(retriever)
# ドキュメントを追加
agent.load_documents("./knowledge_base/")
answer = agent.run("最新の研究動向を教えてください。")
詳細設定
環境変数で動作をカスタマイズできます:
OPENAI_API_KEY: OpenAI APIキーANTHROPIC_API_KEY: Anthropic APIキーSKTK_LOG_LEVEL: ログレベル(DEBUG, INFO, WARNING, ERROR)SKTK_SESSION_STORE: デフォルトのセッションストアURL
ドキュメント
詳細なドキュメントはこちらをご覧ください。
ライセンス
MIT