diff --git a/apps/web/AGENTS.md b/apps/web/AGENTS.md
index 2f2d7c0d..32a7321a 100644
--- a/apps/web/AGENTS.md
+++ b/apps/web/AGENTS.md
@@ -16,7 +16,7 @@
| Data Fetching | Pinia Colada (`@pinia/colada`) + `@memohai/sdk` |
| Forms | vee-validate + `@vee-validate/zod` + Zod |
| i18n | vue-i18n (en / zh) |
-| Icons | FontAwesome (primary: fas/far/fab) + lucide-vue-next (secondary) |
+| Icons | lucide-vue-next (primary) + `@memohai/icon` (brand/provider icons) |
| Toast | vue-sonner |
| Tables | @tanstack/vue-table |
| Markdown | markstream-vue + Shiki + Mermaid + KaTeX |
@@ -308,8 +308,9 @@ const form = useForm({
### Icon Usage
-- **FontAwesome** (primary): Global ``, full `fas`/`far`/`fab` sets + custom search icons registered in `main.ts`
-- **Lucide** (secondary): Direct imports ``, ``, used for theme toggle
+- **Lucide** (primary): Direct component imports from `lucide-vue-next`. Example: `import { Plus, Search, Bot } from 'lucide-vue-next'` → ``. Used for all UI icons (actions, navigation, status indicators, etc.).
+- **`@memohai/icon`** (brand icons): Workspace package (`packages/icons/`) providing AI provider, search engine, and channel platform SVG icons as Vue components. Example: `import { Openai, Claude } from '@memohai/icon'`.
+- **Do NOT use FontAwesome** for new code. Legacy FontAwesome usage remains only in commented-out code blocks. Always use Lucide for UI icons and `@memohai/icon` for brand logos.
### Notification Pattern
@@ -424,6 +425,7 @@ Chat supports two transport modes: **Server-Sent Events (SSE)** and **WebSocket*
- Style with Tailwind utility classes; avoid `