Enum Class BuiltInTool

java.lang.Object
java.lang.Enum<BuiltInTool>
com.tnsai.enums.BuiltInTool
All Implemented Interfaces:
Serializable, Comparable<BuiltInTool>, Constable

public enum BuiltInTool extends Enum<BuiltInTool>
Catalog of the function-shape POJO toolkits shipped in tnsai-tools. Each entry maps a stable toolName (used in role-binding APIs and SCOP serialisation) to the fully-qualified class of the POJO that carries the @Tool-annotated methods.

One enum value = one POJO class = one auto-instantiable bundle of @Tool methods. For example, CSV_TOOLS backs com.tnsai.tools.file.CsvTools, which exposes csv_summary, csv_columns, csv_filter, csv_head, csv_search.

Agent-level registration

 Agent agent = AgentBuilder.create()
     .id("data-analyst")
     .llm(llmClient)
     .builtInTools(BuiltInTool.CSV_TOOLS, BuiltInTool.PDF_TOOLS, BuiltInTool.JSON_TOOLS)
     .build();
 

The agent's ToolMethodDispatcher resolves any @Tool methods the LLM emits across all registered toolkits.

Direct instantiation

 Object csvToolkit = BuiltInTool.CSV_TOOLS.instantiate();
 // ...register with ToolMethodRegistry by hand if needed
 

The backing class is referenced by FQCN string rather than a Class&lt;?&gt; literal so that tnsai-core does not gain a circular compile-time dependency on tnsai-tools. instantiate() resolves the class via Class.forName(String) at call time. If tnsai-tools is missing from the classpath, instantiate() throws BuiltInToolInstantiationException pointing at the missing dependency.

All shipped POJOs are auto-instantiable (public no-arg constructor). Toolkits requiring credentials read them from environment variables or system properties at the first call rather than via constructor arguments.

See Also:
  • Enum Constant Details

    • ACADEMIC_TOOLS

      public static final BuiltInTool ACADEMIC_TOOLS
      Academic paper search across six free databases. No API keys.
      • arxiv_search — arXiv preprints
      • pubmed_search — PubMed biomedical literature (NCBI E-utilities)
      • semantic_scholar_search — Semantic Scholar with citation counts
      • openalex_search — OpenAlex open scholarly graph
      • crossref_search — CrossRef DOI registry
      • dblp_search — DBLP computer-science bibliography
    • ACADEMIC_EXTRA_TOOLS

      public static final BuiltInTool ACADEMIC_EXTRA_TOOLS
      Author-attribution and open-access lookups complementing ACADEMIC_TOOLS.
      • orcid_search — ORCID researcher search
      • orcid_get — fetch full ORCID record by iD
      • unpaywall_lookup — open-access copy lookup by DOI
      • biorxiv_recent — bioRxiv preprint feed
    • VISION_TOOLS

      public static final BuiltInTool VISION_TOOLS
      Image analysis via Google Gemini 2.0 Flash. Requires GEMINI_API_KEY.
      • image_analyze — describe / answer questions about an image (file path, http(s) URL, or base64:-prefixed string)
    • IMAGE_GEN_TOOLS

      public static final BuiltInTool IMAGE_GEN_TOOLS
      Text-to-image generation across the three most common providers. Each method picks a different upstream so the LLM can choose between cost / latency / quality at call time.
      • dalle3_generate — OpenAI DALL-E 3 (OPENAI_API_KEY; ~$0.04 / standard 1024×1024)
      • flux_generate — Black Forest Labs FLUX via Replicate sync API (REPLICATE_API_TOKEN; schnell ~$0.003, dev ~$0.025, pro ~$0.055)
      • stability_generate — Stability AI Stable Image v2 (STABILITY_API_KEY; core ~$0.03, sd3 ~$0.035, ultra ~$0.08). Returns the generated bytes as a data:image/png;base64,… URI (Stability's JSON envelope returns bytes, not a hosted URL).
    • TEXT_TO_SPEECH_TOOLS

      public static final BuiltInTool TEXT_TO_SPEECH_TOOLS
      Text-to-speech across the three most popular non-OpenAI providers, complementing MediaTools.openaiTts. Each method picks a different upstream so the LLM can choose between cost / latency / voice quality at call time. All three return a uniform JSON envelope {provider, model, audio_uri, audio_bytes} where audio_uri is a data:audio/mpeg;base64,… data URI.
      • elevenlabs_tts — ElevenLabs Multilingual v2 / Turbo / Flash (ELEVENLABS_API_KEY; ~$0.18 / 1k chars)
      • cartesia_tts — Cartesia Sonic-2 (CARTESIA_API_KEY; ~$0.030 / 1k chars; ~75ms TTFB)
      • deepgram_tts — Deepgram Aura (12 voice presets) (DEEPGRAM_API_KEY; ~$0.015 / 1k chars — cheapest)
    • SPEECH_TO_TEXT_TOOLS

      public static final BuiltInTool SPEECH_TO_TEXT_TOOLS
      Speech-to-text across the three most popular non-OpenAI providers, complementing MediaTools.whisperTranscribe. Each method picks a different upstream so the LLM can choose between latency / accuracy / cost at call time. All three return a uniform JSON envelope {provider, model, text, language, …}.
      • deepgram_transcribe — Deepgram Nova-2 (sync, ~$0.0043/min)
      • assemblyai_transcribe — AssemblyAI Universal-2 (async with internal polling, ~$0.0045/min, best accuracy)
      • replicate_whisper — OpenAI Whisper large-v3 hosted on Replicate (REPLICATE_API_TOKEN — same key as FLUX image generation; ~$0.0007/min — cheapest)
    • E2B_SANDBOX_TOOLS

      public static final BuiltInTool E2B_SANDBOX_TOOLS
      Remote sandboxed code execution via E2B. Requires E2B_API_KEY.
      • e2b_create — provision a fresh sandbox VM
      • e2b_execute — run a shell or interpreter command
      • e2b_upload — push a local file into the sandbox
      • e2b_download — pull a sandbox file back to the host
      • e2b_install — install a package in the sandbox
      • e2b_list — list active sandboxes
      • e2b_kill — terminate a sandbox
    • JS_EXECUTION_TOOLS

      public static final BuiltInTool JS_EXECUTION_TOOLS
      In-process JavaScript via GraalVM JS. No external deps.
      • js_execute — evaluate a JS snippet, returns string result
    • PYTHON_EXECUTION_TOOLS

      public static final BuiltInTool PYTHON_EXECUTION_TOOLS
      Subprocess Python execution. Requires python3 on PATH.
      • python_execute — run a Python script, capture stdout
      • python_version — report the active interpreter version
    • ETSY_TOOLS

      public static final BuiltInTool ETSY_TOOLS
      Etsy Open API v3. Requires ETSY_API_KEY.
      • etsy_search — full-text listing search
      • etsy_get_listing — fetch a single listing by id
      • etsy_get_shop — fetch shop metadata
    • SHOPIFY_TOOLS

      public static final BuiltInTool SHOPIFY_TOOLS
      Shopify Storefront API. Requires SHOPIFY_API_KEY + shop domain.
      • shopify_search — product search by keyword
      • shopify_get_product — fetch a product by handle/id
    • EMAIL_TOOLS

      public static final BuiltInTool EMAIL_TOOLS
      Email via SMTP and Gmail API.
      • smtp_send — send via configured SMTP host (SMTP_HOST/SMTP_USER/SMTP_PASS)
      • gmail_send — send via Gmail REST (GMAIL_OAUTH_TOKEN)
      • gmail_inbox — list recent inbox messages
    • MESSAGING_TOOLS

      public static final BuiltInTool MESSAGING_TOOLS
      Out-of-band chat / SMS notifications.
      • slack_post — Incoming-Webhook post (SLACK_WEBHOOK_URL)
      • discord_post — Discord Webhook post (DISCORD_WEBHOOK_URL)
      • twilio_sms_send — send SMS (TWILIO_SID/TWILIO_TOKEN)
      • twilio_sms_status — check delivery status of a message SID
    • HUBSPOT_TOOLS

      public static final BuiltInTool HUBSPOT_TOOLS
      HubSpot CRM v3 API. Requires HUBSPOT_ACCESS_TOKEN.
      • hubspot_list_contacts — paginate contact records
      • hubspot_get_contact — fetch a contact by id
      • hubspot_create_contact — create a new contact
    • SALESFORCE_TOOLS

      public static final BuiltInTool SALESFORCE_TOOLS
      Salesforce REST API. Requires SF_ACCESS_TOKEN + instance URL.
      • salesforce_query — run a SOQL query
      • salesforce_search — SOSL full-text search across sObjects
      • salesforce_get_sobject — fetch a single sObject by id
    • MONGO_TOOLS

      public static final BuiltInTool MONGO_TOOLS
      MongoDB read access. Requires MONGO_URI.
      • mongo_find — find documents matching a JSON filter
      • mongo_count — count documents matching a filter
    • QDRANT_TOOLS

      public static final BuiltInTool QDRANT_TOOLS
      Qdrant vector-search. Requires QDRANT_URL (+ optional API key).
      • qdrant_collections — list all collections
      • qdrant_count — count points in a collection
      • qdrant_search — top-k vector similarity search
      • qdrant_create_collection — create a collection with given dim/metric
      • qdrant_upsert — insert or replace points
    • REDIS_TOOLS

      public static final BuiltInTool REDIS_TOOLS
      Redis key-value / hash / TTL ops. Requires REDIS_URL.
      • redis_get — read a key's value
      • redis_keys — list keys matching a glob pattern
      • redis_ttl — read a key's remaining TTL
      • redis_set — set a key (with optional EX seconds)
      • redis_del — delete keys
    • SQL_TOOLS

      public static final BuiltInTool SQL_TOOLS
      JDBC SQL execution. Requires JDBC_URL + driver on classpath.
      • sql_query — execute a parameterised SELECT, returns rows as JSON
    • WEAVIATE_TOOLS

      public static final BuiltInTool WEAVIATE_TOOLS
      Weaviate vector-search. Requires WEAVIATE_URL.
      • weaviate_classes — list schema classes
      • weaviate_count — count objects in a class
      • weaviate_search — vector / hybrid search
      • weaviate_create_class — create a schema class
      • weaviate_upsert — insert or replace objects
    • DEPENDENCY_TOOLS

      public static final BuiltInTool DEPENDENCY_TOOLS
      Public package-registry lookup (no auth).
      • dependency_latest — latest version of a Maven / NPM / PyPI package
      • dependency_compare — diff two versions of the same package
      • project_detect_type — sniff project type from manifest files
    • DEVELOPER_TOOLS

      public static final BuiltInTool DEVELOPER_TOOLS
      GitHub code-search + JShell. Optional GITHUB_TOKEN for higher rate limits.
      • github_search_repos — search repositories
      • github_search_code — search code across GitHub
      • github_search_issues — search issues + PRs
      • github_search_users — search users / orgs
      • jshell_eval — evaluate Java in an in-process JShell
    • PROJECT_ANALYZER_TOOLS

      public static final BuiltInTool PROJECT_ANALYZER_TOOLS
      Static project introspection over a local source tree.
      • project_tree — render the directory tree
      • project_stats — file count / size / language stats
      • project_languages — language breakdown by SLOC
    • DIAGRAM_TOOLS

      public static final BuiltInTool DIAGRAM_TOOLS
      Diagram-as-code rendering. No keys.
      • mermaid_render — Mermaid → SVG/PNG (flowchart, sequence, ER, gantt, …)
      • excalidraw_generate — Excalidraw JSON from a pipe-separated DSL
    • DOCUMENT_TOOLS

      public static final BuiltInTool DOCUMENT_TOOLS
      Office document + image conversions.
      • document_read — extract text from DOCX / RTF / ODF
      • markdown_to_html — render Markdown to HTML
      • image_convert — convert image format (PNG / JPG / WebP / …)
      • image_info — read image dimensions, format, EXIF
      • slides_create — generate a PPTX from a slide outline
    • DOCLING_TOOLS

      public static final BuiltInTool DOCLING_TOOLS
      Advanced document parsing through an optional Docling runtime.
      • docling_parse — convert PDF/Office/image sources to Markdown
    • CSV_TOOLS

      public static final BuiltInTool CSV_TOOLS
      CSV inspection and querying. Accepts both file paths and literal CSV strings.
      • csv_summary — row count, column count, per-column dtype/null stats
      • csv_columns — extract a subset of columns by name
      • csv_filter — return rows where a column's value matches a substring
      • csv_head — first N rows as a Markdown ASCII table
      • csv_search — find rows where any cell contains the term
    • FILE_IO_TOOLS

      public static final BuiltInTool FILE_IO_TOOLS
      Generic file I/O — sandboxed by Role policy.
      • file_read — read a UTF-8 text file by absolute path
      • file_write — write a UTF-8 text file (overwrites)
    • JSON_TOOLS

      public static final BuiltInTool JSON_TOOLS
      JSONPath query against a file or literal JSON string.
      • json_query — Jayway JsonPath expression evaluation
    • MARKDOWN_TOOLS

      public static final BuiltInTool MARKDOWN_TOOLS
      Markdown ↔ rich-text conversion.
      • markitdown — convert any supported source (DOCX/PDF/HTML/…) to Markdown via Microsoft's MarkItDown
    • PDF_TOOLS

      public static final BuiltInTool PDF_TOOLS
      PDF text + metadata extraction with page ranges.
      • pdf_extract_text — extract all text as a single string
      • pdf_extract_pages — text from specified page range
      • pdf_metadata — title/author/created/page-count
      • pdf_merge — concatenate multiple PDFs into one
      • pdf_to_image — render pages as PNG/JPEG
    • XML_TOOLS

      public static final BuiltInTool XML_TOOLS
      XPath query against XML.
      • xml_query — evaluate an XPath expression on a file or literal XML
    • FINANCE_TOOLS

      public static final BuiltInTool FINANCE_TOOLS
      Borsa Istanbul (BIST) market data. No keys.
      • bist_quote — current price for a BIST symbol (e.g. THYAO)
      • bist_index — index level (XU100, XU030, sector indices)
      • bist_fx — TRY-quoted FX rates (USD/TRY, EUR/TRY, …)
      • bist_gold — gram / quarter / full gold prices in TRY
    • AFTERPAY_TOOLS

      public static final BuiltInTool AFTERPAY_TOOLS
      Afterpay (Clearpay) merchant API. Requires AFTERPAY_API_KEY.
      • afterpay_create_checkout — start a checkout session
      • afterpay_capture_payment — finalise an authorised payment
      • afterpay_get_order — fetch order detail by token
    • CASH_APP_PAY_TOOLS

      public static final BuiltInTool CASH_APP_PAY_TOOLS
      Cash App Pay merchant API. Requires CASHAPP_CLIENT_ID + secret.
      • cashapp_create_request — create a payment request
      • cashapp_get_request — fetch a request by id
      • cashapp_cancel_request — cancel a pending request
    • LIGHTNING_TOOLS

      public static final BuiltInTool LIGHTNING_TOOLS
      Lightning Network (LNbits / LND-REST). Requires LN_API_URL + macaroon.
      • lightning_create_invoice — generate a BOLT-11 invoice
      • lightning_pay_invoice — pay a BOLT-11 invoice
      • lightning_decode_invoice — parse a BOLT-11 string into fields
    • PAYMENT_ANALYTICS_TOOLS

      public static final BuiltInTool PAYMENT_ANALYTICS_TOOLS
      Cross-processor payment analytics.
      • payment_revenue_summary — revenue / refund-rate / MRR snapshot
    • SQUARE_TOOLS

      public static final BuiltInTool SQUARE_TOOLS
      Square Payments + Catalog. Requires SQUARE_ACCESS_TOKEN.
      • square_create_payment — charge a card/wallet token
      • square_list_payments — list payments in a date range
      • square_create_invoice — create an invoice
      • square_create_customer — create a customer record
      • square_search_catalog — search products in catalog
    • CLIPBOARD_TOOLS

      public static final BuiltInTool CLIPBOARD_TOOLS
      OS clipboard read / write. Headless-aware (returns blank in headless mode).
      • clipboard_read_text — read current clipboard text
      • clipboard_write_text — write text to clipboard
    • GOOSE_TOOLS

      public static final BuiltInTool GOOSE_TOOLS
      Local git repo + screenshot + system info. Requires git on PATH.
      • git_status — porcelain status for a repo path
      • git_log — recent commit log
      • git_diff — unified diff (working tree or commit range)
      • git_branches — list local + remote branches
      • screenshot — capture a desktop screenshot to PNG
      • system_info — OS, CPU, RAM, disk-free
    • KNOWLEDGE_TOOLS

      public static final BuiltInTool KNOWLEDGE_TOOLS
      In-memory knowledge graph (entities + relations + triples). Each instance has its own bag. Live instances are the GraphRAG backend when tnsai-intelligence is on the classpath (@Search(strategy = GRAPH), source knowledge-tools).
      • kg_extract_entities — NER over arbitrary text
      • kg_extract_relations — relation extraction over text
      • kg_add_triple — add a (subject, predicate, object) triple
      • kg_query — pattern-match query against the graph
    • CHATTERBOX_TOOLS

      public static final BuiltInTool CHATTERBOX_TOOLS
      Resemble Chatterbox text-to-speech. Requires CHATTERBOX_API_KEY.
      • chatterbox_tts — synthesise audio for a given text + voice id
    • MEDIA_TOOLS

      public static final BuiltInTool MEDIA_TOOLS
      Whisper STT + OpenAI TTS. Requires OPENAI_API_KEY.
      • whisper_transcribe — speech-to-text from audio file/URL
      • openai_tts — text-to-speech with OpenAI voice models
    • MEMORY_TOOLS

      public static final BuiltInTool MEMORY_TOOLS
      Long-term memory store backed by Reever.
      • reever_store — persist a fact / observation
      • reever_recall — recall facts by exact key
      • reever_search — semantic search over stored facts
    • GOOGLE_TOOLS

      public static final BuiltInTool GOOGLE_TOOLS
      Google Calendar + Drive. Requires GOOGLE_OAUTH_TOKEN.
      • gcal_list_events — list events in a calendar/date-range
      • gcal_get_event — fetch a single event
      • gcal_create_event — create an event with attendees
      • gdrive_list_files — list / search files
      • gdrive_read_file — download a file's content
      • gdrive_create_file — upload a new file
    • JIRA_TOOLS

      public static final BuiltInTool JIRA_TOOLS
      Jira Cloud REST. Requires JIRA_BASE_URL + JIRA_API_TOKEN.
      • jira_search — JQL search
      • jira_get_issue — fetch issue by key
      • jira_create_issue — create a new issue
      • jira_transition_issue — move an issue across workflow states
    • NOTION_TOOLS

      public static final BuiltInTool NOTION_TOOLS
      Notion API. Requires NOTION_TOKEN.
      • notion_search — search pages/databases by query
      • notion_get_page — fetch a page's blocks
      • notion_query_database — filter/sort a database
      • notion_create_page — create a page in a database/parent
    • TRELLO_TOOLS

      public static final BuiltInTool TRELLO_TOOLS
      Trello REST. Requires TRELLO_KEY + TRELLO_TOKEN.
      • trello_list_boards — list user's boards
      • trello_get_board — fetch a board's lists/cards
      • trello_list_cards — list cards in a list
      • trello_create_card — create a card
      • trello_move_card — move a card to another list
    • PROJECT_TOOLS

      public static final BuiltInTool PROJECT_TOOLS
      Repository-aware reading helpers (sandboxed by Role policy).
      • project_context — concatenate AGENTS.md / CLAUDE.md / README.md
      • project_read_file — read a file relative to project root
    • REALTIME_TOOLS

      public static final BuiltInTool REALTIME_TOOLS
      Real-time public feeds. No keys (uses CoinGecko / Frankfurter / OpenWeatherMap public).
      • crypto_price — spot price for a crypto symbol via CoinGecko
      • fx_rates — ECB FX rates via Frankfurter
      • fx_convert — convert an amount between two currencies
      • weather_current — current weather for a city
    • SCRAPING_TOOLS

      public static final BuiltInTool SCRAPING_TOOLS
      Apify actor execution. Requires APIFY_TOKEN.
      • apify_run_actor — run an actor with input JSON, await dataset
      • apify_search_actors — search the Apify Store
      • apify_actor_info — fetch an actor's metadata + input schema
    • QNA_TOOLS

      public static final BuiltInTool QNA_TOOLS
      Programmer-flavour Q&A.
      • hackernews — Algolia HN search
      • stackoverflow_search — Stack Exchange API search
    • SPECIALIZED_SEARCH_TOOLS

      public static final BuiltInTool SPECIALIZED_SEARCH_TOOLS
      Domain-specific lookups.
      • yahoo_finance_lookup — quote/profile for a ticker
      • yahoo_finance_news — news headlines for a ticker
      • wolfram_alpha — computational answers (WOLFRAM_APP_ID)
    • WEB_SCRAPING_TOOLS

      public static final BuiltInTool WEB_SCRAPING_TOOLS
      Heavyweight scraping for JS-rendered pages.
      • web_scraper — JSoup + readability text extraction
      • firecrawl — JS-rendered scraping via Firecrawl (FIRECRAWL_API_KEY)
    • WEB_SEARCH_TOOLS

      public static final BuiltInTool WEB_SEARCH_TOOLS
      Ten free / freemium web-search providers in one toolkit. Pick the provider per call; missing API keys yield a clear error.
      • duckduckgo — DuckDuckGo Instant Answer (no key)
      • wikipedia — Wikipedia search (no key)
      • wikidata — Wikidata structured search (no key)
      • searxng — privacy-first metasearch (no key)
      • npm — NPM package search (no key)
      • maven_central — Maven Central artifact search (no key)
      • brave_search — Brave Search (BRAVE_API_KEY)
      • serpapi — Google via SerpAPI (SERPAPI_API_KEY)
      • tavily — Tavily AI search (TAVILY_API_KEY)
      • exa — Exa neural search (EXA_API_KEY)
    • LINKEDIN_TOOLS

      public static final BuiltInTool LINKEDIN_TOOLS
      LinkedIn API. Requires LINKEDIN_ACCESS_TOKEN.
      • linkedin_me — fetch the authenticated profile
      • linkedin_share — post a share/update
    • REDDIT_TOOLS

      public static final BuiltInTool REDDIT_TOOLS
      Reddit API. Requires REDDIT_CLIENT_ID + REDDIT_CLIENT_SECRET.
      • reddit_search — site-wide search
      • reddit_subreddit_posts — recent posts in a subreddit
      • reddit_post_comments — comments under a post
    • TWITTER_TOOLS

      public static final BuiltInTool TWITTER_TOOLS
      Twitter / X API v2. Requires X_BEARER_TOKEN.
      • twitter_search — recent-tweet search
      • twitter_user — user profile lookup
      • twitter_timeline — user's recent timeline
    • SYSTEM_TOOLS

      public static final BuiltInTool SYSTEM_TOOLS
      Low-level system primitives.
      • http_request — generic HTTP GET/POST/PUT/DELETE/PATCH
      • tool_search — search the agent's currently registered tool catalog
    • TRADING_TOOLS

      public static final BuiltInTool TRADING_TOOLS
      Polymarket prediction markets (read-only). No keys.
      • polymarket_markets — list active markets
      • polymarket_search — search markets by keyword
      • polymarket_prices — current outcome prices for a market
    • ENCODING_TOOLS

      public static final BuiltInTool ENCODING_TOOLS
      QR codes + translation. Optional GOOGLE_TRANSLATE_API_KEY for translate.
      • qr_generate — generate a QR PNG file
      • qr_base64 — generate QR as a base64 string
      • qr_read — decode a QR from an image file
      • google_translate — translate text between languages
    • UTILITY_TOOLS

      public static final BuiltInTool UTILITY_TOOLS
      Math + hashing + datetime helpers. No keys.
      • calculator — evaluate arithmetic expressions (+-*&#47;^())
      • hash — MD5 / SHA-1 / SHA-256 / SHA-512 of a string
      • datetime_now — current UTC + zoned timestamp
      • datetime_diff — difference between two ISO-8601 timestamps
      • datetime_add — add a duration to a timestamp
    • VISUALIZATION_TOOLS

      public static final BuiltInTool VISUALIZATION_TOOLS
      Lightweight visualisation primitives.
      • chart_ascii — render a bar/line chart as ASCII art
      • table_format — render rows as a Markdown / ASCII table
      • infographic_templates — list available infographic templates
  • Method Details

    • values

      public static BuiltInTool[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static BuiltInTool valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getToolName

      public String getToolName()
      Stable identifier used in role-binding APIs and SCOP serialisation. Lower-snake-case, matches @Tool(name=...) on at least one method of the backing POJO when the POJO's name is the same as the toolkit.
    • getClassName

      public String getClassName()
      Fully-qualified class name of the backing POJO in tnsai-tools. Use this with Class.forName(String) or instantiate().
    • instantiate

      public Object instantiate()
      Reflectively instantiate the backing POJO via its public no-arg constructor. The returned object is a fresh instance with no shared state — register it with a ToolMethodRegistry or pass it to AgentBuilder.tools(...) to surface its @Tool methods.
      Returns:
      a new instance of the backing POJO class
      Throws:
      BuiltInToolInstantiationException - if the class is missing from the classpath (typically because tnsai-tools is not a dependency) or if reflective instantiation fails