K1412 Agent Architecture / Lab Notes
当前架构 · 2026.07 查看源码 进入 Agent
ONE AGENT PATH / MULTI-USER / SELF-HOSTED

一套可以被持续
实验的 Web Agent

K1412 Agent 把账户、界面和执行隔离做成稳定平台,把上下文、工具调度、并行、多 Agent、 记忆和完成判定留在我们自己的 Agent Loop 中。这里既是系统说明,也是后续实验的公开台账。

01 统一 Agent 路径 没有 Chat / Work 分叉
04 可选模型 模型与推理强度分离
1 : 1 用户执行空间 容器、网络与持久卷
SSE 运行事件流 模型、工具与完成证据
02 / ARCHITECTURE

稳定外壳与
实验核心解耦

点击一条链路,观察一次请求如何穿过系统。公开入口只有 Web;模型密钥、Docker 权限和用户执行环境始终留在服务端。

PUBLIC EDGE
01 / CLIENT Browser 登录、会话、文件下载
02 / STABLE SHELL Open WebUI Auth · RBAC · History · UI
PRIVATE APPLICATION NETWORK
03 / EXPERIMENT CORE Agent Runtime Context · Loop · Tools · Memory
04 / INFERENCE Model Provider K1412 API · DeepSeek
05 / POLICY GATE Workspace Gateway Identity · Path · Docker lifecycle
STATE PostgreSQL + Redis Chats · Events · Plans · Memory
TAILSCALE / PHYSICAL WORKER
06 / USER BOUNDARY Per-user Workspace Container · Network · Persistent volume
AGENT REQUEST / 7 HOPS

浏览器的已登录请求由 Web 转换成兼容 OpenAI 的流式调用;Runtime 独立完成上下文构建、模型调用、工具循环和证据校验。

A

Open WebUI

负责用户系统、会话、历史和呈现。它是产品外壳,不决定 Agent 如何思考与执行。

STABLE / UPSTREAM-BASED
B

Agent Runtime

负责模型、上下文、工具、并行、委派、记忆和完成判定,是我们主要的实验面。

FAST-MOVING / OWNED
C

Gateway + Workspace

把已验证用户绑定到唯一执行空间,控制路径、资源和 Docker 生命周期。

SECURITY BOUNDARY
03 / AGENT LOOP

模型不是 Agent,
循环才是。

当前基线为 agent-loop-v3。模型每轮可以回答或提出工具调用;Runtime 负责校验、调度、恢复,并拒绝没有证据的“已完成”。

CONTEXT / recent-visible-v1

把有限上下文留给真正影响下一步的内容

移除旧的工具详情渲染,按模型预算保留最新可见消息,再注入最多 8 条持久记忆。上下文策略和 Agent Loop 分别版本化。

  • 去掉历史消息中的工具 UI 标记
  • 最近消息优先,按字符预算截断
  • 记忆只作为补充上下文,不直接取得执行权限
PARALLELISM

只并行已知安全的读取

连续的只读、parallel_safe 工具可以并发;写入和状态变更保持顺序, 避免输出更快但结果不可复现。

RECOVERY

失败不是上下文噪声

命令失败必须被修复并重新运行,重复无进展调用会被守卫阻止,模型不能用文字绕过失败。

DELEGATION

委派是受限的工具

只读子任务可并行,子 Agent 不能继续委派。父循环仍然负责整合证据和最终完成判定。

声称完成的类型最低证据阻止条件
生成文件成功写入 + 随后读取或列出只有模型文字
修改代码变更操作 + 相关验证未解决的失败命令
生成报告来源或执行结果 + 报告文件验证报告早于实验
性能比较可解析的精确数值只有定性结论
04 / EXECUTION SPACE

每个用户,一套
长期存在的工具台

生产执行发生在物理机 home-node-itx。Gateway 通过 Tailscale + SSH 管理 Docker;用户得到独立容器、网络和持久卷,而不是宿主机账号。

IMMUTABLE INPUT Open WebUI user_id sha256(user_id) → workspace_id
CONTAINERk1412-ws-<id>
NETWORKk1412-ws-net-<id>
VOLUMEk1412-ws-data-<id>
01

身份不下放给浏览器

Web 验证登录,Runtime 每次调用 Gateway 前重新签发短期身份。内部服务密钥从不进入前端。

02

容器不是主机边界的替代品

只读根目录、丢弃 capabilities、no-new-privileges、资源限制、无宿主端口和 Docker socket。

03

依赖和文件都会留下

/workspace 由命名卷持久化;Python 位于 .venv,镜像升级不会删除用户数据。

04

输出可以直接取回

工作区抽屉支持浏览、下载文件和流式归档。用户无需接触 Gateway、SSH 或容器名称。

05 / MODEL POLICY

先标清模型,
再标真实思考能力

Luna、Terra、Sol 是三个独立模型,不是同一模型的轻、中、高强度。前端只显示后端确认支持的 思考语义;provider、循环和上下文预算仍由服务端模型目录固定。

LOCAL MODEL

Luna

思考:开启(不分档)

循环上限
8
上下文预算
120k chars
LOCAL / DEFAULT

Terra

思考:开启(不分档)

循环上限
16
上下文预算
240k chars
LOCAL MODEL

Sol

思考:开启(不分档)

循环上限
24
上下文预算
400k chars
CLOUD / MAX EFFORT

DeepSeek V4 Pro

思考强度:极高(max)

循环上限
32
上下文预算
800k chars
命名规则

Luna / Terra / Sol / DeepSeek V4 Pro 是四个独立模型。前三者目前只暴露 “思考开启”的布尔能力,不能严谨地标成轻、中、高;DeepSeek 才明确使用 reasoning_effort=max,界面标注为“极高”。

06 / EXPERIMENT LOG

每次改进都应该
留下可比较的记录

实验以问题、基线、变量、数据集、指标和结论为最小单元。页面读取仓库里的 experiments.json,与实现一起版本化。

正在读取实验台账…

07 / OPERATIONS

一条公开入口,
多层私有服务

生产栈运行于 Unraid NAS,公开流量经 VPS 上的 Nginx Proxy Manager 和 Tailscale 进入 NAS。文档和聊天由同一个 Web 镜像提供。

GITgit.k1412.top
OCIdocker.k1412.top
COMPOSEUnraid NAS :12004
PUBLICagent.k1412.top
01 / BUILD

不可变镜像

镜像按 UTC 时间与 Git commit 标记;发布只替换发生变化的服务。

02 / VERIFY

分层验证

静态检查、单元测试、真实 Docker、完整 E2E、镜像审计与公开路径冒烟。

03 / OBSERVE

事件优先

每轮上下文、模型、工具和完成状态进入运行事件,便于重放与实验比较。

04 / ROLLBACK

保留上个版本

配置先备份,旧镜像不覆盖;验证失败时恢复镜像引用即可回退。

08 / PROJECT HISTORY

从业务 Agent 到
通用实验平台

项目按“干净重建”推进,不保留旧业务 Skill 和旧 API 兼容层。下面记录已经改变系统性质的关键决策。

  1. 01
    FOUNDATION

    重建为多人 Web Agent

    Open WebUI 承担账户和聊天外壳,自研 Runtime 承担 Agent 能力。

  2. 02
    PRODUCT

    收敛为单一 Agent 路径

    删除 Chat / Work 双模式,降低交互和后端维护成本。

  3. 03
    EXECUTION

    迁移到远端持久工作区

    接入 home-node-itx,打通每用户容器、持久卷与文件交付。

  4. 04
    RELIABILITY

    建立证据驱动的完成策略

    加入恢复、重试守卫、精确报告证据和结构化事件。

  5. 05
    PLATFORM

    补齐 Python 环境与长期身份

    持久化虚拟环境、pipefail、900 秒工具超时和每次调用的新鲜身份令牌。

  6. 06
    NOW

    文档与实验成为产品界面

    架构、实现、运维和实验台账随代码发布到同域门户。

09 / REPOSITORY

网页负责建立心智模型,
仓库文档负责成为事实来源。

所有设计说明、限制、运维步骤和实验规范都与代码一同提交。门户是摘要, Markdown 文档是评审与变更时的正式依据。

打开 Git 仓库