sam-4screen-desktop 2026-8-10:15:1:41

This commit is contained in:
2026-08-10 15:01:42 +10:00
parent 5773129b92
commit f3cf3fb012
5 changed files with 543 additions and 20 deletions

View File

@@ -4,21 +4,21 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "3d20c3a136be5ea6", "id": "0efd27514a9654ce",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "29ff3dd1c6bfd474", "id": "a9e576f63f63e5e0",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "000 daily/basketball training.md", "file": "200 projects/210 AI Resume/TencentCloudTencentDB-Agent-Memory TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and.md",
"mode": "source", "mode": "preview",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "basketball training" "title": "TencentCloudTencentDB-Agent-Memory TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and"
} }
} }
] ]
@@ -41,7 +41,9 @@
"type": "file-explorer", "type": "file-explorer",
"state": { "state": {
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
"autoReveal": false "autoReveal": false,
"showSearch": false,
"searchQuery": ""
}, },
"icon": "lucide-folder-closed", "icon": "lucide-folder-closed",
"title": "Files" "title": "Files"
@@ -181,10 +183,10 @@
"state": { "state": {
"type": "file-properties", "type": "file-properties",
"state": { "state": {
"file": "000 daily/basketball training.md" "file": "200 projects/210 AI Resume/TencentCloudTencentDB-Agent-Memory TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and.md"
}, },
"icon": "lucide-info", "icon": "lucide-info",
"title": "File properties for basketball training" "title": "File properties"
} }
} }
], ],
@@ -207,17 +209,25 @@
"templater-obsidian:Templater": false "templater-obsidian:Templater": false
} }
}, },
"active": "29ff3dd1c6bfd474", "active": "a9e576f63f63e5e0",
"lastOpenFiles": [ "lastOpenFiles": [
"300 areas/350 AI/AI Tool - Eve - Agent Orchestration.md",
"300 areas/350 AI/Ai memory management.md",
"200 projects/220 Web Host Migration/Email Backup off site hosting.md",
"300 areas/360 Dev-Ops Network Computers/Backup System — Borg, Kopia & Restic.md",
"300 areas/360 Dev-Ops Network Computers/Backup Health Check Commands.md",
"200 projects/210 AI Resume/TencentCloudTencentDB-Agent-Memory TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and.md",
"100 inbox/Untitled.md",
"templates/tmpl_generic_note.md",
"templates/Daily_Note_Template.md",
"100 inbox/Pi Subagent Integration.md",
"100 inbox/AI Resume - Content Organization Plan.md", "100 inbox/AI Resume - Content Organization Plan.md",
"000 daily/basketball training.md",
"200 projects/210 AI Resume/Websites pages for AI resume.md", "200 projects/210 AI Resume/Websites pages for AI resume.md",
"200 projects/210 AI Resume/Resume Ideas.md", "200 projects/210 AI Resume/Resume Ideas.md",
"200 projects/210 AI Resume/Local Hybrid Vector + Graph RAG Setup.md", "200 projects/210 AI Resume/Local Hybrid Vector + Graph RAG Setup.md",
"200 projects/260 Build Create Make/Add to shopping list.md", "200 projects/260 Build Create Make/Add to shopping list.md",
"300 areas/350 AI/Ai memory management.md",
"300 areas/350 AI/Ai planning flow control tools.md", "300 areas/350 AI/Ai planning flow control tools.md",
"300 areas/360 Dev-Ops Network Computers/Backup System — Borg, Kopia & Restic.md",
"300 areas/360 Dev-Ops Network Computers/Backup Health Check Commands.md",
"300 areas/360 Dev-Ops Network Computers/Home Network Map Overview.md", "300 areas/360 Dev-Ops Network Computers/Home Network Map Overview.md",
"300 areas/360 Dev-Ops Network Computers/Websites on Nixos-Dekstop 13.md", "300 areas/360 Dev-Ops Network Computers/Websites on Nixos-Dekstop 13.md",
"300 areas/350 AI/Pi Subagent.md", "300 areas/350 AI/Pi Subagent.md",
@@ -226,15 +236,7 @@
"300 areas/350 AI/AI Tools to try.md", "300 areas/350 AI/AI Tools to try.md",
"300 areas/360 Dev-Ops Network Computers/Pi Neovim Coding Harness.md", "300 areas/360 Dev-Ops Network Computers/Pi Neovim Coding Harness.md",
"300 areas/360 Dev-Ops Network Computers/Pi MCP.md", "300 areas/360 Dev-Ops Network Computers/Pi MCP.md",
"000 daily/basketball training.md",
"300 areas/350 AI/Automated Agentic Tools.md", "300 areas/350 AI/Automated Agentic Tools.md",
"100 inbox/Pi Dashboard.md",
"300 areas/360 Dev-Ops Network Computers/Bumblebee - The Open-Source Scanner for Messy Dev Machines.md",
"300 areas/360 Dev-Ops Network Computers/Obsidian App and SilverBullet.md",
"300 areas/360 Dev-Ops Network Computers/Docker Containers.md",
"100 inbox/Pi Subagent Integration.md",
"000 daily/Update Install.md",
"300 areas/330 IOT/ESP32 Bit Pirate takes on Flipper Zero in cost and capabilities.md",
"000 daily/ThinkPad Recommendations", "000 daily/ThinkPad Recommendations",
"500 archive/510 Daily", "500 archive/510 Daily",
"300 areas/305 Ideas Businesses", "300 areas/305 Ideas Businesses",

10
.trash/Untitled 13.md Normal file
View File

@@ -0,0 +1,10 @@
---
created: 2026-08-09 12:38
modified: 2026-08-09 12:38
type: note
tags: []
aliases: []
---
# [[Untitled]]

View File

@@ -0,0 +1,287 @@
---
title: "TencentCloud/TencentDB-Agent-Memory: TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks."
source: "https://github.com/TencentCloud/TencentDB-Agent-Memory"
author:
published:
created: 2026-08-08
description: "TencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks. - TencentCloud/TencentDB-Agent-Memory"
tags:
- "clippings"
---
## Installation
Start all three services in one go (`memory-core` + `memory-hub` + `proxy`):
```
git clone https://github.com/Tencent/TencentDB-Agent-Memory.git
cd TencentDB-Agent-Memory/deploy/global-images
cp .env.example .env
$EDITOR .env # Fill in two sets of LLM parameters (memory group + proxy group)
./start-all.sh # Launch everything with one command; when finished, it prints a one-liner you can paste directly into Claude
```
Open the panel: [http://localhost:8125](http://localhost:8125/).
Complete installation documentation (standalone Memory Hub deployment, Proxy + Claude Code / CodeBuddy usage, stop and cleanup, port reference, etc.) is available in [**INSTALL.md**](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/INSTALL.md) (中文: [INSTALL\_CN.md](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/INSTALL_CN.md)).
### Migrating data from an older version
If you're already on an older release (v1.x / v0.x) and want to bring your existing data over to v2.0.0+, we provide a migration tool:
See [**Data Migration Tool (v2 → v3)**](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/MemoryCore/scripts/migrate-v2-to-v3/README.md) for full usage and flags. New installations can skip this.
## What is TencentDB Agent Memory?
We started from a practical question: **How do you reduce repetitive work when using Agents?**
If project context has already been explained, it shouldn't need to be repeated in a new session. If documents have already been read, every Agent shouldn't have to start again from page one. A workflow that already works shouldn't have to be rediscovered next time.
Memory here means more than just "remembering conversations." **Any information that helps the next Agent avoid reinventing the wheel should be saved, organized, and reused.**
```
Existing information → Reusable memory assets → Fewer turns → Less rework → More stable results and higher efficiency
```
### Let experience accumulate, flow, and pass on to the next Agent
**Memory Hub** for Agent teams closes the loop across the entire experience lifecycle: work produces assets, assets circulate through the team, and new members can load the team's save file on day one.
1. **Automatic asset extraction**: Extract Chat Memory and Skills from conversations and tasks; convert documents and code into Wiki and CodeGraph; then manage, review, and route them consistently.
2. **Portable & multi-Agent compatible**: Memory assets are decoupled from Agent frameworks — they can move across frameworks and be shared and maintained by multiple Agents and team members.
3. **Cold-start friendly**: Import existing documents, codebases, and Agent conversation sessions. New Agent teams can start from existing experience instead of learning from scratch.
### 🧠 A brain that remembers people and context
- **Chat Memory** retains preferences, facts, decisions, and interaction history.
- Each Agent automatically gets its own memory when created — no need to re-introduce yourself next time.
- L0 Conversation → L1 Atom → L2 Scenario → L3 Persona — raw conversations are distilled layer by layer.
[![image.png](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/chat_memory.cn.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/chat_memory.cn.png)
> "Don't refactor the old auth module — mobile is still using it." — Context this costly shouldn't depend on humans repeating it every time.
### ⚡ A Skill library that accumulates expertise
- After completing complex work, Agents can extract and manage reusable Skills from conversations and tool calls, and import them into the context of a designated Agent when needed.
- A Skill isn't just a prompt snippet; it has versions, resource files, trigger boundaries, execution steps, and validation rules.
- Personal Skills are private by default; after review, they can be shared with the team and assigned to other Agents.
[![image.png](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/skill.cn.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/skill.cn.png)
> Troubleshooting, code review, release checklists — learn it once, and the whole team can use it.
### 📖 A knowledge map that reads both docs and code
- **Wiki** turns product docs, design specs, and ops runbooks into structured pages with a link graph. (Inspired by Karpathy's LLM knowledge base.)
[![image.png](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/wiki.cn.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/wiki.cn.png)
- **CodeGraph** indexes code symbols, files, call relationships, and impact paths.
[![image.png](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/codegraph.cn.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/codegraph.cn.png)
- Agents can search, read, inspect callers/callees, and perform impact analysis before modifying code.
> Wiki keeps Agents from reading every file list before getting to work. CodeGraph doesn't just tell them "the code is here" — it tells them "changing this might affect those."
### 🛡️ A team memory panel controlled by humans
- Create teams and Agents in Memory Hub; review, share, and equip memory assets.
- Manage ownership, versions, status, visibility, usage counts, and Agent bindings in one place.
- `private` belongs strictly to the Owner; `team` is visible to all team members; `restricted` grants precise access via User / Role / Agent ACLs.
- Two role layers: **global System Admin** manages users and teams (creating teams, adding members) and can also use Wiki, CodeGraph, Skill, and other asset management features; **Team-level roles** include Admin (team manager) and Member (regular member), responsible for asset collaboration and access control within a team. Asset ownership is tracked via Owner — the Owner automatically has management permissions for their assets.
[![image.png](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/asset.cn.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/asset.cn.png)
## Cold Start: Load the Save File, Then Get to Work
Most Agents' first task is re-learning your project. TencentDB Agent Memory turns the learning cost you've already paid into a save file:
[![Cold Start: import codebase, docs, and history into Memory Hub](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/flowchart3.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/flowchart3.png)
Specifically, these existing assets can be imported directly and processed automatically in the panel:
- **Codebases**: Import existing repositories — **CodeGraph** automatically indexes symbols, files, call relationships, and impact paths.
- **Documents & files**: Import relevant docs and files — **Wiki** automatically generates structured pages with a link graph.
- **Conversation sessions**: Import past Agent conversation sessions — **Skills and Chat Memory** are automatically extracted as reusable assets.
> Stop retraining every Agent. Give it the save file.
## One Play Style: Build a Growing Agent Team for a One-Person Company
Open Memory Hub and create a team:
```
Tiny but Serious Inc.
├── 👤 You · Set goals / Make decisions
├── 🔭 Scout · Research / Find opportunities
├── 🛠 Builder · Write code / Build products
├── 🧪 Reviewer · Test / Find issues
└── 🧠 Agent Memory · Preserve the team's experience
```
You're not opening four disconnected chat windows — you're assembling a squad with different roles that can inherit the team's accumulated experience.
### Recruit first, then equip
```
🔭 Scout
├── User interview Chat Memory
├── Market research Wiki
└── Competitive analysis Skill
🛠 Builder
├── Product Wiki
├── Project CodeGraph
└── Feature Delivery Skill
🧪 Reviewer
├── Historical incident Chat Memory
├── Project CodeGraph
└── Release Checklist Skill
```
Different roles, different loadouts. Less noise — give each Agent the memory assets it actually needs to get work done.
**The company can be tiny. Experience can compound forever.**
## Memory Assets, Not a Chat Log Warehouse
RAG answers "what can be found?" Team Memory also answers "who can use it, which version is valid, and which Agent should receive it."
| | Chat History | Standard RAG | TencentDB Agent Memory |
| ---------------------------------- | ------------ | ----------------- | ---------------------- |
| Cross-session user understanding | △ | △ | ✅ Chat Memory |
| Distilled executable experience | — | — | ✅ Skill |
| Document structure & relationships | — | △ Chunk retrieval | ✅ Wiki + Link Graph |
| Code call graphs & impact scope | — | △ Text match | ✅ CodeGraph |
| Ownership / Version / Status | — | — | ✅ |
| Team sharing & Agent loadout | — | — | ✅ |
| Private / Team / ACL | — | △ | ✅ |
## Memory Hub Is Not a Display Board — It's a Control Panel
| Play Style | What you do in the Hub |
| ---------------------- | -------------------------------------------------------------------------------- |
| **Team Up** | Create teams, add people and Agents, define sharing boundaries |
| **Asset Library** | Browse, search, review, and manage Chat Memory, Skills, Wiki, and CodeGraph |
| **Agent Loadout** | Bind different memory assets to different Agents; adjust priority and usage mode |
| **Knowledge Workshop** | Build Wiki and CodeGraph; monitor processing status and asset metadata |
| **Access Control** | Switch between private, team, and ACL-based access; revoke sharing when needed |
When you open an asset, what matters is not just "what it says," but also "where it came from, which version it is, who it's assigned to, and whether it's been used recently."
## Every Loop Gains Experience
[![Every Loop Gains Experience: continuous accumulation, making every use smarter](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/flowchart4.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/flowchart4.png)
Memory doesn't run the Agent loop; it ensures the next iteration inherits the previous one's results: valuable interactions stay in Chat Memory, proven workflows are distilled into Skills, and document/code changes are updated through Wiki ingest and CodeGraph sync.
**Without Memory, loops may just repeat faster. With inherited memory, each iteration has the chance to be better than the last.**
New Chat Memory and Skills are private by default. Sharing is an explicit action, not a default leak.
| Visibility | Semantics |
| ------------ | ----------------------------------------------------- |
| `private` | Only the Owner can read — not even team admins |
| `team` | Team members can read; the Owner / Admin can manage |
| `restricted` | Precise access via User / Role / Agent ACL |
| `agent` | For targeted equipping of Agents within the same team |
You can assign the "Release Skill" to the Release Agent, the "Architecture Wiki" to all development Agents, and CodeGraph to Coder and Reviewer.
## Technical Implementation
TencentDB Agent Memory doesn't aim to "store everything." It solves three problems: **what's worth keeping, who can use it, and how to retrieve less while retrieving the right things next time.**
[![Technical overview: layering (L0L3), Memory Assets, Memory Hub, identity-based assembly for Agents](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/flowchart5.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/flowchart5.png)
### 1\. Memory isn't flat records — it grows in layers
Conversations are first saved as L0, then refined by an async pipeline into multiple levels of granularity:
| Layer | What it stores | Primary use |
| --- | --- | --- |
| **L0 Conversation** | Raw conversations with full context | Verify exact wording, timestamps, and sources |
| **L1 Atom** | Facts, preferences, constraints, and events extracted from conversations | Precise recall of actionable information |
| **L2 Scenario** | Knowledge blocks organized around projects or scenarios | Quickly restore a working context |
| **L3 Core / Persona** | Long-term profiles, stable patterns, and high-level cognition | Let Agents rapidly enter a user's and team's context |
Both generation and retrieval are layered: normally, L2/L3 provide a quick context bootstrap; when specific facts are needed, BM25 + vector retrieval + RRF fall back to L1/L0. Results are further capped by item count, character budget, and timeout limits to prevent memory from overwhelming the context window.
### 2\. Memory isn't a global prompt — it's the Agent's loadout
Chat Memory, Skills, Wiki, and CodeGraph are all registered uniformly as Memory Assets. Memory Hub uses **Fixed Binding + ACL** to determine which assets a given Agent can use: first narrow the permission scope by Team, User, Agent, and visibility, then retrieve based on the current query.
This lets teams share experience without exposing all their private information; switching Agents or frameworks only requires re-equipping, not retraining.
### 3\. Knowledge isn't injected wholesale — it's called on demand
Documents are organized into searchable Wiki pages that support link-graph drill-down; codebases are indexed into CodeGraph assets containing files, symbols, and call relationships. Agents first discover capabilities via `/v3/tools/list`, then use `/v3/tools/call` to read relevant pages, source code, or impact paths.
This makes documents and code part of memory as well — but they remain available tools that only enter context when truly needed.
## Benchmark
| Benchmark | Without TencentDB Agent Memory | With it enabled | Relative improvement |
| --- | --- | --- | --- |
| **PersonaMem** | 48% | **76%** | **+59%** |
PersonaMem tests whether an Agent can correctly understand and apply user information after extended interactions.
## Notes
- Wiki and CodeGraph are built asynchronously; allow some processing time before they reach `ready` status.
- CodeGraph currently prioritizes public HTTPS repositories; support for private repositories and SSH credentials is still being refined.
- The Hub supports manual asset binding; fully automated memory routing is still under iteration.
- TencentDB Agent Memory currently supports OpenClaw, Hermes, Claude Code, CodeBuddy, and SDK integration; broader cross-framework migration is on the roadmap.
## Related Documentation
- [Full Installation Guide](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/INSTALL.md) (Memory Core + Hub + Proxy one-click deployment)
- [Data Migration Tool (v2 → v3)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/MemoryCore/scripts/migrate-v2-to-v3/README.md) (if you're on an older release and want to migrate existing data)
- [Knowledge OpenAPI](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/MemoryKnowledge/openapi.yaml)
- [Contributing Guide](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/CONTRIBUTING.md)
Agent Memory doesn't have a settled standard yet. Bug reports, documentation, benchmarks, new framework adapters, and more creative Memory Hub use cases are all welcome.
---
## Acknowledgements
TencentDB Agent Memory stands on the shoulders of the open-source community:
- [**CodeGraph**](https://github.com/colbymchenry/codegraph) — our CodeGraph asset module **uses code from this project**. Its design of a pre-indexed code graph is the foundation of our implementation.
- [**Hermes Agent**](https://github.com/nousresearch/hermes-agent) (Nous Research) — our Skill asset management **uses part of the Skill-related code from Hermes Agent and builds further optimizations base on it**.
- [**"LLM Wiki"** by Andrej Karpathy](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — the idea of treating documentation as an LLM-maintained, incrementally growing knowledge artifact directly informed how our Wiki layer is built and kept up to date.
We are grateful to the authors and contributors of these projects.
---
## Community & Contributing
We welcome contributions of all kinds — bug reports, feature suggestions, documentation fixes, benchmark reproductions, ecosystem integrations, or pull requests. Agent memory is far from settled, and we hope to build it together with the community.
- 🐞 **Found a bug or have a question?** Open an issue in [GitHub Issues](https://github.com/Tencent/TencentDB-Agent-Memory/issues) — we respond within 24 hours.
- 💡 **Have an idea to share?** Start a thread in [GitHub Discussions](https://github.com/Tencent/TencentDB-Agent-Memory/discussions).
- 🛠️ **Want to contribute code?** Please read [CONTRIBUTING.md](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/CONTRIBUTING.md) first.
- 💬 **Want to chat with us?** Join our [Discord community](https://discord.gg/dJQM6mKMF) and talk to the core developers directly.
---
Let the path the team has walked become the next Agent's starting line.
---
## ✨ Contributors
> 💡 Thanks to the following contributors building with us — you make TencentDB Agent Memory better.
[![](https://camo.githubusercontent.com/9447bd6c00d7b3ef65d5f15ae3eaab34cfcd6fa004f69a008dcd5531bfa280d5/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d54656e63656e74436c6f75642f54656e63656e7444422d4167656e742d4d656d6f727926636f6c756d6e733d313226616e6f6e3d31)](https://github.com/TencentCloud/TencentDB-Agent-Memory/graphs/contributors)
| **If TencentDB Agent Memory has been helpful to you, please consider starring the project.** If you have any suggestions, feel free to open an issue for discussion. | [![Star TencentDB Agent Memory](https://github.com/TencentCloud/TencentDB-Agent-Memory/raw/feat/server_team/assets/images/star-helper.png)](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/assets/images/star-helper.png) |
| --- | --- |
[MIT](https://github.com/TencentCloud/TencentDB-Agent-Memory/blob/feat/server_team/LICENSE) © TencentDB Agent Memory Team

View File

@@ -0,0 +1,57 @@
---
created: 2026-08-10 12:51
modified: 2026-08-10 12:51
type: note
tags:
- dev-ops
- self-hosting
- inmotionhosting
- email
- amazon
aliases: []
---
# [[Email Backup off site hosting]]
# Infrastructure Summary: where-woof.com
**Architecture Overview:** Decoupled layout transitioning away from bundled VPS hosting to a cost-effective local hosting environment, backed by cloud storage and specialized mail delivery platforms.
---
## 1. Email Architecture
Mainstream email companies do not bundle interactive inboxes and bulk transactional sending because **reputation isolation** is required. An outgoing transactional error could blackhole everyday business communications if hosted on the same infrastructure.
### Incoming Email (Interactive Inboxes)
*Handles receiving mail from clients to custom addresses (e.g., hello@where-woof.com) accessible via client apps.*
* **Primary Providers:**
* **Zoho Mail:** Excellent free tier for up to 5 users via webmail/app; ~$1/user/month to unlock desktop IMAP/POP3 for **Thunderbird** and **Gmail**.
* **MXroute:** Flat annual fee ($30$45) providing unlimited domains and cPanel-style inbox freedom without server administration.
* **Integration:** Map your domain's **MX Records** to the chosen provider. Connect Thunderbird or your consumer Gmail app using standard IMAP (Port 993) and SMTP (Port 465) settings.
### Outgoing Email (Transactional Web Sending)
*Handles automated website delivery (e.g., password resets, notifications, contact forms) safely avoiding spam filters.*
* **Primary Providers:**
* **Resend:** 3,000 free emails/month (capped at 100/day). Developer-focused UI, easy code API integration, affordable to scale ($20/month for 50k emails).
* **Brevo:** 9,000 free emails/month (300/day limit). High free ceilings and built-in SMTP engine.
* **Integration:** Map your domain's **TXT Records (SPF & DKIM)** to give the platform sending authorization. Configure your application code to authenticate via their API or SMTP credentials.
---
## 2. Server & Local Infrastructure (Caddy)
Running your production application locally behind your existing **Caddy** configuration bypasses strict VPS pricing structures.
* **Dynamic DNS (DDNS):** Residential internet connections utilize shifting external IP addresses. You must deploy a DDNS client or script (e.g., Cloudflare API) to dynamically point `where-woof.com` to your home network whenever the IP address shifts.
* **ISP Port Constraints:** Residential ISPs frequently block incoming web traffic on **Ports 80 and 443**. If blocked, native Caddy ACME SSL verification fails.
* **Mitigation Strategy:** Route incoming web traffic through **Cloudflare Tunnels** or a lightweight cloud proxy instance ($5/month VPS) to securely bridge public web traffic to your local Caddy server.
---
## 3. Remote Cloud Backup (Amazon Web Services)
Isolating backup storage completely from your local environment secures your data against hardware failure or network loss.
* **Platform:** **AWS Simple Storage Service (S3)** or **S3 Glacier Flexible Retrieval**.
* **Workflow:** A native script running locally (via cron and utilities like Restic, Duplicati, or AWS CLI) compresses, encrypts, and transfers database and site assets directly to an AWS bucket.
* **Cost Efficiency:** Stored data costs roughly **$0.023 per GB per month**. 100 GB of offsite backup data scales cleanly to ~$2.30/month, charging strictly for the storage you consume.

View File

@@ -0,0 +1,167 @@
---
created: 2026-08-09 13:06
modified: 2026-08-09 13:06
type: note
tags:
- ai
- ai-agents
- llm
aliases: []
---
# [[AI Tool - Eve - Agent Orchestration]]
## 📌 Overview
**Eve** is an open-source, file-system-first AI agent framework developed by Vercel. Unlike traditional runtime-managed frameworks (like LangChain or CrewAI) that require complex code orchestration, Eve treats your **directory structure as the application code**. By mapping folders directly to agent topology and routing paths, it turns file layouts into isolated, multi-agent microservices.
---
## 🔥 Powers & Capabilities
* **File System Topology:** Creating a folder automatically instantiates a new agent capability. Nesting folders creates native supervisor-to-subagent routing boundaries.
* **Zero-Config Tooling:** Any TypeScript file placed inside a `tools/` directory is automatically scanned at build time. Eve generates the JSON schemas for the LLM natively without code boilerplate.
* **Durable Workflows:** Built-in support for long-running, multi-step agent actions. It can freeze execution during long processes and resume natively without state drift.
* **Local Isolation:** Can be compiled into a standard standalone Node.js (Nitro) server that stores workflow data locally on disk inside a `.workflow-data/` folder, completely independent of cloud ecosystems.
* **AI Coding Agent Friendly:** Because instructions are plain Markdown (`instructions.md`), local tools like **Hermes, Goose, or OpenClaw** can seamlessly read, modify, and scale agent rules without parsing structural code graphs.
---
## 🛠️ Local Installation & Setup (Non-Vercel Stack)
To run Eve entirely on your local machine behind a reverse proxy like **Caddy**:
### 1. Initialize Project
```bash
# Create project and install core packages locally
npm install eve@latest ai zod
```
### 2. Configure Model Runtime
Define your chosen LLM provider in `agent/agent.ts` passing your API keys via local environment variables:
```typescript
import { anthropic } from '@ai-sdk/anthropic';
import { defineAgent } from 'eve';
export default defineAgent({
model: anthropic('claude-3-5-sonnet-latest'),
});
```
### 3. Local Execution Commands
```bash
# Start local interactive TUI development environment
npx eve dev
# Compile directory tree into standalone local server
npx eve build
# Spin up production local network process
npx eve start
```
---
## 📁 Repository Directory Structure
```text
my-agent-root/
├── .workflow-data/ # Automatically stores local session state & memory logs
├── agent/
│ ├── instructions.md # Master Coordinator prompt / system rules
│ ├── agent.ts # Model SDK and global config
│ │
│ ├── subagents/ # 📁 Sub-agents automatically inferred by folder names
│ │ ├── security-guard/
│ │ │ └── instructions.md
│ │ └── browser-driver/
│ │ └── instructions.md
│ │
│ └── tools/ # 📁 Automatically exposed executable utilities
│ ├── system_tool.ts
│ └── notify_tool.ts
└── package.json
```
---
## 🚀 Specialized Local Use Case: Google Takeout & Prefect Hybrid
This architecture leverages **Prefect** for robust state scheduling, data pipelines, and error mitigation, while using **Eve** as a modular, localized execution brain for volatile UI and system tasks.
### Architecture Data Flow
1. **Prefect Flow** monitors the local download directory.
2. When a file completion event triggers, Prefect issues a local HTTP `POST` to the **Eve Master Agent**.
3. **Eve Main Agent** processes the instruction and securely hands off execution to the `/browser-driver` sub-agent.
4. The sub-agent runs local TypeScript tools to interface with the web layout, clicks the next batch, and triggers a localized webhook notification.
### Implementation Blueprint
#### 1. Eve Notification Tool (`agent/tools/send_ntfy.ts`)
```typescript
import { z } from 'zod';
export const send_ntfy = {
description: 'Sends a status notification message to a local NTFY topic endpoint.',
parameters: z.object({
message: z.string().describe('The notification body content.'),
}),
execute: async ({ message }: { message: string }) => {
const response = await fetch('https://ntfy.sh', {
method: 'POST',
body: message,
});
return { success: response.ok, status: response.status };
}
};
```
#### 2. Prefect Orchestrator Node (`takeout_pipeline.py`)
```python
import requests
from prefect import flow, task
@task(retries=3, retry_delay_seconds=30)
def alert_eve_engine(status_msg: str):
"""Triggers the locally hosted Eve Nitro server process"""
url = "http://localhost:3000/eve/v1/session"
payload = {
"message": f"System Status: {status_msg}. Execute browser-driver sequence and alert NTFY."
}
response = requests.post(url, json=payload)
return response.json()
@flow(name="Google Takeout Watcher")
def monitor_takeout_flow():
# Local disk I/O monitoring logic checking for archive completions
archive_ready = True
if archive_ready:
alert_eve_engine("Takeout segment 1 download completed successfully.")
if __name__ == "__main__":
monitor_takeout_flow()
```
---
## 🔍 Strategic Verdict
* **Do not use Eve** for high-load multi-tenant server infrastructure with 50+ concurrent external sessions on a single machine; use **LangGraph** with explicit database checkpointers (e.g., Postgres) to prevent memory bottlenecks.
* **Do use Eve** as a highly isolated, self-documenting automation sub-module for local tool pipelines where file-system layouts make it simple for AI coding assistants to expand functionality.
---
## ⚠️ CORRECTION (2026-08-09) — examples below are GENERIC, not our stack
The original note's "Specialized Local Use Case" section uses **wrong specifics** for our
environment. Do NOT copy them directly:
| In the note | Our reality |
|---|---|
| `https://ntfy.sh` (public) | Self-hosted **Apprise API server** at `https://apprise.lab.audasmedia.com.au/notify` (fans out to NTFY/Telegram/email) |
| Hypothetical `takeout_pipeline.py` | Real Prefect flows: `takeout-fetch`, `photo-ingest`, `photo-quality-scan`, `immich-import`, `photo-watch` (on photo-pool, .13) |
| `http://localhost:3000/eve/v1/session` | Eve not yet installed; when trialled it'd run on .13 behind Caddy (prefect/photo-filter.home.lab pattern) |
| Generic "browser-driver" | Our pipeline is deterministic + Prefect-owned; LLM layer only needed for **browser-driven Google export clicks** (Takeout has no API) |
**Assessment (2026-08-09)**: Eve (Vercel, open-source, Jun 2026, BETA) is interesting as a
*supplement* for LLM-orchestrated Google interaction — file-system agent model, durable
execution, sandboxes, local Nitro mode. **Not** a Prefect replacement. Defer adoption until:
(a) local `eve start` stable on .13, (b) clean call-back into Prefect/Apprise,
(c) a genuinely LLM-needed Google task. Track in `plan/01` + `plan/03`.