diff --git a/README.md b/README.md index 94c7ab20..9bbcbcbf 100644 --- a/README.md +++ b/README.md @@ -3,44 +3,47 @@ Logo -

- AI agents suck. Weโ€™re fixing that. -

-

- - Python - Version - -

+
+ Observability and DevTool platform for AI Agents +
+

๐Ÿฆ Twitter   โ€ข   ๐Ÿ“ข Discord   โ€ข   -๐Ÿ–‡๏ธ AgentOps +๐Ÿ–‡๏ธ Dashboard   โ€ข   ๐Ÿ“™ Documentation

-# AgentOps ๐Ÿ–‡๏ธ - -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -![PyPI - Version](https://img.shields.io/pypi/v/agentops) - - - - - AgentOps Twitter - - - Discord community channel - - - git commit activity - - -AgentOps helps developers build, evaluate, and monitor AI agents. Tools to build agents from prototype to production. +
+ + Downloads + + + git commit activity + + PyPI - Version + + License: MIT + +
+ +
+
+ Agent Debugging + Session Replays + Summary Analytics +
+ All of this with just 2 lines of code +
+ +
+ + +AgentOps helps developers build, evaluate, and monitor AI agents. From prototype to production. | | | | ------------------------------------- | ------------------------------------------------------------- | @@ -56,53 +59,89 @@ AgentOps helps developers build, evaluate, and monitor AI agents. Tools to build pip install agentops ``` -### Session replays in 3 lines of code -Initialize the AgentOps client and automatically get analytics on every LLM call. +#### Session replays in 2 lines of code + +Initialize the AgentOps client and automatically get analytics on all your LLM calls. + +[Get an API key](https://app.agentops.ai/settings/projects) ```python import agentops -# Beginning of program's code (i.e. main.py, __init__.py) +# Beginning of your program (i.e. main.py, __init__.py) agentops.init( < INSERT YOUR API KEY HERE >) ... - -# (optional: record specific functions) -@agentops.record_action('sample function being record') -def sample_function(...): - ... - - # End of program agentops.end_session('Success') -# Woohoo You're done ๐ŸŽ‰ ``` -All your sessions are available on the [AgentOps dashboard](https://app.agentops.ai?ref=gh). Refer to our [API documentation](http://docs.agentops.ai) for detailed instructions. +All your sessions can be viewed on the [AgentOps dashboard](https://app.agentops.ai?ref=gh) +
-
- Agent Dashboard +
+ Agent Debugging - Agent Dashboard + Agent Debugging
- Session Analytics + Session Replays - Session Analytics + Session Replays
-
- Session Replays +
+ Summary Analytics - Session Replays + Summary Analytics
+ +### First class Developer Experience +Add powerful observability to your agents, tools and functions with as little code as possible: one line. +
+Refer to our [documentation](http://docs.agentops.ai) + +```python +# Automatically associate all Events with the agent that originated them +from agentops import track_agent + +@track_agent(name='SomeCustomName') +class MyAgent: + ... +``` + +```python +# Automatically create ToolEvents for tools that agents will use +from agentops import record_tool + +@record_tool('SampleToolName') +def sample_tool(...): + ... +``` + +```python +# Automatically create ActionEvents for other functions. +from agentops import record_action + +@agentops.record_action('sample function being record') +def sample_function(...): + ... +``` + +```python +# Manually record any other Events +from agentops import record, ActionEvent + +record(ActionEvent("received_user_input")) +``` + ## Integrations ๐Ÿฆพ ### CrewAI ๐Ÿ›ถ @@ -244,11 +283,49 @@ response = await litellm.acompletion(model="claude-3", messages=messages) ### LlamaIndex ๐Ÿฆ™ -(Coming Soon) + +AgentOps works seamlessly with applications built using LlamaIndex, a framework for building context-augmented generative AI applications with LLMs. + +
+ Installation + +```shell +pip install llama-index-instrumentation-agentops +``` + +To use the handler, import and set + +```python +from llama_index.core import set_global_handler + +# NOTE: Feel free to set your AgentOps environment variables (e.g., 'AGENTOPS_API_KEY') +# as outlined in the AgentOps documentation, or pass the equivalent keyword arguments +# anticipated by AgentOps' AOClient as **eval_params in set_global_handler. + +set_global_handler("agentops") +``` + +Check out the [LlamaIndex docs](https://docs.llamaindex.ai/en/stable/module_guides/observability/?h=agentops#agentops) for more details. + +
## Time travel debugging ๐Ÿ”ฎ -(coming soon!) +
+
+ Agent Debugging + Session Replays +
+
+ Recapture time, money, and control in your Agent development workflow +
+ Cache LLM calls and edit the Completions to trigger different paths in your Agent's execution. +
+
+ +
+ +[Try it out!](https://app.agentops.ai/timetravel) ## Agent Arena ๐ŸฅŠ @@ -295,17 +372,25 @@ Check out our growth in the community: ## Popular projects using AgentOps + | Repository | Stars | | :-------- | -----: | -|   [joaomdmoura](https://github.com/joaomdmoura) / [crewAI](https://github.com/joaomdmoura/crewAI) | 16888 | -|   [superagent-ai](https://github.com/superagent-ai) / [superagent](https://github.com/superagent-ai/superagent) | 4933 | -|   [iyaja](https://github.com/iyaja) / [llama-fs](https://github.com/iyaja/llama-fs) | 4507 | -|   [MervinPraison](https://github.com/MervinPraison) / [PraisonAI](https://github.com/MervinPraison/PraisonAI) | 1015 | -|   [AgentOps-AI](https://github.com/AgentOps-AI) / [Jaiqu](https://github.com/AgentOps-AI/Jaiqu) | 265 | -|   [tonykipkemboi](https://github.com/tonykipkemboi) / [youtube_yapper_trapper](https://github.com/tonykipkemboi/youtube_yapper_trapper) | 42 | -|   [alejandro-ao](https://github.com/alejandro-ao) / [exa-crewai](https://github.com/alejandro-ao/exa-crewai) | 31 | -|   [sethcoast](https://github.com/sethcoast) / [cover-letter-builder](https://github.com/sethcoast/cover-letter-builder) | 23 | -|   [bhancockio](https://github.com/bhancockio) / [chatgpt4o-analysis](https://github.com/bhancockio/chatgpt4o-analysis) | 16 | +|   [geekan](https://github.com/geekan) / [MetaGPT](https://github.com/geekan/MetaGPT) | 42787 | +|   [run-llama](https://github.com/run-llama) / [llama_index](https://github.com/run-llama/llama_index) | 34446 | +|   [crewAIInc](https://github.com/crewAIInc) / [crewAI](https://github.com/crewAIInc/crewAI) | 18287 | +|   [camel-ai](https://github.com/camel-ai) / [camel](https://github.com/camel-ai/camel) | 5166 | +|   [superagent-ai](https://github.com/superagent-ai) / [superagent](https://github.com/superagent-ai/superagent) | 5050 | +|   [iyaja](https://github.com/iyaja) / [llama-fs](https://github.com/iyaja/llama-fs) | 4713 | +|   [BasedHardware](https://github.com/BasedHardware) / [Omi](https://github.com/BasedHardware/Omi) | 2723 | +|   [MervinPraison](https://github.com/MervinPraison) / [PraisonAI](https://github.com/MervinPraison/PraisonAI) | 2007 | +|   [AgentOps-AI](https://github.com/AgentOps-AI) / [Jaiqu](https://github.com/AgentOps-AI/Jaiqu) | 272 | +|   [strnad](https://github.com/strnad) / [CrewAI-Studio](https://github.com/strnad/CrewAI-Studio) | 134 | +|   [alejandro-ao](https://github.com/alejandro-ao) / [exa-crewai](https://github.com/alejandro-ao/exa-crewai) | 55 | +|   [tonykipkemboi](https://github.com/tonykipkemboi) / [youtube_yapper_trapper](https://github.com/tonykipkemboi/youtube_yapper_trapper) | 47 | +|   [sethcoast](https://github.com/sethcoast) / [cover-letter-builder](https://github.com/sethcoast/cover-letter-builder) | 27 | +|   [bhancockio](https://github.com/bhancockio) / [chatgpt4o-analysis](https://github.com/bhancockio/chatgpt4o-analysis) | 19 | +|   [breakstring](https://github.com/breakstring) / [Agentic_Story_Book_Workflow](https://github.com/breakstring/Agentic_Story_Book_Workflow) | 14 | +|   [MULTI-ON](https://github.com/MULTI-ON) / [multion-python](https://github.com/MULTI-ON/multion-python) | 13 | _Generated using [github-dependents-info](https://github.com/nvuillam/github-dependents-info), by [Nicolas Vuillamy](https://github.com/nvuillam)_ diff --git a/docs/images/external/app_screenshots/time_travel_1.png b/docs/images/external/app_screenshots/time_travel_1.png new file mode 100644 index 00000000..0e19b3e1 Binary files /dev/null and b/docs/images/external/app_screenshots/time_travel_1.png differ diff --git a/docs/images/external/app_screenshots/time_travel_2.png b/docs/images/external/app_screenshots/time_travel_2.png new file mode 100644 index 00000000..54fe14f5 Binary files /dev/null and b/docs/images/external/app_screenshots/time_travel_2.png differ diff --git a/docs/v1/quickstart.mdx b/docs/v1/quickstart.mdx index 9dc09f37..3bc5e242 100644 --- a/docs/v1/quickstart.mdx +++ b/docs/v1/quickstart.mdx @@ -19,7 +19,7 @@ import EnvTooltip from '/snippets/add-env-tooltip.mdx' - Create an AgentOps [API key here](https://app.agentops.ai/settings/projects) + Get an AgentOps API key [here](https://app.agentops.ai/settings/projects) ```python python import agentops