docs: cleanup (#1035)

This commit is contained in:
Angie Jones
2025-02-02 17:56:46 -06:00
committed by GitHub
parent 6add3d7846
commit 994817227c
6 changed files with 63 additions and 70 deletions

View File

@@ -86,7 +86,10 @@ to use the MCP servers included with Goose with any other agent, you are free to
## Discovering Extensions
Goose provides a [central directory][extensions-directory] of extensions that you can install and use. The page will give you a test command to try out extensions before installing them.
Goose provides a [central directory][extensions-directory] of extensions that you can install and use.
You can also add any other [MCP Server](#mcp-servers) as a Goose extension, even if it's not listed in our directory.
## Adding Extensions
@@ -96,22 +99,33 @@ Extensions can be installed directly via the [extensions directory][extensions-d
For advanced users, you can also edit the `~/.config/goose/config.yaml` file directly to add an extension.
:::
### MCP Servers
You can install any MCP server as a Goose extension.
:::tip MCP Server Directory
See available servers in the **[MCP Server Directory](https://github.com/modelcontextprotocol/servers?tab=readme-ov-file#model-context-protocol-servers)**.
:::
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
1. Run the following command:
```
```sh
goose configure
```
2. Select `Add Extension` from the menu.
3. Choose the type of extension youd like to add:
- `Built-In Extension`: Use an extension that comes pre-installed with Goose.
- `Command-Line Extension`: Add a local command or script to run as an extension.
- `Remote Extension`: Connect to a remote system via SSE (Server-Sent Events).
4. Follow the prompts based on the type of extension you selected.
Example of adding Command-Line Extension:
#### Example of adding the [Fetch MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch):
```
┌ goose-configure
@@ -139,45 +153,28 @@ For advanced users, you can also edit the `~/.config/goose/config.yaml` file dir
1. Click `...` in the top right corner of the Goose Desktop.
2. Select `Settings` from the menu.
3. Under `Extensions`, you can toggle the built-in extensions on or off.
3. Under `Extensions`, click `Add` link.
4. On the `Add Extension Manually` modal, enter the necessary details and click `Add` button
5. Click `Add Extension` button
![Install Extension](../assets/guides/install-extension-ui.png)
#### Example of adding the [Fetch MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch):
* **Type**: `Standard IO`
* **ID**: `fetch` (_set this to whatever you want_)
* **Name**: `fetch` (_set this to whatever you want_)
* **Description**: `Fetch MCP Server` (_set this to whatever you want_)
* **Command**: `uvx mcp-server-fetch`
</TabItem>
</Tabs>
### MCP Servers
:::tip Tutorials
Check out our [tutorials](/docs/category/tutorials) with step-by-step instructions on adding MCP Servers.
:::
You can install [any MCP server](https://github.com/modelcontextprotocol/servers?tab=readme-ov-file#model-context-protocol-servers) as a Goose extension.
### Config Entry
For advanced users, you can also directly edit the config file (`~/.config/goose/config.yaml`) to add, remove, or update an extension:
<Tabs groupId="interface">
<TabItem value="cli" label="Goose CLI" default>
1. Run
```sh
goose configure
```
2. Choose `Add Extension`
3. Choose `Command-line Extension`
You'll then be prompted to enter a command and any environment variables needed.
</TabItem>
<TabItem value="ui" label="Goose Desktop">
1. Click `...` in the top right corner of the Goose Desktop.
2. Select `Settings` from the menu.
3. Under `Extensions`, you can add a MCP server as an extension manually by clicking on the (+) button to the right.
4. In the dialog that appears, enter the details of the MCP server including any environment variables needed.
</TabItem>
</Tabs>
For example, to connect to the [GitHub Server](https://github.com/modelcontextprotocol/servers/tree/main/src/github#npx), enter `npx -y @modelcontextprotocol/server-github` as the full command.
:::tip
You can also directly edit the resulting config entry (`~/.config/goose/config.yaml`), which would look like this:
```yaml
extensions:
```yaml
extensions:
fetch:
name: GitHub
cmd: npx
@@ -185,8 +182,7 @@ For example, to connect to the [GitHub Server](https://github.com/modelcontextpr
enabled: true
envs: { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" }
type: stdio
```
:::
```
## Enabling/Disabling Extensions
@@ -258,7 +254,7 @@ You can start a tailored goose session with specific extensions directly from th
goose session --with-extension "{extension command}"
```
:::note
:::info
You may need to set necessary environment variables for the extension to work correctly.
```bash
goose session --with-extension "VAR=value command arg1 arg2"

View File

@@ -10,9 +10,11 @@ Goose, an open source AI Agent, builds upon the basic interaction framework of L
## Goose Components
Goose operates using three main components, the **interface**, the **agent**, and the **connected [extensions](/docs/getting-started/using-extensions)**.
1. **Interface**: This is the desktop application or CLI that the user is using to run Goose. It collects input from the user and displays outputs to the user
2. **Agent**: The agent runs Goose's core logic, managing the interactive loop.
3. **Extensions**: Extensions are components that provide specific tools and capabilities for the agent to use. These tools enable Goose to perform actions such as running commands and managing files.
* **Interface**: This is the desktop application or CLI that the user is using to run Goose. It collects input from the user and displays outputs to the user
* **Agent**: The agent runs Goose's core logic, managing the interactive loop.
* **Extensions**: Extensions are components that provide specific tools and capabilities for the agent to use. These tools enable Goose to perform actions such as running commands and managing files.
In a typical session, the interface spins up an instance of the agent, which then connects to one or more extensions simultaneously. The interface can also create multiple agents to handle different tasks concurrently. Extensions and the interactive loop are important parts of Goose's functionality. The next sections will explain how Goose connects to extensions and processes user requests.
@@ -32,23 +34,17 @@ To learn more about the design and implementation of extensions and tools, refer
Let's take a closer look at the interactive loop shown above.
1. **Human Request**
The process begins and ends with you. Once you give Goose a request, question, command, or problem to solve, the flow begins.
1. **Human Request**: The process begins and ends with you. Once you give Goose a request, question, command, or problem to solve, the flow begins.
2. **Provider Chat**
Goose sends your request along with a list of available tools to the [LLM provider](/docs/getting-started/providers) you've connected. The provider processes it, and if necessary, creates a tool call as part of its response.
2. **Provider Chat**: Goose sends your request along with a list of available tools to the [LLM provider](/docs/getting-started/providers) you've connected. The provider processes it, and if necessary, creates a tool call as part of its response.
3. **Model Extension Call**
The LLM is capable of creating a tool call request but not able to execute it, that's when Goose steps in. Goose takes the tool call which is formatted in JSON, runs it, and gathers the results.
3. **Model Extension Call**: The LLM is capable of creating a tool call request but not able to execute it, that's when Goose steps in. Goose takes the tool call which is formatted in JSON, runs it, and gathers the results.
4. **Response to Model**
After executing the tool call, Goose sends the results back to the model. If more extensions are needed, those steps will repeat.
4. **Response to Model**: After executing the tool call, Goose sends the results back to the model. If more extensions are needed, those steps will repeat.
5. **Context Revision**
Goose will remove any old or irrelevant information, ensuring the LLM focuses solely on the information that matters the most. This helps with token management.
5. **Context Revision**: Goose will remove any old or irrelevant information, ensuring the LLM focuses solely on the information that matters the most. This helps with token management.
6. **Model Response**
Once all the tool calls are done, the LLM sends a final response back to you and restarts the loop once you respond.
6. **Model Response**: Once all the tool calls are done, the LLM sends a final response back to you and restarts the loop once you respond.
## Error Handling in Goose

View File

@@ -7,7 +7,7 @@ import TabItem from '@theme/TabItem';
# Managing Goose Sessions
A session is a single, continuous interaction between you and Goose, providing a space to ask questions and prompt action. In this guide, we'll cover how to start, exit, save, and resume.
A session is a single, continuous interaction between you and Goose, providing a space to ask questions and prompt action. In this guide, we'll cover how to start, exit, and resume a session.
## Start Session
@@ -27,6 +27,10 @@ A session is a single, continuous interaction between you and Goose, providing a
</TabItem>
</Tabs>
:::info
If this is your first session, Goose will prompt you for an API key to access an LLM (Large Language Model) of your choice. For more information on setting up your API key, see the [Installation Guide](/docs/getting-started/installation#set-llm-provider). Here is the list of [supported LLMs](/docs/getting-started/providers).
:::
## Name Session
<Tabs>
<TabItem value="cli" label="Goose CLI" default>
@@ -47,9 +51,6 @@ A session is a single, continuous interaction between you and Goose, providing a
Session management features, such as **naming** and **resuming** sessions, are **not** currently available in the Goose Desktop. If you'd like to see these features added, please [open an issue on GitHub](https://github.com/block/goose/issues/new?template=Blank+issue).
</TabItem>
</Tabs>
:::info
If this is your first session, Goose will prompt you for an API key to access an LLM (Large Language Model) of your choice. For more information on setting up your API key, see the [Installation Guide](/docs/getting-started/installation#set-llm-provider). Here is the list of [supported LLMs](/docs/getting-started/providers).
:::
## Exit Session

View File

@@ -8,7 +8,7 @@ sidebar_position: 3
`.goosehints` is a text file used to provide additional context about your project and improve the communication with Goose. The use of `goosehints` ensures that Goose understands your requirements better and can execute tasks more effectively.
:::info Developer extension required
To make use of the hints file, you need to have the `developer` extension [enabled](/docs/getting-started/using-extensions).
To make use of the hints file, you need to have the `Developer` extension [enabled](/docs/getting-started/using-extensions).
:::

View File

@@ -19,7 +19,7 @@ If Goose is heading in the wrong direction or gets stuck, you can interrupt it b
### Stuck in a Loop or Unresponsive
In rare cases, Goose may enter a "doom spiral" or become unresponsive during a long session. This is often resolved by ending the current session, and starting a new session.
1. Hold down `Ctrl + C` to cancel
1. Hold down `Ctrl+C` to cancel
2. Start a new session:
```sh
goose session

View File

@@ -124,7 +124,7 @@ GITHUB_PERSONAL_ACCESS_TOKEN: <YOUR_TOKEN>
<TabItem value="ui" label="Goose Desktop">
1. Click `...` in the upper right corner
2. Click `Settings`
3. On `Extensions` section, click the `Add` link
3. Under `Extensions`, click the `Add` link
4. On the `Add Extension Manually` modal, enter the following:
* **Type**: `Standard IO`
* **ID**: `gh-mcp` (_set this to whatever you want_)