Skip to content

Commit af072f6

Browse files
committed
Rename AI onboarding docs to Agent Toolkit
1 parent 39c74cb commit af072f6

16 files changed

Lines changed: 107 additions & 63 deletions

File tree

docs/ai_builder/integrations/ai_onboarding.md renamed to docs/ai_builder/integrations/agent_toolkit.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AI Onboarding
1+
# Agent Toolkit
22

33
```python exec
44
import reflex as rx
@@ -20,7 +20,7 @@ def _resource_card(
2020
)
2121

2222

23-
def onboarding_resources() -> rx.Component:
23+
def agent_toolkit_resources() -> rx.Component:
2424
return rx.el.div(
2525
_resource_card(
2626
"Docs for Agents",
@@ -51,12 +51,10 @@ def onboarding_resources() -> rx.Component:
5151
)
5252
```
5353

54-
Everything you need to onboard your AI coding assistant to Reflex.
55-
56-
If you are building Reflex apps with AI, combine current docs, structured MCP context, and local skills so the assistant can plan, code, run, and debug with the same assumptions as the Reflex docs.
54+
The Agent Toolkit gives AI coding assistants the Reflex context they need to plan, code, run, and debug with the same assumptions as the Reflex docs.
5755

5856
```python eval
59-
onboarding_resources()
57+
agent_toolkit_resources()
6058
```
6159

6260
## Prerequisite: Choose Your Workflow
@@ -71,7 +69,7 @@ You do not need an API key to read Reflex documentation. Start by deciding how y
7169

7270
## Reflex Docs for Agents
7371

74-
You can give your assistant current Reflex documentation in a few ways.
72+
You can give your assistant current Reflex documentation in a few ways. These Agent Toolkit resources are designed for assistants that need focused Markdown pages, a broad docs index, structured MCP lookup, or repeatable local skills.
7573

7674
`````md tabs
7775

@@ -80,7 +78,7 @@ You can give your assistant current Reflex documentation in a few ways.
8078
Every docs page has a Markdown version that agents can read directly. Add `.md` to the docs path:
8179

8280
```text
83-
https://reflex.dev/docs/ai/integrations/ai-onboarding.md
81+
https://reflex.dev/docs/ai/integrations/agent-toolkit.md
8482
```
8583

8684
Use this when an agent needs one focused page.

docs/ai_builder/integrations/agents_md.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ cp AGENTS.md /path/to/your/reflex-project/AGENTS.md
7979

8080
## Combining With Skills and MCP
8181

82-
`AGENTS.md` and `CLAUDE.md` anchor the assistant in your project. Pair them with the other onboarding tools for deeper Reflex knowledge:
82+
`AGENTS.md` and `CLAUDE.md` anchor the assistant in your project. Pair them with the Agent Toolkit resources for deeper Reflex knowledge:
8383

8484
- [Reflex Agent Skills](/docs/ai/integrations/skills/) provide reusable workflows that the file references by name.
8585
- [Reflex MCP](/docs/ai/integrations/mcp-overview/) provides structured documentation lookup at runtime.

docs/app/agent_files/_plugin.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
"ai/integrations/mcp-installation.md",
1515
"ai/integrations/mcp-overview.md",
1616
}
17-
AI_ONBOARDING_DOC_PATHS = {
18-
"ai/integrations/ai-onboarding.md",
17+
AGENT_TOOLKIT_DOC_PATHS = {
18+
"ai/integrations/agent-toolkit.md",
19+
}
20+
LEGACY_MARKDOWN_ALIASES = {
21+
Path("ai/integrations/ai-onboarding.md"): Path("ai/integrations/agent-toolkit.md"),
1922
}
2023
MCP_DOC_ORDER = {
2124
"ai/integrations/mcp-overview.md": 0,
@@ -190,7 +193,7 @@ def _include_index_entry_in_llms_txt(markdown_file: MarkdownIndexEntry) -> bool:
190193
path = markdown_file.url_path.as_posix()
191194
return (
192195
path in MCP_DOC_PATHS
193-
or path in AI_ONBOARDING_DOC_PATHS
196+
or path in AGENT_TOOLKIT_DOC_PATHS
194197
or path in SKILLS_DOC_PATHS
195198
or not path.startswith("ai/")
196199
or path.startswith("ai/overview/")
@@ -200,8 +203,8 @@ def _include_index_entry_in_llms_txt(markdown_file: MarkdownIndexEntry) -> bool:
200203
def _section_for_path(url_path: Path) -> str:
201204
"""Return the llms.txt section for a generated markdown asset."""
202205
path = url_path.as_posix()
203-
if path in AI_ONBOARDING_DOC_PATHS:
204-
return "AI Onboarding"
206+
if path in AGENT_TOOLKIT_DOC_PATHS:
207+
return "Agent Toolkit"
205208
if path in MCP_DOC_PATHS:
206209
return "MCP"
207210
if path in SKILLS_DOC_PATHS:
@@ -219,10 +222,10 @@ def _ordered_sections(
219222
if "AI Builder" in sections and "MCP" in sections:
220223
ordered_sections.remove("MCP")
221224
ordered_sections.insert(ordered_sections.index("AI Builder") + 1, "MCP")
222-
if "AI Builder" in sections and "AI Onboarding" in sections:
223-
ordered_sections.remove("AI Onboarding")
225+
if "AI Builder" in sections and "Agent Toolkit" in sections:
226+
ordered_sections.remove("Agent Toolkit")
224227
ordered_sections.insert(
225-
ordered_sections.index("AI Builder") + 1, "AI Onboarding"
228+
ordered_sections.index("AI Builder") + 1, "Agent Toolkit"
226229
)
227230
if "MCP" in sections and "Skills" in sections:
228231
ordered_sections.remove("Skills")
@@ -847,9 +850,16 @@ def generate_agent_files() -> tuple[tuple[Path, str | bytes], ...]:
847850
(entry.url_path, generate_markdown_file_content(entry))
848851
for entry in markdown_file_entries
849852
)
853+
markdown_files_by_path = dict(markdown_files)
854+
legacy_markdown_files = tuple(
855+
(legacy_path, markdown_files_by_path[target_path])
856+
for legacy_path, target_path in LEGACY_MARKDOWN_ALIASES.items()
857+
if target_path in markdown_files_by_path
858+
)
850859

851860
all_markdown_files = [
852861
*markdown_files,
862+
*legacy_markdown_files,
853863
*dynamic_api_reference_files,
854864
]
855865

docs/app/reflex_docs/pages/docs/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ def get_previews_from_frontmatter(filepath: str) -> dict[str, str]:
150150
"docs/library/graphing/general/tooltip.md": "Graphing Tooltip",
151151
"docs/recipes/content/grid.md": "Grid Recipe",
152152
"docs/hosting/deploy-to-gcp.md": "Deploy to GCP",
153+
"docs/ai_builder/integrations/agent_toolkit.md": "Agent Toolkit",
154+
"docs/enterprise/event-handler-api.md": "Event Handler API Plugin",
153155
}
154156

155157

docs/app/reflex_docs/pages/docs_landing/views/enterprise.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ def enterprise_section() -> rx.Component:
3232
enterprise_page.overview.path,
3333
has_padding_left=True,
3434
),
35+
link_item(
36+
"CodeIcon",
37+
"Event Handler API Plugin",
38+
"Expose Reflex event handlers as authenticated HTTP endpoints with an OpenAPI spec for agents, tests, and external integrations.",
39+
enterprise_page.event_handler_api.path,
40+
),
3541
class_name="grid grid-cols-1 lg:grid-cols-2 border-t border-secondary-4 relative",
3642
),
3743
class_name="flex flex-col gap-10 max-lg:text-center relative max-w-(--landing-layout-max-width) mx-auto w-full justify-start lg:mb-24 mb-10 max-xl:px-6 overflow-hidden",

docs/app/reflex_docs/reflex_docs.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,13 @@ def _llms_txt_directive() -> rx.Component:
110110

111111
# Add redirects.
112112
redirects = [
113-
(route.path.replace("/ai/", "/ai-builder/", 1), route.path)
114-
for route in routes
115-
if route.path.startswith("/ai/")
113+
("/ai/integrations/ai-onboarding/", "/ai/integrations/agent-toolkit/"),
114+
("/ai-builder/integrations/ai-onboarding/", "/ai/integrations/agent-toolkit/"),
115+
*[
116+
(route.path.replace("/ai/", "/ai-builder/", 1), route.path)
117+
for route in routes
118+
if route.path.startswith("/ai/")
119+
],
116120
]
117121

118122

docs/app/reflex_docs/templates/docpage/docpage.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -640,12 +640,15 @@ def breadcrumb(path: str, nav_sidebar: rx.Component, doc_content: str | None = N
640640
docs_sidebar_drawer,
641641
)
642642

643-
# Split the path into segments, removing 'docs' and capitalizing each segment
644-
segments = [
645-
segment.capitalize()
646-
for segment in path.split("/")
647-
if segment and segment != "docs"
648-
]
643+
# Split the path into segments, removing 'docs'. Some legacy URLs keep
644+
# their old slugs for compatibility while using newer public labels.
645+
segments = [segment for segment in path.split("/") if segment and segment != "docs"]
646+
segment_labels = {
647+
"ai": "AI",
648+
"ai-onboarding": "Agent Toolkit",
649+
"agent-toolkit": "Agent Toolkit",
650+
"event-handler-api": "Event Handler API Plugin",
651+
}
649652

650653
# Initialize an empty list to store the breadcrumbs and their separators
651654
breadcrumbs = []
@@ -658,7 +661,10 @@ def breadcrumb(path: str, nav_sidebar: rx.Component, doc_content: str | None = N
658661
# Add the breadcrumb item to the list
659662
breadcrumbs.append(
660663
rx.el.a(
661-
to_title_case(to_snake_case(segment), sep=" "),
664+
segment_labels.get(
665+
segment,
666+
to_title_case(to_snake_case(segment), sep=" "),
667+
),
662668
class_name="min-h-8 flex items-center text-sm font-[525] text-m-slate-12 dark:text-m-slate-3 last:text-m-slate-7 dark:last:text-m-slate-6 hover:text-primary-10 dark:hover:text-primary-9"
663669
+ (" truncate" if i == len(segments) - 1 else ""),
664670
underline="none",

docs/app/reflex_docs/templates/docpage/sidebar/sidebar.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
from reflex_site_shared.styles.colors import c_color
88

99
from .sidebar_items.ai import (
10+
agent_toolkit_items,
1011
ai_builder_integrations,
1112
ai_builder_overview_items,
12-
ai_onboarding_items,
1313
mcp_items,
1414
skills_items,
1515
)
@@ -305,7 +305,7 @@ def append_to_items(items, flat_items):
305305
+ recipes
306306
+ ai_builder_overview_items
307307
+ ai_builder_integrations
308-
+ ai_onboarding_items
308+
+ agent_toolkit_items
309309
+ mcp_items
310310
+ skills_items
311311
+ api_reference
@@ -440,7 +440,7 @@ def sidebar_comp(
440440
recipes_index: list[int],
441441
enterprise_usage_index: list[int],
442442
enterprise_component_index: list[int],
443-
ai_onboarding_index: list[int],
443+
agent_toolkit_index: list[int],
444444
mcp_index: list[int],
445445
skills_index: list[int],
446446
#
@@ -461,7 +461,7 @@ def sidebar_comp(
461461
is_docs_hosting = path.startswith("/hosting/")
462462
is_docs_ai_builder = path.startswith("/ai/")
463463
is_ai_mcp_or_skills = path.startswith((
464-
"/ai/integrations/ai-onboarding/",
464+
"/ai/integrations/agent-toolkit/",
465465
"/ai/integrations/skills/",
466466
"/ai/integrations/agents-md/",
467467
"/ai/integrations/mcp",
@@ -505,8 +505,8 @@ def sidebar_comp(
505505
ai_category == 0,
506506
),
507507
sidebar_category(
508-
"MCP/Skills",
509-
ai_builder_pages.integrations.ai_onboarding.path,
508+
"Agent Toolkit",
509+
ai_builder_pages.integrations.agent_toolkit.path,
510510
"plug",
511511
ai_category == 1,
512512
),
@@ -516,9 +516,9 @@ def sidebar_comp(
516516
rx.el.ul(
517517
create_sidebar_section(
518518
"Overview",
519-
ai_builder_pages.integrations.ai_onboarding.path,
520-
ai_onboarding_items,
521-
ai_onboarding_index,
519+
ai_builder_pages.integrations.agent_toolkit.path,
520+
agent_toolkit_items,
521+
agent_toolkit_index,
522522
url,
523523
),
524524
create_sidebar_section(
@@ -732,7 +732,7 @@ def sidebar(url=None, width: str = "100%") -> rx.Component:
732732
ai_builder_integrations_index = calculate_index(
733733
ai_builder_integrations, normalized_url
734734
)
735-
ai_onboarding_index = calculate_index(ai_onboarding_items, normalized_url)
735+
agent_toolkit_index = calculate_index(agent_toolkit_items, normalized_url)
736736
mcp_index = calculate_index(mcp_items, normalized_url)
737737
skills_index = calculate_index(skills_items, normalized_url)
738738

@@ -750,7 +750,7 @@ def sidebar(url=None, width: str = "100%") -> rx.Component:
750750
recipes_index=recipes_index,
751751
enterprise_usage_index=enterprise_usage_index,
752752
enterprise_component_index=enterprise_component_index,
753-
ai_onboarding_index=ai_onboarding_index,
753+
agent_toolkit_index=agent_toolkit_index,
754754
ai_builder_overview_index=ai_builder_overview_index,
755755
ai_builder_integrations_index=ai_builder_integrations_index,
756756
cli_ref_index=cli_ref_index,

docs/app/reflex_docs/templates/docpage/sidebar/sidebar_items/ai.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,13 @@ def get_ai_builder_integrations():
146146
]
147147

148148

149-
def get_sidebar_items_ai_onboarding():
149+
def get_sidebar_items_agent_toolkit():
150150
from reflex_docs.pages.docs import ai_builder
151151

152152
return [
153153
SideBarItem(
154-
names="AI Onboarding",
155-
link=ai_builder.integrations.ai_onboarding.path,
154+
names="Agent Toolkit",
155+
link=ai_builder.integrations.agent_toolkit.path,
156156
),
157157
]
158158

@@ -189,6 +189,6 @@ def get_sidebar_items_skills():
189189

190190
ai_builder_overview_items = get_sidebar_items_ai_builder_overview()
191191
ai_builder_integrations = get_ai_builder_integrations()
192-
ai_onboarding_items = get_sidebar_items_ai_onboarding()
192+
agent_toolkit_items = get_sidebar_items_agent_toolkit()
193193
mcp_items = get_sidebar_items_mcp()
194194
skills_items = get_sidebar_items_skills()

docs/app/reflex_docs/templates/docpage/sidebar/sidebar_items/enterprise.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ def get_sidebar_items_enterprise_usage():
2828
names="Single Port Proxy",
2929
link=enterprise.single_port_proxy.path,
3030
),
31+
],
32+
),
33+
SideBarItem(
34+
names="Plugins",
35+
children=[
3136
SideBarItem(
32-
names="Event Handler API",
37+
names="Event Handler API Plugin",
3338
link=enterprise.event_handler_api.path,
3439
),
3540
],

0 commit comments

Comments
 (0)