Skip to content

Add FrameworkAdapter ABC and Claude starter (Issue #74)#88

Merged
justinmadison merged 4 commits intomainfrom
JustinDev
Feb 27, 2026
Merged

Add FrameworkAdapter ABC and Claude starter (Issue #74)#88
justinmadison merged 4 commits intomainfrom
JustinDev

Conversation

@justinmadison
Copy link
Member

Summary

  • FrameworkAdapter ABC (python/sdk/agent_arena_sdk/adapters/base.py) — base class with format_observation(), get_action_tools(), and fallback_decision() so framework starters share common logic
  • Duck-typing in arena.run() — accepts both plain callables and adapter objects with a decide() method, backward compatible
  • Claude starter (starters/claude/) — fully working Anthropic agent using native tool_use, tested live with foraging scenario ($0.08 per run)
  • Launcher bat filesSTART_CLAUDE.bat and START_LOCAL_LLM.bat for easy switching between local LLM and Anthropic API
  • 52 tests — 36 for adapter base, 16 for Claude adapter (all mocked, no API key needed)

Closes #74

Test plan

  • pytest tests/test_adapter_base.py -v — 36 tests pass
  • pytest tests/test_anthropic_adapter.py -v — 16 tests pass
  • Pre-commit hooks pass (black, ruff, trailing whitespace)
  • Live-tested with Godot foraging scene — avatar crafted meal and torch

🤖 Generated with Claude Code

justinmadison and others added 4 commits February 23, 2026 13:07
Delete broken V1 IPC server (python/ipc/), replace 1370-line
agent_runtime/schemas.py with SDK re-exports, deprecate V1
AgentArena._connect(), remove dead TestIPCConverters tests, and
fix starters/llm import to use agent_arena_sdk.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
)

Delete python/backends/ (4 files), agent_runtime/arena.py,
agent_runtime/local_llm_behavior.py, and their tests. Inline
llama-cpp-python directly into starters/llm/llm_client.py so it
no longer depends on the deleted backends module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite test_reasoning_trace.py to match actual TraceStep/ReasoningTrace/
TraceStore API (25 broken tests → 34 passing). Update schemas test for
truncated JSON recovery behavior. Delete test_memory.py (RAGMemory removed).

204 tests pass, 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- FrameworkAdapter base class with format_observation(), get_action_tools(), fallback_decision()
- Duck-typing in arena.run()/run_async() to accept adapters or plain callables
- Claude starter (starters/claude/) using Anthropic tool_use API
- START_CLAUDE.bat and START_LOCAL_LLM.bat for easy switching between agents
- 52 tests (36 adapter base + 16 anthropic adapter)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@justinmadison justinmadison merged commit 27ff41e into main Feb 27, 2026
0 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add framework adapter system for LangGraph, Claude Agent SDK, and other agent frameworks

1 participant