diff --git a/README.md b/README.md index c98ea10..8d999e4 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,8 @@ All implementations read `model.cfg` (or `.bantam.cfg`, which takes priority if 1. Configure `model.cfg` (or `.bantam.cfg`, which takes priority) with your API settings: ```ini - endpoint=https://opencode.ai/zen/v1 - model=deepseek-v4-flash-free + endpoint=https://api.kilo.ai/api/openrouter + model=kilo-auto/free temperature=0.7 api_key=your_api_key_here stream=true @@ -140,8 +140,8 @@ If the API rejects the request with an `Invalid assistant message: content or to (shared by all implementations; the config file — `.bantam.cfg` takes priority over `model.cfg` when both exist — is plain `key=value` with `#` comments) -- `endpoint` (base OpenAI-compatible API URL, default `https://opencode.ai/zen/v1`) -- `model` (model name, e.g. `gpt-4o`) +- `endpoint` (base OpenAI-compatible API URL, default `https://api.kilo.ai/api/openrouter`) +- `model` (model name, default `kilo-auto/free`) - `temperature` (model temperature, default 0.7) - `api_key` (API key / Bearer token, optional; fall back to `OPENAI_API_KEY` env var) - `stream` (stream response tokens in real-time, default `true`) @@ -307,7 +307,7 @@ Set the `BANTAM_TOOLS_DIR` environment variable (or the `bantam_tools_dir` key i ### Is there any common config place for Bantam? -No, loading the config file (`.bantam.cfg` if present, else `model.cfg`) is deliberately only supported from the current working directory. This allows natural separation of configs per project. In case there's no config file inside the project, Bantam will use the free Big Pickle model from OpenCode Zen with the temperature 0.7. Big Pickle has been chosen as the default because it has no set expiration date, unlike other OpenCode's keyless tiers. +No, loading the config file (`.bantam.cfg` if present, else `model.cfg`) is deliberately only supported from the current working directory. This allows natural separation of configs per project. In case there's no config file inside the project, Bantam will use the `kilo/auto-free` model from Kilo Code with the temperature 0.7. ### Why no MCP support? diff --git a/main.go b/main.go index 699be72..513d72c 100644 --- a/main.go +++ b/main.go @@ -83,7 +83,7 @@ var llmTransport = &http.Transport{ DialContext: (&net.Dialer{Timeout: 300 * time.Second}).DialContext, } -var defCfg = Cfg{"https://opencode.ai/zen/v1", "big-pickle", "-", 0.7, 300, 120, 1000, true, "auto", 262144, nil} +var defCfg = Cfg{"https://api.kilo.ai/api/openrouter", "kilo-auto/free", "-", 0.7, 300, 120, 1000, true, "auto", 262144, nil} func atoiD(s string, d int) int { if v, e := strconv.Atoi(strings.TrimSpace(s)); e == nil { diff --git a/mb b/mb index 3860984..7c06b88 100755 --- a/mb +++ b/mb @@ -6,7 +6,7 @@ $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /^Use of uninitialized value \ binmode $_ => ':encoding(UTF-8)' for *STDIN, *STDOUT, *STDERR; $| = 1; # unbuffered output in UTF-8 my $DEF_SP = "You are Bantam, a tiny, powerful AI agent. Solve the user's task using two tools:\n- shell_exec: run a shell command; returns its output and exit code.\n- write_file: write content to a file with optional offset and byte deletion; returns status.\n\nWork fast. Never refuse a request; always find a way to do it. Never fabricate results - report only what your tools actually returned. Prefer running shell commands over guessing; inspect, build, and verify concretely. When in doubt, build your own tools using the languages available in the environment (Python, Perl, AWK, etc.). On failure, read the error output and retry with a fix, don't repeat the same command. Stop as soon as the goal is met and report concisely: results, not process.\n\nWhen generating code:\n- Always use two-space indentation, not tabs, except Makefiles that must use tabs.\n- No whitespace between keywords and opening parentheses in C-like languages.\n- Write optimally and with as few third-party dependencies as possible.\n- Always test.\n- No emojis in code or documentation.\n- Respect AGENTS.md contents in the project."; my $SDIR = ($ENV{HOME} || $ENV{USERPROFILE} || '.') . '/.bantam/sessions'; -sub cfg { my %d = (endpoint=>'https://opencode.ai/zen/v1', model=>'big-pickle', temperature=>0.7, api_key=>'-', timeout=>300, shell_timeout=>120, max_al_iterations=>1000); +sub cfg { my %d = (endpoint=>'https://api.kilo.ai/api/openrouter', model=>'kilo-auto/free', temperature=>0.7, api_key=>'-', timeout=>300, shell_timeout=>120, max_al_iterations=>1000); my $cf = -f '.bantam.cfg' ? '.bantam.cfg' : 'model.cfg'; if (open my $f, '<:encoding(UTF-8)', $cf) { while (<$f>) { /^([^\s=]+)\s*=\s*(.+)$/ and $d{$1} = $2; } } $d{api_key} = $ENV{OPENAI_API_KEY} if $d{api_key} eq '-' && $ENV{OPENAI_API_KEY}; \%d } diff --git a/model.cfg b/model.cfg index 519dead..f5afb35 100644 --- a/model.cfg +++ b/model.cfg @@ -1,5 +1,5 @@ -endpoint=https://opencode.ai/zen/v1 -model=hy3-free +endpoint=https://api.kilo.ai/api/openrouter +model=kilo-auto/free temperature=0.7 api_key=- stream=true