Skip to content

Commit 51998f1

Browse files
committed
fix: alphabetize implementation orderings in CLAUDE.md
1 parent 85ef7d8 commit 51998f1

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

.claude/CLAUDE.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
66

77
A monorepo containing three parallel implementations of **Casey**, an AI-powered IT helpdesk agent for Slack built with Bolt for Python. All implementations are functionally identical from the Slack user's perspective but use different AI agent frameworks:
88

9-
- `pydantic-ai/` — Built with **Pydantic AI**
10-
- `openai-agents-sdk/` — Built with **OpenAI Agents SDK**
119
- `claude-agent-sdk/` — Built with **Claude Agent SDK**
10+
- `openai-agents-sdk/` — Built with **OpenAI Agents SDK**
11+
- `pydantic-ai/` — Built with **Pydantic AI**
1212

1313
All tool data (knowledge base, tickets, password resets, system status, permissions) is hardcoded for demo purposes.
1414

1515
## Commands
1616

17-
All commands must be run from within the respective project directory (`pydantic-ai/`, `openai-agents-sdk/`, or `claude-agent-sdk/`).
17+
All commands must be run from within the respective project directory (`claude-agent-sdk/`, `openai-agents-sdk/`, or `pydantic-ai/`).
1818

1919
```sh
2020
# Run the app (requires .env with OPENAI_API_KEY or ANTHROPIC_API_KEY; Slack tokens optional with CLI)
@@ -33,14 +33,14 @@ pytest
3333

3434
```
3535
.github/ # Shared CI workflows and dependabot config
36-
pydantic-ai/ # Pydantic AI implementation
37-
openai-agents-sdk/ # OpenAI Agents SDK implementation
3836
claude-agent-sdk/ # Claude Agent SDK implementation
37+
openai-agents-sdk/ # OpenAI Agents SDK implementation
38+
pydantic-ai/ # Pydantic AI implementation
3939
```
4040

4141
CI runs ruff lint/format checks against all directories via a matrix strategy in `.github/workflows/ruff.yml`. Dependabot monitors `requirements.txt` in all directories independently.
4242

43-
## Architecture (shared across both implementations)
43+
## Architecture (shared across all implementations)
4444

4545
Three-layer design: **app.py****listeners/****agent/**
4646

@@ -61,16 +61,16 @@ Each sub-package has a `register(app)` function called from `listeners/__init__.
6161

6262
## Key Differences Between Implementations
6363

64-
| Aspect | Pydantic AI | OpenAI Agents SDK | Claude Agent SDK |
65-
|--------|-------------|-------------------|-----------------|
64+
| Aspect | Claude Agent SDK | OpenAI Agents SDK | Pydantic AI |
65+
|--------|-----------------|-------------------|-------------|
6666
| Agent file | `agent/casey.py` | `agent/support_agent.py` | `agent/casey.py` |
67-
| App type | `App` (sync) | `App` (sync) | `AsyncApp` (fully async) |
68-
| Agent definition | `Agent(deps_type=CaseyDeps)` | `Agent[CaseyDeps](model="gpt-4o-mini")` | `ClaudeSDKClient` with `ClaudeAgentOptions` |
69-
| Model config | Passed at runtime via `run_sync(model=DEFAULT_MODEL)` | Set directly on agent constructor | Managed by SDK (Claude models) |
70-
| Tool definition | Plain async functions | `@function_tool` decorated functions | `@tool` decorated functions via MCP server |
71-
| Tool context param | `RunContext[CaseyDeps]` | `RunContextWrapper[CaseyDeps]` | `args` dict (no context param) |
72-
| Execution | `casey_agent.run_sync(text, model=..., deps=..., message_history=...)` | `Runner.run_sync(casey_agent, input=..., context=...)` | `await run_casey_agent(text, session_id=...)` |
73-
| Result output | `result.output` | `result.final_output` | `response_text` from collected `TextBlock.text` |
74-
| Conversation history | `list[ModelMessage]` stored locally | `list` stored locally | Session-based via `resume` (server-side) |
75-
| API key env var | `OPENAI_API_KEY` | `OPENAI_API_KEY` | `ANTHROPIC_API_KEY` |
67+
| App type | `AsyncApp` (fully async) | `App` (sync) | `App` (sync) |
68+
| Agent definition | `ClaudeSDKClient` with `ClaudeAgentOptions` | `Agent[CaseyDeps](model="gpt-4o-mini")` | `Agent(deps_type=CaseyDeps)` |
69+
| Model config | Managed by SDK (Claude models) | Set directly on agent constructor | Passed at runtime via `run_sync(model=DEFAULT_MODEL)` |
70+
| Tool definition | `@tool` decorated functions via MCP server | `@function_tool` decorated functions | Plain async functions |
71+
| Tool context param | `args` dict (no context param) | `RunContextWrapper[CaseyDeps]` | `RunContext[CaseyDeps]` |
72+
| Execution | `await run_casey_agent(text, session_id=...)` | `Runner.run_sync(casey_agent, input=..., context=...)` | `casey_agent.run_sync(text, model=..., deps=..., message_history=...)` |
73+
| Result output | `response_text` from collected `TextBlock.text` | `result.final_output` | `result.output` |
74+
| Conversation history | Session-based via `resume` (server-side) | `list` stored locally | `list[ModelMessage]` stored locally |
75+
| API key env var | `ANTHROPIC_API_KEY` | `OPENAI_API_KEY` | `OPENAI_API_KEY` |
7676
| Feedback blocks | Native `FeedbackButtonsElement` | Native `FeedbackButtonsElement` | Native `FeedbackButtonsElement` |

0 commit comments

Comments
 (0)