-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmanifest.toml
More file actions
19 lines (18 loc) · 2.95 KB
/
Copy pathmanifest.toml
File metadata and controls
19 lines (18 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
contract_version = "1.0"
name = "fast-agent"
description = "fast-agent (evalstate/fast-agent) - an MCP-centric general agent framework over ACP, distributed on PyPI as fast-agent-acp==0.7.18 (a thin console-script wrapper whose engine is its dep fast-agent-mcp==0.7.18). The `fast-agent-acp` entrypoint starts fast-agent as an ACP stdio server (convenience wrapper for `serve --transport acp`); `-x`/`--shell` enables the local shell runtime so the agent exposes an execute tool. Routes any OpenAI-compatible host purely headlessly: base_url and key come from pydantic-settings NESTED env vars OPENAI__BASE_URL / OPENAI__API_KEY (NOT plain OPENAI_BASE_URL), and the model is delivered at launch via the `--model` flag in fast-agent's dotted provider.model form (openai.<id>) — so the launcher prepends `openai.` to the benchflow model id. supports_acp_set_model is false (model is launch-flag-owned). Installs via a uv-managed CPython 3.13 + uvx pre-warm into UV_CACHE_DIR (offline-fast at runtime), modeled on the crow-cli uv pattern. Verified wired on the routing smoke: 1 upstream /v1/chat/completions, model openai.deepseek-v4-flash, initialize+session/new OK (sessionId returned), stopReason=refusal (mock upstream; no real-task reward claimed)."
install_cmd = '''set -e; export DEBIAN_FRONTEND=noninteractive; ( command -v curl >/dev/null 2>&1 && command -v tar >/dev/null 2>&1 && command -v xz >/dev/null 2>&1 || (apt-get update -qq && apt-get install -y -qq curl ca-certificates tar xz-utils) ); export UV_INSTALL_DIR=/opt/benchflow/uv; curl -LsSf https://astral.sh/uv/install.sh | sh; export PATH=/opt/benchflow/uv:$PATH; export UV_CACHE_DIR=/opt/benchflow/uv-cache; export UV_PYTHON_INSTALL_DIR=/opt/benchflow/uv-python; /opt/benchflow/uv/uv python install 3.13; timeout 600 /opt/benchflow/uv/uvx --python 3.13 --from fast-agent-acp==0.7.18 fast-agent-acp --help </dev/null >/dev/null 2>&1 || true; chmod -R a+rX /opt/benchflow && chmod -R a+rwX /opt/benchflow/uv-cache; [ -x /opt/benchflow/uv/uvx ]'''
launch_cmd = '''set -e; export PATH=/opt/benchflow/uv:$HOME/.local/bin:/usr/local/bin:$PATH; export UV_CACHE_DIR=/opt/benchflow/uv-cache; export UV_PYTHON_INSTALL_DIR=/opt/benchflow/uv-python; exec /opt/benchflow/uv/uvx --python 3.13 --from fast-agent-acp==0.7.18 fast-agent-acp -x --model "openai.${BENCHFLOW_PROVIDER_MODEL}"'''
protocol = "acp"
api_protocol = "openai-completions"
acp_model_format = "bare"
supports_acp_set_model = false
aliases = ["fast-agent", "fast-agent-acp", "fastagent"]
# fast-agent reads base_url/key from pydantic-settings NESTED env (double underscore),
# NOT plain OPENAI_BASE_URL/OPENAI_API_KEY. The model is NOT read from env; it is
# injected at launch via the --model flag (launch_cmd prepends the "openai." provider
# prefix to BENCHFLOW_PROVIDER_MODEL), so BENCHFLOW_PROVIDER_MODEL is consumed directly
# in launch_cmd rather than mapped to an agent env var.
[env_mapping]
BENCHFLOW_PROVIDER_BASE_URL = "OPENAI__BASE_URL"
BENCHFLOW_PROVIDER_API_KEY = "OPENAI__API_KEY"