cleanup
This commit is contained in:
109
docs/FIXED_MCP_TOOLS.md
Normal file
109
docs/FIXED_MCP_TOOLS.md
Normal file
@ -0,0 +1,109 @@
|
||||
# Fixed MCP Tools Issue
|
||||
|
||||
## Summary
|
||||
|
||||
The issue where AI wasn't calling card tools has been fixed. The problem was:
|
||||
|
||||
1. The `chat` command wasn't creating an MCP client when using OpenAI
|
||||
2. The system prompt in `build_context_prompt` didn't mention available tools
|
||||
|
||||
## Changes Made
|
||||
|
||||
### 1. Updated `/Users/syui/ai/gpt/src/aigpt/cli.py` (chat command)
|
||||
|
||||
Added MCP client creation for OpenAI provider:
|
||||
|
||||
```python
|
||||
# Get config instance
|
||||
config_instance = Config()
|
||||
|
||||
# Get defaults from config if not provided
|
||||
if not provider:
|
||||
provider = config_instance.get("default_provider", "ollama")
|
||||
if not model:
|
||||
if provider == "ollama":
|
||||
model = config_instance.get("providers.ollama.default_model", "qwen2.5")
|
||||
else:
|
||||
model = config_instance.get("providers.openai.default_model", "gpt-4o-mini")
|
||||
|
||||
# Create AI provider with MCP client if needed
|
||||
ai_provider = None
|
||||
mcp_client = None
|
||||
|
||||
try:
|
||||
# Create MCP client for OpenAI provider
|
||||
if provider == "openai":
|
||||
mcp_client = MCPClient(config_instance)
|
||||
if mcp_client.available:
|
||||
console.print(f"[dim]MCP client connected to {mcp_client.active_server}[/dim]")
|
||||
|
||||
ai_provider = create_ai_provider(provider=provider, model=model, mcp_client=mcp_client)
|
||||
console.print(f"[dim]Using {provider} with model {model}[/dim]\n")
|
||||
except Exception as e:
|
||||
console.print(f"[yellow]Warning: Could not create AI provider: {e}[/yellow]")
|
||||
console.print("[yellow]Falling back to simple responses[/yellow]\n")
|
||||
```
|
||||
|
||||
### 2. Updated `/Users/syui/ai/gpt/src/aigpt/persona.py` (build_context_prompt method)
|
||||
|
||||
Added tool instructions to the system prompt:
|
||||
|
||||
```python
|
||||
context_prompt += f"""IMPORTANT: You have access to the following tools:
|
||||
- Memory tools: get_memories, search_memories, get_contextual_memories
|
||||
- Relationship tools: get_relationship
|
||||
- Card game tools: card_get_user_cards, card_draw_card, card_analyze_collection
|
||||
|
||||
When asked about cards, collections, or anything card-related, YOU MUST use the card tools.
|
||||
For "カードコレクションを見せて" or similar requests, use card_get_user_cards with did='{user_id}'.
|
||||
|
||||
Respond to this message while staying true to your personality and the established relationship context:
|
||||
|
||||
User: {current_message}
|
||||
|
||||
AI:"""
|
||||
```
|
||||
|
||||
## Test Results
|
||||
|
||||
After the fix:
|
||||
|
||||
```bash
|
||||
$ aigpt chat syui "カードコレクションを見せて"
|
||||
|
||||
🔍 [MCP Client] Checking availability...
|
||||
✅ [MCP Client] ai_gpt server connected successfully
|
||||
✅ [MCP Client] ai.card tools detected and available
|
||||
MCP client connected to ai_gpt
|
||||
Using openai with model gpt-4o-mini
|
||||
|
||||
🔧 [OpenAI] 1 tools called:
|
||||
- card_get_user_cards({"did":"syui"})
|
||||
🌐 [MCP] Executing card_get_user_cards...
|
||||
✅ [MCP] Result: {'error': 'カード一覧の取得に失敗しました'}...
|
||||
```
|
||||
|
||||
The AI is now correctly calling the `card_get_user_cards` tool! The error is expected because the ai.card server needs to be running on port 8000.
|
||||
|
||||
## How to Use
|
||||
|
||||
1. Start the MCP server:
|
||||
```bash
|
||||
aigpt server --port 8001
|
||||
```
|
||||
|
||||
2. (Optional) Start the ai.card server:
|
||||
```bash
|
||||
cd card && ./start_server.sh
|
||||
```
|
||||
|
||||
3. Use the chat command with OpenAI:
|
||||
```bash
|
||||
aigpt chat syui "カードコレクションを見せて"
|
||||
```
|
||||
|
||||
The AI will now automatically use the card tools when asked about cards!
|
||||
|
||||
## Test Script
|
||||
|
||||
A test script `/Users/syui/ai/gpt/test_openai_tools.py` is available to test OpenAI API tool calls directly.
|
Reference in New Issue
Block a user