open-gitagent / gitagent
A framework-agnostic, git-native standard for defining AI agents
README
gitagent | your repository becomes your agent
A framework-agnostic, git-native standard for defining AI agents. Clone a repo, get an agent.
Why
Every AI framework has its own structure. There's no universal, portable way to define an agent that works across Claude Code, OpenAI, LangChain, CrewAI, and AutoGen. gitagent fixes that.
- Git-native โ Version control, branching, diffing, and collaboration built in
- Framework-agnostic โ Export to any framework with adapters
- Compliance-ready โ First-class support for FINRA, Federal Reserve, SEC, and segregation of duties
- Composable โ Agents can extend, depend on, and delegate to other agents
The Standard
Your repository becomes your agent. Drop these files into any git repo and it becomes a portable, framework-agnostic agent definition โ everything else (CLI, adapters, patterns) builds on top of it.
my-agent/
โ
โ # โโ Core Identity (required) โโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ agent.yaml # Manifest โ name, version, model, skills, tools, compliance
โโโ SOUL.md # Identity, personality, communication style, values
โ
โ # โโ Behavior & Rules โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ RULES.md # Hard constraints, must-always/must-never, safety boundaries
โโโ DUTIES.md # Segregation of duties policy and role boundaries
โโโ AGENTS.md # Framework-agnostic fallback instructions
โ
โ # โโ Capabilities โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ skills/ # Reusable capability modules (SKILL.md + scripts)
โ โโโ code-review/
โ โโโ SKILL.md
โ โโโ review.sh
โโโ tools/ # MCP-compatible tool definitions (YAML schemas)
โโโ workflows/ # Multi-step procedures/playbooks
โ
โ # โโ Knowledge & Memory โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ knowledge/ # Reference documents the agent can consult
โโโ memory/ # Persistent cross-session memory
โ โโโ runtime/ # Live agent state (dailylog.md, context.md)
โ
โ # โโ Lifecycle & Ops โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ hooks/ # Lifecycle event handlers (bootstrap.md, teardown.md)
โโโ config/ # Environment-specific overrides
โโโ compliance/ # Regulatory compliance artifacts
โ
โ # โโ Composition โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ agents/ # Sub-agent definitions (recursive structure)
โ โโโ fact-checker/
โ โโโ agent.yaml
โ โโโ SOUL.md
โ โโโ DUTIES.md # This agent's role, permissions, boundaries
โโโ examples/ # Calibration interactions (few-shot)
โ
โ # โโ Runtime โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ .gitagent/ # Runtime state (gitignored)
Only two files are required: agent.yaml (the manifest) and SOUL.md (the identity). Everything else is optional โ add what you need, ignore the rest.
Patterns
These are the architectural patterns that emerge when you define agents as git-native file systems.
Human-in-the-Loop for RL Agents
When an agent learns a new skill or writes to memory, it opens a branch + PR for human review before merging.
Segregation of Duties (SOD)
No single agent should control a critical process end-to-end. Define roles (maker, checker, executor, auditor), a conflict matrix (which roles can't be the same agent), and handoff workflows โ all in agent.yaml + DUTIES.md. The validator catches violations before deployment.
compliance:
segregation_of_duties:
roles:
- id: maker
description: Creates proposals
permissions: [create, submit]
- id: checker
description: Reviews and approves
permissions: [review, approve, reject]
conflicts:
- [maker, checker] # maker cannot approve own work
assignments:
loan-originator: [maker]
credit-reviewer: [checker]
handoffs:
- action: credit_decision
required_roles: [maker, checker]
approval_required: true
enforcement: strict
Live Agent Memory
The memory/ folder holds a runtime/ subfolder where agents write live knowledge โ dailylog.md, key-decisions.md, and context.md โ persisting state across sessions.
Agent Versioning
Every change to your agent is a git commit. Roll back broken prompts, revert bad skills, and explore past versions โ full undo history for your agent.
Shared Context & Skills via Monorepo
Root-level context.md, skills/, tools/ are automatically shared across every agent in the monorepo. No duplication, one source of truth.
Branch-based Deployment
Use git branches (dev โ staging โ main) to promote agent changes through environments, just like shipping software.
Knowledge Tree
The knowledge/ folder stores entity relationships as a hierarchical tree with embeddings, letting agents reason over structured data at runtime.
Agent Forking & Remixing
Fork any public agent repo, customize its SOUL.md, add your own skills, and PR improvements back upstream โ open-source collaboration for AI agents.
CI/CD for Agents
Run gitagent validate on every push via GitHub Actions. Test agent behavior in CI, block bad merges, and auto-deploy โ treat agent quality like code quality.
Agent Diff & Audit Trail
git diff shows exactly what changed between agent versions. git blame traces every line to who wrote it and when โ full traceability out of the box.
Tagged Releases
Tag stable agent versions like v1.1.0. Pin production to a tag, canary new versions on staging, and roll back instantly if something breaks.
Secret Management via .gitignore
Agent tools that need API keys read from a local .env file โ kept out of version control via .gitignore. Agent config is shareable, secrets stay local.
Agent Lifecycle with Hooks
Define bootstrap.md and teardown.md in the hooks/ folder to control what an agent does on startup and before it stops.
SkillsFlow
Deterministic, multi-step workflows defined in workflows/ as YAML. Chain skill:, agent:, and tool: steps with depends_on ordering, ${{ }} template data flow, and per-step prompt: overrides. Every run follows the same path โ no LLM discretion on execution order.
name: code-review-flow
description: Full code review pipeline
triggers:
- pull_request
steps:
lint:
skill: static-analysis
inputs:
path: ${{ trigger.changed_files }}
review:
agent: code-reviewer
depends_on: [lint]
prompt: |
Focus on security and performance.
Flag any use of eval() or raw SQL.
inputs:
findings: ${{ steps.lint.outputs.issues }}
test:
tool: bash
depends_on: [lint]
inputs:
command: "npm test -- --coverage"
report:
skill: review-summary
depends_on: [review, test]
conditions:
- ${{ steps.review.outputs.severity != 'none' }}
inputs:
review: ${{ steps.review.outputs.comments }}
coverage: ${{ steps.test.outputs.report }}
error_handling:
on_failure: notify
channel: "#eng-reviews"
Porting Framework Agents to GitAgent
Agents built in frameworks like NVIDIA AIQ, LangGraph, or CrewAI have their identity split across config files, Jinja2 templates, and Python code. gitagent extracts the identity layer โ prompts, rules, roles, tool schemas โ into a portable, versionable format.
What ports cleanly: system prompts, persona definitions, hard constraints, tool schemas, role/SOD policies, model preferences.
What stays in the framework: runtime orchestration (state machines, graph wiring), live tool execution, memory I/O, iterative loops.
This pattern is demonstrated with NVIDIA's AIQ Deep Researcher โ a 3-agent hierarchy (orchestrator โ planner โ researcher) that produces cited research reports. The gitagent version captures the agent's identity, rules, and SOD policy so you can:
- Fork for a new domain โ edit
SOUL.mdfor legal/medical/finance research without touching Python - Version prompts independently โ
git diffwhen the orchestrator's style regresses - Validate SOD โ
gitagent validate --complianceensures the orchestrator can't also be the researcher - Export to other runtimes โ same identity on Claude Code, OpenAI, or as a raw system prompt
examples/nvidia-deep-researcher/
โโโ agent.yaml # Manifest + SOD policy
โโโ SOUL.md # Orchestrator identity (from orchestrator.j2)
โโโ RULES.md # Citation rules, report constraints
โโโ DUTIES.md # Role separation: orchestrator โ planner โ researcher
โโโ agents/planner/ # Planner sub-agent (from planner.j2)
โโโ agents/researcher/ # Researcher sub-agent (from researcher.j2)
โโโ skills/{web,paper,knowledge}-search/
โโโ tools/*.yaml # MCP-compatible tool schemas
โโโ config/ # Model assignments per environment
See examples/nvidia-deep-researcher/ for the full working example.
Quick Start
# Install
npm install -g gitagent
# Create a new agent
gitagent init --template standard
# Validate
gitagent validate
# View agent info
gitagent info
# Export to system prompt
gitagent export --format system-prompt
agent.yaml
The only file with a strict schema. Minimal example:
spec_version: "0.1.0"
name: my-agent
version: 0.1.0
description: A helpful assistant agent
Full example with compliance:
spec_version: "0.1.0"
name: compliance-analyst
version: 1.0.0
description: Financial compliance analysis agent
model:
preferred: claude-opus-4-6
compliance:
risk_tier: high
frameworks: [finra, federal_reserve, sec]
supervision:
human_in_the_loop: always
kill_switch: true
recordkeeping:
audit_logging: true
retention_period: 7y
immutable: true
model_risk:
validation_cadence: quarterly
ongoing_monitoring: true
segregation_of_duties:
roles:
- id: analyst
permissions: [create, submit]
- id: reviewer
permissions: [review, approve, reject]
conflicts:
- [analyst, reviewer]
assignments:
compliance-analyst: [analyst]
fact-checker: [reviewer]
enforcement: strict
CLI Commands
| Command | Description |
|---|---|
gitagent init [--template] |
Scaffold new agent (minimal, standard, full) |
gitagent validate [--compliance] |
Validate against spec and regulatory requirements |
gitagent info |
Display agent summary |
gitagent export --format <fmt> |
Export to other formats (see adapters below) |
gitagent import --from <fmt> <path> |
Import (claude, cursor, crewai) |
gitagent run <source> --adapter <a> |
Run an agent from a git repo or local directory |
gitagent install |
Resolve and install git-based dependencies |
gitagent audit |
Generate compliance audit report |
gitagent skills <cmd> |
Manage skills (search, install, list, info) |
gitagent lyzr <cmd> |
Manage Lyzr agents (create, update, info, run) |
Compliance
gitagent has first-class support for financial regulatory compliance:
FINRA
- Rule 3110 โ Supervision: human-in-the-loop, escalation triggers, kill switch
- Rule 4511 โ Recordkeeping: immutable audit logs, retention periods, SEC 17a-4 compliance
- Rule 2210 โ Communications: fair/balanced enforcement, no misleading statements
- Reg Notice 24-09 โ Existing rules apply to GenAI/LLMs
Federal Reserve
- SR 11-7 โ Model Risk Management: validation cadence, ongoing monitoring, outcomes analysis
- SR 23-4 โ Third-Party Risk: vendor due diligence, SOC reports, subcontractor assessment
SEC / CFPB
- Reg S-P โ Customer privacy, PII handling
- CFPB Circular 2022-03 โ Explainable adverse action, Less Discriminatory Alternative search
Segregation of Duties
- Roles & Permissions โ Define maker, checker, executor, auditor roles with controlled permissions
- Conflict Matrix โ Declare which role pairs cannot be held by the same agent
- Handoff Workflows โ Require multi-agent participation for critical actions (credit decisions, regulatory filings)
- Isolation โ Full state and credential segregation between roles
- DUTIES.md โ Root-level policy + per-agent role declarations
- Enforcement โ Strict (blocks deployment) or advisory (warnings only)
Inspired by Salient AI's purpose-built agent architecture and the FINOS AI Governance Framework.
Run gitagent audit for a full compliance checklist against your agent configuration.
Adapters
Adapters are used by both export and run. Available adapters:
| Adapter | Description |
|---|---|
system-prompt |
Concatenated system prompt (works with any LLM) |
claude-code |
Claude Code compatible CLAUDE.md |
openai |
OpenAI Agents SDK Python code |
crewai |
CrewAI YAML configuration |
lyzr |
Lyzr Studio agent |
github |
GitHub Actions agent |
git |
Git-native execution (run only) |
openclaw |
OpenClaw format |
nanobot |
Nanobot format |
# Export to system prompt
gitagent export --format system-prompt
# Run an agent directly
gitagent run ./my-agent --adapter lyzr
Inheritance & Composition
# Extend a parent agent
extends: https://github.com/org/base-agent.git
# Compose with dependencies
dependencies:
- name: fact-checker
source: https://github.com/org/fact-checker.git
version: ^1.0.0
mount: agents/fact-checker
Examples
See the examples/ directory:
examples/minimal/โ 2-file hello world (agent.yaml + SOUL.md)examples/standard/โ Code review agent with skills, tools, and rulesexamples/full/โ Production compliance agent with all directories, hooks, workflows, sub-agents, SOD with DUTIES.md, and regulatory artifactsexamples/gitagent-helper/โ Helper agent that assists with creating gitagent definitionsexamples/lyzr-agent/โ Example Lyzr Studio integration
Specification
Full specification at spec/SPECIFICATION.md.
JSON Schemas for validation at spec/schemas/.
Star History
Built with gitagent?
If you've built an agent using gitagent, we'd love to hear about it! Open a discussion or add a gitagent topic to your repo.
License
MIT
