Skip to content

Add comprehensive MkDocs documentation #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

Spartee
Copy link
Collaborator

@Spartee Spartee commented Apr 2, 2025

adds a complete documentation system for the agents-arcade project, making it easier for users to understand and use the library.

Key Changes

Documentation Structure

  • Set up MkDocs with Material theme for beautiful, searchable documentation
  • Created structured documentation with proper navigation:
    • Getting Started guides (installation, quickstart, authentication)
    • API Reference for all modules
    • Usage Guides for toolkits and error handling
    • Example walkthroughs

Code Improvements

  • Enhanced get_arcade_client() to properly handle API keys and params
  • Improved get_arcade_tools() with better client handling
  • Added proper docstrings and type annotations

CI/CD

  • Added GitHub Actions workflow to automatically build and deploy docs
  • Added PR check to verify documentation builds without warnings

Developer Tools

  • Added build_docs.sh script for easy local documentation building
  • Updated README with documentation information

Testing

The MkDocs site builds successfully locally and the documentation covers all key aspects of the library.

I think we should do this for langchain and crewai

@Spartee Spartee added documentation Improvements or additions to documentation enhancement New feature or request labels Apr 2, 2025
@Spartee Spartee requested review from sdserranog, a team and Copilot April 2, 2025 07:20
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive MkDocs documentation and guides for the agents-arcade project along with updated examples, API references, CI workflows, and minor code improvements. Key changes include:

  • New documentation for toolkits, error handling, advanced usage, authentication, and contributing.
  • Updated API and README documentation with examples and integration instructions.
  • Code enhancements in agents_arcade/tools.py and agents_arcade/_utils.py to support optional client initialization.

Reviewed Changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
docs/guides/.md, docs/getting-started/ New guides on toolkits, error handling, authentication, and quickstart guides.
docs/examples/*.md, docs/contributing.md Added examples and contribution guidelines to aid users and developers.
docs/api/*.md API reference documentation for utils, tools, and errors.
README.md (both docs and root) Updated usage instructions and project description for better clarity.
agents_arcade/tools.py, _utils.py Minor code improvements, including handling optional client initialization.
.github/workflows/*.yml Added workflows to build, check, and deploy documentation.
Files not reviewed (1)
  • build_docs.sh: Language not supported
Comments suppressed due to low confidence (1)

README.md:25

  • There's a spelling error: 'reqwuire' should be corrected to 'require'.
`agents-arcade` provides an integration between [Arcade](https://docs.arcade.dev) and the [OpenAI Agents Library](https://github.com/openai/openai-python). This allows you to enhance your AI agents with Arcade's extensive toolkit ecosystem, including tools that reqwuire authorization like Google Mail, Linkedin, X, and more.

```bash
pip install agents-arcade
```

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was following the instructions, and I hit this error:

arcadepy.ArcadeError: The api_key client option must be set either by passing api_key to the client or by setting the ARCADE_API_KEY environment variable

It would be nice to add the prerequisites section here, too.

1. Installed `agents-arcade` (see [Installation](installation.md))
2. An Arcade API key (sign up at [arcade.dev](https://arcade.dev) if you don't have one)
3. Set the `ARCADE_API_KEY` environment variable or have your API key ready to use

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also mention that you need to set the OPENAI_API_KEY environment variable

)
print("Final output:\n\n", result.final_output)
except AuthorizationError as e:
print("Please Login to Github:", e)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably nice to add this like in the other pages:

if __name__ == "__main__":
    import asyncio

    asyncio.run(main())

tools = await get_arcade_tools(client, ["google"])

# Use multiple toolkits
tools = await get_arcade_tools(client, ["github", "google", "linkedin"])

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is currently not working:

tools = await get_arcade_tools(
      client,
      toolkits=["google", "github"],
)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get an empty array of tools


```python
from arcadepy import AsyncArcade
from arcadepy.auth import wait_for_authorization_completion

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I'm doing something wrong, but:
Import "arcadepy.auth" could not be resolved

| `linkedin` | Interact with LinkedIn (posts, profile, messaging) | Yes |
| `x` | Interact with X/Twitter (tweets, timeline, etc.) | Yes |
| `web` | Web search, browser automation | Partial |
| `news` | Access news articles and headlines | No |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

News, weather, maps, data sources return no tools

tools = await get_arcade_tools(client, ["github"])

# Use multiple toolkits
tools = await get_arcade_tools(client, ["github", "google", "news"])

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, this is not working

For a better user experience, you might want to guide the user through the authorization process and retry the operation once authorized:

```python
from arcadepy.auth import wait_for_authorization_completion

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing imports

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants