AICADE Galaxy Skills
Use This Skill When
- The user wants to configure AICADE Galaxy access
- The user wants to export dynamic capabilities from
/admin/gateway/services - The user wants to invoke a tool from the exported artifact
- The user wants to validate or inspect the generated artifact
- The user asks how
AICADE_GALAXY_API_KEY,X-API-Key,responsePaths, or--args-filework
Required Configuration
This skill uses these environment variables in .env:
AICADE_GALAXY_BASE_URLAICADE_GALAXY_API_KEYAICADE_GALAXY_OUTPUT_PATH
Authentication rule:
- Header name:
X-API-Key - Header value source:
AICADE_GALAXY_API_KEY
Usage
This skill has three main actions:
- Configure
.env - Export
aicade-galaxy-skill.json - Invoke a tool from the exported artifact
Runtime selection rule:
- Prefer
nodefirst - If
nodeis unavailable, usepython3 - If both are unavailable, tell the user to install Node.js and then rerun the skill commands
Suggested runtime checks:
node --version
python3 --version
Configure Environment
If .env is missing or incomplete, run:
node {baseDir}/scripts/setup_env.mjs
Fallback when node is unavailable:
python3 {baseDir}/scripts/setup_env.py
This initializes:
AICADE_GALAXY_BASE_URLAICADE_GALAXY_API_KEYAICADE_GALAXY_OUTPUT_PATH
Recommended default output directory:
output
Export Dynamic Services
To export the current dynamic services, run:
node {baseDir}/scripts/export_artifact.mjs
Fallback when node is unavailable:
python3 {baseDir}/scripts/export_artifact.py
The exported artifact path is:
{AICADE_GALAXY_OUTPUT_PATH}/aicade-galaxy-skill.json
Default output directory:
output
Invoke Exported Tools
Use the exported artifact together with an args file:
node {baseDir}/scripts/invoke_artifact.mjs --artifact {AICADE_GALAXY_OUTPUT_PATH}/aicade-galaxy-skill.json --tool TOOL_NAME --args-file /tmp/invoke.json
Fallback when node is unavailable:
python3 {baseDir}/scripts/invoke_artifact.py --artifact {AICADE_GALAXY_OUTPUT_PATH}/aicade-galaxy-skill.json --tool TOOL_NAME --args-file /tmp/invoke.json
The args file must contain a JSON object, for example:
{
"city": "北京",
"responsePaths": ["reason", "error_code"]
}
Invoker behavior:
- Reads the artifact file and locates the target tool by
name - Reads request arguments from
--args-file - Validates required fields and field types against
inputSchema - Sends the request using the tool's
method,path, and authentication metadata - Returns a normalized JSON result
Normalized output shape:
- Success:
{"ok": true, "status": 200, "tool": "...", "serviceId": "...", "data": ..., "raw": ...} - Failure:
{"ok": false, "status": 4xx/5xx, "tool": "...", "serviceId": "...", "error": {"message": "...", "raw": ...}}
Examples
Export AICADE Galaxy Services
- Configure
.envif needed:node {baseDir}/scripts/setup_env.mjs - Export services:
node {baseDir}/scripts/export_artifact.mjs - Read
{AICADE_GALAXY_OUTPUT_PATH}/aicade-galaxy-skill.jsonand summarize or validate the generated tools.
If node is not available, use these fallback commands instead:
python3 {baseDir}/scripts/setup_env.py
python3 {baseDir}/scripts/export_artifact.py
Invoke A Tool From Artifact
- Prepare an args file:
{ "city": "北京", "responsePaths": ["reason", "error_code"] } - Invoke the tool:
node {baseDir}/scripts/invoke_artifact.mjs --artifact {AICADE_GALAXY_OUTPUT_PATH}/aicade-galaxy-skill.json --tool simple_weather --args-file /tmp/invoke.json - Read the normalized JSON output and summarize it for the user.
Explain Response Selection
If the user asks how to return only part of a JSON response:
- Explain that the skill uses
responsePaths - Give examples such as:
["city", "weather"]["received.prompt"]
- Explain:
- One path returns the selected value directly
- Multiple paths return a nested JSON object containing only the selected fields
Service Rules
- All service responses are JSON
GETservices use query parametersPOSTservices use JSON request bodies- Dynamic service discovery comes from
GET /admin/gateway/services - Tool invocation should use the exported artifact metadata instead of guessing request shapes
Response Selection
Use responsePaths when the caller wants only part of the JSON response.
["city", "weather"]["received.prompt"]["result.realtime.temperature", "result.city"]
Behavior:
- One path returns the selected value directly
- Multiple paths return a nested JSON object containing only the selected fields
Files In This Skill
scripts/setup_env.mjs: preferred interactive.envsetup for Node hostsscripts/export_artifact.mjs: preferred artifact export for Node hostsscripts/invoke_artifact.mjs: preferred standalone artifact invoker for Node hostsscripts/setup_env.py: interactive.envsetupscripts/export_artifact.py: export dynamic services into a reusable skill artifactscripts/invoke_artifact.py: standalone artifact invoker for Python hosts
Important Constraints
- Prefer using the configured
.envvalues rather than hardcoding endpoints or keys - Prefer
node scripts/*.mjsfirst, then fall back topython3 scripts/*.py - If neither
nodenorpython3is available, tell the user to install Node.js - Do not ask the user to manually craft the artifact if
node scripts/export_artifact.mjsorpython3 scripts/export_artifact.pycan generate it - Do not ask the AI to construct raw HTTP requests when
scripts/invoke_artifact.mjsorscripts/invoke_artifact.pycan invoke the tool from artifact metadata - Always pass tool arguments through
--args-fileas a JSON object - If export fails with
401or403, checkAICADE_GALAXY_API_KEYfirst