Summary
DeepThought can be integrated with supported agentic AI frameworks, such as OpenClaw, allowing users to build AI-powered assistants capable of executing multi-step tasks, interacting with external tools, and automating workflows. OpenClaw communicates with DeepThought using the OpenAI-compatible API, enabling organizations to leverage approved AI models while maintaining a consistent integration approach. Select the guide below for step-by-step configuration instructions.
How-To
Task: Configure OpenClaw to connect to USNH DeepThought using a DeepThought API key
Prerequisites
- DeepThought API Key
- DeepThought model: Claude
- Node.js 24 (22.19+ minimum)
- OpenClaw installed
Important: OpenClaw currently works only with Claude models. Other DeepThought models (such as Qwen, Llama, or GPT-compatible models) are not supported
Instructions
Step 1 - Install OpenClaw
Follow the installation instructions on the OpenClaw website.
Step 2 - Configure
Configure ~/.openclaw/openclaw.json with your API key directly in the command below. Do not use an environment variable unless that environment variable is also added to the launchd service's own environment (exporting it in your shell is not visible to the gateway process).
Enable merged model configuration:
openclaw config set models.mode '"merge"' --strict-json
Replace YOUR-API-KEY below.
This sets up all ET&S provided Claude models. Additional Claude models that you have access to may be added using this format. A list of all models you have access to can be obtained through the /v1/models endpoint.
openclaw config set models.providers.deepthought '{"baseUrl":"https://dtcontroller.sr.unh.edu:4242/openai/v1","apiKey":"YOUR-API-KEY","api":"openai-completions","models":[{"id":"ets:aws:us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku-4.5","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":8192},{"id":"ets:aws:us.anthropic.claude-sonnet-5","name":"Claude Sonnet-5.0","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":8192},{"id":"ets:aws:us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet-4.6","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":8192},{"id":"ets:aws:us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet-4.5","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":8192},{"id":"ets:aws:us.anthropic.claude-sonnet-4-20250514-v1:0","name":"Claude Sonnet-4.0","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":8192}]}' --strict-json --merge
openclaw config set agents.defaults.model '{"primary":"deepthought/ets:aws:us.anthropic.claude-sonnet-4-6"}' --strict-json --merge
agents.defaults.model.primary alone only makes one model the default; it does not make the other configured models selectable in /model or the Control UI picker, which read from agents.defaults.models.
- Add all DeepThought models (or use a wildcard so future ones show up automatically):
openclaw config set agents.defaults.models '{"deepthought/*":{}}' --strict-json --merge
Step 3 - Restart and verify
openclaw gateway restart
openclaw gateway status --deep
Look for Runtime: running, Connectivity probe: ok, and a Listening: line.
Step 4 - Test the connection
openclaw infer model run --gateway --model deepthought/ets:aws:us.anthropic.claude-sonnet-4-6 --prompt "Reply with exactly: pong" --json
Confirmed working: returns "text": "pong" with streaming intact.
Outcome
OpenClaw has been successfully configured to communicate with USNH DeepThought using your DeepThought API key. You can now interact with approved DeepThought models through OpenClaw for AI- assisted work low and agentic tasks.
*Optional Task: Validate an Automated OpenClaw Workflow
The previous step confirms that OpenClaw can communicate with DeepThought through the command line. This optional validation confirms that the entire OpenClaw workflow is functioning correctly.
Instructions
Step 1 -Create a One-Time Smoke Test
Create a scheduled test that runs approximately two minutes after it is created.
openclaw cron add \
--name "deepthought-smoke-test" \
--at "$(date -u -v+2M +%Y-%m-%dT%H:%M:%SZ)" \
--session isolated \
--model deepthought/ets:aws:us.anthropic.claude-sonnet-4-6 \
--message "Reply with exactly: DeepThought workflow OK" \
--no-deliver
After running the command, OpenClaw prints the new job's ID.
Step 2 - Verify the Smoke Test
Once the scheduled time has passed (or immediately by running openclaw cron run <job-id> to force it), check the result.
openclaw cron list
openclaw cron runs --id <job-id> --limit 5
Step 3 - Expected Result
A working pipeline shows:
- Completed status
- Response text:
DeepThought workflow OK
- No error or skipped entries.
Note: One-shot jobs delete themselves automatically after a successful run.
Outcome
The automated OpenClaw workflow has been successfully validated. A completed smoke test confirms that OpenClaw can execute scheduled workflows and communicate successfully with USNH DeepThought.
*Optional Task: Configure a Standing Health Check
To turn this into a standing health check instead of a single proof-of-concept run, replace --at with --cron and add --announce along with a delivery channel so you are notified only when the health check fails.
Instructions
openclaw cron add \
--name "deepthought-daily-healthcheck" \
--cron "0 7 * * *" \
--session isolated \
--model deepthought/ets:aws:us.anthropic.claude-sonnet-4-6 \
--message "Reply with exactly: DeepThought workflow OK" \
--announce --channel <your-channel> --to "<destination>"
Outcome
A standing health check has been configured to automatically validate the OpenClaw integration with USNH DeepThought. If the workflow fails, OpenClaw will send a notification to the configured delivery channel, allowing issues to be identified and addressed promptly.
Need additional help?
If you have any additional questions, please fill out the Research Computing Center Request Form to reach RCC Support.