Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/claim-vocabulary-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Claim Vocabulary Check

# AAASM-5798 / AAASM-5599: ADR 0033's banned-absolute and undifferentiated-verb
# rules against this repo's reader-facing Markdown (README, CONTRIBUTING,
# SECURITY, docs/**). Ported from agent-assembly's check_claim_vocabulary.py
# (AAASM-5679) and docs Hub's port (AAASM-5797); per AAASM-5795's
# federation-by-convention decision this repo's copy is independent -- see
# scripts/check_claim_vocabulary.py's own docstring.
#
# Runs where CLAUDE.md's own "Docs-only PRs run NO CI" gap otherwise leaves
# docs/**/*.md and README.md changes with nothing but human review: this repo's
# main ci.yaml path filter excludes docs/** and *.md entirely.
#
# Full-tree, not diff-scoped: the tree's blocking baseline is zero as of this
# same PR (five real findings fixed alongside the port), so per
# claim-vocabulary.md's adoption sequence there is no backlog to work down
# with --diff-base.

on:
pull_request:
paths:
- "README.md"
- "CONTRIBUTING.md"
- "SECURITY.md"
- "docs/**"
- "scripts/check_claim_vocabulary.py"
- ".github/workflows/claim-vocabulary-check.yml"
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
claim-vocabulary:
name: Check for banned-absolute and undifferentiated-verb claims
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.12"

- name: Run the claim-vocabulary self-test
run: python3 scripts/check_claim_vocabulary.py --selftest

- name: Scan for banned-absolute and undifferentiated-verb claims
run: python3 scripts/check_claim_vocabulary.py --root .
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ with init_assembly(

What this does:

1. `init_assembly()` registers the agent with the gateway and auto-loads the LangChain adapter — every tool call from now on goes through the policy gate.
1. `init_assembly()` registers the agent with the gateway and auto-loads the LangChain adapter — each tool call the wrapped agent makes from now on goes through the policy gate.
2. The `FakeListLLM` replays canned responses so the example runs **offline** with no real LLM.
3. The `with` block tears down the gateway connection and unwinds adapter hooks on exit.

Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Two independent knobs control governance. It's worth keeping them straight:
| --- | --- |
| `auto` (default) | Picks the best available layer for the current platform (eBPF on Linux, else proxy). |
| `sdk-only` | In-process only — framework adapters enforce on tool calls; no network sidecar. Most portable; best for tests. |
| `proxy` | Routes outbound traffic through the `aasm` sidecar proxy — network-egress policy with no code changes. |
| `proxy` | Routes outbound traffic through the `aasm` sidecar proxy — network-egress policy without modifying the agent's source. |
| `ebpf` | Kernel-level interception via eBPF. **Linux only** — raises `ConfigurationError` elsewhere. |

### Enforcement modes
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/langchain-basic-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Integrate Agent Assembly with LangChain to enforce governance policy on tool cal

## What this example demonstrates

This example wires Agent Assembly governance into a LangChain agent so that every tool call is checked against policy *before* the tool runs. It covers:
This example wires Agent Assembly governance into a LangChain agent so that each tool call the agent makes is checked against policy *before* the tool runs. It covers:

- Initializing Agent Assembly with `init_assembly()`.
- Wrapping LangChain tools with `AssemblyCallbackHandler` + a governance interceptor.
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/llamaindex-tool-policy.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# LlamaIndex

Integrates Agent Assembly with [LlamaIndex](https://docs.llamaindex.ai/) using the **native `LlamaIndexAdapter`**, so every tool call a LlamaIndex agent makes is governed automatically — no per-tool wrapper.
Integrates Agent Assembly with [LlamaIndex](https://docs.llamaindex.ai/) using the **native `LlamaIndexAdapter`**, so each tool call a LlamaIndex agent makes is governed automatically — no per-tool wrapper.

## What this example demonstrates

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Agent Assembly Python SDK

**In plain terms:** this SDK is how a Python agent asks for permission before it acts.
You wrap your existing agent in one `init_assembly()` call, and from that point on every
You wrap your existing agent in one `init_assembly()` call, and from that point on each
tool call your agent makes is checked against a governance policy — allowed or denied —
without you rewriting a single line of the agent itself. Over a connected runtime the
outcome of each call is also handed to the runtime's event channel (see below).
Expand Down
Loading