feat: Enhance AI agent capabilities with new tool calling instructions, improved response handling, and terminal color utilities

This commit is contained in:
scawful
2025-10-04 03:04:22 -04:00
parent 06dcffb6ac
commit 2931634837
10 changed files with 562 additions and 15 deletions

View File

@@ -12,8 +12,60 @@ namespace agent {
namespace {
constexpr absl::string_view kUsage =
"Usage: agent <run|plan|diff|accept|test|test-conversation|gui|learn|list|commit|revert|describe|resource-list|dungeon-list-sprites|overworld-find-tile|overworld-describe-map|overworld-list-warps|chat|simple-chat> "
"[options]";
"Usage: agent <subcommand> [options]\n"
"\n"
"AI-Powered Agent Subcommands:\n"
" simple-chat Simple text-based chat (recommended for testing)\n"
" Modes: interactive | piped | batch | single-message\n"
" Example: agent simple-chat \"What dungeons exist?\" --rom=zelda3.sfc\n"
" Example: agent simple-chat --rom=zelda3.sfc --ai_provider=ollama\n"
" Example: echo \"List sprites\" | agent simple-chat --rom=zelda3.sfc\n"
" Example: agent simple-chat --file=queries.txt --rom=zelda3.sfc\n"
"\n"
" test-conversation Run automated test conversation with AI\n"
" Example: agent test-conversation --rom=zelda3.sfc --ai_provider=ollama\n"
"\n"
" chat Full FTXUI-based chat interface\n"
" Example: agent chat --rom=zelda3.sfc\n"
"\n"
"ROM Inspection Tools (can be called by AI or directly):\n"
" resource-list List labeled resources (dungeons, sprites, etc.)\n"
" Example: agent resource-list --type=dungeon --format=json\n"
"\n"
" dungeon-list-sprites List sprites in a dungeon room\n"
" Example: agent dungeon-list-sprites --room=5 --format=json\n"
"\n"
" overworld-find-tile Search for tile placements in overworld\n"
" Example: agent overworld-find-tile --tile=0x02E --format=json\n"
"\n"
" overworld-describe-map Get metadata about an overworld map\n"
" Example: agent overworld-describe-map --map=0 --format=json\n"
"\n"
" overworld-list-warps List entrances/exits/holes in overworld\n"
" Example: agent overworld-list-warps --map=0 --format=json\n"
"\n"
"Proposal & Testing Commands:\n"
" run Execute agent task\n"
" plan Generate execution plan\n"
" diff Show ROM differences\n"
" accept Accept and apply proposal changes\n"
" test Run agent tests\n"
" gui Launch GUI components\n"
" learn Train agent on examples\n"
" list List available resources\n"
" commit Commit changes\n"
" revert Revert changes\n"
" describe Describe agent capabilities\n"
"\n"
"Global Options:\n"
" --rom=<path> Path to Zelda3 ROM file (required for most commands)\n"
" --ai_provider=<name> AI provider: mock (default) | ollama | gemini\n"
" --ai_model=<name> Model name (e.g., qwen2.5-coder:7b for Ollama)\n"
" --ollama_host=<url> Ollama server URL (default: http://localhost:11434)\n"
" --gemini_api_key=<key> Gemini API key (or set GEMINI_API_KEY env var)\n"
" --format=<type> Output format: json | table | yaml\n"
"\n"
"For more details, see: docs/simple_chat_input_methods.md";
} // namespace
} // namespace agent