███████████ ███████ █████████
░░███░░░░░███ ███░░░░░███ ███░░░░░███
░███ ░███ ███ ░░███░███ ░░░
░██████████ ░███ ░███░░█████████
░███░░░░░███░███ ░███ ░░░░░░░░███
░███ ░███░░███ ███ ███ ░███
███████████ ░░░███████░ ░░█████████
░░░░░░░░░░░ ░░░░░░░ ░░░░░░░░░
An agent out of the box. A framework for your own agent-native applications.
Quick Start
OPENAI_API_KEY=<api-key> uvx boscli ask "how are you" --model openai/gpt-4o
Install uv to get uvx, or install the CLI permanently with uv tool install boscli / pipx install boscli.
Using a different provider? See LiteLLM's provider docs for the right BOS_MODEL prefix and required environment variables. For example, using a deepseek model
DEEPSEEK_API_KEY=<api-key> uvx boscli ask "how are you" --model deepseek/deepseek-v4-pro
pip install bos-aiinstalls the library — it does not provide thebosclicommand. The CLI ships as thebosclidistribution. See Embedding to drive BOS from your own application.
Project Setup
mkdir my-agent && cd my-agent
boscli init # guided setup: purpose, topology, model — writes a runnable baseline
boscli gateway start # start the agent runtime
boscli tui # connect the terminal UI
Embedding
pip install bos-ai is a library install: about 14 MB, no console script, no terminal UI, no gateway. There are two ways to embed, and which one you want is a decision to make before you write code.
Call the agent from your own process — bos.sdk is the contract:
from bos.sdk import BosApp
async with BosApp(my_config_dict, bos_dir="/var/lib/myapp/.bos") as app:
agent = app.agent()
result = await agent.run(chat_id, "hello")
Or mount the whole gateway runtime — actors, channels, chat coordination, the WebSocket protocol — inside your own web application with GatewayMount (needs bos-ai[gateway]).
Configuration is a plain dict in both — load it from a database, environment, or a control plane; nothing requires a TOML file on disk. Embedding BOS covers the choice, both modes, and the supported API surface; examples/embed_sdk.py and examples/embed_gateway_fastapi.py are the runnable versions.
Install extras
| Install | Adds |
|---|---|
bos-ai |
The library: bos.core, bos.config, plugins |
bos-ai[litellm] |
The built-in LLM provider. Without it, register your own with @ep_provider |
bos-ai[gateway] |
The gateway process and the Telegram/Lark channels |
bos-ai[search] |
The built-in web-search and page-fetch tools |
bos-ai[lark] |
The Lark/Feishu SDK |
bos-ai[cli] |
The CLI's dependencies — run it with python -m bos.cli |
bos-ai[all] |
Everything |
The supported surface
bos.core—AgentHarness,Agent,AgentResult, theep_*extension points, and the port protocols (LLM,ChatStore,Consolidator,ToolSet,TurnInterceptor,PromptProvider,TurnEventSink)bos.config—Workspace,RootConfig,validate_config
Names prefixed with _ are re-exported for extensions and are not stable; they are not part of the embedding contract.
Docs
See the documentation site for tutorials, architecture, extension points, and the configuration reference.
Building on BOS with an AI agent? llm-full.md is a single dense, code-grounded reference covering every mechanism — configuration, extension points, plugins, channels, skills, the CLI, and the runtime — in one file. boscli init drops a copy into every scaffolded project.
License
See LICENSE.
Release files for bos-ai 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bos_ai-2.1.0.tar.gz | 773.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bos_ai-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / bos_ai-2.1.0.tar.gz
| Download URL | bos_ai-2.1.0.tar.gz |
|---|---|
| Size | 773.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ecf084754cb1511dd808cfca792b22625913a567bff6a7f34d20c4047f954604
|
|
BLAKE2b-256 checksum How to use checksums |
82203e290c0bdbba9a2193521902ad26946651742e770cab9aa709d7085d284e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / bos_ai-2.1.0-py3-none-any.whl
| Download URL | bos_ai-2.1.0-py3-none-any.whl |
|---|---|
| Size | 313.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb4037fdfb4999bdc3f7faed512e5cb7436a7266ec9024317c69e84e49c46e6a
|
|
BLAKE2b-256 checksum How to use checksums |
0798c344743a8fd517f3f81f61bf68e6204ed7e0c5b24a77f15634983e8e5d73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log