СПРАВОЧНИК
Справочник по реализации
Точки входа, типы результатов и первичные документы для интеграции.
Код контекста — запускается где угодно
Это блок, который важен, если вы просто хотите пользоваться, а не тестировать библиотеку. Не нужен ни Claude Code, ни MCP, ни аккаунт — работает в любом Python-процессе: в вашем агенте, в ноутбуке, в CI-джобе, или вставленный прямо в чат-сессию, чтобы разом задать контекст. Адаптировано напрямую из README пакета:
pip install fpf-thinking-map
from fpf_thinking_map.state import SemanticMap, RuntimeBinding
from fpf_thinking_map.primitives import (
ContextPrimitive, RolePrimitive, GatePrimitive, GateCheck, TransitionPrimitive,
)
from fpf_thinking_map.logic import LogicLayer, DecisionRule, RuleKind, EvidencePresent, GatePasses
from fpf_thinking_map.traversal import ThinkingMapTraversal
# 1. your domain: contexts, roles, gates, transitions
sm = SemanticMap()
sm.register_context(ContextPrimitive("my_domain", "My Domain",
glossary={"review": "check code for correctness"}))
sm.register_role(RolePrimitive("reviewer", "Reviewer", "my_domain"))
sm.register_gate(GatePrimitive("review_gate", "Review Gate", "my_domain", checks=[
GateCheck("tests", "Tests must pass", required_evidence=["test_results"]),
]))
sm.register_transition(TransitionPrimitive(
"start_to_reviewed", "Start -> Reviewed", "my_domain",
from_state="start", to_state="reviewed",
required_gate_id="review_gate", required_evidence=["test_results"],
))
# 2. optional: your own logic rules
logic = LogicLayer()
logic.add_rule(DecisionRule(
name="review_ready",
condition=EvidencePresent("test_results").AND(GatePasses("review_gate")),
action_if_true="proceed_to_review", action_if_false="not_ready",
kind=RuleKind.ROUTE, tags=["review"],
))
# 3. the engine, one step
engine = ThinkingMapTraversal(sm, logic_layer=logic)
binding = RuntimeBinding(
task="review PR #42", actor_role_ids=["reviewer"],
active_context_id="my_domain", current_evidence=["test_results"],
)
state = engine.build_active_state(binding, current_state="start")
outcome = engine.step(state, transition_id="start_to_reviewed")
print(outcome.kind, outcome.llm_prompt_state)
Замените my_domain/reviewer/review_gate на свой контекст, роль и шлюз — остальной механизм (состояние, срез, типизированный результат) остаётся тем же.
Промт для агента
Не хотите писать рамку вручную? Вставьте промт ниже в любого агента-программиста (Claude Code, Cursor и т. д.), у которого уже есть доступ к вашему проекту — он построит карту на основе реального кода проекта, а не общего примера выше.
Интегрируйте библиотеку fpf-thinking-map (pip install fpf-thinking-map) в этот проект.
1. Посмотрите на реальный код проекта, чтобы найти его настоящие состояния, роли и рискованные переходы — не придумывайте общий домен для галочки. Спросите меня, если это не очевидно.
2. Постройте SemanticMap: ContextPrimitive для домена, RolePrimitive(ы) для тех, кто может действовать, GatePrimitive/GateCheck для того, какие данные требует рискованный переход, и TransitionPrimitive(ы) для реальных переходов состояния.
3. Подключите ThinkingMapTraversal в существующий цикл агента: вызывайте step() перед тем, как предложить ход, и attempt_transition()/attempt_bridge(), чтобы реально его совершить. Никогда не меняйте состояние напрямую.
4. Маршрутизируйте по outcome.kind (CONTINUE, ABSTAIN, COLLECT_EVIDENCE, CHANGE_FRAME, IDLE, BRIDGE, AWAIT, ESCALATE, REVISE_PLAN) — обращайтесь с ABSTAIN/ESCALATE как с жёсткой остановкой, а не как с ошибкой, которую можно обойти повтором.
5. Запустите python -m fpf_thinking_map.verify, чтобы доказать, что карта корректна, прежде чем подключать её к чему-то, доступному пользователям.
6. Не выдумывайте шлюзы, роли или переходы, не отражающие реальные риски этого проекта — неиспользуемая, декоративная карта хуже, чем отсутствие карты.
Справка: fpf_thinking_map/README.md в установленном пакете и ARCHITECTURE.md в репозитории — полная семантика результатов и шлюзов.
Хотите попробовать без кода? Режим пользователя vs. режим разработчика, в Claude Code
Шесть шагов установки, дальше выбираете, что делать:
- 1.Клонируйте репозиторий —
git clone https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map - 2.Перейдите в папку —
cd fpf-agentic-thinking-map - 3.Установите локально —
pip install -e . - 4.Установите тестовый сервер —
pip install -r dev_mcp/requirements.txt - 5.Проверьте его —
python -m dev_mcp.test_server— должно быть 42/42 - 6.Добавьте в Claude Code, одной командой —
claude mcp add fpf-test -- python -m dev_mcp.server
Режим пользователя
Тестируете свой собственный домен, в диалоге. Просите Claude: «построй run_scenario с scope="user-extension" для моего случая, оттолкнувшись от кода контекста выше» — Claude пишет и запускает сценарий, вы видите результат.
Режим разработчика
Аудируете саму библиотеку. Просите Claude: «запусти get_audit_gaps с scope="core" и покажи пробел в покрытии» — полезно, если хотите внести вклад или проверить границы, а не научиться пользоваться.
Оба варианта — режим для изучения, а не для продакшена: отлично, чтобы почувствовать инструмент за 10 минут перед решением о серьёзной интеграции. Для продакшена используете сразу код контекста выше, в своём собственном процессе.
Основные объекты
| SemanticMap | Статическая структура и допустимые отношения. |
|---|---|
| RuntimeBinding | Текущая роль, состояние и данные. |
| ThinkingMapTraversal | Выбор кандидатов, проверка шлюзов и результат. |
Типы результатов
9 живых результатов из 11 объявленных — CONTINUE · ABSTAIN · COLLECT_EVIDENCE · CHANGE_FRAME · IDLE · BRIDGE · AWAIT · ESCALATE · REVISE_PLAN. Ещё не задействованы: ASK, PUBLISH.
Документы репозитория
- README ↗
- fpf_thinking_map/README.md — источник кода контекста ↗
- ARCHITECTURE ↗
- REFLECTIONS ↗
- dev_mcp — тестовый сервер, использованный выше ↗
- GitHub ↗
Хотите это в своём проекте?
Базовое ядро свободно, по лицензии MIT, — вы можете взять его и развивать дальше своей собственной командой, без необходимости обращаться к нам. Но если вы хотите интегрировать ATM вместе с нами — как консультантами или как разработчиками, в реальную агентную систему: финансы, e-commerce, что угодно, где агенту нужна рамка, а не только импровизация — пишите прямо: consolidare_continuum@proton.me — адрес мейнтейнера проекта, читаю и отвечаю сам, а не анонимная форма обратной связи.