Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
7cf815e
feat: distributed hive mind with DHT sharding, bloom gossip, bounded …
Mar 4, 2026
f10472f
[skip ci] chore: Auto-bump patch version
github-actions[bot] Mar 4, 2026
425ae9c
docs: add distributed hive mind architecture with mermaid diagrams
Mar 5, 2026
5c541ce
[skip ci] chore: Auto-bump patch version
github-actions[bot] Mar 5, 2026
0ed2733
feat: add Memory facade with remember()/recall() API and MemoryConfig
Mar 5, 2026
8791c1e
docs: add Memory+OODA loop integration design document
Mar 5, 2026
caa25d8
feat: semantic DHT routing via embeddings + Memory wired into OODA loop
Mar 6, 2026
65b1629
docs: comprehensive agent memory architecture reference
Mar 6, 2026
3734522
feat(memory): add GraphStore protocol with InMemory, Kuzu, and Distri…
Mar 6, 2026
91ebad3
feat(memory): make shard backend configurable (memory vs kuzu)
Mar 6, 2026
acf6cce
feat(memory): add export/import methods and full-node gossip protocol
Mar 6, 2026
6ff3af2
fix: apply 13 quality audit fixes to distributed hive mind codebase
Mar 6, 2026
a3dd605
feat(memory): add NetworkGraphStore with Azure Service Bus and Redis …
Mar 6, 2026
eba3130
feat(cli): add amplihack-hive CLI for distributed hive mind management
Mar 6, 2026
5c1110d
feat(deploy): add Azure hive mind deployment infrastructure
Mar 6, 2026
209fb4f
docs: update agent_memory_architecture.md and distributed_hive_mind.m…
Mar 6, 2026
98e6d4f
fix: support dockerless builds in deploy.sh via ACR remote build
Mar 6, 2026
e04bf66
docs: add hive mind presentation (19 slides with eval data and diagrams)
Mar 6, 2026
a437bee
fix: correct Dockerfile COPY path for repo-root build context
Mar 6, 2026
ae394f5
fix: replace ceil/float with integer ceiling division in Bicep
Mar 6, 2026
6958ac0
fix: disable blob public access on storage account per Azure policy
Mar 6, 2026
dd355c3
fix: add explicit dependsOn envStorage for Container Apps
Mar 6, 2026
1f67f86
fix: move bloom/hash_ring into memory package, fix Dockerfile for sou…
Mar 6, 2026
098ede9
fix: create parent directories before KuzuGraphStore database init
Mar 6, 2026
759ee3d
fix: create parent directory (not db_path itself) before KuzuGraphSto…
Mar 6, 2026
0e708ed
fix: remove stale empty db_path dir and create parent before KuzuGrap…
Mar 6, 2026
27582b9
fix(hive): use simple memory backend, graceful SB import, and scale t…
Mar 6, 2026
834aeba
feat(memory): wire NetworkGraphStore for distributed topology via Azu…
Mar 6, 2026
ff83018
docs(hive-mind): update all 4 docs with Azure deployment facts and la…
Mar 6, 2026
1b1e26e
docs: add prompt-to-distributed-hive tutorial and refresh stale docs
Mar 6, 2026
2539b95
Remove simple backend hack and fix Azure volumes for Kuzu (POSIX locks)
Mar 6, 2026
867c5be
feat(memory): add per-fact embedding index, domain_expertise config, …
Mar 6, 2026
419fbb7
refactor(memory): consolidate backends, remove pirate speak, clean up…
Mar 6, 2026
8a24cba
fix(memory): fix pre-existing test failures in memory test suite
Mar 6, 2026
0b29975
fix(hive): remove InMemoryGraphStore fallbacks, add managed disk volu…
Mar 6, 2026
05163f0
docs: update hive_mind_presentation slides 2 and 16 with accurate data
Mar 6, 2026
5b7320c
fix: use EmptyDir volume instead of AzureDisk in Container Apps
Mar 6, 2026
20503db
feat(hive): add distributed learning content pipeline
Mar 6, 2026
b144c07
fix(hive): wire LEARN_CONTENT receiver so agents consume Service Bus …
Mar 6, 2026
53d9c5a
feat(hive-mind): add query_hive.py for Q&A eval against live Azure hive
Mar 7, 2026
465b464
feat(hive): use security analyst questions via amplihack_eval in quer…
Mar 7, 2026
e7adffb
Add QUERY event handler to agent_entrypoint and NetworkGraphStore
Mar 7, 2026
f5a9aec
Fix: skip empty QUERY_RESPONSE from graph store auto-handler
Mar 7, 2026
8c23070
fix: accept network_graph.search_query event type in agent handler
Mar 7, 2026
654cc25
fix: wire NetworkGraphStore.recall_fn to CognitiveAdapter to fix dual…
Mar 7, 2026
f61a828
fix: search_query messages now reach agents via recall_fn and OODA bu…
Mar 7, 2026
019f8ae
fix: publish network_graph.search_response (not QUERY_RESPONSE) so qu…
Mar 7, 2026
4065c33
fix: use security analyst content in feed_content.py, handle QUERY_RE…
Mar 7, 2026
bb38659
fix: auto-create Kuzu table and handle missing table in NetworkGraphS…
Mar 7, 2026
9f57608
fix: tokenize query in KuzuGraphStore.search_nodes for keyword matching
Mar 7, 2026
aebda90
improve query_hive: LLM grading and retry logic for 0-result queries
Mar 7, 2026
d5c4217
fix: improve hive recall from 51.2% to >=83.9% via n-gram + substring…
Mar 7, 2026
9f53009
fix: add keyword/entity fallback grader and expand result window in q…
Mar 7, 2026
0b5c1f6
feat: wire LearningAgent.answer_question into distributed Q&A pipeline
Mar 7, 2026
caaf1a2
docs: update presentation slides 16 & 19 with final eval results
Mar 7, 2026
83b6d0f
docs(hive-mind): add messaging transport investigation findings
Mar 7, 2026
5801b4e
feat: add --repeats flag to query_hive.py with median and stddev repo…
Mar 7, 2026
7a71b98
docs: update slide 16 with 3-repeat results (86.5% median, 10.1% stddev)
Mar 7, 2026
01c6b19
refactor(azure): make agent_entrypoint use LearningAgent for learn/an…
Mar 7, 2026
53fd345
fix(agent_entrypoint): use_hierarchical=False (Kuzu), add model param…
Mar 7, 2026
28f2d28
fix: surface Kuzu errors, unify GoalSeekingAgent code paths, fix test…
Mar 7, 2026
f94ba81
Merge remote-tracking branch 'origin/main' into feat/distributed-hive…
Mar 7, 2026
4ded9cf
[skip ci] chore: Auto-bump patch version
github-actions[bot] Mar 7, 2026
9e08e57
fix(cli): re-export main from cli/__init__.py to fix shadowing of cli.py
Mar 7, 2026
8d6dc7c
Merge branch 'feat/distributed-hive-mind' of https://github.com/ryswe…
Mar 7, 2026
b0e82dc
fix(bicep): use Premium Service Bus namespace name
Mar 7, 2026
ee1e1a5
Fix deploy: single-region, clean deploys, no silent fallbacks
Mar 7, 2026
452f1d0
WIP: event-driven eval trigger (FEED_COMPLETE → AGENT_READY)
Mar 8, 2026
8a1853b
feat(hive-mind): refactor hive mind as haymaker WorkloadBase + stable…
Mar 8, 2026
30f8383
feat(hive-mind): absorb LearningAgent into Memory.store(), hide from …
Mar 8, 2026
4afc1e4
feat(ooda): replace timer-driven polling with event-driven InputSource
Mar 8, 2026
b1941c5
fix(ooda): decide() was classifying all content as 'answer' instead o…
Mar 8, 2026
e7b3bed
feat(hive-mind): add HiveMindOrchestrator as unified four-layer coord…
Mar 8, 2026
42ef7bf
docs(hive-mind): add HiveMindOrchestrator to architecture docs and tu…
Mar 8, 2026
2e3ca8a
docs(hive-mind): add investigation guide, mkdocs nav, and comprehensi…
Mar 9, 2026
a9c3331
feat(hive-mind): add unified.py compatibility layer for eval scripts
Mar 9, 2026
5cce7f5
fix(eval): fix distributed ooda-eval Log Analytics answer reader
Mar 9, 2026
954fcd7
fix(deploy): add model parameter and fix Service Bus topic name
Mar 9, 2026
f4bcd87
fix: add retry backoff on rate limits, increase all timeouts
Mar 9, 2026
6522e20
docs(hive-mind): link EVAL.md to amplihack-agent-eval docs site
Mar 9, 2026
5cd949e
fix(deploy): use deployment-specific Service Bus topic name
Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .claude/context/PROJECT.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Development framework for Claude Code, GitHub Copilot CLI, and Microsoft Amplifi
- **Language**: Python
- **Language**: JavaScript/TypeScript
- **Language**: Rust
- **Language**: Go
- **Framework**: [Main framework if applicable]
- **Database**: [Database system if applicable]

Expand Down
4 changes: 2 additions & 2 deletions .claude/tools/amplihack/hooks/agent_memory_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ async def inject_memory_for_agents(
try:
# Import memory coordinator (lazy import to avoid startup overhead)
from amplihack.memory.coordinator import MemoryCoordinator, RetrievalQuery
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Initialize coordinator with session_id
coordinator = MemoryCoordinator(session_id=session_id or "hook_session")
Expand Down Expand Up @@ -198,7 +198,7 @@ async def extract_learnings_from_conversation(
try:
# Import memory coordinator (lazy import)
from amplihack.memory.coordinator import MemoryCoordinator, StorageRequest
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Initialize coordinator with session_id
coordinator = MemoryCoordinator(session_id=session_id or "hook_session")
Expand Down
2 changes: 1 addition & 1 deletion .claude/tools/amplihack/hooks/session_stop.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
try:
# Import memory coordinator
from amplihack.memory.coordinator import MemoryCoordinator
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Get session context from environment or stdin
session_context = json.loads(sys.stdin.read()) if not sys.stdin.isatty() else {}
Expand Down
Empty file added :memory:
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ async def __call__(self, event: str, data: dict[str, Any]) -> HookResult | None:
coordinator = self._get_memory_coordinator(session_id)
if coordinator:
try:
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Store learning as SEMANTIC memory (reusable knowledge)
learning_content = f"Agent {agent_type}: {agent_output[:500]}"
Expand Down
4 changes: 2 additions & 2 deletions amplifier-bundle/tools/amplihack/hooks/agent_memory_hook.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ async def inject_memory_for_agents(
try:
# Import memory coordinator (lazy import to avoid startup overhead)
from amplihack.memory.coordinator import MemoryCoordinator, RetrievalQuery
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Initialize coordinator with session_id
coordinator = MemoryCoordinator(session_id=session_id or "hook_session")
Expand Down Expand Up @@ -187,7 +187,7 @@ async def extract_learnings_from_conversation(
try:
# Import memory coordinator (lazy import)
from amplihack.memory.coordinator import MemoryCoordinator, StorageRequest
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Initialize coordinator with session_id
coordinator = MemoryCoordinator(session_id=session_id or "hook_session")
Expand Down
2 changes: 1 addition & 1 deletion amplifier-bundle/tools/amplihack/hooks/session_stop.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
try:
# Import memory coordinator
from amplihack.memory.coordinator import MemoryCoordinator
from amplihack.memory.types import MemoryType
from amplihack.memory.models import MemoryType

# Get session context from environment or stdin
session_context = json.loads(sys.stdin.read()) if not sys.stdin.isatty() else {}
Expand Down
35 changes: 35 additions & 0 deletions deploy/azure_hive/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
FROM python:3.11-slim

WORKDIR /app

# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl git build-essential ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# Copy full source tree and install from source so agents/ is included
COPY . /build
RUN cd /build && pip install --no-cache-dir . && \
pip install --no-cache-dir kuzu && \
pip install --no-cache-dir sentence-transformers && \
pip install --no-cache-dir azure-servicebus redis pyyaml

# Create non-root user (security best practice for Container Apps)
RUN useradd -m -s /bin/bash amplihack-agent \
&& mkdir -p /data \
&& chown -R amplihack-agent:amplihack-agent /app /data

# Copy entrypoint
COPY deploy/azure_hive/agent_entrypoint.py /app/agent_entrypoint.py

USER amplihack-agent
ENV HOME=/home/amplihack-agent

# Data directory for Kuzu persistence (mounted as Azure File Share)
VOLUME ["/data"]

# Health check via process existence
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD python3 -c "import os, sys; sys.exit(0 if os.path.exists('/tmp/.agent_ready') else 1)"

CMD ["python3", "/app/agent_entrypoint.py"]
Loading