CurseForge · Minecraft mod
Simple AGI
Emergent Artificial Intelligence for Minecraft
Quick answer
Which Simple AGI release should I use?
Simple AGI simple_agi-0.0.1.jar targets 1.20.1 with Forge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.
Where it goes
Is Simple AGI required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does Simple AGI simple_agi-0.0.1.jar need?
simple_agi-0.0.1.jar. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Simple AGI without breaking your instance.
Built for Simple AGI simple_agi-0.0.1.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use simple_agi-0.0.1.jar. It targets 1.20.1 with Forge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside simple_agi-0.0.1.jar. It opens that exact file at the source.
About this project
What does Simple AGI add?
simple-AGI
Emergent Artificial Intelligence for Minecraft
> **Minecraft Forge 1.20.1 · Java 17 · Mod ID: simple_agi**
**simple-AGI** is a Minecraft Forge mod that replaces the vanilla mob AI with a full cognitive pipeline.
Body → Hormones → Emotions → Memory → MindContext → Decision → Action
Each AGI entity (mob) owns a brain with **emotions, memory, hormones, social bonds, a spatial belief map, instincts, and genetically inherited species traits**. The system is fundamentally **stochastic** — two identical mobs in the same conditions will make different choices, producing an emergent living ecosystem.
Table of Contents
Features
1. Cognitive Stack (7 Layers)
| Layer | Component | Description |
|---|---|---|
| **Layer 1** | Body / Perception | Health, movement, attack, environment scanning |
| **Layer 2** | Hormones / Emotions | 7 hormones → 8 emotions (fear, grief, loneliness, confidence, etc.) |
| **Layer 3** | Memory | Episodic memory with emotional weighting, persistent disk storage |
| **Layer 4** | Social | Signal field, emotional contagion, bonds, species disposition |
| **Layer 5** | Cognition | MindContext (50+ fields), DecisionEngine (16 rule blocks), role system |
| **Layer 6** | Decision | ActionField with softmax + stochastic sampling (NOT argmax!) |
| **Layer 7** | Execution | MobAgentBody — move, attack, flee, stop |
2. Hormones & Emotions
**7 Hormones:**
adrenaline— rapid threat spikecortisol— chronic stressdopamine— reward for explorationserotonin— environment stabilityoxytocin— social proximityhormoneAggression— combat readinessmelatonin— night-cycle rhythm
**8 Emotions:**
fear,confidence,grief,loneliness,comfort,peacefulness,boredom,stress
3. Memory & Spatial Belief Map
- **MemorySystem** — weighted episodic memory (max 100 events). Importance = base × (1 + fear + adrenaline × 0.5). Events decay over time.
- **WorldModel** — spatial belief map (8-block grid). Each zone has
danger,food,safety,familiaritywith time-based decay. - **PersistentMemoryManager** — disk persistence in JSON:
cognitive_data/entity/<uuid>.json,species/<type>.json,world/danger_zone.json.
4. Social System
- **LocalSignalField** — spatial signal field (
DANGER,FOOD,ATTACK,HELP,SAFE,RETREAT). Signals decay over ~143 ticks. - **SocialExchangeSystem** — emotional contagion between mobs (fear-comfort transmission), bond reinforcement.
- **AttachmentSystem** — home + bonds to allies. Grief at ally death scales with bond strength.
- **ResourceExchangeSystem** — item trading between mobs (
OFFER_ITEM,ACCEPT_ITEM).
5. Species Knowledge Inheritance
- **SpeciesKnowledgeStore** — cross-generation trait inheritance:
caution,aggression,curiosity,playerHostilitygenerations— generation counter- On mob death, traits pass to the next generation with 70% weight.
6. Emergent Language
- **Phoneme** — 16-symbol alphabet (4 energy groups).
- **Utterance** — word (1–3 phonemes), unique int key for O(1) lookup.
- **LexiconEntry** — meaning vector (6 slots: DANGER, FOOD, SAFE, ATTACK, RETREAT, CONTACT).
- Language emerges spontaneously: a mob sees danger → makes a sound → a neighbor hears it during the threat → association reinforces → shared lexicon.
- Words with confidence
+0.55are inherited across generations.
7. Build System
- **BuildPlanner** + **BuildExecutor** — planning and construction.
- Bot can build from templates:
shelter,small_house,farm,wall,pillar. - Features: inventory check, stall detection, retry logic.
8. Group Capability Assessment
- Scans
20-blockradius to identify allies and threats. - States:
DOMINANT(ratio > 1.4),CONTESTED(0.5–1.4),VULNERABLE(< 0.5),ALONE. - Influences FLEE/ATTACK in the DecisionEngine.
9. Role System
Automatically assigned by context:
LEADER— dominant group → broadcasts ATTACK signalsSCOUT— high dopamine → boosts EXPLOREATTACKER— aggressive state → boosts ATTACKDEFENDER— protects alliesFOLLOWER— follows leader
10. Trauma Propagation
When a mob dies within a 24-block radius:
- Witnesses gain
fear+grief(attenuated by distance). - Allies receive
allyBonus+bondGrief(scaled by bond strength). RevengeMotiveactivates.- Adrenaline spike, emotional memory log, and
DEATHWorldModel event trigger.
How It Works
Full Brain Cycle (per server tick)
SERVER TICK (every N ticks)
│
├─ AttachedMobController → loops over all AGENTS (up to 150)
│ │
│ ├─ 1. BODY: Homeostasis.quickTick(), FeelingsSystem.tick(), RevengeMotive.tick()
│ ├─ 2. SOCIAL: SocialExchange (every 40 ticks)
│ ├─ 3. THREAT: findNearestThreat() → memory → DANGER/HELP signal → WorldModel
│ ├─ 3b. WORLDMODEL: markVisited(); tick() (every 20 ticks)
│ ├─ 4. TIME: dayTime, isNight, isSunset, isSunrise
│ ├─ 5. GROUP: GroupCapabilityModel (every 30 ticks)
│ ├─ 6. REVENGE: RevengeMotive.getKillerEntity()
│ ├─ 7. SIGNALS: LocalSignalField.senseIntensity ×6 types
│ ├─ 7a. FOOD: scanNearestFood (every 25 ticks)
│ ├─ 7b. ZONES: findSafeZone / findFoodZone (every 40 ticks)
│ ├─ 8. MindContext: full snapshot (50+ fields)
│ ├─ 9. DecisionEngine: 16 rule blocks → ActionField
│ ├─ 10. ProfileBias: species-specific instincts
│ ├─ 11. RoleSystem: role-based field shift
│ ├─ softmaxNormalize() → sample() → ActionIntent
│ ├─ 12. executeForMob(): MobAgentBody executes action
│ ├─ 13. MicroBehavior (if IDLE/EXPLORE)
│ └─ 14. MemoryDecay: decayEntityRecords() + decayImportance()
DecisionEngine (16 Rule Blocks)
| Block | Description | Key Factors |
|---|---|---|
| Block 1 | **FLEE** | fear × 0.45, cortisol × 0.20, critical health < 25% |
| Block 2 | **ATTACK** | aggressionTrait × 0.30, hormoneAggression × 0.35, adrenaline × 0.20 |
| Block 3 | **EXPLORE** | curiosityTrait × 0.30, dopamine × 0.25, boredom × 0.25 |
| Block 4 | **IDLE** | peacefulness × 0.30, grief × 0.45 (paralysis) |
| Block 5 | **EAT / MOVE_TO_FOOD** | hungerRatio × 0.60, nearestFood bonus |
| Block 6 | **Cave penalty** | isInCave + dark → FLEE↑, IDLE↑ for non-aggressors |
| Block 7 | **Semantic food** | semanticFoodScore > 0.1 → EXPLORE↑ |
| Block 8-11 | **Signal blocks** | sigDanger, sigFood, sigAttack, sigHelp, sigSafe, sigRetreat |
| Block 12 | **Home pull** | homesickness > 0.3 → MOVE_TO(home) |
| Block 13 | **Temporal** | isNight + avoidsSun → IDLE↑, FLEE↑ |
| Block 14 | **Revenge** | revengeMotive > 0.4 → ATTACK(revengeTarget) |
| Block 15 | **GroupCapability** | DOMINANT → ATTACK↑; VULNERABLE → FLEE↑ |
| Block 16 | **WorldModel** | zoneDanger > 0.35 → FLEE↑; familiarity < 0.05 → EXPLORE↑ |
Stochasticity
ActionField.sample() uses **softmax + random sampling** instead of argmax. This means **no mob is predictable** — the same mob in the same conditions may choose differently, following a flexible probability distribution.
Architecture
Project Structure
src/main/java/com/rayman/
├── action/
│ ├── ActionExecutor.java — Action execution (move, attack, flee, eat, explore)
│ ├── ActionField.java — Probability weight field (softmax + sample)
│ └── ActionIntent.java — Action intent (with target)
├── ai/
│ ├── AttachedMobController.java ← CENTRAL ORCHESTRATOR
│ ├── AgiGoal.java — Minecraft Goal API wrapper
│ └── AIController.java — BotEntity controller
├── body/
│ ├── BotEntity.java — Dedicated AI player-like entity
│ ├── MobAgentBody.java — Move/attack/stop for any Mob
│ ├── AgentBody.java — Base body interface
│ ├── InventorySystem.java — Inventory management
│ └── core/
│ ├── Homeostasis.java — Body state aggregator
│ ├── HormoneSystem.java — 7-hormone system
│ ├── FeelingsSystem.java — 8-emotion system
│ ├── InstinctSystem.java — Basic instincts
│ ├── ReflexSystem.java — Reflexes
│ ├── NervousSystem.java — Nervous system
│ ├── FatigueSystem.java — Fatigue
│ ├── PainSystem.java — Pain
│ └── TemperatureSystem.java — Temperature
├── core/
│ ├── MindContext.java ← COGNITIVE STATE SNAPSHOT (50+ fields)
│ ├── DecisionEngine.java ← 16 RULE BLOCKS
│ ├── ActionScheduler.java — Action scheduler
│ ├── AttentionSystem.java — Attention system
│ ├── GoalSystem.java — Goals
│ ├── MotivationSystem.java — Motivation
│ ├── PredictionSystem.java — Prediction
│ ├── FailureModel.java — Failure model
│ ├── StabilityGovernor.java — Behavior stability
│ ├── SkillSystem.java — Skills
│ ├── GroupCapabilityModel.java — Force balance assessment
│ ├── RevengeMotive.java — Revenge motive
│ ├── RoleSystem.java — Role system
│ ├── CognitiveLayer.java — Cognitive layer interface
│ └── MicroBehaviorSystem.java — Small animations
├── memory/
│ ├── MemorySystem.java — Episodic memory
│ └── PersistentMemoryManager.java — Persistent JSON storage
├── perception/
│ ├── PerceptionSystem.java — Perception system
│ ├── AttentionFocus.java — Attention focus (central/peripheral)
│ ├── VisualMemory.java — Visual memory
│ ├── VisibilityResolver.java — Visibility resolution
│ ├── DynamicVisibility.java — Dynamic visibility
│ └── PerceptionResult.java — Perception result
├── personality/
│ ├── Personality.java — Personality
│ ├── FeelingsSystem.java — Emotional system
│ └── SelfModel.java — Self-model
├── social/
│ ├── LocalSignalField.java — Spatial signal field
│ ├── SocialExchangeSystem.java — Emotional exchange
│ ├── AttachmentSystem.java — Bonds and home
│ ├── SocialMemory.java — Disposition toward entities
│ ├── SpeciesKnowledgeStore.java — Cross-generation memory
│ ├── SpeciesMind.java — Inherited traits
│ ├── MobBehaviorProfile.java — Species behavior profile
│ ├── CognitiveTier.java — Cognitive tier
│ └── ResourceExchangeSystem.java — Item exchange
├── language/
│ ├── LanguageSystem.java — Language processor
│ ├── Phoneme.java — 16-symbol alphabet
│ ├── Utterance.java — Word (1–3 phonemes)
│ ├── LexiconEntry.java — Lexicon entry (meaning vector)
│ ├── SpeciesLexicon.java — Species lexicon
│ ├── Ukrainian\* — Ukrainian language extensions
│ └── OntologicalRoot.java — Ontological root
├── build/
│ ├── BuildPlanner.java — Build planning
│ ├── BuildExecutor.java — Build execution
│ ├── BuildValidator.java — Plan validation
│ └── BuildProgress.java — Progress tracking
├── structure/
│ ├── StructureTemplate.java — Building template
│ └── TemplateLibrary.java — Template library
├── world/
│ ├── WorldModel.java — Spatial belief map
│ └── WorldState.java — World state
├── SimpleAgi.java ← Main mod class
├── Config.java Configuration
└── ARCHITECTURE.md Full architectural documentation
Commands
| Command | Description |
|---|---|
/gamerule globalCognition true/false |
Auto-attach AGI to all new mobs |
/simpleagi spawn |
Create BotEntity |
/simpleagi kill |
Remove BotEntity |
/simpleagi attach |
Attach AGI to the mob you are looking at |
/simpleagi attach_type <type> [radius] |
Attach AGI to all mobs of a given type |
/simpleagi detach |
Detach AGI from the mob you are looking at |
/simpleagi detach_all |
Detach all agents |
/simpleagi agents |
Show number of active agents |
/simpleagi build <template> |
Start building (shelter, small_house, farm, wall, pillar) |
/simpleagi build_stop |
Stop building |
Configuration (config/simple_agi-common.toml):
aiTickInterval = 5 # AI tick interval (server ticks)
maxAgents = 150 # Maximum active AGI mobs (1–1000)
Technical Details
Performance & Optimization
- **LOD (Level of Detail):**
0–32 blocks→ full AI32–64 blocks→ half rate (skip 1/2)>64 blocks→ quarter rate (skip 3/4)- **Staggering:** Each mob has a unique
phase = gameTime + mob.getId(), spreading operations across time. - **Chunk boundary guard:** Skips mobs in unloaded chunks.
- **ConcurrentHashMap:** All static maps use
ConcurrentHashMapfor thread safety.
Cognitive Tiers
| Tier | lvl | maxPhon | lexCap | shareWds | memCap | wmRes | canTrade |
|---|---|---|---|---|---|---|---|
| PRIMITIVE | 1 | 0 | 0 | 0 | 20 | 32 blocks | false |
| SIMPLE | 2 | 1 | 12 | 0 | 40 | 16 blocks | false |
| SOCIAL | 3 | 2 | 24 | 4 | 60 | 8 blocks | true |
| INTELLIGENT | 4 | 3 | 48 | 8 | 80 | 6 blocks | true |
| SAPIENT | 5 | 3 | 96 | 16 | 200 | 4 blocks | true |
Time Characteristics
| Operation | Interval | Frequency |
|---|---|---|
| Body tick | every AI tick | ~4/sec |
| Threat scan | every AI tick | ~4/sec |
| WorldModel.observe | every AI tick | ~4/sec |
| Social exchange | 40 game-ticks | ~0.5/sec |
| Food item scan | 25 game-ticks | ~0.8/sec |
| GroupCapabilityModel | 30 game-ticks | ~0.67/sec |
| WorldModel tick (decay) | 20 game-ticks | ~1/sec |
| DANGER memory log | 20 game-ticks | ~1/sec |
| Memory auto-flush (DANGER) | 200 mem-ticks | ~1 per 10 sec |
| Memory auto-flush (DEATH) | immediate | — |
Requirements
- **Minecraft:** 1.20.1
- **Forge:** e.g., 47.x
- **Java:** 17+
- **Gradle:** 8.8+
Installation
- Clone the repository.
- Open in your IDE (IntelliJ IDEA / Eclipse / VS Code).
- Run
./gradlew build(orgradlew.bat buildon Windows). - Find the
.jarinbuild/libs/simple_agi-<version>.jar. - Place the JAR in your Minecraft profile's
mods/folder. - Launch the game with Forge.
Quick Start
- Create a world.
- Enable global cognition:
/gamerule globalCognition true(or manually attach AGI: look at a mob and run/simpleagi attach). - All mobs now have their own brains, emotions, memories, and even language!
- Use
/simpleagi agentsto track the number of active agents. - To build:
/simpleagi build shelter.
License
All rights reserved, author: bruhasub
> **Note:** For full architectural documentation, see ARCHITECTURE.md (includes ASCII diagrams, impact matrices, detailed component interaction schematics, and a complete description of every cognitive layer).
UA:
simple-AGI — Emergent Artificial Intelligence for Minecraft
> **Minecraft Forge 1.20.1 · Java 17 · Mod ID: simple_agi**
**simple-AGI** замінює стандартний ІІ мобів Minecraft повноцінним когнітивним пайплайном:
Тіло → Гормони → Емоції → Пам'ять → MindContext → Рішення → Дія
Кожен AGI-кієкт (mob) має власний мозок із емоціями, пам'яттю, гормонами, соціальними зв'язками, просторовою картой переконань, інстинктами та генетично успадкованими рисами виду. Система повністю стохастична — два однакові моби в однакових умовах зроблять різні вибори, створюючи ефект живої екосистеми.
Зміст
Функціонал
1. Когнітивний стек мобів (7 шарів)
| Шар | Компонент | Опис |
|---|---|---|
| **Шар 1** | Тіло / Сприйняття | Здоров'я, рух, атака, сканування оточення |
| **Шар 2** | Гормони / Емоції | 7 гормонів → 8 емоцій (страх, горе, самотність, впевненість тощо) |
| **Шар 3** | Пам'ять | Епізодична пам'ять із емоційним вагуванням, постійне збереження на диск |
| **Шар 4** | Соціум | Сигнальне поле, обмін емоціями, бонди, міжвидова диспозиція |
| **Шар 5** | Когніція | MindContext (50+ полів), DecisionEngine (16 блоків правил), рольова система |
| **Шар 6** | Рішення | ActionField із softmax + стохастичний sample (NE argmax!) |
| **Шар 7** | Виконання | MobAgentBody — рух, атака, втеча, зупинка |
2. Емоції та гормони
**7 гормонів:**
adrenaline— швидкий сплеск при загрозіcortisol— хронічний стресdopamine— винагорода за дослідженняserotonin— стабільність середовищаoxytocin— соціальна близькістьhormoneAggression— бойова готовністьmelatonin— нічний цикл
**8 емоцій:**
fear(страх),confidence(впевненість),grief(горе),loneliness(самотність),comfort(комфорт),peacefulness(благість),boredom(нудьга),stress(стрес)
3. Пам'ять та просторова карта
- **MemorySystem** — епізодична пам'ять із вагованою важливістю (max 100 подій). Важливість = base × (1 + fear + adrenaline × 0.5). Події затухають із часом.
- **WorldModel** — просторова карта переконань (
8-блоковая сітка). Кожна зона має:danger,food,safety,familiarity— усі з часовим затуханням. - **PersistentMemoryManager** — збереження на диск у JSON:
cognitive_data/entity/<uuid>.json,species/<type>.json,world/danger_zone.json.
4. Соціальна система
- **LocalSignalField** — просторове сигнальне поле (
DANGER,FOOD,ATTACK,HELP,SAFE,RETREAT). Сигнали затухають (~143 тіків). - **SocialExchangeSystem** — передача емоцій між мобами (зараження страхом/теплом), посилення бондів.
- **AttachmentSystem** — дім + бонди до союзників. Горе при смерті союзника ураховує силу бонду.
- **ResourceExchangeSystem** — обмін предметами між мобами (
OFFER_ITEM,ACCEPT_ITEM).
5. Міжпоколінна пам'ять виду
- **SpeciesKnowledgeStore** — успадковує риси між поколіннями:
caution(обережність),aggression(агресивність),curiosity(цікавість)playerHostility(ворожість до гравців)generations— лічильник поколінь- При смерті моба риси із 70% вагою передаються наступному поколінню.
6. Виникаюча мова (Emergent Language)
- **Phoneme** — 16-символьний алфавіт (4 групи енергії).
- **Utterance** — слово (1–3 фонеми), унікальний int-ключ для O(1) lookup.
- **LexiconEntry** — вектор значень (6 слотів: DANGER, FOOD, SAFE, ATTACK, RETREAT, CONTACT).
- Мова виникає спонтанно: моб бачить загрозу → видає звук → сусід чує в той самий тік під час загрози → асоціація закріплюється → загальний лексикон.
- Слова, набрані впевненість
>= 0.55, успадковуються між поколіннями.
7. Будівельна система (Build System)
- **BuildPlanner** + **BuildExecutor** — планування та виконання будівництва.
- Бот може будувати з шаблонів:
shelter,small_house,farm,wall,pillar. - З перевірками: перевірка інвентаря, контролі залипання, повторні спроби.
8. Оцінка балансу сил (GroupCapabilityModel)
- Сканування
20 блоківдля визначення союзників і загроз. - Стани:
DOMINANT(ratio > 1.4),CONTESTED(0.5–1.4),VULNERABLE(< 0.5),ALONE. - Впливає на FLEE/ATTACK у DecisionEngine.
9. Рольова система (RoleSystem)
Автоматично призначається за контекстом:
LEADER— домінантна група → broadcasts ATTACKSCOUT— високий dopamine → EXPLORE ↑ATTACKER— агресивний стан → ATTACK ↑DEFENDER— захист союзниківFOLLOWER— слідування за лідером
10. Травматичне поширення (Trauma Propagation)
При смерті моба в радіусі 24 блоків:
- Свідки отримують fear + grief (з послабленням за відстань).
- Союзники отримують allyBonus + bondGrief (залежно від бонду).
- RevengeMotive активується.
- Adrenaline + emotional memory log + WorldModel event
DEATH.
Механізми роботи
Повний цикл роботи мозку (за серверний тік)
SERVER TICK (кожні N тіків)
│
├─ AttachedMobController → цикл по всіх AGENTS (до 150)
│ │
│ ├─ 1. ТІЛО: Homeostasis.quickTick(), FeelingsSystem.tick(), RevengeMotive.tick()
│ ├─ 2. СОЦІУМ: SocialExchange (кожні 40 тіків)
│ ├─ 3. ЗАГРОЗА: findNearestThreat() → пам'ять → DANGER/HELP сигнал → WorldModel
│ ├─ 3b. WORLDMODEL: markVisited(); tick() (кожні 20 тіків)
│ ├─ 4. ЧАС: dayTime, isNight, isSunset, isSunrise
│ ├─ 5. ГРУПА: GroupCapabilityModel (кожні 30 тіків)
│ ├─ 6. ПОМСТА: RevengeMotive.getKillerEntity()
│ ├─ 7. СИГНАЛИ: LocalSignalField.senseIntensity ×6 типів
│ ├─ 7a. ПІШУГА: scanNearestFood (кожні 25 тіків)
│ ├─ 7b. ЗОНИ: findSafeZone / findFoodZone (кожні 40 тіків)
│ ├─ 8. MindContext: повний знімок (50+ полів)
│ ├─ 9. DecisionEngine: 16 блоків правил → ActionField
│ ├─ 10. ProfileBias: вид-специфічні інстинкти
│ ├─ 11. RoleSystem: роль → окремий зсув поля
│ ├─ softmaxNormalize() → sample() → ActionIntent
│ ├─ 12. executeForMob(): MobAgentBody виконує дію
│ ├─ 13. MicroBehavior (якщо IDLE/EXPLORE)
│ └─ 14. MemoryDecay: decayEntityRecords() + decayImportance()
DecisionEngine (16 блоків правил)
| Блок | Опис | Ключові фактори |
|---|---|---|
| Блок 1 | **FLEE** | fear × 0.45, cortisol × 0.20, critical health < 25% |
| Блок 2 | **ATTACK** | aggressionTrait × 0.30, hormoneAggression × 0.35, adrenaline × 0.20 |
| Блок 3 | **EXPLORE** | curiosityTrait × 0.30, dopamine × 0.25, boredom × 0.25 |
| Блок 4 | **IDLE** | peacefulness × 0.30, grief × 0.45 (паралізація) |
| Блок 5 | **EAT / MOVE_TO_FOOD** | hungerRatio × 0.60, nearestFood bonus |
| Блок 6 | **Cave penalty** | isInCave + dark → FLEE↑, IDLE↑ у non-aggressor |
| Блок 7 | **Semantic food** | semanticFoodScore > 0.1 → EXPLORE↑ |
| Блок 8-11 | **Сигнальні блоки** | sigDanger, sigFood, sigAttack, sigHelp, sigSafe, sigRetreat |
| Блок 12 | **Home pull** | homesickness > 0.3 → MOVE_TO(home) |
| Блок 13 | **Temporal** | isNight + avoidsSun → IDLE↑, FLEE↑ |
| Блок 14 | **Revenge** | revengeMotive > 0.4 → ATTACK(revengeTarget) |
| Блок 15 | **GroupCapability** | DOMINANT → ATTACK↑; VULNERABLE → FLEE↑ |
| Блок 16 | **WorldModel Phase 9** | zoneDanger > 0.35 → FLEE↑; familiarity < 0.05 → EXPLORE↑ |
Стохастичність
ActionField.sample() використовує softmax + випадковий sample замість argmax. Це означає, що **жоден моб не є передбачуваним** — один і той самий моб у тих самих умовах може обрати різні дії, відповідно до пружної розподілу ймовірностей.
Архітектура
Структура проєкту
src/main/java/com/rayman/
├── action/
│ ├── ActionExecutor.java — Виконавець дій (рух, атака, втеча, їжа, дослідження)
│ ├── ActionField.java — Поле ваг імовірностей (softmax + sample)
│ └── ActionIntent.java — Інтент дії (з ціллю)
├── ai/
│ ├── AttachedMobController.java ← ЦЕНТРАЛЬНИЙ ОРКЕСТРАТОР
│ ├── AgiGoal.java — Minecraft Goal API wrapper
│ └── AIController.java — Контролер BotEntity
├── body/
│ ├── BotEntity.java — Спеціальна сутність AI-бота
│ ├── MobAgentBody.java — Рух/атака/стоп для будь-якого Mob
│ ├── AgentBody.java — Базовий інтерфейс для тіл
│ ├── InventorySystem.java — Управління інвентарем
│ └── core/
│ ├── Homeostasis.java — Агрегатор тілесного стану
│ ├── HormoneSystem.java — 7-гормональна система
│ ├── FeelingsSystem.java — 8-емоційна система
│ ├── InstinctSystem.java — Базові інстинкти
│ ├── ReflexSystem.java — Рефлекси
│ ├── NervousSystem.java — Нервова система
│ ├── FatigueSystem.java — Втома
│ ├── PainSystem.java — Біль
│ └── TemperatureSystem.java — Температура
├── core/
│ ├── MindContext.java ← ЗНІМОК КОГНІТИВНОГО СТАНУ (50+ полів)
│ ├── DecisionEngine.java ← 16 БЛОКІВ ПРАВИЛ
│ ├── ActionScheduler.java — Планувальник дій
│ ├── AttentionSystem.java — Система уваги
│ ├── GoalSystem.java — Цілі
│ ├── MotivationSystem.java — Мотивація
│ ├── PredictionSystem.java — Прогнозування
│ ├── FailureModel.java — Модель невдач
│ ├── StabilityGovernor.java — Стабільність поведінки
│ ├── SkillSystem.java — Навички
│ ├── GroupCapabilityModel.java — Оцінка балансу сил
│ ├── RevengeMotive.java — Мотив помсти
│ ├── RoleSystem.java — Рольова система
│ ├── CognitiveLayer.java — Інтерфейс когнітивного шару
│ └── MicroBehaviorSystem.java — Дрібні анімації
├── memory/
│ ├── MemorySystem.java — Епізодична пам'ять
│ └── PersistentMemoryManager.java — Постійне збереження JSON
├── perception/
│ ├── PerceptionSystem.java — Система сприйняття
│ ├── AttentionFocus.java — Фокус уваги (central/peripheral)
│ ├── VisualMemory.java — Візуальна пам'ять
│ ├── VisibilityResolver.java — Розв'язання видимості
│ ├── DynamicVisibility.java — Динамічна видимість
│ └── PerceptionResult.java — Результат сприйняття
├── personality/
│ ├── Personality.java — Особистість
│ ├── FeelingsSystem.java — Емоційна система
│ └── SelfModel.java — Модель самого себе
├── social/
│ ├── LocalSignalField.java — Просторове сигнальне поле
│ ├── SocialExchangeSystem.java — Обмін емоціями
│ ├── AttachmentSystem.java — Бонди та дім
│ ├── SocialMemory.java — Диспозиція до істот
│ ├── SpeciesKnowledgeStore.java — Міжпоколінна пам'ять
│ ├── SpeciesMind.java — Успадковані риси
│ ├── MobBehaviorProfile.java — Профіль поведінки виду
│ ├── CognitiveTier.java — Когнітивний рівень
│ └── ResourceExchangeSystem.java — Обмін предметами
├── language/
│ ├── LanguageSystem.java — Мовний процесор
│ ├── Phoneme.java — 16-символьний алфавіт
│ ├── Utterance.java — Слово (1–3 фонеми)
│ ├── LexiconEntry.java — Вхід у лексикон (вектор значень)
│ ├── SpeciesLexicon.java — Лексикон виду
│ ├── Ukrainian\* — Розширення для української мови
│ └── OntologicalRoot.java — Онтологічний корінь
├── build/
│ ├── BuildPlanner.java — Планування будівництва
│ ├── BuildExecutor.java — Виконання будівництва
│ ├── BuildValidator.java — Валідація плану
│ └── BuildProgress.java — Відстеження прогресу
├── structure/
│ ├── StructureTemplate.java — Шаблон будівлі
│ └── TemplateLibrary.java — Бібліотека шаблонів
├── world/
│ ├── WorldModel.java — Просторова карта переконань
│ └── WorldState.java — Держава світу
├── SimpleAgi.java ← Головний клас мода
├── Config.java Конфігурація
└── ARCHITECTURE.md Повна архітектурна документація
Команди
| Команда | Опис |
|---|---|
/gamerule globalCognition true/false |
Авто-прикріплення AGI до всіх нових мобів |
/simpleagi spawn |
Створити BotEntity |
/simpleagi kill |
Видалити BotEntity |
/simpleagi attach |
Прикріпити AGI до моба в прицілі |
/simpleagi attach_type <type> [radius] |
Прикріпити AGI до всіх мобів типу |
/simpleagi detach |
Відкріпити AGI від моба в прицілі |
/simpleagi detach_all |
Відкріпити всі агенти |
/simpleagi agents |
Кількість активних агентів |
/simpleagi build <template> |
Розпочати будівництво (shelter, small_house, farm, wall, pillar) |
/simpleagi build_stop |
Зупинити будівництво |
Конфігурація (config/simple_agi-common.toml):
aiTickInterval = 5 # Інтервал AI-тіків (сервер-тіків)
maxAgents = 150 # Максимум активних AGI-мобів (1–1000)
Технічні деталі
Performance & Optimization
- **LOD (Level of Detail):**
0–32 блоків→ повна AI32–64 блоків→ половинна частота (skip 1/2)>64 блоків→ чверть частота (skip 3/4)- **Staggering:** Кожен моб має унікальний
phase = gameTime + mob.getId(), тому всі операції з різними інтервалами рознесені по часу. - **Chunk boundary guard:** Пропуск мобів у进展情况ванних чанках.
- **ConcurrentHashMap:** Усі static мапи використовують
ConcurrentHashMapдля потокобезпечності.
Когнітивні рівні (CognitiveTier)
| Tier | lvl | maxPhon | lexCap | shareWds | memCap | wmRes | canTrade |
|---|---|---|---|---|---|---|---|
| PRIMITIVE | 1 | 0 | 0 | 0 | 20 | 32 блоки | false |
| SIMPLE | 2 | 1 | 12 | 0 | 40 | 16 блоків | false |
| SOCIAL | 3 | 2 | 24 | 4 | 60 | 8 блоків | true |
| INTELLIGENT | 4 | 3 | 48 | 8 | 80 | 6 блоків | true |
| SAPIENT | 5 | 3 | 96 | 16 | 200 | 4 блоки | true |
Вимоги
- **Minecraft:** 1.20.1
- **Forge:** наприклад, 47.x
- **Java:** 17+
- **Gradle:** 8.8+
Встановлення
- Склонуйте репозиторій.
- Відкрийте у IDE (IntelliJ IDEA / Eclipse / VS Code).
- Виконайте
./gradlew build(абоgradlew.bat buildна Windows). - Отримайте
.jarуbuild/libs/simple_agi-<версія>.jar. - Покладіть JAR у папку
mods/вашого профілю Minecraft. - Запустіть гру з Forge.
Швидкий старт
- Створіть світ.
- Увімкніть глобальне когнітивне підключення:
/gamerule globalCognition true(або прикріпіть AGI вручну: дивіться на моба і виконайте/simpleagi attach). - Всі моби відте мають власний мозок, емоції, пам'ять і навіть мову!
- Використайте
/simpleagi agentsщоб відстежувати кількість активних агентів. - Для будівництва:
/simpleagi build shelter.
Ліцензія
Всі права захищено, автор: bruhasub
> **Примітка:** Для повної архітектурної документації див. ARCHITECTURE.md (включає ASCII-схеми, матриці впливів, детальні схеми зв'язків між компонентами та повний опис кожного когнітивного шару).
Project description from CurseForge.
Pick your setup
Simple AGI by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Simple AGI versions and loaders
simple_agi-0.0.1.jar
12 May 2026
Looking for an older file? The official CurseForge project page is in Resources.