You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
refactor(agents): migrate chat to hub (#1102) (#1456)
## Why this matters
ChatAgent — the flagship conversational agent powering `gaia chat` (and
`gaia chat --ui`) under its `chat`, `doc`, and `file` profiles — was the
last family of registry *builtins* still hardcoded inside the core
framework wheel. It now ships as the standalone **`gaia-agent-chat`**
wheel under `hub/agents/python/chat/`, with `chat`/`doc`/`file`
registered as three `gaia.agent` entry points that the registry
discovers automatically. The core wheel no longer hardcodes them, so the
chat family versions independently like every other migrated agent.
`gaia chat` resolves the agent through the registry and **fails loudly
with an install hint** if the wheel is absent (mirroring how #1446 made
`gaia browse`/`gaia analyze` resolve). All three profiles, their
full+lite model tiers (via `registry.build_model_tiers`), and their
per-profile prompt/tool wiring are preserved exactly.
Continues the #1102 Agent Hub restructure after connectors-demo (#1442)
and analyst/browser (#1446). The shared `FileToolsMixin` (directory
monitoring) stays framework-side — promoted to
`gaia.agents.tools.file_monitor_tools` — since tool mixins are framework
code (#1396).
## Test plan
- [x] `python util/lint.py --all` — black/isort clean (the only pylint
hit, `os.geteuid` in `lemonade_installer.py`, is a pre-existing
Windows-only false positive; mypy is warning-only)
- [x] `pytest tests/unit/agents/test_registry.py
tests/unit/test_agents_split.py tests/unit/cli/test_cli_smoke.py` —
registry + split green; the 4 `cli_smoke` `gaia-code`/`gaia-emr`
console-script hits are pre-existing shared-env pollution (verified
passing on the base checkout), unrelated to chat
- [x] `pip install -e hub/agents/python/chat && pytest
hub/agents/python/chat/tests/` — 7 passed (registration shapes for
chat/doc/file, lazy re-exports, discovery, `installed:` namespacing)
- [x] `pytest` across the chat-touched framework suites (chat agent,
integration, system-prompt budget, browser tools, multi-device,
required-connectors, registry factory, chat-UI helpers) — 182 passed
with the wheel installed; all skip cleanly via `importorskip` in a
framework-only env
- [x] Registry discovery lists `chat`/`doc`/`file` as `source=installed`
with `installed:chat` namespace; `builder`/`email` remain the only
resident builtins
- [ ] CI: the `Chat Agent Tests` workflow installs the wheel and runs
both the package smoke tests and the framework
session/RAG/path-validation suites
---------
Co-authored-by: Ovtcharov <kovtchar@amd.com>
Co-authored-by: Kalin Ovtcharov <kalin@extropolis.ai>
0 commit comments