Skip to content

feat: ask before destructive or financial calls to env systems - #112

Merged
wxkingstar merged 2 commits into
mainfrom
claude/ai-employee-write-destructive-8a2c5d
Oct 7, 2026
Merged

wxkingstar merged 2 commits into
mainfrom
claude/ai-employee-write-destructive-8a2c5d

Conversation

@wxkingstar

Copy link
Copy Markdown
Owner

Summary

  • Systems whose token is delivered to the runtime (env) cannot be intercepted by the platform: the agent holds the token and can call any operation the speaker is allowed to. Until now the prompt only showed [destructive] / [financial] labels in the catalog without saying what to do with them.
  • When a turn has at least one env system, the business system section now adds ENV_RISK_RULES: before an irreversible (destructive: delete, void, post, reverse) or money-moving (financial: refund, payout) operation, describe the operation, target and effect to the current speaker and run it only after an explicit confirmation in a later message; where nobody can confirm (scheduled runs), explain what should be done instead.
  • Applies whether or not the system has an OpenAPI catalog. Turns with only proxied systems are unchanged, since the proxy already refuses these operations.
  • This is a prompt rule, not enforcement; docs and CHANGELOG say so and point to platform proxy for hard blocking.

No API, migration or runtime node changes. Codex conversations resumed from an earlier turn keep their first system prompt, so the rule reaches them after a reset.

Test plan

  • pytest tests/api/test_systems_catalog.py tests/api/test_systems_proxy.py tests/integration/test_system_access.py tests/unit/test_system_prompt.py (41 passed): env turn includes the rule, proxy-only turn does not
  • ruff check, ruff format --check, mypy on the changed module

🤖 Generated with Claude Code

wxkingstar and others added 2 commits October 7, 2026 23:19
Systems whose token is delivered to the runtime cannot be intercepted by
the platform, so the business system section of the prompt now tells the
agent to describe any irreversible (destructive) or money-moving
(financial) operation, its target and its effect to the current speaker
and run it only after an explicit confirmation in a later message. Where
nobody can confirm, as in scheduled runs, it explains what should be done
instead. Turns with only proxied systems are unchanged, since the proxy
already refuses these operations.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wxkingstar
wxkingstar merged commit d9bf882 into main Oct 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant