Disabled tools can still be called by the agent
维护者通常 1 天内回复
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 79/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- typescript
调研方向
从agent-service/src/agent/texera-agent.ts开始,阅读sendMessage、createTools以及disabledTools的设置处理逻辑。检查涵盖 agent 工具创建或调用的测试,然后验证已禁用的工具不会传递给generateText,或者无法执行。完成标准是:禁用期间,复现步骤不再运行executeOperator。
由索引模型根据 Issue 内容生成。
描述
What happened?
If a tool is in settings.disabledTools, the agent can still call it, and the call still runs.
updateSettings saves disabledTools, and GET /api/agents/:id/system-info shows that tool as enabled: false. But sendMessage gives the model all tools:
const result = await generateText({
...
tools: this.tools,
createTools() never checks disabledTools, so a disabled tool is still given to the model.
Example on main with claude-haiku-4.5. The agent was created with {"settings": {"maxSteps": 5, "disabledTools": ["executeOperator"]}}. system-info showed:
[{"name":"deleteOperator","enabled":true},{"name":"addOperator","enabled":true},
{"name":"modifyOperator","enabled":true},{"name":"executeOperator","enabled":false}]
Prompt: "Add a CSV File Scan operator that reads the file data.csv, then call the executeOperator tool on it to run it." The agent called addOperator, then executeOperator({"operatorId":"op1"}), and the workflow really ran on the backend (it failed with FileNotFoundException, because the file does not exist).
Expected: tools in disabledTools should not be passed to generateText, or should be rejected when called.
Screenshots
Step 2, tool call: the agent calls executeOperator and it runs, even though system-info says enabled: false.

The chat and canvas: the agent added a CSV File Scan, ran it, and reported the error.

How to reproduce?
- Create an agent with
POST /api/agentsand"settings": {"disabledTools": ["executeOperator"]}. (The panel has no switch for this, so use the API.) GET /api/agents/<id>/system-infoshowsexecuteOperatorwithenabled: false.- In the agent panel, send:
Add a CSV File Scan operator that reads the file data.csv, then call the executeOperator tool on it to run it. - Step 2's details show an
executeOperatorcall and its result.
Version/Branch
1.4.0-incubating-SNAPSHOT (main)
Commit Hash (Optional)
57faa6b
What browsers are you seeing the problem on?
Chrome
Relevant log output
agent-service/src/agent/texera-agent.ts sendMessage: generateText({ tools: this.tools }); createTools() does not check settings.disabledTools
- 主要语言
- Scala
- 星标
- 328
- 派生
- 201
- 平均合并
- 3 天 22 小时
- 30 天内合并 PR
- 148
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/texera 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Failed tool calls are marked as succeeded (isError is always false)可能已有人在做 @oliarmak-web 于 8 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 80/100
apache/texera#9120 · 8 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Agent does not see tool errors in its history, so it repeats the same failing call可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
apache/texera#9119 · 3 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
相似的 Issue
-
Python: zadd stringifies bytes/bytearray/memoryview members (silent data corruption), including in Batch可能已有人在做 @prateek-kumar-improving 今天认领。 未关闭bug 🐞 python 🐍
难度 2/5 1-3 小时 新手友好度 62/100
valkey-io/valkey-glide#7521 ·
维护者通常 1 天内回复
-
area:writer enhancement requires-triage
难度 2/5 1-3 小时 新手友好度 62/100
apache/datafusion-comet#7463 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
riscv-boom/riscv-boom#835 ·
-
Add a base64url Stringable helper可能已有人在做 @nafg 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
nafg/simple-router#362 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
propensive/soundness#2351 ·
维护者通常 1 天内回复