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
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from crewai import Agent
|
|
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():
|
|
return Agent(
|
|
role="Operations Agent",
|
|
goal="Операційні дії по farmOS (читання/через integration write).",
|
|
backstory="Ти працюєш з farmOS лише через інструменти. Прямі записи заборонені.",
|
|
tools=_farmos_tools,
|
|
llm=make_llm(),
|
|
allow_delegation=False,
|
|
verbose=True
|
|
)
|