← 返回
未分类 中文

Constraint Engine

Learn from consequences, not instructions — generate and enforce constraints from experience
从后果而非指令中学习——基于经验生成与执行约束
leegitw leegitw 来源
未分类 clawhub v1.3.1 1 版本 99852.1 Key: 无需
★ 0
Stars
📥 675
下载
💾 5
安装
1
版本
#agentic#circuit-breaker#constraint#enforcement#guardrails#latest#lifecycle#prevention#rules#self-improving#validation

概述

constraint-engine (制約)

Unified skill for constraint generation, pre-action checking, circuit breaker management,

and constraint lifecycle. Consolidates 7 granular skills into a single enforcement system.

Trigger: 行動前∨閾値到達 (pre-action or threshold reached)

Source skills: constraint-generator, circuit-breaker, emergency-override, constraint-lifecycle, constraint-versioning, positive-framer (partial), contextual-injection (partial)

Installation

openclaw install leegitw/constraint-engine

Dependencies: leegitw/failure-memory (for eligibility data)

# Install with dependencies
openclaw install leegitw/context-verifier
openclaw install leegitw/failure-memory
openclaw install leegitw/constraint-engine

Standalone usage: Requires failure-memory for constraint generation from observations.

For full lifecycle management, install the complete suite (see Neon Agentic Suite).

Data handling: This skill operates within your agent's trust boundary. When triggered,

it uses your agent's configured model for constraint checking and generation. No external APIs

or third-party services are called. Results are written to output/constraints/ in your workspace.

What This Solves

Instructions get ignored. Rules get forgotten. Documentation goes unread. This skill takes a different approach — constraints generated from actual failures:

  1. Generate constraints from observations that meet the eligibility threshold (R≥3 ∧ C≥2)
  2. Enforce constraints at runtime with a circuit breaker (CLOSED → OPEN → HALF-OPEN)
  3. Manage lifecycle from proposal through adoption to retirement

The insight: A constraint born from "this actually broke" carries more weight than "this might break." Consequences teach better than instructions.

Usage

/ce <sub-command> [arguments]

Sub-Commands

CommandCJKLogicTrigger
------------------------------
/ce check検査action→constraints[]→pass∨blockNext Steps (auto)
/ce generate生成eligible(obs)→constraintNext Steps (auto)
/ce status状態active[], circuit∈{CLOSED,OPEN,HALF}Explicit
/ce override上書constraint→bypass(temp), audit.log++Explicit
/ce lifecycle周期state∈{draft→active→retiring→retired}Explicit
/ce version版本constraint→v++, history.preserveExplicit
/ce threshold閾値user∨context→custom_thresholdExplicit

Arguments

/ce check

ArgumentRequiredDescription
---------------------------------
actionYesAction to check against constraints
--severityNoMinimum severity to check: critical, important, minor (default: all)

/ce generate

ArgumentRequiredDescription
---------------------------------
observationYesObservation ID or pattern to generate constraint from
--forceNoGenerate even if eligibility criteria not met

/ce status

ArgumentRequiredDescription
---------------------------------
--circuitNoShow circuit breaker status only
--activeNoShow active constraints only

/ce override

ArgumentRequiredDescription
---------------------------------
constraintYesConstraint ID to override
reasonYesReason for override (logged for audit)
--durationNoOverride duration (default: "session")

/ce lifecycle

ArgumentRequiredDescription
---------------------------------
constraintYesConstraint ID
stateYesTarget state: draft, active, retiring, retired

/ce version

ArgumentRequiredDescription
---------------------------------
constraintYesConstraint ID
--bumpNoVersion bump type: major, minor, patch (default: minor)

/ce threshold

ArgumentRequiredDescription
---------------------------------
--RNoCustom recurrence threshold (default: 3)
--CNoCustom confirmation threshold (default: 2)
--resetNoReset to default thresholds

Configuration

Configuration is loaded from (in order of precedence):

  1. .openclaw/constraint-engine.yaml (OpenClaw standard)
  2. .claude/constraint-engine.yaml (Claude Code compatibility)
  3. Defaults (built-in)
# .openclaw/constraint-engine.yaml
thresholds:
  R: 3                       # Recurrence threshold (default: 3)
  C: 2                       # Confirmation threshold (default: 2)
  false_positive_max: 0.2    # Max D/(C+D) ratio (default: 0.2)
circuit_breaker:
  critical_threshold: 3      # Violations to trip for CRITICAL
  important_threshold: 5     # Violations to trip for IMPORTANT
  minor_threshold: 10        # Violations to trip for MINOR
  window_days: 30            # Violation window (default: 30 days)
lifecycle:
  review_reminder_days: 80   # Days before 90-day review to remind

Core Logic

Eligibility Criteria

Observation becomes eligible for constraint when:

R≥3 ∧ C≥2 ∧ D/(C+D)<0.2 ∧ sources≥2
CriterionMeaning
--------------------
R≥3At least 3 recurrences
C≥2At least 2 human confirmations
D/(C+D)<0.2False positive rate under 20%
sources≥2Observed by at least 2 different sources

Positive Reframing

Constraints are automatically reframed positively:

NegativePositive
--------------------
"Don't commit without tests""Always run tests before commit"
"Don't push to main directly""Always create PR for main changes"
"Don't deploy without review""Always get code review before deployment"
"Don't skip migrations""Always run database migrations before release"

Example: Code Review Constraint

[CHECK BLOCKED] deploy production
Constraint violated: CON-20260212-005
  "Always get code review approval before production deployment"
  Severity: CRITICAL

Action: Request review via /ro twin, then retry deployment.

Example: Deployment Gate Constraint

[CHECK PASSED] deploy staging
Active constraints checked: 3
  ✓ CON-20260210-001: Tests pass
  ✓ CON-20260211-002: Staging smoke test
  ✓ CON-20260212-003: Database migration verified
All constraints satisfied. Proceeding to staging.

Circuit Breaker States

StateMeaningBehavior
--------------------------
CLOSEDNormal operationConstraints enforced
OPENCircuit trippedBlock all related actions
HALF-OPENTesting recoveryAllow limited actions

Circuit Breaker Thresholds

SeverityThresholdWindow
-----------------------------
CRITICAL3 violations30 days
IMPORTANT5 violations30 days
MINOR10 violations30 days

Constraint Lifecycle

draft → active → retiring → retired
  │        │         │
  └────────┴─────────┴── 90-day review gates

Output

/ce check output (pass)

[CHECK PASSED] git commit -m "feature"
Active constraints checked: 5
All constraints satisfied.

/ce check output (block)

[CHECK BLOCKED] git commit -m "feature"

Constraint violated: CON-20260210-001
  "Always run tests before commit"
  Severity: CRITICAL

Action: Run tests first, then retry commit.
Override: /ce override CON-20260210-001 "emergency hotfix"

/ce status output

=== Constraint Engine Status ===

Circuit Breaker: CLOSED (healthy)

Active Constraints (5):
- CON-20260210-001: Always run tests before commit [CRITICAL]
- CON-20260212-003: Always lint before commit [IMPORTANT]
- ...

Draft Constraints (2):
- CON-20260215-001: Pending approval

Violations (30d): 2

/ce generate output

[CONSTRAINT GENERATED]

From: OBS-20260210-003 (lint-before-commit)
ID: CON-20260215-001
Text: "Always run lint before commit"
Severity: IMPORTANT
Status: draft

Next: Review and approve with /ce lifecycle CON-20260215-001 active

Integration

  • Layer: Core
  • Depends on: failure-memory (for eligibility data)
  • Used by: governance (for constraint reviews), safety-checks (for enforcement)

Failure Modes

ConditionBehavior
---------------------
Invalid sub-commandList available sub-commands
Constraint not foundError with suggestion to search
Ineligible observationShow missing criteria, suggest /fm status
Circuit OPENBlock action, show recovery guidance
Override without reasonRequire reason for audit trail

Next Steps

After invoking this skill:

ConditionAction
-------------------
Constraint generatedAdd to output/constraints/draft/, notify user
Constraint activatedMove to output/constraints/active/
Action blockedLog to output/hooks/blocked.log, explain why
Circuit OPENSurface to user with recovery guidance
Override usedAudit log entry, temporary bypass only

Workspace Files

This skill reads/writes:

output/
├── constraints/
│   ├── draft/           # Pending constraints
│   │   └── CON-YYYYMMDD-XXX.md
│   ├── active/          # Enforced constraints
│   │   └── CON-YYYYMMDD-XXX.md
│   ├── retired/         # Historical constraints
│   │   └── CON-YYYYMMDD-XXX.md
│   └── metadata.json    # VFM scoring data
└── hooks/
    └── blocked.log      # Actions blocked by constraints

Security Considerations

What this skill accesses:

  • Configuration files in .openclaw/constraint-engine.yaml and .claude/constraint-engine.yaml
  • Observation data from failure-memory (via .learnings/ directory)
  • Its own output directories output/constraints/ and output/hooks/

What this skill does NOT access:

  • Files outside declared workspace paths
  • System environment variables
  • Network resources or external APIs

What this skill does NOT do:

  • Send data to external services
  • Execute arbitrary code
  • Modify files outside its workspace

Dependency note:

This skill reads observation data from failure-memory skill's workspace (.learnings/).

Install leegitw/failure-memory for full constraint generation functionality.

Without failure-memory, constraint generation will have no observation data to process.

Audit logging:

Override actions are logged to output/hooks/blocked.log for audit purposes.

Logs are stored locally in the workspace only.

Acceptance Criteria

  • [ ] /ce check validates action against active constraints
  • [ ] /ce check blocks when constraint violated, shows reason
  • [ ] /ce generate creates constraint from eligible observation
  • [ ] /ce generate applies positive reframing
  • [ ] /ce status shows circuit breaker state and active constraints
  • [ ] /ce override creates temporary bypass with audit log
  • [ ] /ce lifecycle transitions constraint through states
  • [ ] /ce version increments constraint version preserving history
  • [ ] Circuit breaker trips at severity-appropriate thresholds
  • [ ] Workspace files follow documented structure

Consolidated from 7 skills as part of agentic skills consolidation (2026-02-15).

版本历史

共 1 个版本

  • v1.3.1 当前
    2026-03-29 18:54 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

Find Skills

guipi888
场景驱动+关键词双模式技能发现工具。当用户用自然语言描述场景/需求(如"我想做一个海报""帮我分析股票"),或明确说"安装技能/find skills/找个skill"时,自动从官方内置、本地已安装、SkillHub、虾评、GitHub、C
★ 1,474 📥 538,871
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,398 📥 323,184
ai-agent

self-improving agent

pskoett
捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身
★ 4,110 📥 832,741