Skip to content

Looper v2.14.172

Choose a tag to compare

@github-actions github-actions released this 13 Nov 03:59
· 139 commits to main since this release
b213c0f

Looper v2.14.172

This is the patch release v2.14.172, a hotfix line in which each merged change ships at once. It documents one change: #1313 (Grok runs can turn off web search per Agent Profile).

Release Decision

Who should upgrade: Installations that run Grok and want an Agent Profile whose runs have no web search or web fetch tools. Others need not upgrade for behavior.

What this release solves: #1313 adds a web_search setting to Agent Profiles. It defaults to true, which keeps today's behavior; false adds --disable-web-search to Grok runs, and other runtimes refuse it.

Breaking changes: No. The new setting is an opt-in switch and every existing profile keeps web_search: true. The database gains one additive column, added on the next start (see Upgrading). The bridge boundary is unchanged: upgrade to v2.13.165 first if the installation is older.

How to verify: Check the installed version.

looper --version   # looper 2.14.172

Contributors: Maintainer @foolzzz authored #1313; no community contribution was included in this release.

Upgrading

The bridge boundary is unchanged: an installation older than v2.13.165 must upgrade to v2.13.165 first (upgrade to v2.13.165 first) and be started once; see the Upgrading section of the v2.14.0 release for the steps and rollback. An installation on v2.14.0 to v2.14.171 upgrades directly. The first start adds the column agent_profiles.web_search BOOLEAN NOT NULL DEFAULT true (looper/db/connection.py, recorded as the migration profile_web_search); existing rows read true.

Behavior changes

Read in the code of #1313:

  • New profile setting (looper/agents/profile_registry.py, looper/db/profile_registry.py, looper/db/schema.sql). Agent Profiles carry web_search, default true. It can be set on create and update, is part of the profile's view and list, and is validated: a non-boolean is refused, and false is refused with a message for any runtime whose type is not grok.
  • Grok commands (looper/agents/runtimes/grok.py, grok_acp.py). With web_search: false, headless and ACP Grok commands add --disable-web-search, which removes Grok's web search and web fetch tools. It is not a network sandbox: shell commands can still reach the network. The run's metadata.command records the flag. A fallback uses the target profile's own setting, and the setting is part of the profile's settings fingerprint (agent_settings.py).
  • Config export and import (looper/agents/config_transfer.py, looper/db/config_transfer.py). The v3 config carries web_search per profile; an entry without it imports as true, and a changed value counts as a change when comparing with the current profile.
  • API and dashboard (looper/agents/v1_domains/*, web/src/components/agent-profiles.tsx). The v1 profile schemas accept and return web_search. The Agent Profiles form shows a "Web search" switch only for Grok runtimes, with a hint that shell commands can still reach the network; the list marks a profile "web search off". Switching to a non-Grok runtime resets it to on.
  • Model-visible changes: The Manager's profile tool (looper/agents/ops/config.py) gains a boolean web_search argument for create and update, described as "Default true. Only Grok supports false; false disables web search and web fetch tools", and its profile list output includes web_search. A Grok run on a profile with web_search: false has no web search or web fetch tools. Prompts are otherwise unchanged, and nothing changes for profiles left at the default.

Optional Capability Activation & Use

No new optional capability activation is introduced in this release.

Validation

Reported by the pull request: #1313 reports the tests that cover the change (tests/test_api_v1_profiles.py, tests/test_api_v1_profiles_db.py, tests/test_config_v3_export_db.py, tests/test_config_v3_import_db.py, tests/test_profile_web_search_schema_db.py, tests/test_grok_runtime.py, tests/test_grok_acp.py, tests/test_grok_worker_launch.py, tests/test_worker_profile_fallback.py, web/src/components/agent-profiles.test.tsx, web/src/lib/api-profiles.test.ts), automated reviews, and CI before the merge. It does not report a local full suite or the result of the reviews.

CI: CI runs after the release is drafted; its result is not recorded here.

Not tested for this draft: a local full suite, a real Grok run with the flag and the built wheel. The release documentation gate checks the body only.

中文摘要

本版本是 patch release v2.14.172(热修线,每个合并的改动立即发布),说明一项改动:#1313(Grok 运行可按 Agent Profile 关闭网页搜索)。

升级决策

**谁需要升级:**运行 Grok、并希望某个 Agent Profile 的运行没有网页搜索和网页抓取工具的安装。其他安装没有行为上的升级需求。

解决了什么:#1313 为 Agent Profile 增加 web_search 设置,默认 true,行为不变;false 会给 Grok 运行加上 --disable-web-search,其他运行时拒绝该值。

**是否有破坏性变更:**否。新设置是可选开关,现有 profile 都保持 web_search: true。数据库增加一个向后兼容的新列,下次启动时添加(见升级)。桥接边界不变:早于 v2.13.165 的安装须先升级到 v2.13.165。

**如何验证:**核对版本为 2.14.172。

**贡献者:**维护者 @foolzzz 提交 #1313;本版本无社区贡献。

looper --version   # looper 2.14.172

升级

桥接边界不变:早于 v2.13.165 的安装必须先升级到 v2.13.165 并启动一次(upgrade to v2.13.165 first 即先升级到 v2.13.165),步骤与回退见 v2.14.0 发布说明的升级一节。v2.14.0 至 v2.14.171 上的安装可直接升级。首次启动会添加列 agent_profiles.web_search BOOLEAN NOT NULL DEFAULT true(looper/db/connection.py,迁移名 profile_web_search),已有行读取为 true。

行为变化与入口

以下在 #1313 的代码中可见:

  • 新的 profile 设置(looper/agents/profile_registry.py、looper/db/profile_registry.py、looper/db/schema.sql)。Agent Profile 带有 web_search,默认 true。创建和更新时可设置,出现在 profile 的详情和列表中,并受校验:非布尔值被拒绝;运行时类型不是 grok 时 false 被拒绝并给出提示。
  • Grok 命令(looper/agents/runtimes/grok.py、grok_acp.py)。web_search: false 时,headless 和 ACP 的 Grok 命令加上 --disable-web-search,移除 Grok 的网页搜索和网页抓取工具。它不是网络沙箱:shell 命令仍可访问网络。运行的 metadata.command 记录该参数。回退使用目标 profile 自己的设置,该设置也是 profile 设置指纹的一部分(agent_settings.py)。
  • 配置导出与导入(looper/agents/config_transfer.py、looper/db/config_transfer.py)。v3 配置按 profile 携带 web_search;缺少该字段的条目按 true 导入,值变化在与当前 profile 比较时算作变更。
  • API 与面板(looper/agents/v1_domains/*、web/src/components/agent-profiles.tsx)。v1 的 profile 结构接受并返回 web_search。Agent Profiles 表单仅对 Grok 运行时显示「Web search」开关,并提示 shell 命令仍可访问网络;列表会标出「web search off」。切换到非 Grok 运行时会重置为开启。
  • **面向模型的变化:**Manager 的 profile 工具(looper/agents/ops/config.py)在创建和更新时多了布尔参数 web_search,描述为「Default true. Only Grok supports false; false disables web search and web fetch tools」,其 profile 列表输出也包含 web_search。web_search: false 的 profile 上的 Grok 运行没有网页搜索和网页抓取工具。提示词其余部分不变,保持默认值的 profile 不受影响。

可选能力启用与使用

本版本未新增可选能力启用入口。

验证

PR 报告的:#1313 报告了覆盖该改动的测试(tests/test_api_v1_profiles.py、tests/test_api_v1_profiles_db.py、tests/test_config_v3_export_db.py、tests/test_config_v3_import_db.py、tests/test_profile_web_search_schema_db.py、tests/test_grok_runtime.py、tests/test_grok_acp.py、tests/test_grok_worker_launch.py、tests/test_worker_profile_fallback.py、web/src/components/agent-profiles.test.tsx、web/src/lib/api-profiles.test.ts)、自动评审,以及合并前的 CI。未报告本地完整套件,也未报告评审结果。

**CI:**发布草稿后 CI 会运行,其结果未在此记录。

**本次草稿未测试:**本地完整套件、带该参数的真实 Grok 运行以及构建出的 wheel。发布文档 gate 只检查正文。