diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index e75bf62c..e0336eba 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -31,7 +31,7 @@ jobs: pip install tox - name: Run tests with tox - run: tox + run: tox -m quick # quick runs all 3.12 tests and then combines coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 diff --git a/docs/llms.txt b/docs/llms.txt index dc5c556a..a2deb0d1 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -68,64 +68,6 @@ Our project is called **AgentStack** because it's the easiest way to quickly sca -## quickstart.mdx - ---- -title: 'Quickstart' -description: 'Start building AI agents in under 5 minutes' -icon: 'circle-play' ---- - -## Initialize a new project - -AgentStack's greatest ability is that of quickly scaffolding agent projects - -To start, ensure you have AgentStack [installed](/installation) and run: -```bash -agentstack init -``` - - -**With the Wizard** - -Optionally, if you're a little overwhelmed with the code generated, you can use our Wizard to help guide you through some core setup! -```bash -agentstack init --wizard -``` - -**With a Template** - -By default, your project will contain no agents or tasks. - -If you find it easier to start with a complete project and edit it to fit your use-case, you can use [Templates](/templates/templates) - -```bash -agentstack init --template= -``` - -## Building your project - -AgentStack 0.2 is built on top of [CrewAI](https://docs.crewai.com/introduction). The majority of your development experience will be with Crew. - -When working with your Crew project, AgentStack makes generating new agents and tasks easy. - -### Agents - -To generate a new agent, run `agentstack generate agent ` - [More Info](/essentials/generating-agents) - -### Tasks - -To generate a new task, run `agentstack generate task ` - [More Info](/essentials/generating-tasks) - - -## Quickstart Tutorial - - - Build a simple web scraper agent - ![thumbnail](https://cdn.loom.com/sessions/thumbnails/68d796b13cd94647bd1d7fae12b2358e-5d62273c24a53191-full-play.gif) - - - ## installation.mdx --- @@ -182,163 +124,60 @@ Run `agentstack --version` to verify that the CLI is installed and accessible. -## snippets/snippet-intro.mdx - -One of the core principles of software development is DRY (Don't Repeat -Yourself). This is a principle that apply to documentation as -well. If you find yourself repeating the same content in multiple places, you -should consider creating a custom snippet to keep your content in sync. - - -## tools/tools.mdx +## quickstart.mdx --- -title: 'Tools' -description: 'Giving your agents tools should be easy' +title: 'Quickstart' +description: 'Start building AI agents in under 5 minutes' +icon: 'circle-play' --- -## Installation +## Initialize a new project -Once you find the right tool for your use-case, install it with simply -```bash -agentstack tools add -``` +AgentStack's greatest ability is that of quickly scaffolding agent projects -You can also specify a tool, and one or more agents to install it to: +To start, ensure you have AgentStack [installed](/installation) and run: ```bash -agentstack tools add --agents=, +agentstack init ``` - - Add your own tool to the AgentStack repo [here](/contributing/adding-tools)! - - -## tools/community.mdx - ---- -title: 'Community Tools' -description: 'AgentStack tools from community contributors' ---- - -## Web Retrieval -- [AgentQL](/tools/tool/agentql) - -## Browsing - -[//]: # (- [Browserbase](/tools/tool/browserbase)) -- [Firecrawl](/tools/tool/firecrawl) - -## Search -- [Perplexity](/tools/tool/perplexity) - -## Memory / State - -- [Mem0](/tools/tool/mem0) - -## Code Execution - -- [Open Interpreter](/tools/tool/open-interpreter) - -## Unified API - -- [Composio](/tools/tool/composio) - -## Network Protocols -- [Agent Connect](/tools/tool/agent-connect) - -## Application Specific -- [Stripe](/tools/tool/stripe) - - - - Default tools in AgentStack - - - -## tools/package-structure.mdx - - -## Tool Configuration -Each tool gets a directory inside `agentstack/_tools/` where the tool's -source code and configuration will be stored. - -The directory should contain the following files: - -`config.json` -------------- -This contains the configuration for the tool for use by AgentStack, including -metadata, dependencies, configuration & functions exposed by the tool. - -`__init__.py` ---------- -Python package which contains the framework-agnostic tool implementation. Tools -are simple packages which exponse functions; when a tool is loaded into a user's -project, it will be wrapped in the framework-specific tool format by AgentStack. - -`config.json` Format --------------------- - -### `name` (string) [required] -The name of the tool in snake_case. This is used to identify the tool in the system. - -### `url` (string) [optional] -The URL of the tool's repository. This is provided to the user to allow them to -learn more about the tool. - -### `category` (string) [required] -The category of the tool. This is used to group tools together in the CLI. - -### `cta` (string) [optional] -String to print in the terminal when the tool is installed that provides a call to action. +**With the Wizard** -### `env` (list[dict(str, Any)]) [optional] -Definitions for environment variables that will be appended to the local `.env` file. -This is a list of key-value pairs ie. `[{"ENV_VAR": "value"}, ...]`. -In cases where the user is expected to provide their own information, the value is -set to `null` which adds it to the project's `.env` file as a comment. +Optionally, if you're a little overwhelmed with the code generated, you can use our Wizard to help guide you through some core setup! +```bash +agentstack init --wizard +``` -### `dependencies` (list[str]) [optional] -List of dependencies that will be installed in the user's project. It is -encouraged that versions are specified, which use the `package>=version` format. +**With a Template** -### `tools` (list[str]) [required] -List of public functions that are accessible in the tool implementation. +By default, your project will contain no agents or tasks. +If you find it easier to start with a complete project and edit it to fit your use-case, you can use [Templates](/templates/templates) +```bash +agentstack init --template= +``` -## tools/core.mdx +## Building your project ---- -title: 'Core Tools' -description: 'AgentStack tools that are not third-party integrations' ---- +AgentStack 0.3 and beyond is framework-agnostic! Choose any supported framework and start building. We help you scaffold your project quickly, but building complex routing and workflows is still done at the framework level. Be sure to understand how to build with your framework and turn to their documentation for guidance. -## File System +### Agents -- [Directory Search](/tools/tool/dir_search) -- [File Read](/tools/tool/file_read) -- [FTP](/tools/tool/ftp) +To generate a new agent, run `agentstack generate agent ` - [More Info](/essentials/generating-agents) -## Code Execution +### Tasks -- [Code Interpreter](/tools/tool/code-interpreter) +To generate a new task, run `agentstack generate task ` - [More Info](/essentials/generating-tasks) -## Data Input -- [Vision](/tools/tool/vision) +## Quickstart Tutorial - - Third party tools from the Agent Community - + + Build a simple web scraper agent + ![thumbnail](https://cdn.loom.com/sessions/thumbnails/68d796b13cd94647bd1d7fae12b2358e-5d62273c24a53191-full-play.gif) + ## contributing/adding-tools.mdx @@ -384,6 +223,59 @@ Adding tools is easy once you understand the project structure. A few things nee - `post_install` (str) - A script to be run after install of your tool - `post_remove` (str) - A script to be run after removal of your tool +## contributing/how-to-contribute.mdx + +--- +title: 'How To Contribute' +description: 'Contribute your own Agent tool to the ecosystem' +--- + +First of all, __thank you__ for your interest in contributing to AgentStack! Even the smallest contributions help a _ton_. + +Our vision is to build the de facto CLI for quickly spinning up an AI Agent project. We want to be the [create-react-app](https://create-react-app.dev/) of agents. Our inspiration also includes the oh-so-convenient [Angular CLI](https://v17.angular.io/cli). + +## How to Help + +Grab an issue from the [issues tab](https://github.com/AgentOps-AI/AgentStack/issues)! Plenty are labelled "Good First Issue". Fork the repo and create a PR when ready! + +The best place to engage in conversation about your contribution is in the Issue chat or on our [Discord](https://discord.gg/JdWkh9tgTQ). + +## Setup + +1. `git clone https://github.com/AgentOps-AI/AgentStack.git` + `cd AgentStack` +2. `uv pip install -e ".[dev,test]` + - This will install the CLI locally and in editable mode so you can use `agentstack ` to test your latest changes + - Note that after you initialize a project, it will install it's own version of `agentstack` in the project's + virtual environment. To use your local version, run `uv pip install -e "../AgentStack/.[]"` to get + your development version inside of the project, too. + +## Project Structure + +A detailed overview of the project structure is available at [Project Structure](https://docs.agentstack.sh/contributing/project-structure). + + +## Before Making a Pull Request + +Make sure tests pass, type checking is correct, and ensure your code is formatted correctly. + +1. `tox -m quick` + - This will run tests for Python version 3.12 only. You can run tests on all supported versions with `tox`. +2. `mypy agentstack` + - Please resolve all type checking errors before marking your PR as ready for review. +3. `ruff` + - We use `ruff` to ensure consistency in our codebase. + +## Tests + +We're actively working toward increasing our test coverage. Make sure to review the `codecov` output of your +tests to ensure your contribution is well tested. We use `tox` to run our tests, which sets up individual +environments for each framework and Python version we support. Tests are run when a PR is pushed to, and +contributions without passing tests will not be merged. + +You can test a specific Python version and framework by running: `tox -e py312-`, but keep in mind +that the coverage report will be incomplete. + ## contributing/project-structure.mdx --- @@ -444,6 +336,12 @@ the user's project, while only ever importing the single keyword. ## `agentstack.conf.PATH` `` This is the path to the current project directory. +## `@agentstack.agent` +`` This is a decorator that marks a method as belonging to an Agent. + +## `@agentstack.task` +`` This is a decorator that marks a method as belonging to a Task. + ## `agentstack.tools[]` `` This is a tool that is available to agents in the project. Tools are implementations from useful third party libraries that are provided to Agents @@ -456,14 +354,36 @@ use including docstrings and type hints for argument and return types. `` This is the name of the current framework ie. `"crewai"`. ## `agentstack.get_inputs()` -`` This function returns the inputs for a project. These are the +`` Returns the inputs for a project. These are the variables that can be used to configure tasks in the project and are stored in the `inputs.yaml` file inside the project directory. ## `agentstack.get_tags()` -`` This function returns the tags for a project. These are strings +`` Returns the tags for a project. These are strings that help identify the workflow in an `AgentOps` observability context. +## `agentstack.get_agent(name: str)` +`` Returns the configuration for an agent in the +project. Content of this object originates from the project's `agents.yaml` file. + +## `agentstack.get_all_agents()` +`` Returns a list of all the agents in the +project. + +## `agentstack.get_all_agent_names()` +`` Returns a list of all the agent names in the project. + +## `agentstack.get_task(name: str)` +`` Returns the configuration for a task in the project. Content of this object originates from the project's `tasks.yaml` file. + +## `agentstack.get_all_tasks()` +`` Returns a list of all the tasks in the +project. + +## `agentstack.get_all_task_names()` +`` Returns a list of all the task names in the project. + + # Core These namespaces occupy the root of `agentstack` and are shared across all project & frameworks. Methods from these products are generally candidates for @@ -474,15 +394,45 @@ availability in the public API for use within a project. Agents are the actual personalities that accomplish work. We provide tools for interacting with the `agents.yaml` configuration file in this package. -### `AgentConfig.__init__(name: str)` -`` Initialize an `AgentConfig` to read and modify `agents.yaml` in -the current project. +### `AgentConfig` +`` This class represents an agent in the project. It is used to +read and modify the `agents.yaml` file. + +### Properties + - `name` `` The name of the agent. + - `role` `` The role prompt for the agent. + - `goal` `` The goal prompt for the agent. + - `backstory` `` The backstory prompt for the agent. + - `prompt` `` The full prompt for the agent (formatted role + goal + backstory). + - `llm` `` The LLM to use for the agent (ie. `"openai/gpt-4o"`). + - `provider` `` The provider to use for the agent (ie. `"openai"`). + - `model` `` The model to use for the agent (ie. `"gpt-4o"`). + +### Read/Write +Instantiate `AgentConfig` with the name of the agent to read the relevant part +from the user project's `agents.yaml` file. + +```python +agent_config = AgentConfig("agent_name") +agent_config.role +``` + +Use the `AgentConfig` as a context manager to modify and write the relevant part +of the user project's `agents.yaml` file. + +```python +with AgentConfig("agent_name") as agent_config: + agent_config.role = "You are a friendly assistant." +``` + +### `agents.get_agent(name: str)` +`` Shortcut to return an `AgentConfig` object for a given agent name. ### `agents.get_all_agent_names()` -`` This function returns a list of all the agent names in the project. +`` Returns a list of all the agent names in the project. ### `agents.get_all_agents()` -`` This function returns a list of all the agents in the project. +`` Returns a list of all the agents in the project. ## `tasks` @@ -490,15 +440,43 @@ Tasks are the individual units of work that an Agent can perform. `agents` will use the `tools` they have available to accomplish `tasks`. We provide tools for interacting with the `tasks.yaml` configuration file in this package. -### `TaskConfig.__init__(name: str)` +### `TaskConfig` +`` This class represents a task in the project. It is used to +read and modify the `tasks.yaml` file. + +#### Properties + - `name` `` The name of the task. + - `description` `` The description prompt for the task. + - `expected_output` `` The expected output prompt of the task. + - `prompt` `` The full prompt for the task (formatted description + expected output). + - `agent` `` The agent name to use for the task. + +#### Read/Write +Instantiate `TaskConfig` with the name of the task to read the relevant part +from the user project's `tasks.yaml` file. + +```python +task_config = TaskConfig("task_name") +task_config.description +``` + +Use the `TaskConfig` as a context manager to modify and write the relevant part +of the user project's `tasks.yaml` file. + +```python +with TaskConfig("task_name") as task_config: + task_config.description = "How many R's are in strawberry." +``` + +### `tasks.get_task(name: str)` `` Initialize a `TaskConfig` to read and modify `tasks.yaml` in the current project. ### `tasks.get_all_task_names()` -`` This function returns a list of all the task names in the project. +`` Returns a list of all the task names in the project. ### `tasks.get_all_tasks()` -`` This function returns a list of all the tasks in the project. +`` Returns a list of all the tasks in the project. ## `inputs` @@ -540,25 +518,26 @@ it's content to the current version. with the templates used by `generation`. Move existing templates to be part of the generation package. +### `TemplateConfig.from_user_input(identifier: str)` +`` Returns a `TemplateConfig` object for either a URL, file path, +or builtin template name. + ### `TemplateConfig.from_template_name(name: str)` -`` This function returns a `TemplateConfig` object for a given -template name. +`` Returns a `TemplateConfig` object for a given template name. ### `TemplateConfig.from_file(path: Path)` -`` This function returns a `TemplateConfig` object for a given -template file path. +`` Returns a `TemplateConfig` object for a given template file path. ### `TemplateConfig.from_url(url: str)` -`` This function returns a `TemplateConfig` object after loading -data from a URL. +`` Returns a `TemplateConfig` object after loading data from a URL. ### `TemplateConfig.from_json(data: dict)` -`` This function returns a `TemplateConfig` object from a parsed -JSON object. +`` Returns a `TemplateConfig` object from a parsed JSON object. ### `TemplateConfig.write_to_file(filename: Path)` `` Instance method to serialize and write the `TemplateConfig` data to a file. + ### `templates.get_all_template_paths()` `` This function returns a list of all the template paths in the project. @@ -570,20 +549,70 @@ JSON object. project as `TemplateConfig` objects. +## `graph` +We implement basic abstractions for graphing the relationships between `agents` and `tasks` in a project. + + ## `conf` Configuration data for the AgentStack application. This includes the path to the current project directory and the name of the current framework. -### `agentstack.json` +### `DEBUG` +`` This is a flag that indicates whether the application is in debug mode. + +### `set_debug(debug: bool)` +`` This function sets the debug mode for the application. + +### `PATH` +`` This is the path to the current project directory. It may change +during program execution, so always use `conf.PATH` to reference the global value. + +### `set_path(path: Path)` +`` This function sets the path to the current project directory. + +### `ConfigFile` This is the configuration file for a user's project. It contains the project's -configuration and metadata. It can be read and modified directly by accessing -`conf.ConfigFile`. +configuration and metadata and is read from `agentstack.json` in the user's +project directory. + +#### Read/Write +Instantiate `ConfigFile` to read the relevant part from the user project's +`agentstack.json` file. + +```python +config = ConfigFile() +config.framework +``` + +Use the `ConfigFile` as a context manager to modify and write the relevant part +of the user project's `agentstack.json` file. + +```python +with ConfigFile() as config: + config.framework = "crewai" +``` ## `log` -AgentStack provides a robust logging interface for tracking and debugging -agentic workflows. Runs are separated into separate named files for easy tracking -and have standard conventions for outputs from different parts of the system -for parsing. +AgentStack logs to `stdout/stderr` if available, and to `agentstack.log` in the +current project directory, if it exists. + +### Log Handlers +`debug`, `tool_use`, `thinking`, `info`, `notify`, `success`, `response`, +`warning` and `error` are available as functions to log messages at the +appropriate level. + +```python +log.debug("This is a debug message.") +``` + +### `set_stdout(stream: IO)` +`` This function sets the `stdout` stream for the application. To disable +logging to `stdout`, set the stream to a new `io.StringIO()` object. + +### `set_stderr(stream: IO)` +`` This function sets the `stderr` stream for the application. To disable +logging to `stderr`, set the stream to a new `io.StringIO()` object. + ## `serve` Completed agents can be deployed to the AgentStack cloud service with a single @@ -596,8 +625,8 @@ agentic workflows. The command line interface for `agentstack` is provided in this package. Outside of `main.py` all logic relating to the command line interface resides here. -> TODO: Code from other parts of the application should always throw exceptions -and leave the CLI to handle error messaging and control flow. +Typically, functionality inside the `cli` package handles user input and +output, error messaging and status updates. ## `packaging` We manage the virtual environment and dependencies for tools that are added to @@ -637,11 +666,13 @@ are imported into the project and available for use by `agents`. ## `generation.files` This is code that creates and modifies the `files` in a user's project. -### `.env` +### `EnvFile` This is the environment file for a user's project. It contains the project's environment variables. We dynamically modify this file to include relevant variables to support `tools` that are used in the project. +### `ProjectFile` + ## `generation.asttools` Since we're interacting with generated code, we provide a shared toolkit for common AST operations. @@ -658,49 +689,46 @@ This is the base protocol for all framework implementations– all implementatio must implement this protocol. ## `frameworks.crewai` -This is the implementation for the CrewAI framework. CrewAI is a framework for -creating and managing AI agents. All code related specifically to CrewAI is -contained in this package. +This is the implementation for the CrewAI framework. All code related specifically +to CrewAI is contained in this package. ## `frameworks.langgraph` -> TODO Add [LangGraph](https://langchain-ai.github.io/langgraph/) as a framework. +This is the implementation for the LangGraph framework. All code related specifically +to LangGraph is contained in this package. ## `frameworks.openai_swarms` -> TODO: Add OpenAI Swarms as a framework. - -## `frameworks.agency_swarm` -> TODO: Add [VRSEN Agency Swarm](https://github.com/VRSEN/agency-swarm?tab=readme-ov-file) as a framework. +This is the implementation for the OpenAI Swarms framework. All code related specifically +to OpenAI Swarms is contained in this package. +## `frameworks.llamaindex` +. TODO : Add [LlamaIndex](https://docs.llamaindex.ai/en/stable/examples/agent/custom_agent/) + as a framework. -## contributing/how-to-contribute.mdx - ---- -title: 'How To Contribute' -description: 'Contribute your own Agent tool to the ecosystem' ---- +## `frameworks.agency_swarm` +> TODO: Add [VRSEN Agency Swarm](https://github.com/VRSEN/agency-swarm?tab=readme-ov-file) +as a framework. -First of all, __thank you__ for your interest in contributing to AgentStack! Even the smallest contributions help a _ton_. -Our vision is to build the de facto CLI for quickly spinning up an AI Agent project. We want to be the [create-react-app](https://create-react-app.dev/) of agents. Our inspiration also includes the oh-so-convenient [Angular CLI](https://v17.angular.io/cli). +## templates/system_analyzer.mdx -## How to Help +--- +title: 'System Analyzer' +description: 'Inspect a project directory and improve it' +--- -Grab an issue from the [issues tab](https://github.com/AgentOps-AI/AgentStack/issues)! Plenty are labelled "Good First Issue". Fork the repo and create a PR when ready! +[View Template](https://github.com/AgentOps-AI/AgentStack/blob/main/agentstack/templates/proj_templates/system_analyzer.json) -The best place to engage in conversation about your contribution is in the Issue chat or on our [Discord](https://discord.gg/JdWkh9tgTQ). +```bash +agentstack init --template=system_analyzer +``` -## Setup +# Purpose -1. Clone the repo -2. `poetry install` -3. `pip install -e .` - - This will install the CLI locally and in editable mode so you can use `agentstack ` to test your latest changes +This agent will accept a query as a string, use Perplexity to research it. Another agent will take the data gathered and perform an analysis focused on answering the query. -## Project Structure -TODO +# Inputs -## Tests -HAHAHAHAHAHAHA good one (pls help 🥺) +`system_path` (str): the absolute path to ## templates/researcher.mdx @@ -723,21 +751,6 @@ This agent will accept a query as a string, use Perplexity to research it. Anoth `query` (str): the query for the agent to research and report on -## templates/community.mdx - ---- -title: 'Community Templates' -description: 'Extending templating outside what is in the repo' ---- - -The easiest way to create your own templates right now is to host them online. - -```bash -agentstack init --template= -``` - -Much more community template support coming soon! - ## templates/templates.mdx --- @@ -793,26 +806,20 @@ The following templates are built into the AgentStack project. Template contribu -## templates/system_analyzer.mdx +## templates/community.mdx --- -title: 'System Analyzer' -description: 'Inspect a project directory and improve it' +title: 'Community Templates' +description: 'Extending templating outside what is in the repo' --- -[View Template](https://github.com/AgentOps-AI/AgentStack/blob/main/agentstack/templates/proj_templates/system_analyzer.json) +The easiest way to create your own templates right now is to host them online. ```bash -agentstack init --template=system_analyzer +agentstack init --template= ``` -# Purpose - -This agent will accept a query as a string, use Perplexity to research it. Another agent will take the data gathered and perform an analysis focused on answering the query. - -# Inputs - -`system_path` (str): the absolute path to +Much more community template support coming soon! ## templates/content_creator.mdx @@ -823,6 +830,168 @@ description: 'Research a topic and create content on it' [View Template](https://github.com/AgentOps-AI/AgentStack/blob/main/agentstack/templates/proj_templates/content_creator.json) +## tools/package-structure.mdx + + +## Tool Configuration +Each tool gets a directory inside `agentstack/_tools/` where the tool's +source code and configuration will be stored. + +The directory should contain the following files: + +`config.json` +------------- +This contains the configuration for the tool for use by AgentStack, including +metadata, dependencies, configuration & functions exposed by the tool. + +`__init__.py` +--------- +Python package which contains the framework-agnostic tool implementation. Tools +are simple packages which exponse functions; when a tool is loaded into a user's +project, it will be wrapped in the framework-specific tool format by AgentStack. + + +`config.json` Format +-------------------- + +### `name` (string) [required] +The name of the tool in snake_case. This is used to identify the tool in the system. + +### `url` (string) [optional] +The URL of the tool's repository. This is provided to the user to allow them to +learn more about the tool. + +### `category` (string) [required] +The category of the tool. This is used to group tools together in the CLI. + +### `cta` (string) [optional] +String to print in the terminal when the tool is installed that provides a call to action. + +### `env` (list[dict(str, Any)]) [optional] +Definitions for environment variables that will be appended to the local `.env` file. +This is a list of key-value pairs ie. `[{"ENV_VAR": "value"}, ...]`. +In cases where the user is expected to provide their own information, the value is +set to `null` which adds it to the project's `.env` file as a comment. + +### `dependencies` (list[str]) [optional] +List of dependencies that will be installed in the user's project. It is +encouraged that versions are specified, which use the `package>=version` format. + +### `tools` (list[str]) [required] +List of public functions that are accessible in the tool implementation. + + + +## tools/core.mdx + +--- +title: 'Core Tools' +description: 'AgentStack tools that are not third-party integrations' +--- + +## File System + +- [Directory Search](/tools/tool/dir_search) +- [File Read](/tools/tool/file_read) +- [FTP](/tools/tool/ftp) + +## Code Execution + +- [Code Interpreter](/tools/tool/code-interpreter) + +## Data Input +- [Vision](/tools/tool/vision) + + + + Third party tools from the Agent Community + + + +## tools/community.mdx + +--- +title: 'Community Tools' +description: 'AgentStack tools from community contributors' +--- + +## Web Retrieval +- [AgentQL](/tools/tool/agentql) + +## Browsing + +[//]: # (- [Browserbase](/tools/tool/browserbase)) +- [Firecrawl](/tools/tool/firecrawl) + +## Search +- [Perplexity](/tools/tool/perplexity) + +## Memory / State + +- [Mem0](/tools/tool/mem0) + +## Database Tools +- [Neon](/tools/tool/neon) + +## Code Execution + +- [Open Interpreter](/tools/tool/open-interpreter) + +## Unified API + +- [Composio](/tools/tool/composio) + +## Network Protocols +- [Agent Connect](/tools/tool/agent-connect) + +## Application Specific +- [Stripe](/tools/tool/stripe) + + + + Default tools in AgentStack + + + +## tools/tools.mdx + +--- +title: 'Tools' +description: 'Giving your agents tools should be easy' +--- + +## Installation + +Once you find the right tool for your use-case, install it with simply +```bash +agentstack tools add +``` + +You can also specify a tool, and one or more agents to install it to: +```bash +agentstack tools add --agents=, +``` + + + Add your own tool to the AgentStack repo [here](/contributing/adding-tools)! + + +## snippets/snippet-intro.mdx + +One of the core principles of software development is DRY (Don't Repeat +Yourself). This is a principle that apply to documentation as +well. If you find yourself repeating the same content in multiple places, you +should consider creating a custom snippet to keep your content in sync. + + ## cli-reference/cli.mdx --- @@ -996,7 +1165,7 @@ description: 'Using AgentOps makes the agent development process manageable' AgentOps provides monitoring for agents in development and production. It provides a dashboard for tracking agent performance, session replays, and custom reporting. -Additionally, AgentOps provides session drilldowns for viewing Crew agent interactions, LLM calls, and tool usage in real-time. +Additionally, AgentOps provides session drilldowns for viewing agent interactions, LLM calls, and tool usage in real-time. This feature is useful for debugging and understanding how agents interact with users as well as other agents. ![Overview](https://github.com/AgentOps-AI/agentops/raw/main/docs/images/external/app_screenshots/session-replay.png) @@ -1032,72 +1201,75 @@ AgentOps is baked into AgentStack projects by default! You only need to add an A ## Further Information -To get started, create an [AgentOps account](https://agentops.ai/?=crew). +To get started, create an [AgentOps account](https://agentops.ai/?=agentstack). For feature requests or bug reports, please reach out to the AgentOps team on the [AgentOps Repo](https://github.com/AgentOps-AI/agentops). -## essentials/generating-tasks.mdx +## essentials/generating-agents.mdx --- -title: 'Generating Tasks' -description: 'CLI command to add a task to your project' +title: 'Generating Agents' +description: 'CLI command to add an agent to your project' --- -To generate a new task for your project, run: +To generate a new agent for your project, run: ```bash -agentstack generate task +agentstack generate agent ``` -This command will modify two files, `crew.py` and `agents.yaml`. +This command will modify two files, your agent file (`crew.py` / `graph.py`) and `agents.yaml`. -## crew.py +## your agent file -This is the file that declares each of your agents and tasks. It's the core of your AgentStack project with Crew. +This is the file that declares each of your agents and tasks. It's the core of your AgentStack project and how AgentStack configures your framework. +- Crew projects have `crew.py` +- LangGraph projects have `graph.py` ## agents.yaml This is your prompt file. Any prompt engineering is abstracted to here for non-technical ease. -Each task has two prompt params: -- Description -- Expected Output +Each agent has three prompt params: +- Role +- Goal +- Backstory And one configuration param: -- Agent - If operating in Sequential mode, this tells the Crew which agent should accomplish the task +- LLM - This value tells AgentStack which model to use for this specific agent. It must be in `/` format -## essentials/generating-agents.mdx + Ex: `openai/gpt-4o` + +## essentials/generating-tasks.mdx --- -title: 'Generating Agents' -description: 'CLI command to add an agent to your project' +title: 'Generating Tasks' +description: 'CLI command to add a task to your project' --- -To generate a new agent for your project, run: +To generate a new task for your project, run: ```bash -agentstack generate agent +agentstack generate task ``` -This command will modify two files, `crew.py` and `agents.yaml`. - -## crew.py +This command will modify two files, your agent file (`crew.py`/`graph.py`) and `agents.yaml`. -This is the file that declares each of your agents and tasks. It's the core of your AgentStack project with Crew. +## your agent file +This is the file that declares each of your agents and tasks. It's the core of your AgentStack project and how AgentStack configures your framework. +- Crew projects have `crew.py` +- LangGraph projects have `graph.py` ## agents.yaml This is your prompt file. Any prompt engineering is abstracted to here for non-technical ease. -Each agent has three prompt params: -- Role -- Goal -- Backstory +Each task has two prompt params: +- Description +- Expected Output And one configuration param: -- LLM - This value tells crew which model to use for this specific agent. It must be in `/` format - - Ex: `openai/gpt-4o` +- Agent - If operating in Sequential mode, this tells the Crew which agent should accomplish the task