Skip to content

Agent 架构

定位

agent 模块为站内内容提供问答与讲解能力,不是通用聊天系统。当前主要场景:

  • 以"作者分身"身份回答关于作者的问题
  • 围绕文章内容做解析与讲解
  • 围绕项目内容做说明与问答

核心文件

文件职责
agent.controller.ts对话接口、历史读取与清空
agent.service.ts上下文组装、历史消息管理
agent-graph.service.tsLangGraph 图执行入口
agent-skill.registry.tsSkill 注册与切换
llm.config.ts模型配置(provider / model / key)

请求流程

前端 POST /api/agent/stream
  → 读取用户上下文与历史消息
  → agent-graph.service 组装执行图
  → 调用 LLM(流式)
  → SSE 逐 token 推送至前端
  → 写入 agent_message(已登录用户)

当前能力

  • 流式输出 — SSE 实时推送
  • 对话历史 — 读取与清空
  • Skill 机制 — 支持运行时切换不同 Skill
  • LangChain / LangGraph — 模型调用与执行流编排

内置 Skill

Skill说明
author_clone作者分身,基于作者设定回答个人相关问题
general_helper通用助手,围绕文章与项目内容做问答

扩展

新增 Skill 只需在 agent-skill.registry.ts 中注册,无需修改核心流程。模型提供方通过修改 llm.config.ts 切换,兼容任意 OpenAI 协议接口。

基于 CC BY-NC 4.0 协议开源 · 个人使用,禁止商业用途