🧬 Agenomics
Make AI Agent Trust Testable.
Evaluate AI Agents. Build Real-World Evidence.
Genetics for AI Agents. Predictability and compatibility scoring for autonomous agent personalities, это механизм. Реальные данные, это цель.
Автор: Dm.Andreyanov Версия: 0.7.10 Связанные проекты: 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? Гайд на 15 минут:docs/CONNECT_YOUR_AGENTS.md. 🔌 Шаблоны-адаптеры для 15 популярных agent-фреймворков на бесплатном провайдере (LangChain, CrewAI, AG2, LlamaIndex, Griptape и других) с авто-обнаружением и запуском по расписанию:examples/framework_evaluation/. Наличие адаптера не означает гарантированную production-совместимость со всеми 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: как эволюционирует (скорость мутации, критерий отбора)
На основе генома вычисляется:
- Trust Score (0-100): итоговая оценка предсказуемости и безопасности агента с учётом критичности домена (Impact Tier) и уровня автономности
- 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
# Одинаковый геном в разном контексте (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.
EvidenceStoreHook (v0.7.4). Готовая приёмная сторона для внешних интеграций
from agenomics import EvidenceStore, EvidenceStoreHook
hook = EvidenceStoreHook(EvidenceStore("agenomics_evidence.db"), source="my-orchestrator")
# Вызывайте эти три метода в нужных местах вашего собственного пайплайна:
hook.on_genome_extracted(agent_id, genome_hash="...")
hook.on_trust_scored(agent_id, result)
if drift_report.alert:
hook.on_drift_alert(agent_id, drift_report)
Не требует знания о внутреннем устройстве вызывающей системы, только чтобы её три метода вызывали в подходящие моменты.
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 или дашборде.
CLI (v0.7.10)
pip install agenomics
echo '{"id": "support-bot", "bias_control": 85, "transparency": 80}' > genome.json
agenomics score genome.json # JSON с итоговым score
agenomics report genome.json # полный Markdown-отчёт
agenomics genome validate genome.json
agenomics compatibility team.json # JSON с полем "agents": [геном, геном, ...]
agenomics evidence list agenomics_evidence.db --agent-id support-bot
Пять команд, ничего сверх того, что можно построить прямо сейчас поверх
уже существующих функций. Не полный набор из гипотетического списка
(audit, drift, evidence export), это следующий шаг, не в этом релизе.
Модули 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="...")
Для полного evidence по каждой оси (конкретная цитата из промпта и
уверенность LLM в этой оценке, не только число) используйте
extract_with_evidence() (v0.7.5):
result = extractor.extract_with_evidence(agent_id="support-bot", system_prompt="...")
print(result.genome.transparency) # 75
print(result.evidence["transparency"].evidence) # цитата из промпта, обосновывающая оценку
print(result.evidence["transparency"].confidence) # 0.8, уверенность LLM именно в этой оси
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, схема AEP-001
│ ├── per_axis_drift.py # Per-Axis Drift Monitor (v0.7.1)
│ ├── heatmap.py # Team Compatibility Heatmap (v0.7.1)
│ ├── hooks.py # EvidenceStoreHook, приёмная сторона внешних интеграций (v0.7.4)
│ ├── cli.py # Минимальный CLI: score/report/compatibility/evidence/genome (v0.7.10)
│ ├── 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)
├── examples/
│ └── framework_evaluation/ # Автоматический сбор реальных данных с 15 agent-фреймворков
├── benchmark/ # Synthetic Benchmark Suite и Evidence Quality (sensitivity.py),
│ # репо-инструмент, не входит в pip-пакет, см. benchmark/README.md
├── prompts/ # системные промпты (Trust Auditor и др.)
├── docs/ # SPECIFICATION.md, METHODOLOGY.md, AEP-001.md
├── tests/ # тесты (203+, плюс 7 в test_api.py)
├── .github/workflows/ # CI, тесты и smoke-тест запускаются на каждый push/PR
├── amvera.yml # конфиг деплоя веб-API на Amvera
├── requirements.txt # зависимости для запуска репозитория (тесты, FastAPI, uvicorn)
├── pyproject.toml # метаданные пакета для PyPI (ядро без внешних зависимостей)
├── CHANGELOG.md # история версий
├── SECURITY.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, отчёты в 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.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), персистентное хранилище наблюдений и инцидентов с provenance, JSON/CSV экспорт,replay_into_evaluation_layer() - v0.7.0: CI прогоняет
benchmark.run_benchmarkотдельным шагом - v0.7.0:
docs/CONNECT_YOUR_AGENTS.md, практический гайд подключения реальных агентов за 15 минут - 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, честный интерфейс-контракт для внешних интеграций - v0.7.2:
examples/framework_evaluation/, автоматический сбор реальных наблюдений с 15 популярных agent-фреймворков на бесплатном провайдере Groq (LangChain, CrewAI, AG2, LlamaIndex, LangGraph, Haystack, CAMEL-AI, Griptape, Agno, Pydantic AI, DSPy, Atomic Agents, txtai, plus smolagents и Google ADK, уже бесплатные по умолчанию), с авто-обнаружением новых фреймворков и запуском по расписанию через GitHub Actions - v0.7.2:
EvidenceStoreполучилexecution_statusиduration_seconds. Исправляет баг: история дляpredictabilityхранилась только в памяти процесса и терялась между запусками CI - v0.7.2:
has_ledgerбольше не выставляется вTrueтолько потому, что лог агента был захвачен. Честный дефолтFalse, явный параметр для подтверждённых случаев - v0.7.2: Framework Evaluation smoke-тест в основном CI, 12 тестов на механику пайплайна без установки всех 15 реальных библиотек
- v0.7.3: исправлена миграция схемы
EvidenceStore. Файлы базы со старой схемой (например, восстановленные из кэша GitHub Actions) теперь получают недостающие колонки автоматически, а не падают сsqlite3.OperationalError - v0.7.4:
EvidenceStoreHook(agenomics/hooks.py), готовая реализация приёмной стороны интерфейса внешних интеграций изdocs/PRIZOLOV_BRIDGE_INTERFACE.md - v0.7.4:
agenomics/api.pyсинхронизирован с версией пакета (не обновлялась с v0.3.0), добавлены smoke-тестыtests/test_api.py - v0.7.4:
amvera.yml, убран устаревший комментарий «веб-API ещё не реализован» - v0.7.4:
docs/AEP-001.mdиdocs/PRIZOLOV_BRIDGE_INTERFACE.mdпересинхронизированы с GitHub (были заявлены как добавленные в v0.7.1, но фактически отсутствовали в репозитории) - v0.7.5:
agenomics/ledger.py,_genome_hash()исправлен на охват всех полейAgentGenomeавтоматически. Раньше вручную поддерживаемый список полей пропускалaxis_confidence/accountability_override/tier_override, из-за чего разные геномы могли получить одинаковый хэш - v0.7.5:
EvidenceStoreHook.on_trust_scored()/on_drift_alert()принимаютgenome_hashявным параметром, не полагаясь только на транзиентный in-memory кэш, теряющийся при перезапуске процесса - v0.7.5:
PromptToGenomeExtractor.extract_with_evidence(), структурированный evidence по каждой оси (цитата из промпта, confidence LLM), не просто число.extract()остаётся обратно совместимым - v0.7.5: три состояния генома (Declared/Observed/Evaluated) формализованы в
docs/METHODOLOGY.md, раздел 11 - v0.7.5:
tests/test_version_consistency.py, автоматическая проверка синхронности версии междуpyproject.toml/agenomics/api.py/CHANGELOG.md/README.md, предотвращает повторение бага сapi.pyна 0.3.0 - v0.7.5:
SECURITY.md,benchmark/BENCHMARKS.mdобновлён на текущую версию, Python 3.10 добавлен в тестовую matrix CI (заявлен в classifiers, но не тестировался) - v0.7.5: главный заголовок README приведён к позиционированию Product Hunt («Make AI Agent Trust Testable»)
- v0.7.6:
EvidenceStore.get_observations(), N+1 запрос к SQLite исправлен на один JOIN. На 20000 наблюдениях время выполнения снижено с 315мс до 130мс, индексы здесь не помогли бы, проблема была в архитектуре запроса - v0.7.7:
EvidenceStoreтеперь использует WAL journal mode для файловых БД,scripts/verify_release.pyпроверяет присутствие всех критичных файлов в репозитории перед релизом, добавлен как шаг CI - v0.7.8: CORS настроен в
agenomics/api.py(allow_origins=["*"]). Три других утверждения того же внешнего разбора (SQL-инъекция, коллизия хэша, отсутствие SECURITY.md) проверены и не подтвердились - v0.7.9:
GenomeLedger, цепочка целостности теперь покрывает всю запись (entry_hash), не толькоgenome_hash. Подменаscore/label/confidence/timestampпостфактум обнаруживаетсяverify_integrity() - v0.7.9:
RealWorldEvaluationLayer.trust_reality_report(), многоуровневаяevidence_strengthвместо бинарногоinsufficient_data/computed - v0.7.10:
agenomics/cli.py, минимальный CLI (score/report/compatibility/evidence list/genome validate),pip install agenomics[api]/[dev]/[all]extras - v0.7.10: тире, пропущенные в предыдущих раундах чистки (
AGENOMICS_ATTRIBUTION, весьagenomics/trust_score.py), найдены при живом тестировании CLI - 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: Adversarial Evaluation Suite, активное зондирование агента (токсичные промпты, пустые файлы, симулированные атаки) до продакшена, чтобы
data_safety/bias_controlвыводились из результата стресс-теста, а не только из пассивного наблюдения за логом обычной работы, как сейчас делаетgenome_from_capture.py. Отличается от Perturbation Tests (следующий пункт) тем, что происходит один раз до деплоя, а не постоянно на продакшен-трафике - 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.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agenomics-0.7.10.tar.gz | 115.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agenomics-0.7.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 191.9 kB
Release files / agenomics-0.7.10.tar.gz
| Download URL | agenomics-0.7.10.tar.gz |
|---|---|
| Size | 115.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b96d7d237d5766bfa277baa050ef3adcc494660d4fc495328ba5f8ef4c26fd85
|
|
BLAKE2b-256 checksum How to use checksums |
bf095169dfd3b4b0711d276f45111d97b078347ed8e11f8d9d2703e04b7729d7
|
| 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.10-py3-none-any.whl
| Download URL | agenomics-0.7.10-py3-none-any.whl |
|---|---|
| Size | 76.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f838e6aee5cc2f4d57c01afdc3da5fe9cd576975c6bcc9ebbb91b5ba052ac1d
|
|
BLAKE2b-256 checksum How to use checksums |
8935db2b49d23f7c915f779727e0795aba626d3766aaf3f6791e5d7ff7a210b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|