Skip to content

Repository files navigation

林黛玉 GenericAgent Docker 开发环境

这是一个只包含林黛玉智能体相关内容的 GenericAgent 开发包:

Public release note: this repository contains only reusable core code and seed memory. Dynamic interaction memories, experiment outputs, trajectories, and private acceptance materials are intentionally excluded.

  • 不复制原始 GenericAgent 的其他 memory;
  • 不复制 qingpu、政务写作、校对和其他对话沉淀的 SOP;
  • 只运行 GenericAgent 核心和 ga_httpapp.py;
  • 记忆目录可写,支持 Markdown 记忆动态调整;
  • API Key 通过宿主机文件挂载,不进入镜像。

三种启动方式

方式一:Docker Web Preview(推荐)

cd /path/to/lin-daiyu-agent
cp .env.example .env
# 编辑 .env,设置 GA_HTTP_KEY 和 MYKEY_FILE

./prepare_context.sh
docker compose build
docker compose up -d

浏览器打开:

http://127.0.0.1:18080/?key=你的GA_HTTP_KEY

然后输入:

进入林黛玉模式

查看日志:

docker compose logs -f lin-daiyu

停止服务:

docker compose down

方式二:不使用 Docker,启动本地 Web

先安装 Python 依赖:

cd /path/to/lin-daiyu-agent/build-context
python3 -m pip install \
  requests beautifulsoup4 bottle simple-websocket-server \
  aiohttp fastapi uvicorn

启动 HTTP 前端:

export PYTHONPATH="/path/to/GenericAgent:$PWD"
export GA_HTTP_KEY="replace-with-a-local-ui-key"
python3 assets/ga_httpapp.py 8080 "$GA_HTTP_KEY"

浏览器打开:

http://127.0.0.1:8080/?key=你的GA_HTTP_KEY

终端按 Ctrl+C 停止。

可选:启动后切换到 DeepSeek:

curl "http://127.0.0.1:8080/llm?llm_no=2&key=$GA_HTTP_KEY"

方式三:不使用 Docker,启动命令行 Agent

cd /path/to/lin-daiyu-agent/build-context
export PYTHONPATH="/path/to/GenericAgent:$PWD"
python3 agentmain.py --llm-no 2

然后在终端输入:

进入林黛玉模式

按 Ctrl+C 停止。

三种方式的区别

方式 入口 前端 默认端口 使用的 memory
Docker Web docker compose up 有 18080 lin-daiyu-agent/memory/ 挂载到 /app/memory/
本地 Web python3 assets/ga_httpapp.py 有 8080 build-context/memory/
本地 CLI python3 agentmain.py 无 无 build-context/memory/

当前项目架构

本仓库是 GenericAgent 的林黛玉专用轻量部署包,不复制完整的 GenericAgent checkout。项目由“外部核心源码 + 本仓库配置与公开 seed memory + 生成的 Docker 构建上下文”组成:

GenericAgent checkout
        │ GENERIC_AGENT_ROOT
        ▼
prepare_context.sh ───────┐
        │                  │
        ▼                  ▼
build-context/       本仓库 memory/、Dockerfile、
(白名单运行时)       assets/ga_httpapp.py、配置文件
        │
        ▼
Docker 容器
        │
        ├── assets/ga_httpapp.py
        │       └── FastAPI HTTP API + 内置 Web UI
        │
        ├── agentmain.py
        │       └── GenericAgent 任务队列、会话与历史
        │
        ├── agent_loop.py / ga.py / llmcore.py
        │       └── Agent 循环、工具调用、LLM 会话
        │
        └── memory/
                ├── global_mem.txt
                └── lin_daiyu.md + lin_daiyu/

目录职责:

目录/文件 职责
prepare_context.sh 从 GENERIC_AGENT_ROOT 读取核心源码和林黛玉 memory,生成干净的 build-context/
build-context/ Docker 的白名单构建上下文;可删除并由脚本重新生成,不是另一套源码
assets/ga_httpapp.py Web/HTTP 适配层,提供对话、输出查询、中止、模型切换和系统提示接口
memory/ 本项目唯一的可写记忆目录;容器通过 volume 使用
Dockerfile / compose.yaml 安装依赖、构建无桌面容器,并挂载 memory、临时数据和只读 API Key
.env.example 本地启动所需的端口、HTTP Key 和宿主机 mykey.py 路径示例

运行时有两条入口,但共用同一套 GenericAgent 核心:

  • Web/HTTP:浏览器或 API → assets/ga_httpapp.py → GenericAgent → Agent loop/LLM → memory/
  • CLI:agentmain.py → GenericAgent → Agent loop/LLM → memory/

安全边界:

  • API Key 通过宿主机文件挂载,不写入镜像;
  • 容器只挂载本仓库的 memory/、data/temp/ 和指定的 mykey.py;
  • 完整 GenericAgent checkout 不进入 Docker,prepare_context.sh 只复制运行所需的白名单文件。

非 Docker 方式直接运行 build-context,不会自动使用 Docker 的宿主机 volume。若修改了核心代码,重新生成构建上下文:

cd /path/to/lin-daiyu-agent
./prepare_context.sh

记忆与重置

容器使用本目录的 memory/ 作为唯一可写记忆目录。动态写回会直接落到:

memory/lin_daiyu/

build-context/ 是构建时生成的白名单上下文,不包含 API Key,也不包含其他项目 memory。

如需重新从 GenericAgent checkout 的 memory/lin_daiyu 生成干净上下文:

./prepare_context.sh
docker compose build --no-cache

设计边界

当前容器是无桌面版。GenericAgent Desktop 依赖 macOS 的 pywebview、窗口和 ScreenCaptureKit,不放进 Docker;容器通过本地 HTTP 入口提供对话能力。

容器不挂载完整的 GenericAgent checkout,只挂载本目录的 memory/、data/temp/ 和指定的 mykey.py。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages