Merge pull request #659 from transitive-bullshit/feature/mintlify-docs

pull/660/head
Travis Fischer 2024-08-17 06:29:10 -05:00 zatwierdzone przez GitHub
commit 02b546d73f
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
54 zmienionych plików z 3433 dodań i 610 usunięć

Wyświetl plik

@ -1 +0,0 @@
out

Wyświetl plik

@ -1,9 +1,5 @@
{
"root": true,
"extends": ["@fisch0920/eslint-config/node"],
"rules": {
"unicorn/no-static-only-class": "off",
"unicorn/no-array-reduce": "off",
"@typescript-eslint/naming-convention": "off"
}
"ignorePatterns": ["out"]
}

19
docs/intro.mdx 100644
Wyświetl plik

@ -0,0 +1,19 @@
---
title: Intro
description: Agentic is an open source, TypeScript, AI agent standard library that works with any LLM and TS AI SDK.
---
Agentic's standard library of TypeScript AI tools are **optimized for both TS-usage as well as LLM-based usage**, which is really important for testing and debugging.
Agentic tools work with any LLM capable of function calling and all of the major TS AI SDKs, including:
- Vercel AI SDK
- LangChain
- LlamaIndex
- Firebase Genkit
- Dexa Dexter
- OpenAI
<Frame style={{ maxWidth: 308, margin: '0 auto' }}>
<img src='/media/agentic-header.jpg' alt='Agentic header' />
</Frame>

Wyświetl plik

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 406 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 406 KiB

Wyświetl plik

@ -0,0 +1,10 @@
<svg width="407" height="96" viewBox="0 0 407 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M118.536 69L139.144 20.488H139.592L160.2 69H151.624L137.096 32.2L142.472 28.552L125.896 69H118.536ZM131.464 51.72H147.4L149.96 58.056H129.224L131.464 51.72ZM203.394 64.712C202.796 65.3093 201.9 65.8853 200.706 66.44C199.554 66.9947 198.252 67.5067 196.802 67.976C195.351 68.4453 193.858 68.808 192.322 69.064C190.786 69.3627 189.335 69.512 187.97 69.512C184.215 69.512 180.823 68.936 177.794 67.784C174.807 66.632 172.226 65.0533 170.05 63.048C167.916 61 166.274 58.5893 165.122 55.816C164.012 53.0427 163.458 50.0347 163.458 46.792C163.458 42.7387 164.098 39.176 165.378 36.104C166.658 32.9893 168.407 30.3867 170.626 28.296C172.844 26.1627 175.383 24.5627 178.242 23.496C181.143 22.4293 184.194 21.896 187.394 21.896C190.21 21.896 192.812 22.216 195.201 22.856C197.634 23.496 199.703 24.3067 201.41 25.288L198.978 32.2C198.167 31.7307 197.122 31.2827 195.842 30.856C194.562 30.3867 193.26 30.024 191.938 29.768C190.658 29.512 189.463 29.384 188.354 29.384C185.666 29.384 183.255 29.768 181.122 30.536C179.031 31.2613 177.239 32.3493 175.746 33.8C174.252 35.2507 173.1 37.0213 172.29 39.112C171.522 41.16 171.138 43.5067 171.138 46.152C171.138 48.5413 171.543 50.7173 172.354 52.68C173.207 54.6427 174.38 56.328 175.874 57.736C177.41 59.144 179.202 60.232 181.25 61C183.34 61.7253 185.644 62.088 188.162 62.088C189.612 62.088 191.02 61.96 192.386 61.704C193.751 61.448 194.903 61.0427 195.842 60.488V52.744H187.138V45.576H203.394V64.712ZM214.713 22.408H245.625V29.576H222.201V41.992H243.065V49.224H222.201V61.832H246.521V69H214.713V22.408ZM297.798 70.664L262.022 35.976L264.198 36.872L264.39 69H256.838V20.808H257.158L292.422 55.496L290.694 54.984L290.566 22.408H297.99V70.664H297.798ZM307.51 22.408H338.678V29.576H326.646V69H319.222V29.576H307.51V22.408ZM348.15 22.408H355.638V69H348.15V22.408ZM403.023 65.352C402.383 65.8213 401.38 66.3973 400.015 67.08C398.649 67.7627 397.028 68.36 395.151 68.872C393.316 69.3413 391.268 69.5547 389.007 69.512C385.38 69.4693 382.116 68.8293 379.215 67.592C376.313 66.312 373.86 64.6053 371.855 62.472C369.849 60.296 368.292 57.8213 367.183 55.048C366.116 52.232 365.583 49.2453 365.583 46.088C365.583 42.5467 366.137 39.304 367.247 36.36C368.356 33.416 369.935 30.8773 371.983 28.744C374.031 26.568 376.463 24.8827 379.279 23.688C382.095 22.4933 385.167 21.896 388.495 21.896C391.439 21.896 394.063 22.3013 396.367 23.112C398.713 23.88 400.676 24.7547 402.255 25.736L399.311 32.776C398.116 31.9227 396.623 31.0907 394.831 30.28C393.039 29.4693 391.012 29.064 388.751 29.064C386.703 29.064 384.74 29.4907 382.863 30.344C380.985 31.1547 379.343 32.328 377.935 33.864C376.527 35.3573 375.396 37.1067 374.543 39.112C373.732 41.1173 373.327 43.2933 373.327 45.64C373.327 48.072 373.689 50.312 374.415 52.36C375.183 54.3653 376.249 56.1147 377.615 57.608C379.023 59.1013 380.687 60.2747 382.607 61.128C384.569 61.9387 386.745 62.344 389.135 62.344C391.567 62.344 393.679 61.9813 395.471 61.256C397.305 60.488 398.777 59.6347 399.887 58.696L403.023 65.352Z" fill="white"/>
<circle cx="48" cy="48" r="48" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.2921 73.2067C22.6247 73.255 18.9825 73.2065 15.3652 73.0611C26.7519 55.048 38.1401 37.0309 49.5298 19.0097C51.1634 17.3293 52.9846 17.1107 54.9932 18.3541C57.4909 20.4558 58.2437 23.0539 57.2514 26.1485C55.4912 29.1352 53.6944 32.0975 51.8608 35.0357C44.1877 47.1766 36.5148 59.3176 28.8417 71.4585C28.286 72.4763 27.4362 73.059 26.2921 73.2067Z" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M55.4302 37.3668C55.7565 37.5224 56.0237 37.7651 56.2315 38.0952C64.3606 49.8615 72.5436 61.5897 80.7804 73.2796C77.1867 73.3768 73.593 73.3768 69.9993 73.2796C68.9793 73.049 68.1295 72.5391 67.4497 71.7499C62.3378 64.2943 57.1901 56.864 52.0064 49.4591C51.4627 48.6715 50.9771 47.8459 50.5495 46.9824C50.3708 45.8664 50.6136 44.8466 51.278 43.9229C52.6986 41.7519 54.0827 39.5666 55.4302 37.3668Z" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M63.8802 73.061C59.7288 73.2064 55.5522 73.255 51.3508 73.2067C50.2416 71.5381 49.1004 69.887 47.927 68.2532C46.845 69.884 45.8008 71.5351 44.7947 73.2067C40.6903 73.255 36.6109 73.2064 32.5566 73.061C36.3848 67.0221 40.2456 61.0003 44.1391 54.9953C45.7172 53.3419 47.587 52.9292 49.7482 53.757C50.3222 54.0317 50.8321 54.396 51.2779 54.8497C55.5109 60.9027 59.7116 66.9732 63.8802 73.061Z" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3652 73.0611C18.9824 73.2065 22.6247 73.255 26.292 73.2067C22.625 73.4004 18.9342 73.4004 15.2195 73.2067C15.2375 73.1183 15.2861 73.0698 15.3652 73.0611Z" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.5567 73.0611C36.611 73.2065 40.6903 73.255 44.7947 73.2067C40.6906 73.4004 36.5628 73.4004 32.411 73.2067C32.4291 73.1183 32.4776 73.0698 32.5567 73.0611Z" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M63.8803 73.0611C63.9594 73.0698 64.0079 73.1183 64.026 73.2067C59.777 73.4005 55.552 73.4005 51.3508 73.2067C55.5523 73.255 59.7288 73.2065 63.8803 73.0611Z" fill="#222222"/>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.1 KiB

Wyświetl plik

@ -0,0 +1,10 @@
<svg width="407" height="96" viewBox="0 0 407 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M118.536 69L139.144 20.488H139.592L160.2 69H151.624L137.096 32.2L142.472 28.552L125.896 69H118.536ZM131.464 51.72H147.4L149.96 58.056H129.224L131.464 51.72ZM203.394 64.712C202.796 65.3093 201.9 65.8853 200.706 66.44C199.554 66.9947 198.252 67.5067 196.802 67.976C195.351 68.4453 193.858 68.808 192.322 69.064C190.786 69.3627 189.335 69.512 187.97 69.512C184.215 69.512 180.823 68.936 177.794 67.784C174.807 66.632 172.226 65.0533 170.05 63.048C167.916 61 166.274 58.5893 165.122 55.816C164.012 53.0427 163.458 50.0347 163.458 46.792C163.458 42.7387 164.098 39.176 165.378 36.104C166.658 32.9893 168.407 30.3867 170.626 28.296C172.844 26.1627 175.383 24.5627 178.242 23.496C181.143 22.4293 184.194 21.896 187.394 21.896C190.21 21.896 192.812 22.216 195.201 22.856C197.634 23.496 199.703 24.3067 201.41 25.288L198.978 32.2C198.167 31.7307 197.122 31.2827 195.842 30.856C194.562 30.3867 193.26 30.024 191.938 29.768C190.658 29.512 189.463 29.384 188.354 29.384C185.666 29.384 183.255 29.768 181.122 30.536C179.031 31.2613 177.239 32.3493 175.746 33.8C174.252 35.2507 173.1 37.0213 172.29 39.112C171.522 41.16 171.138 43.5067 171.138 46.152C171.138 48.5413 171.543 50.7173 172.354 52.68C173.207 54.6427 174.38 56.328 175.874 57.736C177.41 59.144 179.202 60.232 181.25 61C183.34 61.7253 185.644 62.088 188.162 62.088C189.612 62.088 191.02 61.96 192.386 61.704C193.751 61.448 194.903 61.0427 195.842 60.488V52.744H187.138V45.576H203.394V64.712ZM214.713 22.408H245.625V29.576H222.201V41.992H243.065V49.224H222.201V61.832H246.521V69H214.713V22.408ZM297.798 70.664L262.022 35.976L264.198 36.872L264.39 69H256.838V20.808H257.158L292.422 55.496L290.694 54.984L290.566 22.408H297.99V70.664H297.798ZM307.51 22.408H338.678V29.576H326.646V69H319.222V29.576H307.51V22.408ZM348.15 22.408H355.638V69H348.15V22.408ZM403.023 65.352C402.383 65.8213 401.38 66.3973 400.015 67.08C398.649 67.7627 397.028 68.36 395.151 68.872C393.316 69.3413 391.268 69.5547 389.007 69.512C385.38 69.4693 382.116 68.8293 379.215 67.592C376.313 66.312 373.86 64.6053 371.855 62.472C369.849 60.296 368.292 57.8213 367.183 55.048C366.116 52.232 365.583 49.2453 365.583 46.088C365.583 42.5467 366.137 39.304 367.247 36.36C368.356 33.416 369.935 30.8773 371.983 28.744C374.031 26.568 376.463 24.8827 379.279 23.688C382.095 22.4933 385.167 21.896 388.495 21.896C391.439 21.896 394.063 22.3013 396.367 23.112C398.713 23.88 400.676 24.7547 402.255 25.736L399.311 32.776C398.116 31.9227 396.623 31.0907 394.831 30.28C393.039 29.4693 391.012 29.064 388.751 29.064C386.703 29.064 384.74 29.4907 382.863 30.344C380.985 31.1547 379.343 32.328 377.935 33.864C376.527 35.3573 375.396 37.1067 374.543 39.112C373.732 41.1173 373.327 43.2933 373.327 45.64C373.327 48.072 373.689 50.312 374.415 52.36C375.183 54.3653 376.249 56.1147 377.615 57.608C379.023 59.1013 380.687 60.2747 382.607 61.128C384.569 61.9387 386.745 62.344 389.135 62.344C391.567 62.344 393.679 61.9813 395.471 61.256C397.305 60.488 398.777 59.6347 399.887 58.696L403.023 65.352Z" fill="#222222"/>
<circle cx="48" cy="48" r="48" fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.2921 73.2067C22.6247 73.255 18.9825 73.2065 15.3652 73.0611C26.7519 55.048 38.1401 37.0309 49.5298 19.0097C51.1634 17.3293 52.9846 17.1107 54.9932 18.3541C57.4909 20.4558 58.2437 23.0539 57.2514 26.1485C55.4912 29.1352 53.6944 32.0975 51.8608 35.0357C44.1877 47.1766 36.5148 59.3176 28.8417 71.4585C28.286 72.4763 27.4362 73.059 26.2921 73.2067Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M55.4302 37.3668C55.7565 37.5224 56.0237 37.7651 56.2315 38.0952C64.3606 49.8615 72.5436 61.5896 80.7804 73.2796C77.1867 73.3768 73.593 73.3768 69.9993 73.2796C68.9793 73.049 68.1295 72.5391 67.4497 71.7498C62.3378 64.2943 57.1901 56.864 52.0064 49.4591C51.4627 48.6715 50.9771 47.8459 50.5495 46.9824C50.3708 45.8664 50.6136 44.8465 51.278 43.9229C52.6986 41.7519 54.0827 39.5665 55.4302 37.3668Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M63.8802 73.061C59.7288 73.2064 55.5522 73.255 51.3508 73.2067C50.2416 71.5381 49.1004 69.887 47.927 68.2532C46.845 69.884 45.8008 71.5351 44.7947 73.2067C40.6903 73.255 36.6109 73.2064 32.5566 73.061C36.3848 67.0221 40.2456 61.0003 44.1391 54.9953C45.7172 53.3419 47.587 52.9292 49.7482 53.757C50.3222 54.0317 50.8321 54.396 51.2779 54.8497C55.5109 60.9027 59.7116 66.9732 63.8802 73.061Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3652 73.061C18.9824 73.2064 22.6247 73.2549 26.292 73.2067C22.625 73.4003 18.9342 73.4003 15.2195 73.2067C15.2375 73.1183 15.2861 73.0698 15.3652 73.061Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.5567 73.061C36.611 73.2064 40.6903 73.2549 44.7947 73.2067C40.6906 73.4003 36.5628 73.4003 32.411 73.2067C32.4291 73.1183 32.4776 73.0698 32.5567 73.061Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M63.8803 73.061C63.9594 73.0698 64.0079 73.1183 64.026 73.2067C59.777 73.4005 55.552 73.4005 51.3508 73.2067C55.5523 73.2549 59.7288 73.2064 63.8803 73.061Z" fill="white"/>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.0 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 4.1 KiB

Wyświetl plik

@ -0,0 +1,9 @@
<svg width="82" height="82" viewBox="0 0 82 82" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="41" cy="41" r="41" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.4578 61.5308C19.3253 61.572 16.2142 61.5305 13.1245 61.4063C22.8506 46.0201 32.578 30.6306 42.3067 15.2374C43.7021 13.8021 45.2577 13.6154 46.9734 14.6774C49.1069 16.4727 49.7499 18.6919 48.9023 21.3352C47.3988 23.8863 45.864 26.4167 44.2978 28.9263C37.7437 39.2967 31.1897 49.6671 24.6356 60.0374C24.161 60.9068 23.4351 61.4046 22.4578 61.5308Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.3466 30.9175C47.6254 31.0504 47.8536 31.2577 48.031 31.5397C54.9747 41.5901 61.9643 51.6079 68.9999 61.593C65.9303 61.676 62.8607 61.676 59.791 61.593C58.9198 61.396 58.1939 60.9605 57.6133 60.2864C53.2469 53.918 48.8499 47.5714 44.4222 41.2464C43.9577 40.5736 43.543 39.8684 43.1777 39.1308C43.025 38.1776 43.2325 37.3065 43.7999 36.5175C45.0134 34.6631 46.1956 32.7965 47.3466 30.9175Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.5645 61.4063C51.0185 61.5305 47.451 61.5719 43.8623 61.5307C42.9149 60.1055 41.9401 58.6952 40.9378 57.2996C40.0136 58.6925 39.1217 60.1029 38.2623 61.5307C34.7564 61.5719 31.272 61.5305 27.809 61.4063C31.0789 56.2481 34.3766 51.1044 37.7023 45.9752C39.0503 44.5629 40.6474 44.2103 42.4934 44.9174C42.9837 45.1521 43.4193 45.4632 43.8001 45.8507C47.4157 51.021 51.0038 56.2063 54.5645 61.4063Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.1244 61.4063C16.2142 61.5305 19.3253 61.5719 22.4578 61.5308C19.3255 61.6961 16.173 61.6961 13 61.5308C13.0154 61.4552 13.0569 61.4138 13.1244 61.4063Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.8089 61.4063C31.2719 61.5305 34.7564 61.5719 38.2622 61.5308C34.7566 61.6961 31.2307 61.6961 27.6844 61.5308C27.6999 61.4552 27.7413 61.4138 27.8089 61.4063Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M54.5644 61.4063C54.632 61.4138 54.6734 61.4552 54.6888 61.5308C51.0596 61.6963 47.4507 61.6963 43.8622 61.5308C47.4509 61.5719 51.0184 61.5305 54.5644 61.4063Z" fill="white"/>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.1 KiB

94
docs/mint.json 100644
Wyświetl plik

@ -0,0 +1,94 @@
{
"$schema": "https://mintlify.com/schema.json",
"name": "Agentic",
"logo": {
"dark": "/media/agentic-logo-dark.svg",
"light": "/media/agentic-logo-light.svg"
},
"favicon": "/media/favicon.svg",
"colors": {
"primary": "#DD5130",
"light": "#F76340",
"dark": "#DD5130",
"anchors": {
"from": "#DD5130",
"to": "#F76340"
}
},
"topbarLinks": [
{
"name": "Twitter",
"url": "https://x.com/transitive_bs"
}
],
"topbarCtaButton": {
"name": "GitHub",
"url": "https://github.com/transitive-bullshit/agentic"
},
"anchors": [
{
"name": "GitHub",
"icon": "github",
"url": "https://github.com/transitive-bullshit/agentic"
}
],
"navigation": [
{
"group": "Getting Started",
"pages": ["intro", "quickstart", "usage"]
},
{
"group": "AI SDKs",
"pages": [
"sdks/ai-sdk",
"sdks/langchain",
"sdks/llamaindex",
"sdks/genkit",
"sdks/dexter",
"sdks/openai"
]
},
{
"group": "Tools",
"pages": [
"tools/bing",
"tools/calculator",
"tools/clearbit",
"tools/dexa",
"tools/diffbot",
"tools/e2b",
"tools/exa",
"tools/firecrawl",
"tools/hacker-news",
"tools/hunter",
"tools/jina",
"tools/midjourney",
"tools/novu",
"tools/people-data-labs",
"tools/perigon",
"tools/polygon",
"tools/predict-leads",
"tools/proxycurl",
"tools/searxng",
"tools/serpapi",
"tools/serper",
"tools/slack",
"tools/social-data",
"tools/tavily",
"tools/twilio",
"tools/twitter",
"tools/weather",
"tools/wikidata",
"tools/wikipedia",
"tools/wolfram-alpha"
]
}
],
"footerSocials": {
"x": "https://x.com/transitive_bs",
"github": "https://github.com/transitive-bullshit/agentic"
},
"seo": {
"indexHiddenPages": true
}
}

202
docs/quickstart.mdx 100644
Wyświetl plik

@ -0,0 +1,202 @@
---
title: Quick Start
---
<Info>
**Prerequisite**: All Agentic packages are [ESM
only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)
and require `Node.js >= 18` or an equivalent environment (Bun, Deno, CF
workers, etc).
</Info>
<Steps>
<Step title='Install core deps'>
<CodeGroup>
```bash npm
npm install @agentic/core zod
```
```bash yarn
yarn add @agentic/core zod
```
```bash pnpm
pnpm add @agentic/core zod
```
</CodeGroup>
</Step>
<Step title='Install AI tools'>
You can either install all of the AI tools via the convenience package `@agentic/stdlib`, or you can install them individually via their respective packages (`@agentic/weather`, `@agentic/twitter`, etc.).
<AccordionGroup>
<Accordion title="Install all AI tools">
<CodeGroup>
```bash npm
npm install @agentic/stdlib
```
```bash yarn
yarn add @agentic/stdlib
```
```bash pnpm
pnpm add @agentic/stdlib
```
</CodeGroup>
</Accordion>
<Accordion title="Install individual AI tools">
Docs for individual tools are available [here](/tools).
Here's an example of how to install the [Weather tool](/tools/weather):
<CodeGroup>
```bash npm
npm install @agentic/weather
```
```bash yarn
yarn add @agentic/weather
```
```bash pnpm
pnpm add @agentic/weather
```
</CodeGroup>
</Accordion>
</AccordionGroup>
<Note>
There is no functional difference between using `@agentic/stdlib` versus using the individual tool packages directly. The only difference is if you want to optimize your install size (when running on serverless functions, for instance).
The default examples all use `@agentic/stdlib` because it provides a simpler DX.
</Note>
</Step>
<Step title='Install an AI SDK Adapter'>
To use Agentic with one of the supported AI SDKs, you'll also need to install its corresponding adapter package.
<AccordionGroup>
<Accordion title="Vercel AI SDK">
<CodeGroup>
```bash npm
npm install @agentic/ai-sdk ai
```
```bash yarn
yarn add @agentic/ai-sdk ai
```
```bash pnpm
pnpm add @agentic/ai-sdk ai
```
</CodeGroup>
See the [AI SDK adapter docs](/sdks/ai-sdk) for usage details.
</Accordion>
<Accordion title="LangChain">
<CodeGroup>
```bash npm
npm install @agentic/langchain @langchain/core langchain
```
```bash yarn
yarn add @agentic/langchain @langchain/core langchain
```
```bash pnpm
pnpm add @agentic/langchain @langchain/core langchain
```
</CodeGroup>
See the [LangChain adapter docs](/sdks/langchain) for usage details.
</Accordion>
<Accordion title="LlamaIndex">
<CodeGroup>
```bash npm
npm install @agentic/llamaindex llamaindex
```
```bash yarn
yarn add @agentic/llamaindex llamaindex
```
```bash pnpm
pnpm add @agentic/llamaindex llamaindex
```
</CodeGroup>
See the [LlamaIndex adapter docs](/sdks/llamaindex) for usage details.
</Accordion>
<Accordion title="Firebase Genkit">
<CodeGroup>
```bash npm
npm install @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
```bash yarn
yarn add @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
```bash pnpm
pnpm add @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
</CodeGroup>
See the [Genkit adapter docs](/sdks/genkit) for usage details.
</Accordion>
<Accordion title="Dexa Dexter">
<CodeGroup>
```bash npm
npm install @agentic/dexter @dexaai/dexter
```
```bash yarn
yarn add @agentic/dexter @dexaai/dexter
```
```bash pnpm
pnpm add @agentic/dexter @dexaai/dexter
```
</CodeGroup>
See the [Dexter adapter docs](/sdks/dexter) for usage details.
</Accordion>
<Accordion title="OpenAI SDK">
<CodeGroup>
```bash npm
npm install openai
```
```bash yarn
yarn add openai
```
```bash pnpm
pnpm add openai
```
</CodeGroup>
There's no need for a separate adapter with the OpenAI SDK since all agentic tools are compatible with OpenAI by default. You can use `AIFunctionSet.specs` for function calling or `AIFunctionSet.toolSpecs` for parallel tool calling.
See the [OpenAI adapter docs](/sdks/openai) for usage details.
</Accordion>
</AccordionGroup>
<Note>
You can use Agentic without any of these AI SDKs. `@agentic/core` and all tool packages are completely agnostic to the specific LLM and AI SDK.
</Note>
</Step>
</Steps>

Wyświetl plik

@ -0,0 +1,77 @@
---
title: Vercel AI SDK
description: Agentic adapter for the Vercel AI SDK.
---
- package: `@agentic/ai-sdk`
- exports: `function createAISDKTools`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/ai-sdk/src/ai-sdk.ts)
- [Vercel AI SDK docs](https://sdk.vercel.ai)
## Install
<CodeGroup>
```bash npm
npm install @agentic/ai-sdk ai
```
```bash yarn
yarn add @agentic/ai-sdk ai
```
```bash pnpm
pnpm add @agentic/ai-sdk ai
```
</CodeGroup>
## Usage
This example also requires you to install `@ai-sdk/openai`.
```ts
import 'dotenv/config'
import { createAISDKTools } from '@agentic/ai-sdk'
import { WeatherClient } from '@agentic/weather'
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
async function main() {
const weather = new WeatherClient()
const result = await generateText({
model: openai('gpt-4o-mini'),
tools: createAISDKTools(weather),
toolChoice: 'required',
temperature: 0,
system: 'You are a helpful assistant. Be as concise as possible.',
prompt: 'What is the weather in San Francisco?'
})
console.log(result.toolResults[0])
}
await main()
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/ai-sdk/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,75 @@
---
title: Dexter
description: Agentic adapter for the Dexa Dexter SDK.
---
- package: `@agentic/dexter`
- exports: `function createDexterFunctions`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/dexter/src/dexter.ts)
- [Dexa Dexter SDK docs](https://dexter.dexa.ai)
## Install
<CodeGroup>
```bash npm
npm install @agentic/dexter @dexaai/dexter
```
```bash yarn
yarn add @agentic/dexter @dexaai/dexter
```
```bash pnpm
pnpm add @agentic/dexter @dexaai/dexter
```
</CodeGroup>
## Usage
```ts
import 'dotenv/config'
import { createDexterFunctions } from '@agentic/dexter'
import { WeatherClient } from '@agentic/weather'
import { ChatModel, createAIRunner } from '@dexaai/dexter'
async function main() {
const weather = new WeatherClient()
const runner = createAIRunner({
chatModel: new ChatModel({
params: { model: 'gpt-4o-mini', temperature: 0 }
// debug: true
}),
functions: createDexterFunctions(weather),
systemMessage: 'You are a helpful assistant. Be as concise as possible.'
})
const result = await runner('What is the weather in San Francisco?')
console.log(result)
}
await main()
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/dexter/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,89 @@
---
title: Genkit
description: Agentic adapter for the Firebase Genkit SDK.
---
- package: `@agentic/genkit`
- exports: `function createGenkitTools`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/genkit/src/genkit.ts)
- [Firebase Genkit docs](https://firebase.google.com/docs/genkit)
## Install
<CodeGroup>
```bash npm
npm install @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
```bash yarn
yarn add @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
```bash pnpm
pnpm add @agentic/genkit @genkit-ai/ai @genkit-ai/core
```
</CodeGroup>
## Usage
This example also requires you to install the [genkitx-openai](https://github.com/TheFireCo/genkit-plugins/tree/main/plugins/openai) package, which adds support for OpenAI to Genkit.
```ts
import 'dotenv/config'
import { createGenkitTools } from '@agentic/genkit'
import { WeatherClient } from '@agentic/stdlib'
import { generate } from '@genkit-ai/ai'
import { configureGenkit } from '@genkit-ai/core'
import { gpt4oMini, openAI } from 'genkitx-openai'
async function main() {
const weather = new WeatherClient()
configureGenkit({
plugins: [openAI()]
})
const result = await generate({
model: gpt4oMini,
tools: createGenkitTools(weather),
history: [
{
role: 'system',
content: [
{
text: 'You are a helpful assistant. Be as concise as possible.'
}
]
}
],
prompt: 'What is the weather in San Francisco?'
})
console.log(result)
}
await main()
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/genkit/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,87 @@
---
title: LangChain
description: Agentic adapter for the LangChain JS SDK.
---
- package: `@agentic/langchain`
- exports: `function createLangChainTools`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/langchain/src/langchain.ts)
- [LangChain JS docs](https://js.langchain.com)
## Install
<CodeGroup>
```bash npm
npm install @agentic/langchain @langchain/core langchain
```
```bash yarn
yarn add @agentic/langchain @langchain/core langchain
```
```bash pnpm
pnpm add @agentic/langchain @langchain/core langchain
```
</CodeGroup>
## Usage
```ts
import { createLangChainTools } from '@agentic/langchain'
import { WeatherClient } from '@agentic/stdlib'
import { ChatPromptTemplate } from '@langchain/core/prompts'
import { ChatOpenAI } from '@langchain/openai'
import { AgentExecutor, createToolCallingAgent } from 'langchain/agents'
async function main() {
const weather = new WeatherClient()
const tools = createLangChainTools(weather)
const agent = createToolCallingAgent({
llm: new ChatOpenAI({ model: 'gpt-4o-mini', temperature: 0 }),
tools,
prompt: ChatPromptTemplate.fromMessages([
['system', 'You are a helpful assistant. Be as concise as possible.'],
['placeholder', '{chat_history}'],
['human', '{input}'],
['placeholder', '{agent_scratchpad}']
])
})
const agentExecutor = new AgentExecutor({
agent,
tools
// verbose: true
})
const result = await agentExecutor.invoke({
input: 'What is the weather in San Francisco?'
})
console.log(result.output)
}
await main()
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/langchain/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,76 @@
---
title: LlamaIndex
description: Agentic adapter for the LlamaIndex TS SDK.
---
- package: `@agentic/llamaindex`
- exports: `function createLlamaIndexTools`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/llamaindex/src/llamaindex.ts)
- [LlamaIndex TS docs](https://ts.llamaindex.ai)
## Install
<CodeGroup>
```bash npm
npm install @agentic/llamaindex llamaindex
```
```bash yarn
yarn add @agentic/llamaindex llamaindex
```
```bash pnpm
pnpm add @agentic/llamaindex llamaindex
```
</CodeGroup>
## Usage
```ts
import 'dotenv/config'
import { createLlamaIndexTools } from '@agentic/llamaindex'
import { WeatherClient } from '@agentic/stdlib'
import { OpenAI, OpenAIAgent } from 'llamaindex'
async function main() {
const weather = new WeatherClient()
const tools = createLlamaIndexTools(weather)
const agent = new OpenAIAgent({
llm: new OpenAI({ model: 'gpt-4o-mini', temperature: 0 }),
systemPrompt: 'You are a helpful assistant. Be as concise as possible.',
tools
})
const response = await agent.chat({
message: 'What is the weather in San Francisco?'
})
console.log(response.message.content)
}
await main()
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/llamaindex/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,83 @@
---
title: OpenAI
description: How to use Agentic with the OpenAI TS SDK directly.
---
<Note>
There's no need for an adapter with the OpenAI SDK since all agentic tools are
compatible with OpenAI by default. You can use `AIFunctionSet.specs` for
function calling or `AIFunctionSet.toolSpecs` for parallel tool calling.
</Note>
## Install
<CodeGroup>
```bash npm
npm install @agentic/core @agentic/stdlib openai
```
```bash yarn
yarn add @agentic/core @agentic/stdlib openai
```
```bash pnpm
pnpm add @agentic/core @agentic/stdlib openai
```
</CodeGroup>
## Usage
```ts
import { WeatherClient } from '@agentic/stdlib'
import OpenAI from 'openai'
const weather = new WeatherClient()
const openai = new OpenAI()
const messages: OpenAI.ChatCompletionMessageParam[] = [
{
role: 'system',
content: 'You are a helpful assistant. Be as concise as possible.'
},
{ role: 'user', content: 'What is the weather in San Francisco?' }
]
const res = await openai.chat.completions.create({
messages,
model: 'gpt-4o-mini',
temperature: 0,
tools: weather.functions.toolSpecs,
tool_choice: 'required'
})
const message = res.choices[0]?.message!
console.log(JSON.stringify(message, null, 2))
assert(message.tool_calls?.[0]?.function?.name === 'get_current_weather')
const fn = weather.functions.get('get_current_weather')!
const toolParams = message.tool_calls[0].function.arguments
const toolResult = await fn(toolParams)
console.log(JSON.stringify(toolResult, null, 2))
```
## Running this example
<Info>
You'll need a free API key from [weatherapi.com](https://www.weatherapi.com)
to run this example. Store it in a local `.env` file as `WEATHER_API_KEY`.
</Info>
<Info>
You'll need an [OpenAI API key](https://platform.openai.com/docs/quickstart)
to run this example. Store it in a local `.env` file as `OPENAI_API_KEY`.
</Info>
```sh
git clone git@github.com:transitive-bullshit/agentic.git
cd agentic
pnpm install
echo 'WEATHER_API_KEY=your-key' >> .env
echo 'OPENAI_API_KEY=your-key' >> .env
npx tsx examples/openai/bin/weather.ts
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Bing
description: Bing web search API client.
---
- package: `@agentic/bing`
- exports: `class BingClient`, `namespace bing`
- env vars: `BING_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/bing/src/bing-client.ts)
- [bing web search docs](https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/bing
```
```bash yarn
yarn add @agentic/bing
```
```bash pnpm
pnpm add @agentic/bing
```
</CodeGroup>
## Usage
```ts
import { BingClient } from '@agentic/bing'
const bing = new BingClient()
const res = await bing.search('latest news')
```

Wyświetl plik

@ -0,0 +1,35 @@
---
title: Calculator
description: A simple calculator tool.
---
- package: `@agentic/calculator`
- exports: `function calculator`
- env vars: _none_
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/calculator/src/calculator.ts)
- [mathjs docs](https://mathjs.org)
## Install
<CodeGroup>
```bash npm
npm install @agentic/calculator
```
```bash yarn
yarn add @agentic/calculator
```
```bash pnpm
pnpm add @agentic/calculator
```
</CodeGroup>
## Usage
```ts
import { calculator } from '@agentic/calculator'
const res = await calculator({ expr: '1 + 1' })
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Clearbit
description: Resolving and enriching people and company data.
---
- package: `@agentic/clearbit`
- exports: `class ClearbitClient`, `namespace clearbit`
- env vars: `CLEARBIT_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/clearbit/src/clearbit-client.ts)
- [clearbit api docs](https://dashboard.clearbit.com/docs)
## Install
<CodeGroup>
```bash npm
npm install @agentic/clearbit
```
```bash yarn
yarn add @agentic/clearbit
```
```bash pnpm
pnpm add @agentic/clearbit
```
</CodeGroup>
## Usage
```ts
import { ClearbitClient } from '@agentic/clearbit'
const clearbit = new ClearbitClient()
const res = await clearbit.companyEnrichment({ domain: 'apple.com' })
```

Wyświetl plik

@ -0,0 +1,41 @@
---
title: Dexa
description: Answers questions from the world's best podcasters.
---
<Warning>
The [Dexa](https://dexa.ai) API is currently only available as a closed beta.
</Warning>
- package: `@agentic/dexa`
- exports:
- `class DexaClient`, `namespace dexa`
- `class ScraperClient`, `namespace scraper`
- env vars: `DEXA_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/dexa/src/dexa-client.ts)
## Install
<CodeGroup>
```bash npm
npm install @agentic/dexa
```
```bash yarn
yarn add @agentic/dexa
```
```bash pnpm
pnpm add @agentic/dexa
```
</CodeGroup>
## Usage
```ts
import { DexaClient } from '@agentic/dexa'
const dexa = new DexaClient()
const res = await dexa.search('latest news')
```

Wyświetl plik

@ -0,0 +1,38 @@
---
title: Diffbot
description: Diffbot API client.
---
Diffbot provides web page classification and scraping. It also provides access to a knowledge graph with the ability to perform person and company data enrichment.
- package: `@agentic/diffbot`
- exports: `class DiffbotClient`, `namespace diffbot`
- env vars: `DIFFBOT_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/diffbot/src/diffbot-client.ts)
- [diffbot api docs](https://docs.diffbot.com)
## Install
<CodeGroup>
```bash npm
npm install @agentic/diffbot
```
```bash yarn
yarn add @agentic/diffbot
```
```bash pnpm
pnpm add @agentic/diffbot
```
</CodeGroup>
## Usage
```ts
import { DiffbotClient } from '@agentic/diffbot'
const diffbot = new DiffbotClient()
const res = await diffbot.analyzeUrl('https://example.com')
```

37
docs/tools/e2b.mdx 100644
Wyświetl plik

@ -0,0 +1,37 @@
---
title: E2B
description: Hosted Python code interpreter sandbox.
---
Hosted Python code intrepreter sandbox which is really useful for data analysis, flexible code execution, and advanced reasoning on-the-fly.
- package: `@agentic/e2b`
- exports: `function e2b`
- env vars: `E2B_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/e2b/src/e2b.ts)
- [e2b api docs](https://e2b.dev)
## Install
<CodeGroup>
```bash npm
npm install @agentic/e2b @e2b/code-interpreter
```
```bash yarn
yarn add @agentic/e2b @e2b/code-interpreter
```
```bash pnpm
pnpm add @agentic/e2b @e2b/code-interpreter
```
</CodeGroup>
## Usage
```ts
import { e2b } from '@agentic/e2b'
const res = await e2b({ code: 'print("Hello, World")' })
```

36
docs/tools/exa.mdx 100644
Wyświetl plik

@ -0,0 +1,36 @@
---
title: Exa
description: Web search tailored for LLMs.
---
- package: `@agentic/exa`
- exports: `class ExaClient`, `namespace exa`
- env vars: `EXA_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/exa/src/exa-client.ts)
- [exa api docs](https://docs.exa.ai)
## Install
<CodeGroup>
```bash npm
npm install @agentic/exa
```
```bash yarn
yarn add @agentic/exa
```
```bash pnpm
pnpm add @agentic/exa
```
</CodeGroup>
## Usage
```ts
import { ExaClient } from '@agentic/exa'
const exa = new ExaClient()
const res = await exa.search('latest news')
```

Wyświetl plik

@ -0,0 +1,38 @@
---
title: Firecrawl
description: Website scraping and structured data extraction.
---
Turn websites into LLM-ready data. Crawl and convert any website into clean markdown or structured data.
- package: `@agentic/firecrawl`
- exports: `class FirecrawlClient`, `namespace firecrawl`
- env vars: `FIRECRAWL_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/firecrawl/src/firecrawl-client.ts)
- [firecrawl api docs](https://www.firecrawl.dev)
## Install
<CodeGroup>
```bash npm
npm install @agentic/firecrawl
```
```bash yarn
yarn add @agentic/firecrawl
```
```bash pnpm
pnpm add @agentic/firecrawl
```
</CodeGroup>
## Usage
```ts
import { FirecrawlClient } from '@agentic/firecrawl'
const firecrawl = new FirecrawlClient()
const res = await firecrawl.scrapeUrl('https://example.com')
```

Wyświetl plik

@ -0,0 +1,38 @@
---
title: HackerNews
description: Basic client for the official Hacker News API.
---
Note that the [HN Algolia API](https://hn.algolia.com/api) seems to no longer be available, so we can't add search without quite a bit of overhead.
- package: `@agentic/hacker-news`
- exports: `class HackerNewsClient`, `namespace hackernews`
- env vars: `HACKER_NEWS_API_USER_AGENT` (_optional_)
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/hacker-news/src/hacker-news-client.ts)
- [HN api docs](https://github.com/HackerNews/API)
## Install
<CodeGroup>
```bash npm
npm install @agentic/hacker-news
```
```bash yarn
yarn add @agentic/hacker-news
```
```bash pnpm
pnpm add @agentic/hacker-news
```
</CodeGroup>
## Usage
```ts
import { HackerNewsClient } from '@agentic/hacker-news'
const hn = new HackerNewsClient()
const res = await hn.getTopStories()
```

Wyświetl plik

@ -0,0 +1,41 @@
---
title: Hunter
description: Email finder, verifier, and enrichment.
---
- package: `@agentic/hunter`
- exports: `class HunterClient`, `namespace hunter`
- env vars: `HUNTER_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/hunter/src/hunter-client.ts)
- [hunter api docs](https://hunter.io/api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/hunter
```
```bash yarn
yarn add @agentic/hunter
```
```bash pnpm
pnpm add @agentic/hunter
```
</CodeGroup>
## Usage
```ts
import { HunterClient } from '@agentic/hunter'
const hunter = new HunterClient()
const res0 = await hunter.domainSearch('apple.com')
const res1 = await hunter.emailFinder({
domain: 'transitivebullsh.it',
first_name: 'travis',
last_name: 'fischer'
})
```

Wyświetl plik

@ -0,0 +1,45 @@
---
title: Jina
description: URL scraper and web search
---
LLM-friendly URL reader and search client by [Jina AI](https://jina.ai/reader) with a basic free tier.
- package: `@agentic/jina`
- exports: `class JinaClient`, `namespace jina`
- env vars: `JINA_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/jina/src/jina-client.ts)
- [jina api docs](https://jina.ai/reader)
## Install
<CodeGroup>
```bash npm
npm install @agentic/jina
```
```bash yarn
yarn add @agentic/jina
```
```bash pnpm
pnpm add @agentic/jina
```
</CodeGroup>
## Usage
```ts
import { JinaClient } from '@agentic/jina'
const jina = new JinaClient()
const res0 = await jina.readUrl('https://example.com')
const res1 = await jina.search({ query: 'latest news', json: true })
```
## Notes
- Does not support "stream mode".
- Results default to markdown text format.
- To return JSON (especially useful for `search`), set `json: true` in the options.

Wyświetl plik

@ -0,0 +1,38 @@
---
title: Midjourney
description: Unofficial Midjourney API client for generative images.
---
- package: `@agentic/midjourney`
- exports: `class MidjourneyClient`, `namespace midjourney`
- env vars: `MIDJOURNEY_IMAGINE_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/midjourney/src/midjourney-client.ts)
- [imagine api docs](https://www.imagineapi.dev)
## Install
<CodeGroup>
```bash npm
npm install @agentic/midjourney
```
```bash yarn
yarn add @agentic/midjourney
```
```bash pnpm
pnpm add @agentic/midjourney
```
</CodeGroup>
## Usage
```ts
import { MidjourneyClient } from '@agentic/midjourney'
const midjourney = new MidjourneyClient()
const res = await midjourney.imagine({
prompt: 'beautiful sunset over the ocean, oil painting, monet'
})
```

Wyświetl plik

@ -0,0 +1,38 @@
---
title: Novu
description: Novu API client.
---
The [Novu API](https://novu.co) provides a router for sending notifications across different channels like Email, SMS, Chat, In-App, and Push.
- package: `@agentic/novu`
- exports: `class NovuClient`, `namespace novu`
- env vars: `NOVU_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/novu/src/novu-client.ts)
- [novu api docs](https://novu.co)
## Install
<CodeGroup>
```bash npm
npm install @agentic/novu
```
```bash yarn
yarn add @agentic/novu
```
```bash pnpm
pnpm add @agentic/novu
```
</CodeGroup>
## Usage
```ts
import { NovuClient } from '@agentic/novu'
const novu = new NovuClient()
const res = await novu.search('latest news')
```

Wyświetl plik

@ -0,0 +1,45 @@
---
title: People Data Labs
description: People & company data enrichment.
---
<Warning>
People Data Labs tends to be more expensive than other similar data proviers.
The author recommends you stay away from them.
</Warning>
- package: `@agentic/people-data-labs`
- exports: `class PeopleDataLabsClient`, `namespace peopledatalabs`
- env vars: `PEOPLE_DATA_LABS_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/people-data-labs/src/people-data-labs-client.ts)
- [people data labs api docs](https://www.peopledatalabs.com)
## Install
<CodeGroup>
```bash npm
npm install @agentic/people-data-labs
```
```bash yarn
yarn add @agentic/people-data-labs
```
```bash pnpm
pnpm add @agentic/people-data-labs
```
</CodeGroup>
## Usage
```ts
import { PeopleDataLabsClient } from '@agentic/people-data-labs'
const pdl = new PeopleDataLabsClient()
const res = await pdl.companyLookup({
query: {
website: 'apple.com'
}
})
```

Wyświetl plik

@ -0,0 +1,44 @@
---
title: Perigon
description: Real-time news API.
---
Real-time news API and web content data from 140,000+ sources. Structured and enriched by AI, primed for LLMs.
- search news articles
- search news stories (clusters of related news articles)
- search people, companies, topics, and journalists
- package: `@agentic/perigon`
- exports: `class PerigonClient`, `namespace perigon`
- env vars: `PERIGON_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/perigon/src/perigon-client.ts)
- [perigon api docs](https://www.goperigon.com/products/news-api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/perigon
```
```bash yarn
yarn add @agentic/perigon
```
```bash pnpm
pnpm add @agentic/perigon
```
</CodeGroup>
## Usage
```ts
import { PerigonClient } from '@agentic/perigon'
const perigon = new PerigonClient()
const res = await perigon.searchArticles({
q: '"elon musk" AND tesla'
})
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Polygon
description: Stock market and company financial data.
---
- package: `@agentic/polygon`
- exports: `class PolygonClient`, `namespace polygon`
- env vars: `POLYGON_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/polygon/src/polygon-client.ts)
- [polygon api docs](https://polygon.io/docs)
## Install
<CodeGroup>
```bash npm
npm install @agentic/polygon
```
```bash yarn
yarn add @agentic/polygon
```
```bash pnpm
pnpm add @agentic/polygon
```
</CodeGroup>
## Usage
```ts
import { PolygonClient } from '@agentic/polygon'
const polygon = new PolygonClient()
const res = await polygon.tickerDetails({ ticker: 'AAPL' })
```

Wyświetl plik

@ -0,0 +1,38 @@
---
title: Predict Leads
description: Company data and events API.
---
In-depth company data, including signals like fundraising announcemnts, hiring intent, new customers signed, technologies used, product launches, location expansions, awards received, etc.
- package: `@agentic/predict-leads`
- exports: `class PredictLeadsClient`, `namespace predictleads`
- env vars: `PREDICT_LEADS_API_KEY`, `PREDICT_LEADS_API_TOKEN`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/predict-leads/src/predict-leads-client.ts)
- [precit leads api docs](https://docs.predictleads.com/v3)
## Install
<CodeGroup>
```bash npm
npm install @agentic/predict-leads
```
```bash yarn
yarn add @agentic/predict-leads
```
```bash pnpm
pnpm add @agentic/predict-leads
```
</CodeGroup>
## Usage
```ts
import { PredictLeadsClient } from '@agentic/predict-leads'
const predictLeads = new PredictLeadsClient()
const res = await predictLeads.getCompanyEvents({ domain: 'apple.com' })
```

Wyświetl plik

@ -0,0 +1,42 @@
---
title: Proxycurl
description: People and company data from LinkedIn & Crunchbase.
---
- package: `@agentic/proxycurl`
- exports: `class ProxycurlClient`, `namespace proxycurl`
- env vars: `PROXYCURL_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/proxycurl/src/proxycurl-client.ts)
- [proxycurl api docs](https://nubela.co/proxycurl)
## Install
<CodeGroup>
```bash npm
npm install @agentic/proxycurl
```
```bash yarn
yarn add @agentic/proxycurl
```
```bash pnpm
pnpm add @agentic/proxycurl
```
</CodeGroup>
## Usage
```ts
import { ProxycurlClient } from '@agentic/proxycurl'
const proxycurl = new ProxycurlClient()
const company = await proxycurl.getLinkedInCompany({
url: 'https://linkedin.com/company/apple'
})
const person = await proxycurl.getLinkedInPerson({
url: 'https://linkedin.com/in/fisch2'
})
```

Wyświetl plik

@ -0,0 +1,59 @@
---
title: Searxng
description: OSS meta search engine.
---
Open source meta search engine capable of searching across many different
sources and search engines.
The most important search engines are:
- `reddit` (Reddit posts)
- `google` (Google web search)
- `google news` (Google News search)
- `brave` (Brave web search)
- `arxiv` (academic papers)
- `genius` (Genius.com for song lyrics)
- `imdb` (movies and TV shows)
- `hackernews` (Hacker News)
- `wikidata` (Wikidata)
- `wolframalpha` (Wolfram Alpha)
- `youtube` (YouTube videos)
- `github` (GitHub code and repositories)
---
- package: `@agentic/searxng`
- exports: `class SearxngClient`, `namespace searxng`
- env vars: `SEARXNG_API_BASE_URL`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/searxng/src/searxng-client.ts)
- [searxng api docs](https://docs.searxng.org)
## Install
<CodeGroup>
```bash npm
npm install @agentic/searxng
```
```bash yarn
yarn add @agentic/searxng
```
```bash pnpm
pnpm add @agentic/searxng
```
</CodeGroup>
## Usage
```ts
import { SearxngClient } from '@agentic/searxng'
const searxng = new SearxngClient()
const res = await searxng.search({
query: 'us election',
engines: ['google', 'reddit', 'hackernews']
})
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: SerpAPI
description: Lightweight wrapper around SerpAPI for Google search.
---
- package: `@agentic/serpapi`
- exports: `class SerpAPIClient`, `namespace serpapi`
- env vars: `SERPAPI_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/serpapi/src/serpapi-client.ts)
- [serpapi api docs](https://serpapi.com/search-api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/serpapi
```
```bash yarn
yarn add @agentic/serpapi
```
```bash pnpm
pnpm add @agentic/serpapi
```
</CodeGroup>
## Usage
```ts
import { SerpAPIClient } from '@agentic/serpapi'
const serpapi = new SerpAPIClient()
const res = await serpapi.search('latest news')
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Serper
description: Lightweight wrapper around Serper for Google search.
---
- package: `@agentic/serper`
- exports: `class SerperClient`, `namespace serper`
- env vars: `SERPER_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/serper/src/serper-client.ts)
- [serper api docs](https://serper.dev)
## Install
<CodeGroup>
```bash npm
npm install @agentic/serper
```
```bash yarn
yarn add @agentic/serper
```
```bash pnpm
pnpm add @agentic/serper
```
</CodeGroup>
## Usage
```ts
import { SerperClient } from '@agentic/serper'
const serper = new SerperClient()
const res = await serper.search('latest news')
```

Wyświetl plik

@ -0,0 +1,39 @@
---
title: Slack
description: Minimal Slack API client for sending and receiving Slack messages.
---
- package: `@agentic/slack`
- exports: `class SlackClient`, `namespace slack`
- env vars: `SLACK_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/slack/src/slack-client.ts)
- [slack api docs](https://api.slack.com/docs)
## Install
<CodeGroup>
```bash npm
npm install @agentic/slack
```
```bash yarn
yarn add @agentic/slack
```
```bash pnpm
pnpm add @agentic/slack
```
</CodeGroup>
## Usage
```ts
import { SlackClient } from '@agentic/slack'
const slack = new SlackClient()
const res = await slack.sendMessage({
text: 'hello',
channel: 'general'
})
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Social Data Tools
description: Unofficial Twitter / X client (readonly) which is much cheaper than the official Twitter API.
---
- package: `@agentic/social-data`
- exports: `class SocialDataClient`, `namespace socialdata`
- env vars: `SOCIAL_DATA_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/social-data/src/social-data-client.ts)
- [social data tools api docs](https://socialdata.tools)
## Install
<CodeGroup>
```bash npm
npm install @agentic/social-data
```
```bash yarn
yarn add @agentic/social-data
```
```bash pnpm
pnpm add @agentic/social-data
```
</CodeGroup>
## Usage
```ts
import { SocialDataClient } from '@agentic/social-data'
const sd = new SocialDataClient()
const res = await sd.getUserByUsername('transitive_bs')
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Tavily
description: Web search API tailored for LLMs.
---
- package: `@agentic/tavily`
- exports: `class TavilyClient`, `namespace tavily`
- env vars: `BING_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/tavily/src/tavily-client.ts)
- [tavily api docs](https://tavily.com)
## Install
<CodeGroup>
```bash npm
npm install @agentic/tavily
```
```bash yarn
yarn add @agentic/tavily
```
```bash pnpm
pnpm add @agentic/tavily
```
</CodeGroup>
## Usage
```ts
import { TavilyClient } from '@agentic/tavily'
const tavily = new TavilyClient()
const res = await tavily.search('latest news')
```

Wyświetl plik

@ -0,0 +1,39 @@
---
title: Twilio
description: Twilio conversation API to send and receive SMS messages.
---
- package: `@agentic/twilio`
- exports: `class TwilioClient`, `namespace twilio`
- env vars: `TWILIO_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/twilio/src/twilio-client.ts)
- [twilio api docs](https://www.twilio.com/docs/conversations/api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/twilio
```
```bash yarn
yarn add @agentic/twilio
```
```bash pnpm
pnpm add @agentic/twilio
```
</CodeGroup>
## Usage
```ts
import { TwilioClient } from '@agentic/twilio'
const twilio = new TwilioClient()
const res = await twilio.sendMessage({
conversationId: 'TODO',
text: 'Hello, world'
})
```

Wyświetl plik

@ -0,0 +1,40 @@
---
title: Twitter
description: Official Twitter / X API client.
---
Basic Twitter API methods for fetching users, tweets, and searching recent tweets. Includes support for plan-aware rate-limiting. Uses [Nango](https://www.nango.dev) for OAuth support.
- package: `@agentic/twitter`
- exports: `class TwitterClient`, `namespace twitter`
- env vars: `TWITTER_API_KEY`, `TWITTER_API_PLAN`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/twitter/src/twitter-client.ts)
- [twitter api docs](https://developer.twitter.com/en/docs/twitter-api)
## Install
<CodeGroup>
```bash npm
npm install @agentic/twitter
```
```bash yarn
yarn add @agentic/twitter
```
```bash pnpm
pnpm add @agentic/twitter
```
</CodeGroup>
## Usage
```ts
import { TwitterClient } from '@agentic/twitter'
const twitter = new TwitterClient()
const res = await twitter.createTweet({
text: 'hello, world'
})
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Weather
description: Simple Weather API client for accessing weather data based on location.
---
- package: `@agentic/weather`
- exports: `class WeatherClient`, `namespace weather`
- env vars: `WEATHER_API_KEY`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/weather/src/weather-client.ts)
- [weatherapi.com api docs](https://www.weatherapi.com)
## Install
<CodeGroup>
```bash npm
npm install @agentic/weather
```
```bash yarn
yarn add @agentic/weather
```
```bash pnpm
pnpm add @agentic/weather
```
</CodeGroup>
## Usage
```ts
import { WeatherClient } from '@agentic/weather'
const weather = new WeatherClient()
const res = await weather.getCurrentWeather('new york')
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Wikidata
description: Basic Wikidata client.
---
- package: `@agentic/wikidata`
- exports: `class WikidataClient`, `namespace wikidata`
- env vars: `WIKIDATA_API_USER_AGENT` (_optional_)
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/wikidata/src/wikidata-client.ts)
- [wikibase api docs](https://github.com/maxlath/wikibase-sdk)
## Install
<CodeGroup>
```bash npm
npm install @agentic/wikidata
```
```bash yarn
yarn add @agentic/wikidata
```
```bash pnpm
pnpm add @agentic/wikidata
```
</CodeGroup>
## Usage
```ts
import { WikidataClient } from '@agentic/wikidata'
const wikidata = new WikidataClient()
const res = await wikidata.getEntityById('Q317521') // elon musk
```

Wyświetl plik

@ -0,0 +1,37 @@
---
title: Wikipedia
description: Wikipedia apage search and summary API.
---
- package: `@agentic/wikipedia`
- exports: `class WikipediaClient`, `namespace wikipedia`
- env vars: `WIKIPEDIA_API_USER_AGENT` (_optional_)
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/wikipedia/src/wikipedia-client.ts)
- [wikipedia api docs](https://www.mediawiki.org/wiki/API)
## Install
<CodeGroup>
```bash npm
npm install @agentic/wikipedia
```
```bash yarn
yarn add @agentic/wikipedia
```
```bash pnpm
pnpm add @agentic/wikipedia
```
</CodeGroup>
## Usage
```ts
import { WikipediaClient } from '@agentic/wikipedia'
const wikipedia = new WikipediaClient()
const res0 = await wikipedia.search({ query: 'steve jobs' })
const res1 = await wikipedia.getPageSummary({ title: 'Elon_Musk' })
```

Wyświetl plik

@ -0,0 +1,36 @@
---
title: Wolfram Alpha
description: Wolfram Alpha LLM API client for answering computational, mathematical, and scientific questions.
---
- package: `@agentic/wolfram-alpha`
- exports: `class WolframAlphaClient`, `namespace wolframalpha`
- env vars: `WOLFRAM_APP_ID`
- [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/wolfram-alpha/src/wolfram-alpha-client.ts)
- [wolfram alpha api docs](https://products.wolframalpha.com/llm-api/documentation)
## Install
<CodeGroup>
```bash npm
npm install @agentic/wolfram-alpha
```
```bash yarn
yarn add @agentic/wolfram-alpha
```
```bash pnpm
pnpm add @agentic/wolfram-alpha
```
</CodeGroup>
## Usage
```ts
import { WolframAlphaClient } from '@agentic/wolfram-alpha'
const wolframAlpha = new WolframAlphaClient()
const res = await wolframAlpha.search('latest news')
```

124
docs/usage.mdx 100644
Wyświetl plik

@ -0,0 +1,124 @@
---
title: Usage
---
## AI SDKs
<CardGroup cols={2}>
<Card title='Vercel AI SDK' href='/sdks/ai-sdk'>
Using Agentic with the Vercel AI SDK.
</Card>
<Card title='LangChain' href='/sdks/langchain'>
Using Agentic with LangChain.
</Card>
<Card title='LlamaIndex' href='/sdks/llamaindex'>
Using Agentic with LlamaIndex.
</Card>
<Card title='Firebase Genkit' href='/sdks/genkit'>
Using Agentic with Genkit.
</Card>
<Card title='Dexa Dexter' href='/sdks/dexter'>
Using Agentic with Dexter.
</Card>
<Card title='OpenAI' href='/sdks/openai'>
Using Agentic with OpenAI directly.
</Card>
</CardGroup>
## Tools
### TS Tool Usage
Agentic clients like `WeatherClient` can be used as normal TS classes:
```ts
import { WeatherClient } from '@agentic/stdlib'
// Requires `process.env.WEATHER_API_KEY` (free from weatherapi.com)
const weather = new WeatherClient()
const result = await weather.getCurrentWeather({
q: 'San Francisco'
})
console.log(result)
```
### LLM Tool Usage
Or you can use these clients as **LLM-based tools** where the LLM decides when and how to invoke the underlying functions for you.
This works across all of the major AI SDKs via adapters. Here's an example using [Vercel's AI SDK](https://github.com/vercel/ai):
```ts
// sdk-specific imports
import { openai } from '@ai-sdk/openai'
import { generateText } from 'ai'
import { createAISDKTools } from '@agentic/ai-sdk'
// sdk-agnostic imports
import { WeatherClient } from '@agentic/stdlib'
const weather = new WeatherClient()
const result = await generateText({
model: openai('gpt-4o-mini'),
// this is the key line which uses the `@agentic/ai-sdk` adapter
tools: createAISDKTools(weather),
toolChoice: 'required',
prompt: 'What is the weather in San Francisco?'
})
console.log(result.toolResults[0])
```
You can use our standard library of thoroughly tested AI functions with your favorite AI SDK – without having to write any glue code!
### Multiple Tool Usage via AIFunctionLike
Here's a slightly more complex example which uses multiple clients and selects a subset of their functions using the `AIFunctionSet.pick` method:
```ts
// sdk-specific imports
import { ChatModel, createAIRunner } from '@dexaai/dexter'
import { createDexterFunctions } from '@agentic/dexter'
// sdk-agnostic imports
import { PerigonClient, SerperClient } from '@agentic/stdlib'
async function main() {
// Perigon is a news API and Serper is a Google search API
const perigon = new PerigonClient()
const serper = new SerperClient()
const runner = createAIRunner({
chatModel: new ChatModel({
params: { model: 'gpt-4o-mini', temperature: 0 }
}),
functions: createDexterFunctions(
perigon.functions.pick('search_news_stories'),
serper
),
systemMessage: 'You are a helpful assistant. Be as concise as possible.'
})
const result = await runner(
'Summarize the latest news stories about the upcoming US election.'
)
console.log(result)
}
```
Here we've exposed 2 functions to the LLM, `search_news_stories` (which comes from the `PerigonClient.searchStories` method) and `serper_google_search` (which implicitly comes from the `SerperClient.search` method).
All of the SDK adapters like `createDexterFunctions` accept very flexible `AIFunctionLike` objects, which include:
- `AIFunctionSet` - Sets of AI functions (like `perigon.functions.pick('search_news_stories')` or `perigon.functions` or `serper.functions`)
- `AIFunctionsProvider` - Client classes which expose an `AIFunctionSet` via the `.functions` property (like `perigon` or `serper`)
- `AIFunction` - Individual functions (like `perigon.functions.get('search_news_stories')` or `serper.functions.get('serper_google_search')` or AI functions created directly via the `createAIFunction` utility function)
You can pass as many of these `AIFunctionLike` objects as you'd like and you can manipulate them as `AIFunctionSet` sets via `.pick`, `.omit`, `.get`, `.map`, etc.

Wyświetl plik

@ -35,18 +35,18 @@
"@changesets/cli": "^2.27.7",
"@fisch0920/eslint-config": "^1.4.0",
"@total-typescript/ts-reset": "^0.5.1",
"@types/node": "^22.1.0",
"@types/node": "^22.4.0",
"del-cli": "^5.1.0",
"dotenv": "^16.4.5",
"eslint": "^8.57.0",
"husky": "^9.1.4",
"lint-staged": "^15.2.8",
"lint-staged": "^15.2.9",
"npm-run-all2": "^6.2.2",
"only-allow": "^1.2.1",
"prettier": "^3.3.3",
"tsup": "^8.2.4",
"tsx": "^4.16.5",
"turbo": "^2.0.12",
"tsx": "^4.17.0",
"turbo": "^2.0.14",
"typescript": "^5.5.4",
"vitest": "2.0.5",
"zod": "^3.23.8"

Wyświetl plik

@ -31,8 +31,8 @@ export type AIChainParams<Result extends types.AIChainResult = string> = {
schema?: z.ZodType<Result> | types.Schema<Result>
/**
* Whether or not the response schema should be treated as strict for
* constrained structured output generation.
* Whether or not the response schema should use OpenAI's structured output
* generation.
*/
strict?: boolean

Wyświetl plik

@ -231,7 +231,7 @@ export namespace Msg {
/** Create a function call message with argumets. */
export function funcCall(
function_call: {
funcCall: {
/** Name of the function to call. */
name: string
/** Arguments to pass to the function. */
@ -246,7 +246,7 @@ export namespace Msg {
...opts,
role: 'assistant',
content: null,
function_call
function_call: funcCall
}
}
@ -261,7 +261,7 @@ export namespace Msg {
/** Create a function call message with argumets. */
export function toolCall(
tool_calls: Msg.Call.Tool[],
toolCalls: Msg.Call.Tool[],
opts?: {
/** The name descriptor for the message.(message.name) */
name?: string
@ -271,21 +271,26 @@ export namespace Msg {
...opts,
role: 'assistant',
content: null,
tool_calls
tool_calls: toolCalls
}
}
/** Create a tool call result message. */
export function toolResult(
content: Jsonifiable,
tool_call_id: string,
toolCallId: string,
opts?: {
/** The name of the tool which was called */
name?: string
}
): Msg.ToolResult {
const contentString = stringifyForModel(content)
return { ...opts, role: 'tool', tool_call_id, content: contentString }
return {
...opts,
role: 'tool',
tool_call_id: toolCallId,
content: contentString
}
}
/** Get the narrowed message from an EnrichedResponse. */
@ -327,7 +332,7 @@ export namespace Msg {
}
/** Check if a message is an assistant message. */
export function isAssistant(message: Msg): message is Msg.Assistant {
return message.role === 'assistant' && message.content !== null
return message.role === 'assistant' && message.content != null
}
/** Check if a message is an assistant refusal message. */
export function isRefusal(message: Msg): message is Msg.Refusal {

Wyświetl plik

@ -217,13 +217,10 @@ export function sanitizeSearchParams(
return new URLSearchParams(entries)
}
const csvEntries = entries.reduce(
(acc, [key, value]) => ({
...acc,
[key]: acc[key] ? `${acc[key]},${value}` : value
}),
{} as any
)
const csvEntries: Record<string, string> = {}
for (const [key, value] of entries) {
csvEntries[key] = csvEntries[key] ? `${csvEntries[key]},${value}` : value
}
return new URLSearchParams(csvEntries)
}

Wyświetl plik

@ -101,7 +101,7 @@ export namespace jina {
/**
* LLM-friendly URL reader and search client by Jina AI.
*
* - Includes a very generous free tier.
* - Includes a small free tier.
* - Does not support "stream mode".
* - Results default to markdown text format.
* - To return JSON (especially useful for `search`), set `json: true` in the

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,5 +1,5 @@
<p align="center">
<img alt="Agentic" src="/media/agentic-header.jpg" width="308">
<img alt="Agentic" src="/docs/media/agentic-header.jpg" width="308">
</p>
<p align="center">
@ -25,7 +25,7 @@
- [Firebase Genkit](#firebase-genkit)
- [Dexa Dexter](#dexa-dexter)
- [OpenAI SDK](#openai-sdk)
- [Services](#services)
- [Tools](#tools)
- [Client Design Philosophy](#client-design-philosophy)
- [TODO](#todo)
- [Contributors](#contributors)
@ -150,7 +150,7 @@ import { WeatherClient } from '@agentic/weather'
### AI SDKs
To use Agentic with one of the supported AI SDKs, you'll also need to install its (_really lightweight_) adapter package.
To use Agentic with one of the supported AI SDKs, you'll also need to install its corresponding adapter package.
#### Vercel AI SDk
@ -285,21 +285,21 @@ See [examples/openai](./examples/openai) for a full example.
</details>
## Services
## Tools
| Service | Package | Named export | Description |
| Service / Tool | Package | Named export | Description |
| ------------------------------------------------------------------------ | --------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Bing](https://www.microsoft.com/en-us/bing/apis/bing-web-search-api) | `@agentic/bing` | `BingClient` | Bing web search. |
| [Calculator](https://github.com/josdejong/mathjs) | `@agentic/calculator` | `calculator` | Basic calculator for simple mathematical expressions. |
| [Clearbit](https://dashboard.clearbit.com/docs) | `@agentic/clearbit` | `ClearbitClient` | Resolving and enriching people and company datae. |
| [Clearbit](https://dashboard.clearbit.com/docs) | `@agentic/clearbit` | `ClearbitClient` | Resolving and enriching people and company data. |
| [Dexa](https://dexa.ai) | `@agentic/dexa` | `DexaClient` | Answers questions from the world's best podcasters. |
| [Diffbot](https://docs.diffbot.com) | `@agentic/diffbot` | `DiffbotClient` | Web page classification and scraping; person and company data enrichment. |
| [E2B](https://e2b.dev) | `@agentic/e2b` | `e2b` | Hosted Python code intrepreter sandbox which is really useful for data analysis, flexible code execution, and advanced reasoning on-the-fly. (_peer dep_ `@e2b/code-interpreter`) |
| [Exa](https://docs.exa.ai) | `@agentic/exa` | `ExaClient` | Web search tailored for LLMs. |
| [Firecrawl](https://www.firecrawl.dev) | `@agentic/firecrawl` | `FirecrawlClient` | Website scraping and sanitization. |
| [Firecrawl](https://www.firecrawl.dev) | `@agentic/firecrawl` | `FirecrawlClient` | Website scraping and structured data extraction. |
| [HackerNews](https://github.com/HackerNews/API) | `@agentic/hacker-news` | `HackerNewsClient` | Official HackerNews API. |
| [Hunter](https://hunter.io) | `@agentic/hunter` | `HunterClient` | Email finder, verifier, and enrichment. |
| [Jina](https://jina.ai/reader) | `@agentic/jina` | `JinaClient` | Clean URL reader and web search + URL top result reading with a generous free tier. |
| [Jina](https://jina.ai/reader) | `@agentic/jina` | `JinaClient` | URL scraper and web search. |
| [Midjourney](https://www.imagineapi.dev) | `@agentic/midjourney` | `MidjourneyClient` | Unofficial Midjourney client for generative images. |
| [Novu](https://novu.co) | `@agentic/novu` | `NovuClient` | Sending notifications (email, SMS, in-app, push, etc). |
| [People Data Labs](https://www.peopledatalabs.com) | `@agentic/people-data-labs` | `PeopleDataLabsClient` | People & company data (WIP). |
@ -334,7 +334,7 @@ Note that you can import any of these AI tools from `@agentic/stdlib` OR from th
## TODO
- services
- tools
- browserbase
- [brave search](https://brave.com/search/api/)
- [phantombuster](https://phantombuster.com)