Skip to main content
rule official · GitHub

agent-safety — GitHub Copilot rule for safer AI agents

This rule sets access controls, policy checks, and audit guidance for code built with AI agents. Use it when implementing tool-calling or multi-agent systems.

Install into GitHub Copilot · Manually: put the files in place All methods and platforms ↓
.github/instructions/agent-safety.instructions.md
Open on GitHub

What agent-safety does

The rule focuses on checks before an agent acts. It calls for an explicit tool allowlist, scans of tool arguments for sensitive data, and human approval for high-impact actions. If a governance check fails or returns an ambiguous result, deny the action. Output-only guardrails come too late to control tool execution.

Policies should live in YAML or JSON configuration rather than being hardcoded. Audit entries stay append-only and record tool calls and violations, without logging user prompts. In multi-agent setups, each agent gets its own policy; delegation applies the more restrictive policy, and an inner agent must not gain broader access than its caller. The rule also gives framework-specific guidance for PydanticAI, CrewAI, OpenAI Agents SDK, LangChain/LangGraph, and AutoGen.

What it helps with

  • restrict the tools an agent can call
  • check tool arguments for credentials and injection patterns
  • require approval before sending email or deleting records
  • apply the stricter policy when agents delegate work
  • audit tool decisions without storing user prompts

Example prompts for the agent

  • Add an explicit tool allowlist to this agent and deny actions when a policy check fails.
  • Check tool arguments for API keys and SQL injection before execution.
  • Give each agent its own policy and apply the stricter one during delegation.

How to install agent-safety

Manually: put the files in place

.github/instructions/agent-safety.instructions.md

The applyTo field sets which files it applies to

Step by step, with commands for each platform: AGENTS.md vs CLAUDE.md: what they are and which one to use

Questions about agent-safety

How do I install agent-safety in GitHub Copilot?

Add the rule file at .github/instructions/agent-safety.instructions.md.

What does agent-safety do?

It provides guidance for controlling agent tool access, checking content and arguments, and auditing decisions. It also covers policy boundaries in multi-agent systems.

How should agent-safety handle delegated agents?

Give each agent a governance policy and apply the more restrictive policy when work is delegated. An inner agent must not have broader permissions than its caller.

Source text

agent-safety.instructions.md · MIT
---
description: 'Guidelines for building safe, governed AI agent systems. Apply when writing code that uses agent frameworks, tool-calling LLMs, or multi-agent orchestration to ensure proper safety boundaries, policy enforcement, and auditability.'
applyTo: '**'
---

# Agent Safety & Governance

## Core Principles

- **Fail closed**: If a governance check errors or is ambiguous, deny the action rather than allowing it
- **Policy as configuration**: Define governance rules in YAML/JSON files, not hardcoded in application logic
- **Least privilege**: Agents should have the minimum tool access needed for their task
- **Append-only audit**: Never modify or delete audit trail entries — immutability enables compliance

## Tool Access Controls

- Always define an explicit allowlist of tools an agent can use — never give unrestricted tool access
- Separate tool registration from tool authorization — the framework knows what tools exist, the policy controls which are allowed
- Use blocklists for known-dangerous operations (shell execution, file deletion, database DDL)
- Require human-in-the-loop approval for high-impact tools (send email, deploy, delete records)
- Enforce rate limits on tool calls per request to prevent infinite loops and resource exhaustion

## Content Safety

- Scan all user inputs for threat signals before passing to the agent (data exfiltration, prompt injection, privilege escalation)
- Filter agent arguments for sensitive patterns: API keys, credentials, PII, SQL injection
- Use regex pattern lists that can be updated without code changes
- Check both the user's original prompt AND the agent's generated tool arguments

## Multi-Agent Safety

- Each agent in a multi-agent system should have its own governance policy
- When agents delegate to other agents, apply the most restrictive policy from either
- Track trust scores for agent delegates — degrade trust on failures, require ongoing good behavior
- Never allow an inner agent to have broader permissions than the outer agent that called it

## Audit & Observability

- Log every tool call with: timestamp, agent ID, tool name, allow/deny decision, policy name
- Log every governance violation with the matched rule and evidence
- Export audit trails in JSON Lines format for integration with log aggregation systems
- Include session boundaries (start/end) in audit logs for correlation

## Code Patterns

When writing agent tool functions:
```python
# Good: Governed tool with explicit policy
@govern(policy)
async def search(query: str) -> str:
    ...

# Bad: Unprotected tool with no governance
async def search(query: str) -> str:
    ...
```

When defining policies:
```yaml
# Good: Explicit allowlist, content filters, rate limit
name: my-agent
allowed_tools: [search, summarize]
blocked_patterns: ["(?i)(api_key|password)\\s*[:=]"]
max_calls_per_request: 25

# Bad: No restrictions
name: my-agent
allowed_tools: ["*"]
```

When composing multi-agent policies:
```python
# Good: Most-restrictive-wins composition
final_policy = compose_policies(org_policy, team_policy, agent_policy)

# Bad: Only using agent-level policy, ignoring org constraints
final_policy = agent_policy
```

## Framework-Specific Notes

- **PydanticAI**: Use `@agent.tool` with a governance decorator wrapper. PydanticAI's upcoming Traits feature is designed for this pattern.
- **CrewAI**: Apply governance at the Crew level to cover all agents. Use `before_kickoff` callbacks for policy validation.
- **OpenAI Agents SDK**: Wrap `@function_tool` with governance. Use handoff guards for multi-agent trust.
- **LangChain/LangGraph**: Use `RunnableBinding` or tool wrappers for governance. Apply at the graph edge level for flow control.
- **AutoGen**: Implement governance in the `ConversableAgent.register_for_execution` hook.

## Common Mistakes

- Relying only on output guardrails (post-generation) instead of pre-execution governance
- Hardcoding policy rules instead of loading from configuration
- Allowing agents to self-modify their own governance policies
- Forgetting to governance-check tool *arguments*, not just tool *names*
- Not decaying trust scores over time — stale trust is dangerous
- Logging prompts in audit trails — log decisions and metadata, not user content

© github · MIT · github/awesome-copilot

Similar IDE rules

Everything for Security →

From the same set732

The whole set →
ansible Sets standards for Ansible playbooks: task naming rules, FQCN module paths, Ansible Vault secret separation, and validation via ansible-lint. ★ 40,418repo stars ai-prompt-engineering-safety-best-practices This rule guides prompt writing with clear context, constraints, and output formats. It also asks developers to consider safety and bias when creating or reviewing prompts. ★ 40,418repo stars agents A rule file that sets the format for GitHub Copilot custom agent files: which frontmatter fields are required, how tools and handoffs work. ★ 40,418repo stars agent-skills Provides guidelines for creating portable Agent Skills for GitHub Copilot. It ensures SKILL.md files follow proper frontmatter formats, directory structures, and workflow layouts. ★ 40,418repo stars secrets-scanner Scans the files a Copilot coding agent touched during a session for leaked keys and credentials before they get committed. Useful when the agent edits code fast. ★ 40,418repo stars dependency-license-checker A GitHub Copilot hook that scans newly added dependencies at session end and flags copyleft licenses before they get committed. ★ 40,418repo stars WG Code Sentinel A GitHub Copilot subagent that reviews code and configs for vulnerabilities and hands you concrete fixes. Useful before a merge or a release. ★ 40,418repo stars Expert Vue.js Frontend Engineer GitHub Copilot subagent specialized in Vue 3, Composition API, TypeScript, and component architecture. Builds frontends, migrates from Vue 2, and optimizes rendering. ★ 40,418repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor