← スキル一覧に戻る

agent-recorder-fixtures
by SwiftedMind
agent-recorder-fixturesは、other分野における実用的なスキルです。複雑な課題への対応力を強化し、業務効率と成果の質を改善します。
⭐ 180🍴 9📅 2026年1月23日
SKILL.md
name: agent-recorder-fixtures description: Record real OpenAI/Anthropic HTTP back-and-forth (requests + responses, including streaming text/event-stream) and print paste-ready Swift fixtures for SwiftAgent unit tests (ReplayHTTPClient) using the AgentRecorder CLI or HTTPReplayRecorder. Use when adding/updating any provider adapter tests (text, streaming, structured outputs, tool calls), when payload formats change, or when debugging agent loop mismatches by inspecting recorded JSON/SSE payloads.
Agent Recorder Fixtures
Overview
Use AgentRecorder to capture real provider payloads and generate paste-ready Swift fixtures for tests using ReplayHTTPClient.
This is the fastest loop for keeping SwiftAgent’s unit tests (and agent-loop behavior) in sync with real OpenAI/Anthropic traffic.
Workflow
- Pick the right scenario
- Existing scenarios live in
AgentRecorder/AgentRecorder/Scenarios/(grouped by provider + one file per scenario). - List them quickly with
AgentRecorder --list-scenarios. - If no scenario matches your test, add one (keep it small and deterministic).
- Set API keys
- Preferred: use a local
Secrets.plistin the repo root (not committed).- Run with
--secrets-plist Secrets.plist - Plist keys:
OpenAI_API_Key_Debug/Anthropic_API_Key_Debug
- Run with
Optional:
- Env vars fallback (useful for CI or quick runs):
OPENAI_API_KEY,ANTHROPIC_API_KEY AGENT_RECORDER_SECRETS_PLISTis also supported (fallback if env vars are missing).
Legacy:
- If you already have
Secrets.plistunderExamples/Example App/ExampleApp/Secrets.plist, either move/symlink it to the repo root or pass the full path via--secrets-plist.
- Run the recorder (Xcode or Terminal)
- Xcode: select
AgentRecorderscheme, set env vars, Run → copy stdout from Debug console. - Terminal:
# Run from repo root.
# Apple Silicon: add `arch=arm64` to avoid “multiple matching destinations” warnings.
xcodebuild -workspace SwiftAgent.xcworkspace -scheme AgentRecorder -destination "platform=macOS,arch=arm64" -derivedDataPath .tmp/DerivedData build -quiet
./.tmp/DerivedData/Build/Products/Debug/AgentRecorder --list-scenarios
./.tmp/DerivedData/Build/Products/Debug/AgentRecorder --secrets-plist Secrets.plist --provider openai --scenario openai/streaming-tool-calls/weather --no-include-headers
- Paste fixtures into tests
- Output is already formatted for
ReplayHTTPClient(recordedResponses:). - Paste into the relevant test file (common locations):
Tests/SwiftAgentTests/OpenAISession/...Tests/SwiftAgentTests/AnthropicSession/...
- Run tests
xcodebuild -workspace SwiftAgent.xcworkspace -scheme SwiftAgentTests -testPlan SwiftAgentTests test -quiet
Notes
- Headers may include secrets.
HTTPReplayRecorderredacts common auth header fields, but always review before committing. - Prefer
--no-include-headersunless you’re explicitly testing header handling. - Always pass
-quiettoxcodebuildto keep logs readable. xcodebuildmay print noisy destination warnings; ignore if the build succeeds.- Streaming fixtures are raw
text/event-stream. If the SDK stops consuming early, the recorded payload may be partial (this is usually fine for replaying the SDK’s behavior). - If you need request bodies for debugging, re-run with
--include-requests. - OpenAI scenarios: keep models pinned/stable (scenario-defined). Change only when you’re updating fixtures/tests.
- Cleanup: if you used
.tmp/DerivedData(and/or wrote capture files like.tmp/AgentRecorderOutput/*.txt), delete them after you’ve pasted fixtures into tests.
スコア
総合スコア
70/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 100以上
+5
✓最近の活動
3ヶ月以内に更新
+5
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
レビュー
💬
レビュー機能は近日公開予定です


