docs: add goose-mobile (#3315)

Co-authored-by: Rizel Scarlett <rizel@squareup.com>
This commit is contained in:
Jordan Bergero
2025-07-10 21:01:27 +02:00
committed by GitHub
parent 7e4a98d4b6
commit 21f9cf7c2f
8 changed files with 132 additions and 24 deletions

View File

@@ -23,7 +23,7 @@ These community evals aren't the rigorous, peer-reviewed benchmarks that researc
In this spirit, we're introducing our **Goose Vibe Check** leaderboard. In this spirit, we're introducing our **Goose Vibe Check** leaderboard.
Thank you to the Ollama team for their help and support in our experimentation contributing to this blog! We used Ollamas [structured outputs](https://ollama.com/blog/structured-outputs) feature to enable our [toolshim implementation](https://block.github.io/goose/docs/guides/experimental-features/#ollama-tool-shim) (more below) and their recently released [context length parameter override](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size) to enable testing on longer contexts. Thank you to the Ollama team for their help and support in our experimentation contributing to this blog! We used Ollamas [structured outputs](https://ollama.com/blog/structured-outputs) feature to enable our [toolshim implementation](https://block.github.io/goose/docs/experimental/ollama) (more below) and their recently released [context length parameter override](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size) to enable testing on longer contexts.
## Leaderboard ## Leaderboard
@@ -237,7 +237,7 @@ However, this solution has limited performance due to:
- **Structured output interference:** Ollamas structured output feature influences the models token sampling process, where the output is impacted by the models fundamental ability to extract information and generate JSON appropriately. - **Structured output interference:** Ollamas structured output feature influences the models token sampling process, where the output is impacted by the models fundamental ability to extract information and generate JSON appropriately.
Despite these challenges, there could be potential in fine-tuning these toolshim models to specifically optimize them for tool call generation. Despite these challenges, there could be potential in fine-tuning these toolshim models to specifically optimize them for tool call generation.
If youd like to try out the toolshim, check out our [documentation](https://block.github.io/goose/docs/guides/experimental-features) If youd like to try out the toolshim, check out our [documentation](https://block.github.io/goose/docs/experimental/ollama)
## Practical Advice for Local Model Users ## Practical Advice for Local Model Users

View File

@@ -0,0 +1,8 @@
{
"label": "Experimental",
"position": 7,
"link": {
"type": "doc",
"id": "experimental/index"
}
}

View File

@@ -0,0 +1,46 @@
---
title: Goose Mobile
sidebar_position: 2
sidebar_label: Goose Mobile
---
Goose Mobile is an experimental project inspired by the Goose application, designed to automate tasks on Android devices. It acts as an open agent that can run on your phone, providing maximal automation of everyday tasks.
![Goose Mobile Screenshot](https://github.com/user-attachments/assets/af9d7d83-54f4-4ace-ad66-9e19f86c8fb9)
## Overview
Goose Mobile is an interpretation of [Goose](https://github.com/block/goose) for Android, allowing for end-to-end task automation. It can function as a home screen replacement or react to notifications, executing pre-defined rules on your behalf.
:::caution
Goose Mobile is an experimental project that requires deep access to your device. Use at your own risk.
:::
## Key Features
- **Automation**: Automate multi-step tasks using installed apps.
- **Notification Handling**: Respond to incoming notifications based on set rules.
- **Extensibility**: Discover and use extensions from other apps to perform background tasks.
## Getting Started
Goose Mobile is a research project and not intended for production use. It's recommended to try it on a spare Android phone or an emulator.
### Installation Options
- **Pre-built APK**: Quickly install via [Firebase distribution link](https://appdistribution.firebase.google.com/pub/i/3f111ea732d5f7f6).
- **Build from Source**: For developers, instructions are available in the [Goose Mobile repository](https://github.com/block/goose-mobile).
## Extending Goose Mobile
Goose Mobile supports extensions via the "mobile MCP" system, allowing it to use tools from other apps without switching contexts. For example, it can use a weather extension to quickly fetch weather information.
Example extension code and setup can be found in the repository's [README](https://github.com/block/goose-mobile).
## Contribution and Development
We welcome contributions to Goose Mobile. For more information, see the [Contributing Guide](https://github.com/block/goose-mobile/blob/main/CONTRIBUTING.md).
## Further Information
For detailed instructions, scenarios, and development setup, please refer to the [Goose Mobile repository](https://github.com/block/goose-mobile).

View File

@@ -0,0 +1,70 @@
---
title: Experimental
hide_title: true
description: Experimental and radically unstable, but lot's of fun.
---
import Card from '@site/src/components/Card';
import styles from '@site/src/components/Card/styles.module.css';
<h1 className={styles.pageTitle}>Experimental</h1>
<p className={styles.pageDescription}>
Goose is an open source project that is constantly being improved and expanded upon. These experimental features and projects are still in development and may not be fully stable or ready for production use, but they showcase exciting possibilities for the future of AI automation.
</p>
:::note
The list of experimental features may change as Goose development progresses. Some features may be promoted to stable features, while others might be modified or removed. This section will be updated with specific experimental features as they become available.
:::
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>🧪 Experimental Features</h2>
<div className={styles.cardGrid}>
<Card
title="Ollama Tool Shim"
description="Enable tool calling capabilities for language models that don't natively support tool calling (like DeepSeek) using an experimental local interpreter model setup."
link="/docs/experimental/ollama"
/>
<Card
title="Goose Mobile"
description="An experimental Android automation app that acts as an open agent running on your phone, providing maximal automation of everyday tasks."
link="/docs/experimental/goose-mobile"
/>
</div>
</div>
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📝 Featured Blog Posts</h2>
<div className={styles.cardGrid}>
<Card
title="Finetuning Toolshim Models for Tool Calling"
description="Addressing performance limitations in models without native tool calling support through dedicated toolshim model development."
link="/blog/2025/04/11/finetuning-toolshim"
/>
<Card
title="AI, But Make It Local With Goose and Ollama"
description="Learn how to integrate Goose with Ollama for a fully local AI experience, including structured outputs and tool calling capabilities."
link="/blog/2025/03/14/goose-ollama"
/>
<Card
title="Community-Inspired Benchmarking: The Goose Vibe Check"
description="See how open source AI models measure up in our first Goose agent benchmark tests, including toolshim performance analysis."
link="/blog/2025/03/31/goose-benchmark"
/>
</div>
</div>
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>💬 Feedback & Support</h2>
<div className={styles.cardGrid}>
<Card
title="GitHub Issues"
description="Report bugs, request features, or contribute to the development of experimental features."
link="https://github.com/block/goose/issues"
/>
<Card
title="Discord Community"
description="Join our community to discuss experimental features, share feedback, and connect with other users."
link="https://discord.gg/block-opensource"
/>
</div>
</div>

View File

@@ -1,20 +1,9 @@
--- ---
title: Experimental Features title: Ollama Tool Shim
sidebar_position: 16 sidebar_position: 1
sidebar_label: Experimental Features sidebar_label: Ollama Tool Shim
--- ---
Goose is an open source project that is constantly being improved, and new features are added regularly. Some of these features are considered experimental, meaning they are still in development and may not be fully stable or ready for production use. This guide covers how to enable and use experimental features in Goose, as well as how to provide feedback on them.
## Available Experimental Features
:::note
The list of experimental features may change as Goose development progresses. Some features may be promoted to stable features, while others might be modified or removed.This section will be updated with specific experimental features as they become available
:::
### Ollama Tool Shim
The Ollama tool shim is an experimental feature that enables tool calling capabilities for language models that don't natively support tool calling (like DeepSeek). It works by instructing the primary model to output json for intended tool usage, the interpretive model uses ollama structured outputs to translate the primary model's message into valid json, and then that json is translated into valid tool calls to be invoked. The Ollama tool shim is an experimental feature that enables tool calling capabilities for language models that don't natively support tool calling (like DeepSeek). It works by instructing the primary model to output json for intended tool usage, the interpretive model uses ollama structured outputs to translate the primary model's message into valid json, and then that json is translated into valid tool calls to be invoked.
@@ -53,8 +42,3 @@ Start a new Goose session with your tool shim preferences:
```bash ```bash
GOOSE_TOOLSHIM=1 GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2 cargo run --bin goose session GOOSE_TOOLSHIM=1 GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2 cargo run --bin goose session
``` ```
## Feedback
If you encounter any issues with these features, check if the issue is already reported in the [GitHub issues](https://github.com/goose/goose/issues) or join the [Discord community](https://discord.gg/block-opensource) to share.

View File

@@ -150,7 +150,7 @@ These variables control how Goose handles [tool permissions](/docs/guides/managi
|----------|---------|---------|---------| |----------|---------|---------|---------|
| `GOOSE_MODE` | Controls how Goose handles tool execution | "auto", "approve", "chat", "smart_approve" | "smart_approve" | | `GOOSE_MODE` | Controls how Goose handles tool execution | "auto", "approve", "chat", "smart_approve" | "smart_approve" |
| `GOOSE_TOOLSHIM` | Enables/disables tool call interpretation | "1", "true" (case insensitive) to enable | false | | `GOOSE_TOOLSHIM` | Enables/disables tool call interpretation | "1", "true" (case insensitive) to enable | false |
| `GOOSE_TOOLSHIM_OLLAMA_MODEL` | Specifies the model for [tool call interpretation](/docs/guides/experimental-features/#ollama-tool-shim) | Model name (e.g. llama3.2, qwen2.5) | System default | | `GOOSE_TOOLSHIM_OLLAMA_MODEL` | Specifies the model for [tool call interpretation](/docs/experimental/ollama) | Model name (e.g. llama3.2, qwen2.5) | System default |
| `GOOSE_CLI_MIN_PRIORITY` | Controls verbosity of [tool output](/docs/guides/managing-tools/adjust-tool-output) | Float between 0.0 and 1.0 | 0.0 | | `GOOSE_CLI_MIN_PRIORITY` | Controls verbosity of [tool output](/docs/guides/managing-tools/adjust-tool-output) | Float between 0.0 and 1.0 | 0.0 |
| `GOOSE_CLI_TOOL_PARAMS_TRUNCATION_MAX_LENGTH` | Maximum length for tool parameter values before truncation in CLI output (not in debug mode) | Integer | 40 | | `GOOSE_CLI_TOOL_PARAMS_TRUNCATION_MAX_LENGTH` | Maximum length for tool parameter values before truncation in CLI output (not in debug mode) | Integer | 40 |

View File

@@ -33,7 +33,7 @@ import styles from '@site/src/components/Card/styles.module.css';
<Card <Card
title="Ollama Tool Shim" title="Ollama Tool Shim"
description="Enable tool calling for models that don't natively support it using an experimental local interpreter model setup." description="Enable tool calling for models that don't natively support it using an experimental local interpreter model setup."
link="/docs/guides/experimental-features#ollama-tool-shim" link="/docs/experimental/ollama"
/> />
</div> </div>
</div> </div>

View File

@@ -196,4 +196,4 @@ RUST_LOG=debug goose bench bench-config.json
Tool shimming allows you to use a non-tool-capable models with Goose, provided Ollama is installed on the Tool shimming allows you to use a non-tool-capable models with Goose, provided Ollama is installed on the
system. system.
See this guide for important details on [tool shimming](/docs/guides/experimental-features). See this guide for important details on [tool shimming](/docs/experimental/ollama).