docs: Comprehensive documentation for PR #1763 features#491
Conversation
- Add sync/async SQLite mode documentation with decision tree - Document new AUTOGEN_VERSION environment variable - Add framework adapter resolve() and setup() methods - Correct AgentOps auto-init behavior documentation - Create integration registry documentation - Create observability hooks documentation - Update backend aliases and navigation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Warning Review limit reached
More reviews will be available in 51 minutes and 1 second. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (9)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the documentation to reflect several new features and architectural changes, including the Integration Registry, Observability Hooks, sync/async SQLite persistence modes, and AutoGen version selection. The reviewer identified multiple critical discrepancies where the updated documentation does not match the actual codebase implementation. Specifically, the documentation describes orchestrator pipeline integrations (such as calling resolve, setup, and init_observability), centralized AgentOps initialization, and a refactored integrations dispatch that are not yet implemented in the code. Additionally, a warning regarding the removal of sync wrappers in AsyncSQLiteConversationStore is inaccurate as those wrappers remain present in the codebase.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| <Warning> | ||
| Before PR #1763, `AsyncSQLiteConversationStore` exposed sync wrappers like `get_session(...)` you could call from a regular function. Those wrappers were removed. If you were calling the async SQLite store from sync code, switch to `mode="sync"` (the new `sync_sqlite` backend) — it's purpose-built for that. | ||
| </Warning> |
There was a problem hiding this comment.
The warning states that the sync wrappers (like get_session(...)) were removed from AsyncSQLiteConversationStore. However, looking at praisonai/persistence/conversation/async_sqlite.py, these sync wrappers are still present and fully functional. This statement is inaccurate and contradicts the information in docs/persistence/overview.mdx which states that these sync wrappers are safe to call. Please update the warning to reflect that the sync wrappers are still available, or clarify the recommendation.
|
|
||
| ### Orchestrator Pipeline (Post-#1763) | ||
|
|
||
| The orchestrator (`AgentsGenerator.generate_crew_and_kickoff`) now follows this sequence: |
There was a problem hiding this comment.
The sequence diagram and description state that AgentsGenerator.generate_crew_and_kickoff calls resolve(), init_observability(), and setup(). However, looking at the implementation of AgentsGenerator.generate_crew_and_kickoff in praisonai/agents_generator.py, these methods are not called. Instead, it directly initializes AgentOps inline and calls run() on the adapter. Please verify if the implementation matches this documentation or if the documentation needs to be updated to reflect the actual orchestrator pipeline.
|
|
||
| `init_observability(framework_tag, *, tags=None)` centralizes observability initialization: | ||
|
|
||
| - **Auto-call site:** orchestrator calls `init_observability(adapter.name)` immediately after `assert_framework_available(...)` and before `adapter.setup(...)` |
There was a problem hiding this comment.
This statement says that the orchestrator calls init_observability(adapter.name) immediately after assert_framework_available(...) and before adapter.setup(...). However, in praisonai/agents_generator.py, AgentsGenerator.generate_crew_and_kickoff does not call init_observability or setup. Instead, it uses inline AgentOps initialization. Please ensure the orchestrator implementation is aligned with this documentation.
| Mod-->>User: MyIntegration | ||
| ``` | ||
|
|
||
| Before PR #1763, `praisonai/integrations/__init__.py` had a 70-line `if/elif` ladder in `__getattr__` that mapped attribute names to lazy imports. After #1763, the ladder is replaced by a 4-line dispatch backed by `INTEGRATIONS_REGISTRY`. The registry: |
There was a problem hiding this comment.
The documentation states that the if/elif ladder in praisonai/integrations/__init__.py has been replaced by a 4-line dispatch backed by INTEGRATIONS_REGISTRY. However, in the codebase, praisonai/integrations/__init__.py still contains the 70-line if/elif ladder in __getattr__. Please verify if the code changes from PR #1763 are fully integrated or if the documentation needs to be adjusted.
| - After every agent execution, the wrapper calls `agentops.end_session("Success")`. Failures are logged at `WARNING` level and never propagate. | ||
| - Detection happens once at module import via `importlib.util.find_spec("agentops")`. Installing `agentops` after the process started will not be picked up — restart the process. | ||
| - You still need to call `agentops.init(api_key=...)` yourself before starting an agent — PraisonAI does not auto-init. | ||
| - PraisonAI auto-inits AgentOps for you if `AGENTOPS_API_KEY` is set in the environment. The init is centralized in `praisonai.observability.hooks.init_observability(framework_tag, tags=...)` and is called automatically by the orchestrator before any adapter runs. You can call it yourself from a custom framework adapter's `setup()` hook if you need control over the tags. |
There was a problem hiding this comment.
This statement says that the initialization is centralized in praisonai.observability.hooks.init_observability(...) and called automatically by the orchestrator. However, in praisonai/agents_generator.py, the orchestrator still initializes AgentOps directly inline using agentops.init(...) and does not call init_observability. Please verify if the orchestrator changes are fully integrated or if this documentation needs to be updated.
Summary
This PR implements comprehensive documentation updates for the architectural changes introduced in PraisonAI PR #1763, which included:
• Sync/async SQLite split with new
mode="sync"|"async"|"auto"parameter• Unified integration registry replacing manual
__getattr__ladder• Framework adapter resolve/setup methods for concrete variant selection and pre-run hooks
• AutoGen version environment variable (
AUTOGEN_VERSION) for automatic version resolution• Centralized observability hooks replacing inline AgentOps initialization
Changes Made
Updated Existing Pages (6)
sqlite_sync→sync_sqlitealias and per-call locking infosync_sqliteto primary backends and alias listresolve()andsetup()optional methods plus orchestrator pipelineAUTOGEN_VERSIONenvironment variable with auto-resolution tableNew Pages Created (2)
Navigation Updates
docs.jsonunder Features/Integrations groupTechnical Details
All changes strictly follow AGENTS.md guidelines:
• ✅ Pages placed in
docs/features/(neverdocs/concepts/)• ✅ Mermaid diagrams use standard color palette (
#8B0000,#189AB4,#10B981,#F59E0B,#6366F1)• ✅ Copy-paste runnable code examples with correct imports
• ✅ Agent-centric Quick Start examples leading each page
• ✅ Mintlify components (Steps, AccordionGroup, CardGroup, Warning, Note, Info)
• ✅ Concise writing with progressive disclosure
• ✅ Valid JSON in
docs.jsonCloses
Fixes #483
🤖 Generated with Claude Code