Skip to main content

🧬 Agenomics

Genetics for AI Agents — predictability and compatibility scoring for autonomous agent personalities.

License Python Status PyPI

Автор: Dm.Andreyanov Версия: 0.7.1 Связанные проекты: Prizolov Lab / Agent Genome Mapping (AGM)

📐 Формальная спецификация конвейера (Genome → Genome Schema → Phenotype → Trust Model → Compatibility Model → Drift Model → Observed Behaviour → Evolution/Mutation) — docs/SPECIFICATION.md. Воспроизводимый бенчмарк внутренней согласованности формул (не путать с валидацией против реальных инцидентов) — benchmark/README.md. 🚀 Хотите подключить реального агента и начать собирать данные для Incident Correlation? — docs/CONNECT_YOUR_AGENTS.md (15 минут).

⚠️ Методология следует semver 0.x — до релиза 1.0.0 обратная совместимость API не гарантируется между minor-версиями. Между 0.2 и 0.3 уже менялась сигнатура TrustScorer() (добавлены параметры).


Что это

Agenomics — методология и open-source инструментарий для оценки предсказуемости личности ИИ-агента и его совместимости с другими агентами в команде, построенные на биологической метафоре генома.

В отличие от существующих подходов к «доверию к ИИ-агентам» (криптографическая идентичность, лимиты трат, блокчейн-подписи — см. Agent Passport Standard, AgenticTrust и др.), Agenomics фокусируется на другом вопросе:

Не «можно ли доверить агенту деньги», а «предсказуемо ли ведёт себя личность агента, и уживётся ли она с другими агентами в команде».

Ключевая идея

Каждый агент описывается геномом — структурированным набором параметров:

  • cognitive_genes — как агент мыслит (глубина рассуждений, креативность, риск-толерантность)
  • ethics_genes — какие ограничения соблюдает (bias threshold, hard constraints)
  • social_genes — как взаимодействует (стиль общения, разрешение конфликтов)
  • meta_genes — как эволюционирует (скорость мутации, критерий отбора)

На основе генома вычисляется:

  1. Trust Score (0–100) — итоговая оценка предсказуемости и безопасности агента с учётом критичности домена (Impact Tier) и уровня автономности
  2. Compatibility Score — насколько хорошо два и более агентов сработаются в одной команде

Полная формула, таблица маппинга «поле генома → ось» и объяснение шкал — в docs/METHODOLOGY.md.

Быстрый старт

pip install agenomics
from agenomics import TrustScorer, AgentGenome

genome = AgentGenome(
    id="cashflow-predictor-v1",
    domain="finance",
    autonomy="autonomous",  # "advisory" | "autonomous"
    transparency=70,
    bias_control=85,
    data_safety=90,
    drift_rate=0.05,
    has_ledger=True,
)

scorer = TrustScorer()  # или TrustScorer(weight_profile="finance")
result = scorer.score(genome)

print(result.score)             # 0-100
print(result.label)             # Trusted / Conditional / High Risk
print(result.confidence)        # High / Medium / Low — НЕ то же самое, что score
print(result.breakdown)         # разбивка по 5 осям
print(result.capped_reason)     # если применён потолок автономности
print(result.attribution)       # ссылка на методологию/автора

Значения bias_control, transparency, data_safety и т.д. должны быть в диапазоне [0, 100], drift_rate — в [0.0, 1.0]. Значения вне диапазона вызывают ValueError уже на этапе создания AgentGenome.

Мультиязычность (v0.4.3)

from agenomics import TrustScorer, trust_report

result_en = TrustScorer(language="en").score(genome)  # recommendations/capped_reason на английском
print(trust_report(result_en, agent_id="cashflow-predictor-v1", language="en"))

Поддерживаются "ru" (по умолчанию) и "en" — список в SUPPORTED_LANGUAGES. trust_report_docx() принимает тот же параметр.

Настраиваемые профили весов (v0.3)

from agenomics import TrustScorer, TRUST_WEIGHT_PROFILES

print(list(TRUST_WEIGHT_PROFILES.keys()))
# ['default', 'healthcare', 'finance', 'content']

scorer = TrustScorer(weight_profile="healthcare")  # DataSafety весит больше
# или произвольные веса (должны суммироваться в 1.0):
scorer = TrustScorer(weights={"transparency": 0.4, "bias_control": 0.3, "data_safety": 0.1, "predictability": 0.1, "accountability": 0.1})

Compatibility Scorer — совместимость команды агентов

from agenomics import AgentGenome, CompatibilityScorer

sales_agent = AgentGenome(
    id="recommendation-agent",
    bias_control=80, risk_tolerance=50, social_style=15, has_ledger=False,
)
support_agent = AgentGenome(
    id="support-agent",
    bias_control=82, risk_tolerance=50, social_style=90, has_ledger=True,
)

result = CompatibilityScorer().score_pair(sales_agent, support_agent)
print(result.score)              # 0-100
print(result.breakdown)          # разбивка по 4 осям
print(result.confidence)         # High / Medium / Low
print(result.capped_reason)      # если сработал потолок из-за этического конфликта

# Для команды из 3+ агентов:
team_result = CompatibilityScorer().score_team([sales_agent, support_agent])
print(team_result.average_score)
print(team_result.weakest_pair)  # самое слабое звено команды

Роли агентов (v0.3) — различие не всегда плохо

reviewer = AgentGenome(id="reviewer", role="reviewer", bias_control=85, risk_tolerance=10, social_style=50)
executor = AgentGenome(id="executor", role="executor", bias_control=85, risk_tolerance=90, social_style=50)

result = CompatibilityScorer().score_pair(reviewer, executor)
print(result.complementary_roles)         # True
print(result.breakdown["risk_tolerance"]) # 100.0 — разница риск-толерантности не штрафуется,
                                           # т.к. это осознанный дизайн (осторожный ревьюер
                                           # при рискованном исполнителе), а не конфликт

Множественный domain — гибкий Tier

# Агент поддержки, который иногда обрабатывает возвраты денег —
# Tier берётся как максимум (самый строгий) среди всех доменов.
genome = AgentGenome(id="support-refunds", domains=["support", "finance"])
print(genome.tier)  # ImpactTier.TIER_3

Phenotype (v0.5.0) — геном + контекст = выраженные признаки

from agenomics import compute_phenotype, describe_genome_schema

# Одинаковый geном в разном контексте (Tier) даёт разный Phenotype —
# см. полную формализацию в docs/SPECIFICATION.md
pheno = compute_phenotype(genome)
print(pheno.expressed_traits)  # tier-adjusted значения осей, до весов Trust Model

# Machine-readable описание допустимых полей AgentGenome:
describe_genome_schema()

DriftMonitor v2 (v0.6.0) — точнее обнаруживает деградацию

from agenomics import DriftMonitorV2

monitor = DriftMonitorV2()
for score in [88, 88, 88, 85, 82, 78, 74]:  # слабая, но устойчивая деградация
    monitor.record("support-bot", score)
report = monitor.report("support-bot")
print(report.severity)  # 'mild'/'moderate'/... — v1 не обнаруживал такое вовсе
print(report.recovered)  # True, если ранее была тревога, а сейчас её нет

Real-World Evaluation Layer (v0.6.0) — связь Declared Score с реальностью

from agenomics import RealWorldEvaluationLayer, Incident, IncidentSeverity

layer = RealWorldEvaluationLayer(min_observations=10)
layer.record_observation("support-bot", trust_result, incidents=[])
layer.record_observation("support-bot", trust_result_2, incidents=[Incident("...", IncidentSeverity.MODERATE)])
# ... накопите 10+ реальных наблюдений ...

report = layer.trust_reality_report("support-bot")
print(report.status)       # "insufficient_data" пока не накоплено достаточно
print(report.correlation)  # реальная (не синтетическая!) корреляция Declared Score ↔ инциденты

Это первая инфраструктура, делающая метрику Incident Correlation из benchmark/ вычислимой на настоящих данных — раньше она была принципиально not_computable из-за отсутствия единой точки сбора.

Evidence Store (v0.7.0) — персистентность поверх Real-World Evaluation Layer

from agenomics import EvidenceStore, replay_into_evaluation_layer, RealWorldEvaluationLayer

# Записываем наблюдения — переживают перезапуск процесса (SQLite, stdlib)
store = EvidenceStore("agenomics_evidence.db")
store.record_observation("support-bot", declared_score=85, declared_label="Trusted", genome_hash="abc123")
store.export_json("export.json")  # или export_csv(...)

# ...после перезапуска процесса — свежий, пустой RealWorldEvaluationLayer:
layer = RealWorldEvaluationLayer(min_observations=10)
replay_into_evaluation_layer(store, layer, "support-bot")  # восстанавливает историю с диска
print(layer.trust_reality_report("support-bot"))

EvidenceStore не заменяет RealWorldEvaluationLayer — дополняет его персистентностью, которой ему честно не хватало с v0.6.0. Схема хранения следует протоколу AEP-001.

Confidence на уровне гена (v0.7.1)

genome = AgentGenome(
    id="x", bias_control=80, data_safety=90,
    axis_confidence={"bias_control": 0.4},  # уверены в data_safety, не уверены в bias_control
)
result = TrustScorer().score(genome)
print(result.axis_confidence)  # {'bias_control': 0.4, 'data_safety': 1.0, ...}

Влияет только на confidence/confidence_ratio, не на сам score.

Per-Axis Drift Monitor (v0.7.1) — какая именно ось деградирует

from agenomics import PerAxisDriftMonitor

monitor = PerAxisDriftMonitor()
for breakdown in history_of_breakdowns:  # список TrustResult.breakdown во времени
    monitor.record("support-bot", breakdown)

print(monitor.weakest_axis("support-bot"))  # например, 'bias_control' — не просто общий score

Team Compatibility Heatmap (v0.7.1)

from agenomics import build_compatibility_matrix, render_heatmap_svg

matrix = build_compatibility_matrix([alice, bob, carol, dave])
print(matrix.weakest_pair)  # например, ('alice', 'dave', 50.0) — сразу видно, кто конфликтует
svg = render_heatmap_svg(matrix)  # готовое SVG-изображение

Веб-API

Методология доступна и как HTTP-API — POST /score и POST /compatibility. Конфиг для самостоятельного деплоя (например, на Amvera) — amvera.yml. Замените <ваш-адрес-развёртывания> на реальный адрес после деплоя:

curl -X POST https://<ваш-адрес-развёртывания>/compatibility \
  -H "Content-Type: application/json" \
  -d '{
        "agents": [
          {"id": "sales", "bias_control": 80, "risk_tolerance": 50, "social_style": 15},
          {"id": "support", "bias_control": 82, "risk_tolerance": 50, "social_style": 90}
        ]
      }'

Для кого: Команды, которые хотят автоматизировать аудит в CI/CD или дашборде.

Модули v0.4

Семь дополнительных модулей, расширяющих ядро (Trust Score + Compatibility Score):

Drift Monitor — тренд Trust Score во времени

from agenomics import DriftMonitor

monitor = DriftMonitor()
monitor.record("cashflow-bot", score=88)
monitor.record("cashflow-bot", score=75)
monitor.record("cashflow-bot", score=62)
report = monitor.report("cashflow-bot")
print(report.trend, report.alert)  # 'degrading', True

Incident Feedback — Observed Score на основе реальных инцидентов

from agenomics import IncidentFeedback, Incident, IncidentSeverity

feedback = IncidentFeedback()
result = feedback.apply(
    declared_score=88, declared_label="Trusted",
    incidents=[Incident("Слил email клиента", IncidentSeverity.SEVERE)],
)
print(result.observed_score, result.observed_label)  # 63.0, 'Conditional'

Genome Ledger — хэш-цепочка записей аудита

from agenomics import GenomeLedger

ledger = GenomeLedger()
entry = ledger.record(genome, TrustScorer().score(genome))
print(ledger.verify_integrity())  # True

Genome Matchmaker — подбор оптимальной команды

from agenomics import GenomeMatchmaker

match = GenomeMatchmaker().best_team(candidates=[alice, bob, carol], roles=["reviewer", "executor"])
print(match.assignment, match.team_result.average_score)

Chain Risk Aggregator — риск последовательного пайплайна

from agenomics import ChainRiskAggregator

result = ChainRiskAggregator().score_chain([extract_agent, transform_agent, load_agent])
print(result.chain_reliability)  # произведение, не среднее — ниже, чем ожидалось бы

Prompt-to-Genome Extractor — автоматическое извлечение генома из промпта

Библиотека не делает сетевых вызовов сама — вы передаёте функцию вызова своей LLM (Claude/GPT/любой другой):

from agenomics import PromptToGenomeExtractor

def call_my_llm(prompt: str) -> str:
    return my_llm_client.complete(prompt)  # ваша интеграция

extractor = PromptToGenomeExtractor(llm_call=call_my_llm)
genome = extractor.extract(agent_id="support-bot", system_prompt="...")

Reports — готовые отчёты (Markdown и Word)

from agenomics import trust_report, compatibility_report

print(trust_report(result, agent_id="support-bot"))

Для брендированного Word-документа (шапка Prizolov Lab, прогресс-бары по осям, карточки рекомендаций с «как сделать») — установите опциональную зависимость и используйте trust_report_docx():

pip install agenomics[docx]
from agenomics import trust_report_docx

trust_report_docx(result, agent_id="support-bot", output_path="report.docx")

Подробности и ограничения каждого модуля — в docs/METHODOLOGY.md.

Структура репозитория

agenomics/
├── agenomics/
│   ├── trust_score.py       # AgentGenome, TrustScorer
│   ├── compatibility.py     # CompatibilityScorer
│   ├── phenotype.py          # Genome Schema, Phenotype (SPECIFICATION.md)
│   ├── evaluation.py          # Real-World Evaluation Layer (v0.6.0)
│   ├── evidence.py             # Evidence Store — персистентность, SQLite (v0.7.0), схема AEP-001 (v0.7.1)
│   ├── per_axis_drift.py         # Per-Axis Drift Monitor (v0.7.1)
│   ├── heatmap.py                 # Team Compatibility Heatmap (v0.7.1)
│   ├── drift.py                # Drift Monitor
│   ├── feedback.py              # Incident Feedback Loop
│   ├── ledger.py                  # Genome Ledger
│   ├── matchmaker.py               # Genome Matchmaker
│   ├── chain.py                      # Chain Risk Aggregator
│   ├── extractor.py                   # Prompt-to-Genome Extractor
│   ├── reports.py                      # Markdown/DOCX-отчёты
│   └── api.py                           # веб-API (FastAPI)
├── benchmark/                # Synthetic Benchmark Suite + Evidence Quality (sensitivity.py),
│                              # репо-инструмент, НЕ входит в pip-пакет — см. benchmark/README.md
├── prompts/                 # системные промпты (Trust Auditor и др.)
├── docs/                     # SPECIFICATION.md, METHODOLOGY.md
├── tests/                     # тесты (145+)
├── .github/workflows/          # CI — тесты запускаются на каждый push/PR
├── amvera.yml                   # конфиг деплоя веб-API на Amvera
├── requirements.txt               # зависимости для ЗАПУСКА (тесты, FastAPI/uvicorn)
├── pyproject.toml                  # метаданные пакета для PyPI (ядро — без внешних зависимостей)
├── CHANGELOG.md                     # история версий
└── CONTRIBUTING.md                   # как предложить изменения

Почему requirements.txt и pyproject.toml — не дублирование

Это может выглядеть избыточным, поэтому явно: pyproject.toml описывает только сам пакет agenomics, который ставится через pip install agenomics — у ядра библиотеки нет внешних зависимостей, кроме стандартной библиотеки Python. requirements.txt нужен для запуска этого репозитория — тестов (pytest) и веб-API (fastapi, uvicorn), в том числе через amvera.yml → build.requirementsPath. Если вы просто ставите пакет через pip — requirements.txt вам не нужен.

Методология

Полное описание методологии, формула, таблица маппинга «поле генома → ось», объяснение шкал (social_style, risk_tolerance) и диапазоны валидации — в docs/METHODOLOGY.md.

Roadmap

  • v0.1 — формула Trust Score, Tier-множитель, потолок автономности
  • v0.1 — промпт Trust Auditor (см. prompts/)
  • v0.2 — Compatibility Scorer между несколькими агентами
  • v0.2 — веб-API (/score, /compatibility) на Amvera
  • v0.2 — публикация пакета на PyPI
  • v0.3 — настраиваемые профили весов (healthcare/finance/content/safety_critical)
  • v0.3 — роли агентов в Compatibility Score (executor/reviewer)
  • v0.3 — множественный domain, гибкая классификация Tier
  • v0.3 — Confidence (уверенность в оценке, отдельно от score)
  • v0.3 — атрибуция с бэклинком в промпте, коде и API
  • v0.3 — валидация диапазонов входных данных
  • v0.3 — CI (GitHub Actions), CHANGELOG.md, CONTRIBUTING.md
  • v0.4 — Drift Monitor (тренд Trust Score во времени)
  • v0.4 — Incident Feedback Loop (Observed Score на основе реальных инцидентов)
  • v0.4 — Genome Ledger (хэш-цепочка записей аудита)
  • v0.4 — Genome Matchmaker (подбор оптимальной команды)
  • v0.4 — Chain Risk Aggregator (риск последовательного пайплайна агентов)
  • v0.4 — Prompt-to-Genome Extractor (с pluggable LLM-клиентом)
  • v0.4 — Reports (.to_report() в Markdown)
  • v0.4.2 — how_to (практическая подсказка «как сделать» к каждой рекомендации)
  • v0.4.2 — trust_report_docx() — брендированный Word-отчёт (опц. python-docx)
  • v0.4.3 — мультиязычность (language="ru"|"en" в Scorer'ах и report-функциях)
  • v0.4.3 — инструкция определения языка в промпте Trust Auditor (v0.4)
  • v0.5.0 — AGENOMICS SPECIFICATION v1.0 (docs/SPECIFICATION.md) — формальный конвейер Genome → Genome Schema → Phenotype → Trust Model → Compatibility Model → Drift Model → Observed Behaviour → Evolution/Mutation
  • v0.5.0 — Genome Schema + Phenotype как реализованные, тестируемые понятия (agenomics/phenotype.py)
  • v0.5.0 — Synthetic Benchmark Suite (benchmark/) — 5 вычислимых метрик + честный not_computable для Incident Correlation
  • v0.6.0 — DriftMonitorV2 (rolling window, EWMA, волатильность, severity, recovery detection) — исправляет находку бенчмарка v0.1 (mild-деградация не обнаруживалась)
  • v0.6.0 — Compatibility Accuracy v2 — 270 систематических случаев в 9 категориях вместо 4 ручных
  • v0.6.0 — RealWorldEvaluationLayer — инфраструктура для реальной (не синтетической) Incident Correlation на production-данных
  • v0.6.0 — benchmark/BENCHMARKS.md — зафиксированные, воспроизводимые числа
  • v0.6.1 — Evidence Quality: Weight Sensitivity, Threshold Sensitivity, Bootstrap 95% CI (benchmark/sensitivity.py) — устойчивость метрик, не новый функционал
  • v0.7.0 — Evidence Store (agenomics/evidence.py) — персистентное (SQLite, stdlib) хранилище наблюдений/инцидентов с provenance, JSON/CSV экспорт, replay_into_evaluation_layer()
  • v0.7.0 — CI теперь явно прогоняет benchmark.run_benchmark отдельным шагом (помимо unit-тестов)
  • v0.7.0 — docs/CONNECT_YOUR_AGENTS.md — практический гайд подключения реальных агентов за 15 минут (единственный оставшийся барьер до predictive validity — не код, а реальные данные)
  • v0.7.1 — AEP-001 — Agenomics Evidence Protocol v1.0, формальная схема Observation/Incident/Provenance с обязательным правилом Privacy (никаких сырых пользовательских текстов по умолчанию)
  • v0.7.1 — Confidence на уровне гена (AgentGenome.axis_confidence)
  • v0.7.1 — PerAxisDriftMonitor — дрейф каждой оси Trust Score отдельно, с экспертной калибровкой волатильности по типу гена
  • v0.7.1 — Team Compatibility Heatmap (agenomics/heatmap.py)
  • v0.7.1 — docs/PRIZOLOV_BRIDGE_INTERFACE.md — честный интерфейс-контракт для внешних интеграций (не готовая интеграция без доступа к реальному внешнему API)
  • v0.8 — Evolution/Mutation как предложение, требующее подтверждения человеком (не автоматическая саморегуляция) — пока не реализовано даже как прототип
  • v0.8 — реальная Incident Correlation на настоящих production-данных, накопленных через EvidenceStore (инфраструктура уже готова с двух сторон — сбор и хранение)
  • v0.8 — формальный Evaluation Protocol (EP-001..EP-00N с input/ground truth/metric/threshold/CI на каждый)
  • v0.8 — предиктивная валидность (Trust Score(t) → вероятность инцидента в будущем, ROC-AUC/Brier Score) — качественно другой уровень, чем текущая корреляция
  • v0.8 — веб-калькулятор на prizolov.ru
  • v0.8 — Genome Ledger как публичный сервис (сейчас — только локальный in-memory прототип)
  • v0.8 — мультиязычность за пределами ru/en (требует новых словарей переводов вручную)

Полная история изменений — в CHANGELOG.md.

Тесты и CI

pip install -r requirements.txt
PYTHONPATH=. pytest tests/ -v

Тесты автоматически запускаются на каждый push/PR через GitHub Actions (см. .github/workflows/).

Contributing

См. CONTRIBUTING.md. Обратная связь и предложения — через GitHub Issues.

Лицензия

Apache 2.0 — см. LICENSE.


© 2026 Dm.Andreyanov. Agenomics — независимый проект, развивающий идеи Agent Genome Mapping™ (Prizolov Lab).

Release files for agenomics 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agenomics 0.7.1
File Size Uploaded
agenomics-0.7.1.tar.gz 81.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agenomics 0.7.1
File Interpreter ABI Platform
agenomics-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 143.9 kB

Release files / agenomics-0.7.1.tar.gz

Download URL agenomics-0.7.1.tar.gz
Size 81.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d1dbd81427a0cef389fb977586c57073c2f617c7b98104c2b42b565d47518fe4
BLAKE2b-256 checksum
How to use checksums
b31fa913e96a57da51b38af26d097bee694af0e290b3497a761126383cd727c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / agenomics-0.7.1-py3-none-any.whl

Download URL agenomics-0.7.1-py3-none-any.whl
Size 62.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b39c9cadbcdcedf073900fba0474a3a05f41abb530a9488ea69375376df3bbe7
BLAKE2b-256 checksum
How to use checksums
ad06608cf649eaf635771ef902bac37b365e3ae0f3012fd227d61514f7500b2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.9.2

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page