Skip to content

Commit b63dc95

Browse files
bowenislandsongbowenislandsong
authored andcommitted
SEO
1 parent 3d79a0a commit b63dc95

16 files changed

Lines changed: 170 additions & 5 deletions

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ Current version: `0.1.0`
1111

1212
Start here:
1313

14-
- [Project Page](docs/index.html)
14+
- [Published Project Page](https://bowen-ai.github.io/AgenticLocal/)
15+
- [Local Project Page Source](docs/index.html)
1516
- [Agentic AI: The Loop](docs/design/agentic-ai-loop.md)
1617
- [Install Guide](docs/install.md)
1718
- [Use Cases](docs/use-cases.md)

docs/_config.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
11
title: AgenticLocal
22
description: Local-first agent runtime with tools, policy, memory, and event streams.
3+
url: https://bowen-ai.github.io
4+
baseurl: /AgenticLocal
5+
repository: Bowen-AI/AgenticLocal
6+
author: Bowen AI
7+
logo: /assets/screenshots/voice-mode.svg
8+
image: /assets/screenshots/voice-mode.svg
9+
lang: en
10+
google_site_verification: aOBPWfdIMvfVZ9nvI3cEKqeC5sh6ztQ5HINFHwpk1fo
11+
keywords:
12+
- AgenticLocal
13+
- local-first AI agent
14+
- agentic AI runtime
15+
- Python agent framework
16+
- local AI assistant
17+
- tool-using agent
18+
- SQLite agent memory
19+
- Ollama agent
20+
- OpenAI-compatible agent runtime
321
markdown: kramdown

docs/_layouts/default.html

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,64 @@
11
<!doctype html>
2-
<html lang="en">
2+
<html lang="{{ site.lang | default: 'en' }}">
33
<head>
4+
{% assign seo_title = page.title | default: site.title %}
5+
{% if page.title and page.title != site.title %}
6+
{% assign document_title = seo_title | append: ' | ' | append: site.title %}
7+
{% else %}
8+
{% assign document_title = site.title | append: ' | Local-first agent runtime' %}
9+
{% endif %}
10+
{% assign seo_description = page.description | default: site.description %}
11+
{% assign canonical_url = page.url | absolute_url %}
12+
{% assign seo_image = page.image | default: site.image | absolute_url %}
13+
{% assign repository_url = site.repository | prepend: 'https://github.com/' %}
414
<meta charset="utf-8">
515
<meta name="viewport" content="width=device-width, initial-scale=1">
6-
<title>{{ page.title }} | {{ site.title }}</title>
7-
<meta name="description" content="{{ site.description }}">
16+
<title>{{ document_title | escape }}</title>
17+
<meta name="description" content="{{ seo_description | strip_newlines | escape }}">
18+
<meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large">
19+
<meta name="googlebot" content="index,follow,max-snippet:-1,max-image-preview:large">
20+
{% if site.keywords %}
21+
<meta name="keywords" content="{{ site.keywords | join: ', ' | escape }}">
22+
{% endif %}
23+
{% if site.google_site_verification %}
24+
<meta name="google-site-verification" content="{{ site.google_site_verification | escape }}">
25+
{% endif %}
26+
<link rel="canonical" href="{{ canonical_url }}">
27+
<meta property="og:site_name" content="{{ site.title | escape }}">
28+
<meta property="og:title" content="{{ seo_title | escape }}">
29+
<meta property="og:description" content="{{ seo_description | strip_newlines | escape }}">
30+
<meta property="og:type" content="article">
31+
<meta property="og:url" content="{{ canonical_url }}">
32+
<meta property="og:image" content="{{ seo_image }}">
33+
<meta name="twitter:card" content="summary_large_image">
34+
<meta name="twitter:title" content="{{ seo_title | escape }}">
35+
<meta name="twitter:description" content="{{ seo_description | strip_newlines | escape }}">
36+
<meta name="twitter:image" content="{{ seo_image }}">
37+
<meta name="theme-color" content="#111827">
838
<link rel="stylesheet" href="{{ '/site.css' | relative_url }}">
39+
<script type="application/ld+json">
40+
{
41+
"@context": "https://schema.org",
42+
"@type": "TechArticle",
43+
"name": {{ seo_title | jsonify }},
44+
"headline": {{ seo_title | jsonify }},
45+
"description": {{ seo_description | jsonify }},
46+
"url": {{ canonical_url | jsonify }},
47+
"isPartOf": {
48+
"@type": "WebSite",
49+
"name": {{ site.title | jsonify }},
50+
"url": {{ "/" | absolute_url | jsonify }}
51+
},
52+
"about": {
53+
"@type": "SoftwareSourceCode",
54+
"name": {{ site.title | jsonify }},
55+
"codeRepository": {{ repository_url | jsonify }},
56+
"programmingLanguage": "Python",
57+
"runtimePlatform": "Python 3.11+",
58+
"applicationCategory": "DeveloperApplication"
59+
}
60+
}
61+
</script>
962
</head>
1063
<body class="doc-page">
1164
<header class="site-header">

docs/architecture-decision.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: Architecture Decision
4+
description: Why AgenticLocal uses an inspectable local agent loop with a tool registry, policy engine, SQLite storage, and provider adapters instead of a full SDK dependency.
45
---
56

67
# Architecture Decision

docs/design/agentic-ai-loop.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: Agentic AI Loop
4+
description: A concise design note explaining the core agentic AI loop of model, state, tools, and policy that powers AgenticLocal.
45
---
56

67
# Agentic AI: The Loop

docs/example-screenshots.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: Example Screenshots
4+
description: Preview AgenticLocal screenshots for terminal chat, browser voice mode, and persisted event streams using checked-in SVG assets for the docs site.
45
---
56

67
# Example Screenshots

docs/github-pages.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: GitHub Pages Deploy
4+
description: How to publish the AgenticLocal project website from the docs folder with GitHub Pages and preview the static pages locally.
45
---
56

67
# GitHub Pages Deploy
@@ -58,6 +59,25 @@ docs/assets/screenshots/
5859

5960
Markdown docs in `docs/` are also rendered by GitHub Pages through Jekyll.
6061

62+
## Search Indexing
63+
64+
The site publishes crawler discovery files at:
65+
66+
```text
67+
https://bowen-ai.github.io/AgenticLocal/robots.txt
68+
https://bowen-ai.github.io/AgenticLocal/sitemap.xml
69+
```
70+
71+
After GitHub Pages finishes deploying, add the property in Google Search
72+
Console and submit:
73+
74+
```text
75+
https://bowen-ai.github.io/AgenticLocal/sitemap.xml
76+
```
77+
78+
If Google Search Console gives you an HTML meta verification token, paste the
79+
token into `google_site_verification` in `docs/_config.yml`.
80+
6181
## Local Preview
6282

6383
From the repository root:

docs/index.html

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,56 @@
88
name="description"
99
content="AgenticLocal is a local-first agent runtime with tools, workspace policy, durable SQLite state, event streams, and provider-swappable model adapters."
1010
>
11+
<meta name="robots" content="index,follow,max-snippet:-1,max-image-preview:large">
12+
<meta name="googlebot" content="index,follow,max-snippet:-1,max-image-preview:large">
13+
<meta name="google-site-verification" content="aOBPWfdIMvfVZ9nvI3cEKqeC5sh6ztQ5HINFHwpk1fo">
14+
<meta
15+
name="keywords"
16+
content="AgenticLocal, local-first AI agent, agentic AI runtime, Python agent framework, local AI assistant, tool-using agent, SQLite agent memory, Ollama agent, OpenAI-compatible agent runtime"
17+
>
18+
<link rel="canonical" href="https://bowen-ai.github.io/AgenticLocal/">
19+
<link rel="sitemap" type="application/xml" href="https://bowen-ai.github.io/AgenticLocal/sitemap.xml">
20+
<meta property="og:site_name" content="AgenticLocal">
1121
<meta property="og:title" content="AgenticLocal">
1222
<meta
1323
property="og:description"
1424
content="A local-first agent runtime for tool use, workspace policy, durable memory, event streams, voice, and provider adapters."
1525
>
1626
<meta property="og:type" content="website">
17-
<meta property="og:image" content="assets/screenshots/voice-mode.svg">
27+
<meta property="og:url" content="https://bowen-ai.github.io/AgenticLocal/">
28+
<meta property="og:image" content="https://bowen-ai.github.io/AgenticLocal/assets/screenshots/voice-mode.svg">
29+
<meta name="twitter:card" content="summary_large_image">
30+
<meta name="twitter:title" content="AgenticLocal">
31+
<meta
32+
name="twitter:description"
33+
content="A local-first Python agent runtime with tools, policy, memory, event streams, voice, and swappable model adapters."
34+
>
35+
<meta name="twitter:image" content="https://bowen-ai.github.io/AgenticLocal/assets/screenshots/voice-mode.svg">
36+
<meta name="theme-color" content="#111827">
1837
<link rel="stylesheet" href="site.css">
38+
<script type="application/ld+json">
39+
{
40+
"@context": "https://schema.org",
41+
"@graph": [
42+
{
43+
"@type": "WebSite",
44+
"name": "AgenticLocal",
45+
"url": "https://bowen-ai.github.io/AgenticLocal/",
46+
"description": "Local-first agent runtime with tools, policy, memory, event streams, voice, and provider-swappable model adapters."
47+
},
48+
{
49+
"@type": "SoftwareSourceCode",
50+
"name": "AgenticLocal",
51+
"description": "A dependency-free Python implementation of a local-first agentic AI runtime with tool use, policy checks, SQLite memory, event streams, and provider adapters.",
52+
"url": "https://bowen-ai.github.io/AgenticLocal/",
53+
"codeRepository": "https://github.com/Bowen-AI/AgenticLocal",
54+
"programmingLanguage": "Python",
55+
"runtimePlatform": "Python 3.11+",
56+
"applicationCategory": "DeveloperApplication"
57+
}
58+
]
59+
}
60+
</script>
1961
</head>
2062
<body>
2163
<header class="site-header">

docs/install.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: Install Guide
4+
description: Install AgenticLocal from source or with the bootstrap script, run the agentic-loop command, start chat, and configure Ollama or provider adapters.
45
---
56

67
# Install Guide

docs/ollama-gemma-check.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
layout: default
33
title: Ollama Gemma Check
4+
description: Local Ollama compatibility notes and tested Gemma model behavior for running AgenticLocal with small local model adapters.
45
---
56

67
# Ollama Gemma Check

0 commit comments

Comments
 (0)