SKILL.md
Tiangong KB ESG Search
Use this skill for Tiangong ESG disclosure retrieval. It is intentionally single-source: always search the esg_search endpoint, never a broad or multi-source preset.
Prerequisites
- The wrapper defaults to
npx @tiangong-ai/[email protected]; users do not need a
preinstalled CLI. Set TIANGONGAICLI or TIANGONGAICLI_BIN only to override the CLI entrypoint. Native ESG search requires @tiangong-ai/[email protected] or later.
- Set
TIANGONGESGAPIKEYorTIANGONGAIAPIKEY. The explicit JSON field
esgapikey takes precedence over api_key, and both take precedence over environment credentials.
- When
requestfile/inputfileis provided, the wrapper loads.envfrom
that file's directory by default. env_file can point to a different dotenv file. Loaded dotenv values only fill unset environment variables.
- Optionally set
TIANGONGESGSEARCH_URL. The CLI otherwise derives the
esgsearch endpoint from TIANGONGRESEARCHAPIBASEURL, TIANGONGAISEARCHAPIBASEURL, or TIANGONGAIAPIBASEURL. The wrapper also maps TIANGONGESGAPIBASEURL to the CLI --api-base-url option.
Search
For normal searches, pass a query:
./scripts/esg_search.sh '{
"query": "scope 3 emissions reduction targets",
"top_k": 5
}'
The script calls:
npx @tiangong-ai/[email protected] research search --sources esg --query <query> --json
For exact edge-function payloads, provide requestfile or inputfile:
./scripts/esg_search.sh '{
"request_file": "./esg-request.json",
"dry_run": true
}'
Raw Payload Filters
Wrapper JSON can include inline raw esg_search fields; the wrapper forwards them through the CLI --input path:
{
"query": "greenhouse gas emissions",
"filter": {
"country": ["China"]
},
"datefilter": {
"publication_date": {
"gte": 1672531200
}
},
"meta_contains": "annual sustainability report",
"topK": 5,
"extK": 1
}
filter.<field>: accept a string array for an indexed ESG metadata field.
The current public contract explicitly documents rec_id and country.
datefilter.<field>: acceptgteand/orltenumeric bounds. The current
ESG date field is publication_date, expressed as a UNIX timestamp.
meta_contains: fuzzy-match ESG metadata. Use it only when the user
explicitly requests metadata-based narrowing.
topK,extK: raw edge-function names for result count and adjacent chunk
expansion.
- Inline
metaContainsanddateFilterare accepted as convenience aliases
and normalized to the edge-function field names.
- Inline payloads enforce the edge function's dynamic filter shapes: term
filters must contain string arrays and range filters must contain numeric gte / lte bounds. Exact payload files are forwarded unchanged, so keep their field names in the edge-function form shown above.
Input Fields
queryorinput: convenience query text.requestfileorinputfile: JSON body forwarded unchanged.envfile: optional dotenv file. Without it,requestfile/
input_file causes the wrapper to load .env from that file's directory.
filter,datefilter,dateFilter,meta_contains,metaContains,
topK, extK: optional inline raw payload fields for esg_search.
sources: optional compatibility field; onlyesgordefaultis accepted.dry_run: return the exact request plan with masked credentials.apibaseurl,apikey,esgapikey,esgurl,region,timeout.topk,extk: only used in query mode.