Releases: AgentOps-AI/agentops
Releases · AgentOps-AI/agentops
0.4.4
Changelog
- Reduce the delay of span export from five seconds to one second to avoid orphaned spans during unexpected system exits (not necessarily exceptions but explicit exits from other applications). Expose this configuration parameter as an environment variable
- Fixes #838 @the-praxs
- Fixes #710 @tcdent
- Restores support for Python 3.9 which has not yet reached EOL
- Crew released version 105 which interacts with the legacy public API in a different manner. AgentOps is now integrated as a separate [module] (https://github.com/crewAIInc/crewAI/blob/main/src/crewai/utilities/events/third_party/agentops_listener.py) and we have included support for this refactor here.
- Versions less than 105 were mostly covered by the existing implementation is also supported in this PR.
- Tested with
openai-agents
to verify span export
Tests
- Implements tests/unit/test_session_legacy.py to verify full backwards compatibility with CrewAI's and other libs
- Removes deprecated failing tests:
test_insturmentation.py
test_instrumentation_errors.py
test_core.py
- Favors
test_decorators.py
- Adds an implementation of crew AI testing in
test/unit/test_session_legacy.py
0.4.3
0.4.2
0.4.1
0.4.0
[RELEASE] `v0.4.0` (#820) * agentops.start_session: accept **kwargs Signed-off-by: Teo <teocns@gmail.com> * tests: isolate session fixtures Signed-off-by: Teo <teocns@gmail.com> * tests: session fixture - introduce kwargs marker Signed-off-by: Teo <teocns@gmail.com> * session: add auto_start property Signed-off-by: Teo <teocns@gmail.com> * move default_config from session->config Signed-off-by: Teo <teocns@gmail.com> * session/state Signed-off-by: Teo <teocns@gmail.com> * session: dict() and json() Signed-off-by: Teo <teocns@gmail.com> * session: use slots Signed-off-by: Teo <teocns@gmail.com> * session: improve fields Signed-off-by: Teo <teocns@gmail.com> * session: general improvements Signed-off-by: Teo <teocns@gmail.com> * telemetry/helpers: dict_to_span_attributes Signed-off-by: Teo <teocns@gmail.com> * cleanup Signed-off-by: Teo <teocns@gmail.com> * test: add tests for Session serialization and encoding * session._tracer -> session.telemetry Signed-off-by: Teo <teocns@gmail.com> * save Signed-off-by: Teo <teocns@gmail.com> * session: logger improvements, comments Signed-off-by: Teo <teocns@gmail.com> * Create auto instrumentation features Signed-off-by: Teo <teocns@gmail.com> * Move session_generator under tests/fixtures/session.py Signed-off-by: Teo <teocns@gmail.com> * ++context Signed-off-by: Teo <teocns@gmail.com> * integration tests refactor TOOD move Signed-off-by: Teo <teocns@gmail.com> * telemetry: -context Signed-off-by: Teo <teocns@gmail.com> * Move openai instrumentation to third_party/ Signed-off-by: Teo <teocns@gmail.com> * cleanup test_session.py Signed-off-by: Teo <teocns@gmail.com> * chore(pyproject): add third_party Signed-off-by: Teo <teocns@gmail.com> * add logging to instrumentation/__init__.py Signed-off-by: Teo <teocns@gmail.com> * cleanup telemetry/mixin Signed-off-by: Teo <teocns@gmail.com> * test client instrumentation Signed-off-by: Teo <teocns@gmail.com> * _singleton.py Signed-off-by: Teo <teocns@gmail.com> * +exceptions.py Signed-off-by: Teo <teocns@gmail.com> * +fixtures/config.py Signed-off-by: Teo <teocns@gmail.com> * cleanup tests/fixtures/event,py Signed-off-by: Teo <teocns@gmail.com> * cleanup tests/unit/conftest.py Signed-off-by: Teo <teocns@gmail.com> * test_config.py: -test_invalid_parent_key Signed-off-by: Teo <teocns@gmail.com> * config: +auto_init Signed-off-by: Teo <teocns@gmail.com> * cleanup __init__.py Signed-off-by: Teo <teocns@gmail.com> * client: improvements, auto start, conditional_singleton Signed-off-by: Teo <teocns@gmail.com> * cleanups Signed-off-by: Teo <teocns@gmail.com> * config / logger setup improvements Signed-off-by: Teo <teocns@gmail.com> * save Signed-off-by: Teo <teocns@gmail.com> * Update instrumentation/README.md Signed-off-by: Teo <teocns@gmail.com> * instrumentation: use global tracer_provider Signed-off-by: Teo <teocns@gmail.com> * instrumentation/openai: add copyrights - NOTICE.md, LICENSE Signed-off-by: Teo <teocns@gmail.com> * tests/unit/test_client.py Signed-off-by: Teo <teocns@gmail.com> * tests/unit/test_client.py: add session-related tests Signed-off-by: Teo <teocns@gmail.com> * Added Anthropic Provider * Added Cohere Provider * Added Groq Provider * Added Haystack Provider * Added Mistralai Provider * Added Ollama Provider * Added Crewai Provider * Added implementation * Removed third_party * use `mistralai<1.0.0` for instrumentation * chore(pyproject.toml): update mistralai version constraint to >=0.2.0,<1.0.0 according to instrumentation/mistralai `_instruments` * config: explode kwargs, add processor & exporter Signed-off-by: Teo <teocns@gmail.com> * agentops/telemetry/session: hook up with config params Signed-off-by: Teo <teocns@gmail.com> * test_client: +exporter, processor args tests Signed-off-by: Teo <teocns@gmail.com> * config: dict() and json() methods Signed-off-by: Teo <teocns@gmail.com> * refactor(session): update config serialization method * tests: isolate reset_instrumentation fixture Signed-off-by: Teo <teocns@gmail.com> * cleanup tests Signed-off-by: Teo <teocns@gmail.com> * agentops.init(): add tags to **kwargs, merge with default_tags * remove parent_key concept Signed-off-by: Teo <teocns@gmail.com> * config: use slots Signed-off-by: Teo <teocns@gmail.com> * cleanup tests Signed-off-by: Teo <teocns@gmail.com> * tests/fixtures/instrumentation: use InMemorySpanExporter Signed-off-by: Teo <teocns@gmail.com> * refactor(tests): simplify mock client implementation * Squash merge redesign-client into redesign Signed-off-by: Teo <teocns@gmail.com> * feat(types): add ISOTimeStamp type annotation * refactor(session_tracer): update timestamp type annotations * refactor session+telemetry modules structure Signed-off-by: Teo <teocns@gmail.com> * refactor(session): rename telemetry to mixin and update code * session/tracer: refactor and remove concept of nonrecordingspan Signed-off-by: Teo <teocns@gmail.com> * remove _ession_id fallback Signed-off-by: Teo <teocns@gmail.com> * merge Session w/ SessionTelemetryMixin Signed-off-by: Teo <teocns@gmail.com> * add test.py Signed-off-by: Teo <teocns@gmail.com> * save Signed-off-by: Teo <teocns@gmail.com> * Squash merge redesign-session-client-remove-signals into redesign-old Signed-off-by: Teo <teocns@gmail.com> * Client HTTP Module Refactoring and Test Fixes (#714) Client HTTP Module Refactoring and Test Fixes #714 * tests_http_client: adapt mock call assertions to client redesign Signed-off-by: Teo <teocns@gmail.com> * session: remove signals Signed-off-by: Teo <teocns@gmail.com> * remove session complexities Signed-off-by: Teo <teocns@gmail.com> * Move session tracer init behavior Signed-off-by: Teo <teocns@gmail.com> * SessionTelemetryMixin._span Signed-off-by: Teo <teocns@gmail.com> * move client/exporters to session/exporters Signed-off-by: Teo <teocns@gmail.com> * feat(config): add exporter_endpoint to configuration options * feat(tracer): update OTLP exporter endpoint configuration * feat(config): set default exporter endpoint value * build: update opentelemetry dependencies in pyproject.toml * test: replace authentication test with OpenAI test * test_session_config Signed-off-by: Teo <teocns@gmail.com> * session(config) param * test Signed-off-by: Teo <teocns@gmail.com> * BatchSpanProcessor Signed-off-by: Teo <teocns@gmail.com> * x-alex Signed-off-by: Teo <teocns@gmail.com> * Update .cursor/rules Signed-off-by: Teo <teocns@gmail.com> * Improve agentops_config, introduce root tests Signed-off-by: Teo <teocns@gmail.com> * Consolidate initialization and kwargs passing for AgentOps client (#729) * Consolidate initialization and kwargs passing for AgentOps client (#721) - Add support for custom exporters and exporter endpoints in agentops.init() - Ensure kwargs are correctly passed downstream to Session and its components - Update SessionTracer to handle custom exporters and endpoints - Add tests for custom exporter configuration Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * Fix syntax errors in agentops/__init__.py Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * Fix syntax errors and address PR feedback Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * Fix syntax errors and address PR feedback for custom exporter support Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * Add validation for configure() function to prevent silently ignoring misspelled parameters Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * Fix syntax errors in core modules - Fix import error in client/__init__.py for SessionState - Fix property decorator error in session/__init__.py - Fix enum errors in session/state.py with custom StrEnum implementation Co-Authored-By: Constantin-Doru Teodorescu <teo@agentops.ai> * feat: add ClassPropertyDescriptor and classproperty function * Session.current Signed-off-by: Teo <teocns@gmail.com> * -test_cusotm_exporter.py Signed-off-by: Teo <teocns@gmail.com> * test: add unit tests for agentops.init function * save Signed-off-by: Teo <teocns@gmail.com> * raise NoApiKeyException if no api key Signed-off-by: Teo <teocns@gmail.com> * agentops.init() to call agentops._client.init() Signed-off-by: Teo <teocns@gmail.com> * +InvalidApiKeyException Signed-off-by: Teo <teocns@gmail.com> * config: only raise InvalidApiKey if not TESTING Signed-off-by: Teo <teocns@gmail.com> * upgrade tests/fixtures/client.py Signed-off-by: Teo <teocns@gmail.com> * tests/fixtures/config.py: +mock_env, etc | Improve clean Config Signed-off-by: Teo <teocns@gmail.com> * tests/fixtures/config.py: +marker Signed-off-by: Teo <teocns@gmail.com> * tests/fixtures/config.py | fix priority order issues Signed-off-by: Teo <teocns@gmail.com> * test_agentops_init Signed-off-by: Teo <teocns@gmail.com> --------- Signed-off-by: Teo <teocns@gmail.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Constantin-Doru Teodorescu <teo@agentops.ai> Co-authored-by: Teo <teocns@gmail.com> * Add CI python-tests from main Signed-off-by: Teo <teocns@gmail.com> * AgentOps Decorators Implementation (#747) * Added semconv for Semantic Conventions for AgentOps-specific span types * Implement decorators for agent, tool, and general span tracking * Ensure spans are created as children of the current active span * Refactor semantic conventions: Remove unused attributes and simplify semconv modules * Remove unused Status and AgentStatus imports from semconv module * test agentops.decorators (#748) * Added semconv for Semantic Conventions for AgentOps-specific span types * Implement decorators for agent, tool, and general span tracking * Ensure spans are created as children of the current active span * Added comprehensive decorators example and expanded decorator tests. * Refactor semantic conventions: Remove unused attributes and simplify semconv modules * Remove unused Status and AgentStatus imports from semconv module * Remove hardcoded API key from comprehensive decorators example * bye entelligence-ai-pr-reviews Signed-off-by: Teo <teocns@gmail.com> * Don't override endpoint URL on config init. * Get tests passing (#750) * Allow installing `test` and `dev` dependencies. * Tox config. Preserve AGENTOPS_API_KEY in tests. * Allow passing args to tox. * Suppress otel shutdown log messages in testing. * Make `test_no_api_key_raises_exception` pass. * Make `test_invalid_api_key` pass. * Revert "Allow installing `test` and `dev` dependencies." This reverts commit 154f6d850b252630f29864838a0fd4116758d9f7. * Add placholder API key (valid UUID) to unit test config. * Remove tox. * Revert "Suppress otel shutdown log messages in testing." This reverts commit 8e0a95076ec5a17edbd1e2b23ee465c13c2ca884. * feat: Session ending via `__del__` method and `LiveSpanProcessor` class to ensure span export during exits (#742) * remove cursor rules * add `inFlightSpanProcessor` to properly export spans * add use of `InFlightSpanProcessor` to `SessionTracer` class * add tests * Simplify Session class by removing setters/getters for status checking * flush span processor if available * use thread lock in registry * remove `force_export` method from processor * end the span in session * Integrate session lifecycle and span status tests into test_session.py * Remove span property usage in favor of direct _span attribute access * improve tests * fix context management in multi-threaded scenarios using thread-local storage * fix comments * add some more tests * fix imports * revert to using `hasattr` * revert old code * remove unused code * remove unused exception * remove comments * remove cursor rules * add `inFlightSpanProcessor` to properly export spans * add use of `InFlightSpanProcessor` to `SessionTracer` class * add tests * Simplify Session class by removing setters/getters for status checking * flush span processor if available * use thread lock in registry * remove `force_export` method from processor * end the span in session * Integrate session lifecycle and span status tests into test_session.py * Remove span property usage in favor of direct _span attribute access * improve tests * fix context management in multi-threaded scenarios using thread-local storage * fix comments * add some more tests * fix imports * revert to using `hasattr` * revert old code * remove unused code * remove unused exception * remove comments * remove `hasattr` in `telemetry.py` * modify to `LiveSpanProcessor` * Revert "modify to `LiveSpanProcessor`" This reverts commit 0b80d26befa4b38f8f713ec1424f954d32784414. * modify to `LiveSpanProcessor` * forward telemetry calls to mixin * return none if span not present * use try-except block for errors * remove `hasattr` in `session.py` * add global level module fixture * rename test file * Revert "remove cursor rules" This reverts commit 9515be960f7dbf452a0a62902a6cf9643b17fe4f. * reset .cursor/rules/testing.mdc Signed-off-by: Teo <teocns@gmail.com> * force_export -> force_flush Signed-off-by: Teo <teocns@gmail.com> * tests/unit/test_live_span_processor.py: fix isinstance @ threading.Lock Signed-off-by: Teo <teocns@gmail.com> --------- Signed-off-by: Teo <teocns@gmail.com> Co-authored-by: Teo <teocns@gmail.com> * fix minor test warning not passing Signed-off-by: Teo <teocns@gmail.com> * Redesign session registry mixin (#762) * SessionRegistryMixin Signed-off-by: Teo <teocns@gmail.com> * agentops.session.session + SessionRegistryMixin, delegate actions to super [start | end] Signed-off-by: Teo <teocns@gmail.com> A Signed-off-by: Teo <teocns@gmail.com> * test_session_registry Signed-off-by: Teo <teocns@gmail.com> --------- Signed-off-by: Teo <teocns@gmail.com> * Session: migrate telemetry lifecycle into mixin away from session impl * StateSessionMixin Signed-off-by: Teo <teocns@gmail.com> * SessionBase: remove abstractmethod from start/end (linter) Signed-off-by: Teo <teocns@gmail.com> * save Signed-off-by: Teo <teocns@gmail.com> * SessionStateProperty Signed-off-by: Teo <teocns@gmail.com> * SessionStatemixin Signed-off-by: Teo <teocns@gmail.com> * Explicit calls to the super start/end methods is one way to make this clearer. Minor fixes. Tests pass. * I think explicitly named methods is actually clearer. * Allow passing arbitrary states to Client; parsing happens upstream. * Mixin doesn't need to inherit from base class. * Restore abstract decorators. * Add docstrings Signed-off-by: Teo <teocns@gmail.com> * session/README.md Signed-off-by: Teo <teocns@gmail.com> * proposal Signed-off-by: Teo <teocns@gmail.com> * todos Signed-off-by: Teo <teocns@gmail.com> * SDK Signed-off-by: Teo <teocns@gmail.com> * +decorators, + spans Signed-off-by: Teo <teocns@gmail.com> * tests/unit/sdk Signed-off-by: Teo <teocns@gmail.com> * fix: span kind super call Signed-off-by: Teo <teocns@gmail.com> * Remove LLMSpan Signed-off-by: Teo <teocns@gmail.com> * Pass all tests Signed-off-by: Teo <teocns@gmail.com> * New Examples Signed-off-by: Teo <teocns@gmail.com> New Examples Signed-off-by: Teo <teocns@gmail.com> * delete irrelevant test file Signed-off-by: Teo <teocns@gmail.com> * Squash merge tracing-dev-instrumentor into tracing Signed-off-by: Teo <teocns@gmail.com> * refactoring tests Signed-off-by: Teo <teocns@gmail.com> * Squash merge tracing-use-ao-spanattrs into tracing Signed-off-by: Teo <teocns@gmail.com> * add pytest-inline Signed-off-by: Teo <teocns@gmail.com> * test_instrumentation: use semconv and better evaluation Signed-off-by: Teo <teocns@gmail.com> * Revert "add pytest-inline" - causes weird deps issue This reverts commit 6e76e25c588918d479a82f5d9736292855698c2b. * test_instrumentation_errors: use agentops.semconv Signed-off-by: Teo <teocns@gmail.com> * Remove legacy session, migrate towards new sdk Signed-off-by: Teo <teocns@gmail.com> sdk.context decl Signed-off-by: Teo <teocns@gmail.com> * config.auto_start_session = False Signed-off-by: Teo <teocns@gmail.com> * simplify config tests Signed-off-by: Teo <teocns@gmail.com> * remove init tests Signed-off-by: Teo <teocns@gmail.com> * Merge agentops/instrumentation/__init__.py from commit 191e057adba8e335976fb06b6a97f7a3148da26c * decorators: correctly make use of session span context Signed-off-by: Teo <teocns@gmail.com> * test_decorators: +tests for context propagation Signed-off-by: Teo <teocns@gmail.com> * delete test_integration Signed-off-by: Teo <teocns@gmail.com> * feat: add authenticated exporter support for tracing core * Make HttpClient store _project_id Signed-off-by: Teo <teocns@gmail.com> * agentops.semconv.resource Signed-off-by: Teo <teocns@gmail.com> * Client init() -> prefetch JWT -> TracingCore.init -> AuthenticatedOTLPExporter * draft Signed-off-by: Teo <teocns@gmail.com> * fix decorators context mgmt Signed-off-by: Teo <teocns@gmail.com> * examples Signed-off-by: Teo <teocns@gmail.com> * examples 2 Signed-off-by: Teo <teocns@gmail.com> * utils Signed-off-by: Teo <teocns@gmail.com> * ++ utils Signed-off-by: Teo <teocns@gmail.com> * + test span utils Signed-off-by: Teo <teocns@gmail.com> * Rewrite testing rules Signed-off-by: Teo <teocns@gmail.com> * + testing rule Signed-off-by: Teo <teocns@gmail.com> * refactor span tests Signed-off-by: Teo <teocns@gmail.com> * isolate instrumentation Signed-off-by: Teo <teocns@gmail.com> * reuse instrumentation fixture Signed-off-by: Teo <teocns@gmail.com> * cleanup span utils Signed-off-by: Teo <teocns@gmail.com> * Deprecate immediate span processor Signed-off-by: Teo <teocns@gmail.com> * agent: use semconv Signed-off-by: Teo <teocns@gmail.com> * test_spans: update semconv Signed-off-by: Teo <teocns@gmail.com> * cleanup test instrumentation Signed-off-by: Teo <teocns@gmail.com> * test decorators: move to pytest Signed-off-by: Teo <teocns@gmail.com> * migrate test_factory to pytest Signed-off-by: Teo <teocns@gmail.com> * test_core: migrate to pytest Signed-off-by: Teo <teocns@gmail.com> * test_spanned: migrate to pytest Signed-off-by: Teo <teocns@gmail.com> * test_spans: migrate to pytest Signed-off-by: Teo <teocns@gmail.com> * Fix "Overriding of current TracerProvider is not allowed" Signed-off-by: Teo <teocns@gmail.com> * update basic_usage with agentops.init() Signed-off-by: Teo <teocns@gmail.com> * TracingCore.initialize_from_config: accept **kwargs * Have AgentOps' Client() initialize TracingCore Signed-off-by: Teo <teocns@gmail.com> * Remove grpc client Signed-off-by: Teo <teocns@gmail.com> * Consolidate auth manager Signed-off-by: Teo <teocns@gmail.com> * uv.lock Signed-off-by: Teo <teocns@gmail.com> * cleanup Signed-off-by: Teo <teocns@gmail.com> * BatchSpanProcessor instead of LiveSpanProcessor Signed-off-by: Teo <teocns@gmail.com> * Change test.py with agentops.init() Signed-off-by: Teo <teocns@gmail.com> * Improve exporter authentication method Signed-off-by: Teo <teocns@gmail.com> * Configure logging in init Signed-off-by: Teo <teocns@gmail.com> * flowchart Signed-off-by: Teo <teocns@gmail.com> * fix markdown Signed-off-by: Teo <teocns@gmail.com> * grouped components better * semconv Signed-off-by: Teo <teocns@gmail.com> * Processor: use basic InFlight Signed-off-by: Teo <teocns@gmail.com> * Spanned: use semconv Signed-off-by: Teo <teocns@gmail.com> * processor: accept **kwargs Signed-off-by: Teo <teocns@gmail.com> * DEBUG logging in pytest Signed-off-by: Teo <teocns@gmail.com> * LiveSpanProcessor to use CoreAttribute Signed-off-by: Teo <teocns@gmail.com> * Merge spanned into traced Signed-off-by: Teo <teocns@gmail.com> * update imports Signed-off-by: Teo <teocns@gmail.com> * finalize readme and tests Signed-off-by: Teo <teocns@gmail.com> * merge test spanned -> traced Signed-off-by: Teo <teocns@gmail.com> * convert to pytest Signed-off-by: Teo <teocns@gmail.com> * Squash merge dev-ctx-attach: Improve decorators context management Signed-off-by: Teo <teocns@gmail.com> * test auth flow example Signed-off-by: Teo <teocns@gmail.com> * delete old examples Signed-off-by: Teo <teocns@gmail.com> * new examples Signed-off-by: Teo <teocns@gmail.com> * ADD FIXME warning Signed-off-by: Teo <teocns@gmail.com> * streamline project_id parsing in Client Signed-off-by: Teo <teocns@gmail.com> * Squash merge dev-no-reauth into dev Signed-off-by: Teo <teocns@gmail.com> * remove api key param from examples Signed-off-by: Teo <teocns@gmail.com> * converters: uuid <> int converters Signed-off-by: Teo <teocns@gmail.com> * trace_id: keep as int, add trace_uuid Signed-off-by: Teo <teocns@gmail.com> * spans: +logger.debug Signed-off-by: Teo <teocns@gmail.com> * remove import for livespanprocessor Signed-off-by: Teo <teocns@gmail.com> * remove test spans/traced Signed-off-by: Teo <teocns@gmail.com> * change default exporter endpoint Signed-off-by: Teo <teocns@gmail.com> * add load dotenv Signed-off-by: Teo <teocns@gmail.com> * Agents SDK (#800) * Agents SDK * Update OpenTelemetry instrumentation to use AgentOps semconv * Added Agents SDK Examples * update example adding openai trace Signed-off-by: Teo <teocns@gmail.com> * opentelemetry: setup metrics Signed-off-by: Teo <teocns@gmail.com> * feat(span_kinds): add SESSION span kind to SpanKind class * ye (#803) * delete alpha spanning Signed-off-by: Teo <teocns@gmail.com> * utility base Signed-off-by: Teo <teocns@gmail.com> Base util Signed-off-by: Teo <teocns@gmail.com> * add decorators Signed-off-by: Teo <teocns@gmail.com> * client.__instance Signed-off-by: Teo <teocns@gmail.com> * Chop down decorators to session, agents, operation Signed-off-by: Teo <teocns@gmail.com> * Remove old examples Signed-off-by: Teo <teocns@gmail.com> * examples Signed-off-by: Teo <teocns@gmail.com> * rename to record Signed-off-by: Teo <teocns@gmail.com> * simplify decos Signed-off-by: Teo <teocns@gmail.com> * basic Signed-off-by: Teo <teocns@gmail.com> * fix imports Signed-off-by: Teo <teocns@gmail.com> * basic test Signed-off-by: Teo <teocns@gmail.com> * draft Signed-off-by: Teo <teocns@gmail.com> * uv lock Signed-off-by: Teo <teocns@gmail.com> * set current span context to parent Signed-off-by: Teo <teocns@gmail.com> * Rename AgentOpsSpanKind -> SpanKind Signed-off-by: Teo <teocns@gmail.com> --------- Signed-off-by: Teo <teocns@gmail.com> * fix imports Signed-off-by: Teo <teocns@gmail.com> * spankinds Signed-off-by: Teo <teocns@gmail.com> * Noops for compatibility with older implementations. (#801) * Cleanup unused functions. (#804) Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Intercept OTEL log messages and redirect to DEBUG. (#805) Logging interception for otel messages. Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * CrewAI example. (#806) * CrewAI example. * Remove crew dep installation from crew example. --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Rename `compat`. Delete `end_all_sessions`. Default log level. (#808) * Set default log level. Lower instrumenation log levels. Rename compat to _compat. Remove crew dep installation from crew example. * Remove unimplemented end_all_sessions. * Add Streaming support for AgentsInstrumentor and update SpanKind definitions (#810) * Add AgentsInstrumentor and update SpanKind definitions * Added support for Agents SDK streaming * Remove monkey patching of shutdown method from AgentsInstrumentor * Remove debug print statement from AgentsInstrumentor and clean up initialization code * Refactor logging in AgentsInstrumentor to use warning level for error messages and remove debug statements. This change enhances log clarity by reducing verbosity and ensuring that important warnings are highlighted. * Added Examples for OpenAI (#811) * Added Examples for OpenAI * Update OpenAI examples to reference 'trace url' instead of 'session url' for tracking runs in AgentOps. --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Added Examples for CrewAI (#812) * Added Examples for CrewAI * Update .gitignore to include .db files and remove obsolete SQLite and binary files from examples/crewai_examples/db directory. --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Remove instrumentor support for Ollama and Haystack (#814) * remove haystack support * Delete groq_examples directory * removed ollama support * commands (#813) * commands mod Signed-off-by: Teo <teocns@gmail.com> * start_span, end_span commands Signed-off-by: Teo <teocns@gmail.com> * Move compat to legacy Signed-off-by: Teo <teocns@gmail.com> * legacy: start/end session Signed-off-by: Teo <teocns@gmail.com> * commands: move session-related to legacy Signed-off-by: Teo <teocns@gmail.com> * Move facade to context Signed-off-by: Teo <teocns@gmail.com> * Client: auto_start_session configured with legacy Signed-off-by: Teo <teocns@gmail.com> * commands: start_span to implement auto init Signed-off-by: Teo <teocns@gmail.com> * core: refactor, remove .start_session() methods, improve exceptions Signed-off-by: Teo <teocns@gmail.com> * adapt examples Signed-off-by: Teo <teocns@gmail.com> --------- Signed-off-by: Teo <teocns@gmail.com> * refactor: rename uuid_to_hex_int to uuid_to_int16 * add InternalSpanProcessor Signed-off-by: Teo <teocns@gmail.com> * Squash merge dev-internal-processor into dev Signed-off-by: Teo <teocns@gmail.com> * Added Anthropic examples (#817) * Added Examples for Anthropic * Refactor Anthropic example notebook by removing verbose debug output and updating execution count to null for cleaner presentation. --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * fix: checks for `dev` before release (#818) * remove unnecessary instrumentations * move `test_auth_flow` to `tests/integraiton` * remove cursor rules * remove incomplete instrumentations from the sdk * ignore .cursorrules * remove `autogen` instrumentation * ruff format code * ruff format examples * Added Agents SDK Examples (#819) * Added Agents Example * remove init from agents examples --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * clean the scripts to fix ruff formatting * ruff format --------- Co-authored-by: Dwij <96073160+Dwij1704@users.noreply.github.com> * add missing anthropic example * remove test file * update version * update `vcrpy` dep version * ruff ignore E731 * update `uv.lock` * fix video rendering --------- Signed-off-by: Teo <teocns@gmail.com> Co-authored-by: Teo <teocns@gmail.com> Co-authored-by: Dwij Patel <dwijpatel1704@gmail.com> Co-authored-by: teocns <59549574+teocns@users.noreply.github.com> Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Constantin-Doru Teodorescu <teo@agentops.ai> Co-authored-by: Dwij <96073160+Dwij1704@users.noreply.github.com> Co-authored-by: Travis Dent <tcdent@gmail.com>
0.3.26
What's Changed
- [Fix] Linting in
main
by @the-praxs in #660 - [Feat] Improved LangChain Callback Handler by @the-praxs in #659
- Set file logging to false by default by @bhancockio in #661
- Update pyproject.toml by @areibman in #662
New Contributors
- @bhancockio made their first contribution in #661
Full Changelog: 0.3.25...0.3.26
0.3.25
0.3.24
What's Changed
- Test suite v0.4 by @teocns in #637
- Rename InstrumentedProvider to BaseProvider by @teocns in #645
- Refactored
ErrorEvent
to inherit fromEvent
class by @teocns in #646 - Remove
tach
by @teocns in #648 - Remove old tox.ini by @teocns in #649
- Move
agentops.enums
to their respective module by @teocns in #647 - feat: Add Gemini API integration by @devin-ai-integration in #650
- Bump
agentops
to0.3.24
by @the-praxs in #651
Full Changelog: 0.3.23...0.3.24
0.3.23
0.3.22
What's Changed
- Update multion notebooks references by @emmanuel-ferdman in #567
- lint: pyproject.toml by @teocns in #569
- [FEAT] Integrate xAI by @the-praxs in #563
- fix: standardize icon colors for better visibility by @devin-ai-integration in #574
- Correctly define packages and dependencies by @teocns in #571
- lcIcon by @areibman in #580
- docs: add Camel AI integration documentation by @devin-ai-integration in #573
- [CI] Add a new action to check for stale PRs by @the-praxs in #582
- CamelAI Readme and Example Journal implemented! by @TKTSWalker in #538
- [Fix] Remove author name from stale check CI by @the-praxs in #586
- [Fix] Updated notebooks that publish to examples docs pages by @the-praxs in #585
- GitHub Action - Update examples in docs from notebooks by @github-actions in #587
- fix minor typo (extra paren in code snippet) on OpenAi docs page by @thaddavis in #588
- fix: properly structure completions in Ollama provider by @devin-ai-integration in #589
- docs: add session data export endpoint documentation by @devin-ai-integration in #594
- [FEAT] TaskWeaver Integration by @the-praxs in #541
- Add OpenAI Integration Test (Sync/Async + Streaming) by @devin-ai-integration in #598
- Add docs videos for OpenAI and Anthropic by @thaddavis in #597
- Fix test_host_env to handle different psutil versions by @teocns in #601
- doc: swarmzero integration by @ToJen in #604
- Add integration tests for Anthropic/Cohere/Groq/Litellm/Mistral/AI21 by @devin-ai-integration in #605
- Revert "Add integration tests for Anthropic/Cohere/Groq/Litellm/Mistr… by @teocns in #614
- Replace usage of functools.cached_property with DIY class for backwar… by @teocns in #613
- Drop support for py38 & uv chore upgrade by @teocns in #606
- [Fix] Move
LlamaStackClient
tollms/providers
by @the-praxs in #617 - [Fix] Linting
session.py
by @the-praxs in #618 - adding Docs Series YouTube video for CrewAI to the relevant docs integration page by @thaddavis in #619
- updating the CrewAI docs series video link to reupload with better audio by @thaddavis in #623
- [Feat] Integrate HugginFace
smolagents
into docs by @the-praxs in #622 - [Feat] OpenAI Assistants (Beta) Integration by @the-praxs in #609
- GitHub Action - Update examples in docs from notebooks by @github-actions in #624
- Python 3.13 Compatibility & CI Improvements by @teocns in #626
- Update AG2 Reference by @yiranwu0 in #602
- [Fix] Removed unnecessarily changing tuple output to list output by @zli11010 in #608
- style fix by @teocns in #630
- adding video to llama stack page by @thaddavis in #628
- [Fix] autogen action events logging by @the-praxs in #635
- Fix OpenTelemetry dependency conflicts with autogen-core by @teocns in #638
- upgrade version by @areibman in #639
New Contributors
- @emmanuel-ferdman made their first contribution in #567
- @devin-ai-integration made their first contribution in #574
- @ToJen made their first contribution in #604
- @yiranwu0 made their first contribution in #602
- @zli11010 made their first contribution in #608
Full Changelog: 0.3.21...0.3.22