Help us shape the future of Go! Take the 2026 Go Developer Survey

lucky-agent

module
v1.5.41 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2026 License: MIT

README

LuckyAgent Brand

LuckyAgent

LuckyAgent 主仓库维护公开的 Agent 核心库,并保留构建完整 lh 程序的薄入口。模型、会话、记忆、RAG 和应用入口来自独立 Go 模块,在同一个进程内组装运行。

它不是只提供一个聊天窗口,而是提供一套可以观察、配置和持续运行的 Agent 基础设施。

GitHub project QQ group Configuration guide Deployment knowledge base API documentation

界面预览

LuckyAgent empty chat workspace LuckyAgent skills workspace

LuckyAgent memory graph workspace LuckyAgent messaging gateways workspace

Embed SDK(进程内)

把 LuckyAgent 当作 Go library 嵌入宿主进程,无需先起 lh serve。SDK 在 luckyagent-app,导入 github.com/yurika0211/luckyagent-app/sdk。

agent, err := sdk.New(sdk.Config{
    HomeDir:  "/var/lib/myapp/luckyagent",
    Provider: "openai",
    Model:    "gpt-5.4-mini",
    APIKey:   os.Getenv("OPENAI_API_KEY"),
})

说明见 luckyagent-app/sdk/README.md。稳定面(v0):New / Chat*(含多模态 Input) / Sessions(含 Compact) / Memory / RAG / Tools / Models / Skills。Agent 循环本身是 github.com/yurika0211/lucky-agent/agent,完整应用组装走 SDK。

核心能力

  • 统一运行时:CLI、HTTP API 和消息网关共享同一个 Agent 核心。
  • 会话存储:并发保存、备份恢复和删除使用同一生命周期保护;冷元数据更新不加载正文,大历史分页复用偏移索引。见会话存储可靠性。
  • 长期记忆:用 Obsidian-compatible Markdown vault 保存用户画像、事实、规则、决策和会话轨迹。
  • RAG 知识库:索引项目文档、个人笔记和运维资料,并在 Agent 运行时检索。
  • 工具与技能:支持内置工具、技能加载、技能安装、MCP 和 OpenCLI。
  • 独立插件:安装和管理包含 Skills、命令、Agent 预设、MCP 与工具 Hooks 的插件包,支持显式 marketplace。见插件接入说明。
  • 多平台入口:支持 Telegram、QQ Official、NapCat、飞书、微信和 OpenClaw Weixin。
  • 外部客户端:会话、工具轨迹、Memory Graph、技能、插件管理和网关通过 HTTP API 提供。安卓“资源与连接 → 插件”支持查看、安装、更新、启停及卸载,变更重启服务后生效。手机工作区在独立仓库 luckyagent-android。
  • 多 Agent 能力:提供协作和委派。评测命令在 luckyagent-app 的 cmd/la-*-bench。
  • 长任务上下文:有界历史投影、完整工具轮次裁剪、当前会话证据读回和执行账本。见行为与限制。
  • Agent 执行保障:完整请求预算、早期失败账本、逐项验收证据和发布依赖一致性检查。见核心加固说明。

快速开始

环境要求
  • Go 1.25+
  • 一个可用的模型服务和对应 API 凭证
从源码运行

初始化运行目录:

go run ./cmd/la init

配置一个 OpenAI-compatible provider:

go run ./cmd/la config set provider openai
go run ./cmd/la config set api_base https://api.openai.com/v1
go run ./cmd/la config set model gpt-5.4-mini
go run ./cmd/la credential add openai-main --kind llm_api_key
go run ./cmd/la config set models.endpoints.chat.credential_ref openai-main

凭据值通过 TTY 隐藏输入,保存在 ~/.luckyagent/runtime/credentials.db 中;配置文件只保存引用。credential list 只显示凭据元数据,credential remove <id> 删除凭据。模型调用 request_credential 时,客户端弹出掩码表单,明文不进入模型上下文。

需要调用带凭据的外部 HTTP API 时,可在 request_credential 之后调用 create_ephemeral_credential_tool。它会创建一个绑定当前会话、带 TTL 的临时工具;工具只持有 credential_ref,明文只在请求执行期间注入认证头,不写入会话或后台任务。详见 docs/tools/basic/create_ephemeral_credential_tool.md。

需要让 CLI 或 shell 命令使用凭据时,可调用 create_ephemeral_credential_terminal_tool。它只在一次受控子进程中注入环境变量,secret 不进入命令参数、ShellContext、工具结果或日志,并且创建和执行都需要审批。

如需在回答末尾显示工具来源引用,可开启自动引用尾注(默认关闭):

go run ./cmd/la config set agent.enable_citations true

开始一次本地对话:

go run ./cmd/la chat "Hello, LuckyAgent"

启动 HTTP API:

go run ./cmd/la serve --addr 127.0.0.1:9090

健康检查:

curl http://127.0.0.1:9090/api/v1/health/live

默认运行配置位于:

${HOME}/.luckyagent/config.json

容器或 systemd 部署时,请明确设置 HOME,并确保这个目录及其下的 config.json、sessions、memory、RAG 和 runtime 数据可持久化。

部署与安装

完整部署知识库已经独立到网页,包含:

  • Linux、macOS、Windows 发布包安装
  • 源码运行和运行目录规划
  • 开发 Docker Compose
  • 生产 Docker Compose 和 GHCR 镜像
  • 镜像直跑、systemd 和长期运行
  • Telegram、QQ、NapCat、飞书和微信网关
  • 配置、健康检查、网络、鉴权和常见排障

请优先阅读:

打开 LuckyAgent 部署知识库

仓库中也提供了两套 Compose:

# 开发环境:从当前源码构建
docker compose up -d --build luckyagent

# 生产环境:使用预构建镜像
docker compose -f docker-compose.prod.yml up -d luckyagent

生产环境启用消息网关时,使用对应 Compose profile:

docker compose -f docker-compose.prod.yml --profile telegram up -d
docker compose -f docker-compose.prod.yml --profile napcat up -d

不要把 README 中的简短命令当作完整生产配置。生产部署前应按照部署知识库确认 HOME、配置挂载、server.addr、端口、防火墙、访问白名单和网关 token。

常用命令

安装发行版后使用 lh;从源码运行时,将 lh 替换为 go run ./cmd/la:

lh init
lh config list
lh config get provider
lh config set model gpt-5.4-mini
lh chat
lh chat "Summarize this repository"
lh serve
lh qr
lh msg-gateway start --platform telegram
lh msg-gateway start --platform qqofficial
lh msg-gateway start --platform napcat
lh rag index ./docs
lh rag search "deployment"

文档导航

Prompt 和运行数据

运行时数据默认保存在 ${HOME}/.luckyagent。其中:

~/.luckyagent/
├── config.json
├── sessions/
├── memory/
├── skills/
├── plugins/
├── rag/
├── logs/
├── runtime/
├── workspace/
└── knowledge/

Agent 的行为 prompt 位于:

~/.luckyagent/memory/prompts/

常见文件包括 SOUL.md、AGENTS.md、core.md、tool_policy.md、skill_policy.md 和 memory_policy.md。修改 prompt 后,后续请求会使用新的内容,通常不需要重新编译程序。

本地开发或测试时,可以隔离运行目录:

HOME="$PWD/.lh-home" go run ./cmd/la chat "Test the local runtime"

项目结构

agent/                   公开 Agent 核心与测试(独立 Go module)
cmd/la/main.go           薄可执行入口
luckyagent-app           CLI、API/渠道产品逻辑、SDK、评测(外部模块)
luckyagent-runtime       模型、配置、会话、记忆、RAG 等组件(外部模块)
luckyagent-tools         通用工具与执行能力(外部模块)
luckyagent-plugins       插件格式、安装快照、marketplace 与信任状态(外部模块)
luckyagent-api           HTTP/WS/gRPC 传输(外部模块)
luckyagent-gateway       平台协议与连接(外部模块)
config.example.json      产品配置模板
docs/                    使用文档与模块边界

tools.filesystem.allowed_read_roots 只放行 file_read、file_list、document_read。写入、补丁和删除仍限制在 ~/.luckyagent/ 与 /tmp/。示例里的 ~/workspace、~/Obsidian 需要换成真实目录;不要加入 ~/.ssh、~/.aws、~/.gnupg。改完后重启 lh serve。

开发

运行 Agent 模块和薄入口模块的测试:

make test

agent 有自己的 go.mod,父目录的 go test ./... 不会遍历它。仓库自带的 go.work 只包含本仓库两个模块,普通编译和 Docker 都会使用当前 agent/ 源码:

go build -o lh ./cmd/la
# 另行验证已发布依赖,确保不需要其他仓库的本地源码
GOWORK=off go build -o lh ./cmd/la

Agent 核心修改在 agent/;CLI、API 和渠道产品逻辑在 luckyagent-app;后端组件在 luckyagent-runtime。新嵌入代码使用 github.com/yurika0211/lucky-agent/agent,完整应用 SDK 使用 github.com/yurika0211/luckyagent-app/sdk。

License

License

Directories

Path Synopsis
agent module
cmd
la command
Package e2e tests the compiled lh launcher.
Package e2e tests the compiled lh launcher.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL