skills/ai-apis/anthropic-api/SKILL.md
Anthropic Claude API for AI models with tool use and extended context.
npx skillsauth add alphaonedev/openclaw-graph anthropic-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill integrates with Anthropic's Claude API to leverage advanced AI models for tasks requiring tool use and extended context, enabling complex interactions like function calling and long-form processing.
Use this skill for scenarios involving sophisticated AI reasoning, such as analyzing large documents, generating code with tools, or handling multi-step workflows. It's ideal when standard models fall short, like in research, automation, or interactive applications.
To use this skill in OpenClaw, first set the API key as an environment variable (e.g., export ANTHROPIC_API_KEY=your_key). Invoke the skill via OpenClaw's execute command, passing parameters like model and prompt. For HTTP-based integration, make POST requests to the API endpoint. Always include authentication headers. Structure requests with JSON bodies containing "messages" array for conversation history and "tools" for function definitions.
In OpenClaw, load this skill with openclaw load anthropic-api. Set up environment variables for keys (e.g., ANTHROPIC_API_KEY) to avoid hardcoding. For tool integration, define tools in your prompt as JSON arrays and handle responses in a loop to process AI-generated actions. Ensure your application handles rate limits (e.g., 10 requests per minute) by implementing retry logic with exponential backoff. Test integrations in a sandbox environment before production use.
Common errors include 401 (unauthorized) for invalid API keys—check if $ANTHROPIC_API_KEY is set correctly. Handle 429 (rate limit) by waiting and retrying with a delay (e.g., time.sleep(60)). For 400 (bad request), validate your JSON payload, especially the "messages" structure. In code, use try-except blocks: try: response = requests.post(...) except requests.exceptions.HTTPError as e: print(f"Error: {e.response.status_code} - {e.response.text}"); if e.response.status_code == 429: retry_after = int(e.response.headers.get('Retry-After', 60)); time.sleep(retry_after).
tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui