# simple-AGI
## Emergent Artificial Intelligence for Minecraft
> **Minecraft Forge 1.20.1 · Java 17 · Mod ID: `simple_agi`**
[πΊπ¦ Π£ΠΊΡΠ°ΡΠ½ΡΡΠΊΠ° Π²Π΅ΡΡΡΡ](README.md)
---
**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](#features)
- [How It Works](#how-it-works)
- [Architecture](#architecture)
- [Commands](#commands)
- [Technical Details](#technical-details)
- [Requirements](#requirements)
- [Installation](#installation)
- [Quick Start](#quick-start)
---
## 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 spike
- `cortisol` — chronic stress
- `dopamine` — reward for exploration
- `serotonin` — environment stability
- `oxytocin` — social proximity
- `hormoneAggression` — combat readiness
- `melatonin` — 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`, `familiarity` with 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`, `playerHostility`
- `generations` — 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.55` are 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-block` radius 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 signals
- `SCOUT` — high dopamine → boosts EXPLORE
- `ATTACKER` — aggressive state → boosts ATTACK
- `DEFENDER` — protects allies
- `FOLLOWER` — 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).
- `RevengeMotive` activates.
- Adrenaline spike, emotional memory log, and `DEATH` WorldModel 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`):
```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 AI
- `32–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 `ConcurrentHashMap` for 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
1. Clone the repository.
2. Open in your IDE (IntelliJ IDEA / Eclipse / VS Code).
3. Run `./gradlew build` (or `gradlew.bat build` on Windows).
4. Find the `.jar` in `build/libs/simple_agi-<version>.jar`.
5. Place the JAR in your Minecraft profile's `mods/` folder.
6. Launch the game with Forge.
## Quick Start
1. Create a world.
2. Enable global cognition: `/gamerule globalCognition true` (or manually attach AGI: look at a mob and run `/simpleagi attach`).
3. All mobs now have their own brains, emotions, memories, and even language!
4. Use `/simpleagi agents` to track the number of active agents.
5. To build: `/simpleagi build shelter`.
---
## License
All rights reserved, author: bruhasub
---
> **Note:** For full architectural documentation, see [ARCHITECTURE.md](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 ATTACK
- `SCOUT` — Π²ΠΈΡΠΎΠΊΠΈΠΉ 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):
```toml
aiTickInterval = 5 # ΠΠ½ΡΠ΅ΡΠ²Π°Π» AI-ΡΡΠΊΡΠ² (ΡΠ΅ΡΠ²Π΅Ρ-ΡΡΠΊΡΠ²)
maxAgents = 150 # ΠΠ°ΠΊΡΠΈΠΌΡΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΈΡ
AGI-ΠΌΠΎΠ±ΡΠ² (1–1000)
```
---
## Π’Π΅Ρ
Π½ΡΡΠ½Ρ Π΄Π΅ΡΠ°Π»Ρ
### Performance & Optimization
- **LOD (Level of Detail):**
- `0–32 Π±Π»ΠΎΠΊΡΠ²` → ΠΏΠΎΠ²Π½Π° AI
- `32–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+
## ΠΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ
1. Π‘ΠΊΠ»ΠΎΠ½ΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΡΠΉ.
2. ΠΡΠ΄ΠΊΡΠΈΠΉΡΠ΅ Ρ IDE (IntelliJ IDEA / Eclipse / VS Code).
3. ΠΠΈΠΊΠΎΠ½Π°ΠΉΡΠ΅ `./gradlew build` (Π°Π±ΠΎ `gradlew.bat build` Π½Π° Windows).
4. ΠΡΡΠΈΠΌΠ°ΠΉΡΠ΅ `.jar` Ρ `build/libs/simple_agi-<Π²Π΅ΡΡΡΡ>.jar`.
5. ΠΠΎΠΊΠ»Π°Π΄ΡΡΡ JAR Ρ ΠΏΠ°ΠΏΠΊΡ `mods/` Π²Π°ΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ»Ρ Minecraft.
6. ΠΠ°ΠΏΡΡΡΡΡΡ Π³ΡΡ Π· Forge.
## Π¨Π²ΠΈΠ΄ΠΊΠΈΠΉ ΡΡΠ°ΡΡ
1. Π‘ΡΠ²ΠΎΡΡΡΡ ΡΠ²ΡΡ.
2. Π£Π²ΡΠΌΠΊΠ½ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π΅ ΠΊΠΎΠ³Π½ΡΡΠΈΠ²Π½Π΅ ΠΏΡΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½Ρ: `/gamerule globalCognition true` (Π°Π±ΠΎ ΠΏΡΠΈΠΊΡΡΠΏΡΡΡ AGI Π²ΡΡΡΠ½Ρ: Π΄ΠΈΠ²ΡΡΡΡΡ Π½Π° ΠΌΠΎΠ±Π° Ρ Π²ΠΈΠΊΠΎΠ½Π°ΠΉΡΠ΅ `/simpleagi attach`).
3. ΠΡΡ ΠΌΠΎΠ±ΠΈ Π²ΡΠ΄ΡΠ΅ ΠΌΠ°ΡΡΡ Π²Π»Π°ΡΠ½ΠΈΠΉ ΠΌΠΎΠ·ΠΎΠΊ, Π΅ΠΌΠΎΡΡΡ, ΠΏΠ°ΠΌ'ΡΡΡ Ρ Π½Π°Π²ΡΡΡ ΠΌΠΎΠ²Ρ!
4. ΠΠΈΠΊΠΎΡΠΈΡΡΠ°ΠΉΡΠ΅ `/simpleagi agents` ΡΠΎΠ± Π²ΡΠ΄ΡΡΠ΅ΠΆΡΠ²Π°ΡΠΈ ΠΊΡΠ»ΡΠΊΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΈΡ
Π°Π³Π΅Π½ΡΡΠ².
5. ΠΠ»Ρ Π±ΡΠ΄ΡΠ²Π½ΠΈΡΡΠ²Π°: `/simpleagi build shelter`.
---
## ΠΡΡΠ΅Π½Π·ΡΡ
ΠΡΡ ΠΏΡΠ°Π²Π° Π·Π°Ρ
ΠΈΡΠ΅Π½ΠΎ, Π°Π²ΡΠΎΡ: bruhasub
---
> **ΠΡΠΈΠΌΡΡΠΊΠ°:** ΠΠ»Ρ ΠΏΠΎΠ²Π½ΠΎΡ Π°ΡΡ
ΡΡΠ΅ΠΊΡΡΡΠ½ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΡΡ Π΄ΠΈΠ². [ARCHITECTURE.md](ARCHITECTURE.md) (Π²ΠΊΠ»ΡΡΠ°Ρ ASCII-ΡΡ
Π΅ΠΌΠΈ, ΠΌΠ°ΡΡΠΈΡΡ Π²ΠΏΠ»ΠΈΠ²ΡΠ², Π΄Π΅ΡΠ°Π»ΡΠ½Ρ ΡΡ
Π΅ΠΌΠΈ Π·Π²'ΡΠ·ΠΊΡΠ² ΠΌΡΠΆ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠ° ΠΏΠΎΠ²Π½ΠΈΠΉ ΠΎΠΏΠΈΡ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ³Π½ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΡΡ).