fix(fabric): use broadcast subject for NATS capabilities discovery

NATS wildcards (node.*.capabilities.get) only work for subscriptions,
not for publish. Switch to a dedicated broadcast subject
(fabric.capabilities.discover) that all NCS instances subscribe to,
enabling proper scatter-gather discovery across nodes.

Made-with: Cursor
This commit is contained in:
Apple
2026-02-27 03:20:13 -08:00
parent a6531507df
commit 90080c632a
28 changed files with 8883 additions and 1459 deletions

View File

@@ -1,5 +1,24 @@
from crewai import Agent
from crews.agromatrix_crew import tools
from crews.agromatrix_crew.llm_factory import make_llm
# v4.3/v4.4: farmos tools — fail-safe import
# Якщо agromatrix_tools недоступні в середовищі → tools залишається порожнім.
_farmos_tools: list = []
try:
from agromatrix_tools.tool_farmos_read import farmos_ping as _farmos_ping
_farmos_tools.append(_farmos_ping)
except Exception:
pass
try:
from agromatrix_tools.tool_farmos_read import farmos_read_logs as _farmos_read_logs
_farmos_tools.append(_farmos_read_logs)
except Exception:
pass
try:
from agromatrix_tools.tool_farmos_read import farmos_search_assets as _farmos_search_assets
_farmos_tools.append(_farmos_search_assets)
except Exception:
pass
def build_operations():
@@ -7,10 +26,8 @@ def build_operations():
role="Operations Agent",
goal="Операційні дії по farmOS (читання/через integration write).",
backstory="Ти працюєш з farmOS лише через інструменти. Прямі записи заборонені.",
tools=[
tools.tool_farmos_read,
tools.tool_integration_write
],
tools=_farmos_tools,
llm=make_llm(),
allow_delegation=False,
verbose=True
)