avatar
文章
22
标签
8
分类
0

主页
归档
留言板
KatzenyaSax: Hello!
主页
归档
留言板

KatzenyaSax: Hello!

ki - 核心设计
发表于2026-10-14
ki 核心设计Ki Agent Loop主要入口是 runTurn,由 RpcServer 和 Subagent 调用,当用户输入一条 query 时正式开启 agent loop。 主要有以下流程:发起事件 -> 处理会话标题(新会话专属,旧会话跳过) -> 等待 loop 完成 -> 处理异常(如果有的话) 等待 loop 完成 中的 #loop 才是内部主要运行主体,根据 llm 的工具意图作为循环依据,主要流程为:开始循环 -> 是否压缩 -> 构建 context -> 流式调用 llm -> 处理工具意图 -> 继续循环。 构建 context#buildRequest 方法用于构建 context,主要拼接:系统提示 + 历史消息 (含工具调用/结果/压缩) + 完整工具信息 + 模型 + 中断信号 + 思考预算。 这个方法做了什么: 123456789101112return { system: this.#buildSystemPrompt(), messages: this.#toPr ...
Ki - 工具结果留痕机制开发 - 记一次失败的开发
发表于2026-10-12
Ki - 工具结果留痕机制开发 - 记一次失败的开发工具结果索引化这个想法来源于一个客观事实,就是工具结果往往有一大段,但是真正对 LLM 来说有用的部分却很少(比如),其余的绝大多数文本(比如各种打印日志、输出语句、结构化关键字关键符号)都是没用的,但是这些文本都会被统一收入到上下文,在上下文压缩前,这些大段的无用文本一直占用上下文,随着工具调用频次增加,上下文累积速度会不断加剧;同时无用文本的大量存在也会极大地影响 LLM 的工作,俗称上下文污染。 针对这个问题,我设想了一套机制,通过动态剔除无用信息,只保留有用信息,从而优化上下文管理。因为工具结果作为文本,其具备行的概念天然可以索引化,只有有行号就可以用来表示正文。 初版方案是,在工具结果回填给 LLM 时,我们就让 LLM 输出一个 json schema 来标明该工具结果的哪些行是有用的,随后落实到 session.jsonl 时做出增量标记:该工具结果只有某些片段有用。而后续 runtime 从 session.jsonl 读取数据加载到 context 时,就只保留这些区间内的文本,忽略之外的文本。 也就是说,针对工具调 ...
JavaGuide - Harness Engineering
发表于2026-09-10
HarnessEngineeringHarness Engineering:六层检查框架、上下文管理与工程实践 Harness一个很有名的公式将 Agent 概括为:Agent = Model + Harness。 其中 Model、LLM 虽然是 Agent 的决策中枢,却完全没有任何活动能力,堪称“缸中之脑”,它既没有记忆能力,无法选择上下文,也无法使用工具,甚至无法感知到外界,只能处理输入的文本。 而 Harness 就是为了补足裸露 LLM 的缺陷而被创造出来的产物。LLM 没有记忆?不能用工具?不能感知外界?没关系,由我们人类为 LLM 创造一个沙箱环境,只要能完成工作,它需要什么,我们就给它什么,一切以 LLM 的判断为准,我们只做后勤工作,换言之,我们要做一个全盘支持 LLM 运作的环境。 然而,我认为 Harness 还应当再次分层,将其分为 Runtime 和 Capacity 。前者为 Agent Loop 的运行时环境,包括工具系统、记忆系统、上下文管理系统、Agent Loop 感知反馈循环等,将之组成为一套独立的软件系统,缺少任何一个组件就无法使 R ...
JavaGuide - Agent 面试题总结
发表于2026-09-08
Agent面试题总结Agent 基础 AI Agent 是什么?和普通 Chatbot 有什么区别? 一句话:Agent 是一套能够感知环境、理解任务、自主规划、能调用一定外部工具最终完成任务的一套系统。 区别:普通的 ChatBot 围绕 “对话”,其中只有 LLM 一个环节,即 用户输入 -> LLM处理 -> LLM直接输出;而 Agent 则是 用户输入 -> LLM理解任务 -> LLM规划任务 -> 调用工具 -> 完成执行 的复杂流程,LLM 的输出不会直接一次性展示给用户,而是用于完成任务,这就是两者的核心区别:前者至少为了生成内容,后者则是完成任务。 细分维度:可以从以下维度对比:核心目标、行为模式(文本生成 vs 理解+决策+执行)、工具调用、自主性、记忆、任务复杂度、环境感知、反馈闭环。 更深:Agent 的核心组成?下一道题 Agent = LLM + Planning + Memory + Tools + Enviorment + Action Loop 这条公式怎么理解? 一句话:即目前 Agent 的主流 ...
JavaGuide - MultiAgent
发表于2026-08-19
MultiAgent多 Agent 协作系统设计:任务拆分、状态共享、冲突处理与失败恢复 MultiAgent & PromptChain什么叫 PromptChain?这是 Agentic Workflow 中的概念,LLM 在 Workflow 中不再负责整体规划,而只负责节点的实现,针对每个节点预先输入 Prompt,LLM 跟随 Workflow 进程就能依次执行。 二者对比: 对比项 多阶段 Prompt Chain 多 Agent 执行单元 一条 Workflow 中的处理节点 可以独立完成子目标的 Agent 工作方式 节点按照既定逻辑处理输入并产生输出 Agent 可以选工具、观察结果并迭代执行 控制方式 Workflow 负责节点跳转和状态流转 可以用固定编排,也可以由模型动态委派 上下文 上下文通常沿处理链路传递 可以按 Agent 隔离上下文、工具、权限和状态 运行状态 主要关注整条链路执行到了哪个节点 还要区分各 Agent 的任务、状态、尝试次数和交付结果 结果交付 节点输出通常作为后续节点的输入 可以传消息、共享状态, ...
JavaGuide - MCP
发表于2026-08-18
MCP什么是 Model Context Protocol (MCP)?和 Function Calling、Agent 什么关系? MCP 是为 Agent 提供工具的,只不过它的工具是运行在云端或本地其他服务上的,Agent 需要经过一层 MCP客户端 -> JSON RPC协议 -> MCP服务器(其他服务) 才能注册和使用 MCP 提供的工具,省了我们手动定义工具,也防止 Agent 和 Tool 的高度耦合。 前 MCP 时代在前 MCP 时代,工具是与 Agent 高度耦合的,不管是 Agent 内部的函数工具,抑或是对象工具都是如此。 在 Agent 启动时,会将自己所有的工具的 name 和 description 以列表的形式加载到内存内,并最终拼接到上下文的系统提示词内,到运行时 LLM 判断需要使用工具时就查看 system prompt 中有哪个工具直接告诉 Agent 调用就行了。 这样一来缺点很明显,不能复用、依赖手动编写、Tool 间容易重复定义。 MCP 三要素与 MCP 工作流程MCP 问世之后,MCP 将 Agent 与 Tool 解耦了 ...
JavaGuide - Skill
发表于2026-08-18
SkillAgent Skills 是什么?和 Prompt、MCP 到底差在哪? Skill本质本质:一串 Prompt,告诉 LLM 某个任务该怎么做(经过哪些步骤、怎么才算合格等),相当于一个用自然语言描述的 Workflow。 一个 Skill 通常采用文件夹存储,其结构如下: 12345skill-name/├── SKILL.md # 主文件,触发时加载├── scripts/ # 实用脚本(执行,不需要加载到上下文)├── references/ # 参考资料(按需加载)└── assets/ # 模板和静态文件(按需加载) SKILL.md 是正文,每次调用时加载到 Context 中。 元数据Skill.md 的内容包含元数据和正文,元数据举个例子 matt 的 teach 如下: 123456\---name: teachdescription: Teach the user a new skill or concept, within this workspace.disable-model-i ...
JavaGuide - 提示词工程 & 上下文工程
发表于2026-08-18
提示词工程 & 上下文工程大模型提示词工程(Prompt Engineering)是什么?提示词技巧有哪些?上下文工程(Context Engineering) 是什么?和 Prompt Engineering 有什么区别? 提示词工程Prompt 该怎么写?Prompt 一般四要素 要素 作用 常见表述 Role(角色) 告诉模型该用哪个领域的知识和语气 “你是一位 10 年经验的 Java 架构师” Task(任务) 说明要完成什么动作 “请评审以下代码的性能问题” Context(上下文) 补充和任务相关的背景 “当前线上 QPS 2000,响应时间超 500ms” Format(格式) 规定输出长什么样 “输出 JSON,包含 bottleneck、solution 两个字段” 其实归根结底,就是给模型明确的边界与约束,告诉模型xxx之内的随便做,xxx之外的不能做,这个xxx就是要告诉模型的边界。 而在顺序上,为什么一般遵循 角色、任务、上下文、格式 呢?因为模型容易更加重视提示词的开头和结尾,所以对于需要严格定义的要素,一般放在开头和结尾。 ...
JavaGuide - Agent记忆系统
发表于2026-08-15
Agent 记忆系统AI Agent 记忆系统:短期记忆、长期记忆与记忆演化机制 记忆系统的设计Agent 的记忆一般分成短期和长期,二者需要从逻辑上、物理上进行隔离。不过,一般而言长期记忆从短期记忆的沉淀中得来。 短期记忆短期记忆是内存的记忆,用于存放当前交互过程,包括用户提问、模型每轮回复、工具调用的中间结果。我们可以说:短期记忆就是Agent动态构建的Context。 短期记忆长度受限于模型的窗口,为了防止 Context 超过窗口,一般对短期记忆做如下操作: 压缩。 卸载:将上下文分索引,只将索引存到上下文中,内容卸载到本地持久化,按需查找再填入 Context。 隔离:一般是 Multiagent 时,master 给 slave 相对干净的上下文执行。 长期记忆长期记忆是持久化的记忆,例如 coding agent 普遍用 jsonl 文件存储交互信息;又或者一些通用 Agent 中将一些真理知识存入向量数据库,这些信息很大程度来源于短期记忆。 那长期记忆和 RAG 有什么区别? 技术侧重点不一样;长期记忆只是单纯地将重要信息持久化,防止丢失;而 RAG 系统则 ...
JavaGuide - Agent核心概念
发表于2026-08-11
Agent 核心概念Agent 核心概念 Agent 一句话定义AI Agent 是基于 LLM 的能力,能够感知环境、决策并执行动作的软件系统。 一个可用的 Agent 必须包含哪几个部分?必须有以下三大部分: LLM、Tool、Context。 其中,LLM 负责工作决策;Tool 由 LLM 决策调用,增强 LLM 功能;Context 构建 LLM 工作上下文。 前两者自不必说,很多人实际上忽略了 Context 的重要性,这一部分甚至可以排在三者中最重要的地位,在 LLM 高度依赖 AI 厂商提供的 API、Tool 直接化用传统编程成果的当下,Context 的高度依赖设计者自身经验,上下文质量直接决定一个 Agent 的智商,这可能将是未来竞争的主要战场。 ToolAgent 调用工具,必不可少的两大要素:Structured Schema & MCP Protocol。前者使 LLM 能够规范调用工具,后者使 Agent 与工具直接能够实现通信。 Structured Schema现在主流的数据格式基本都在向 OpenAI Function Calling Sc ...
123
avatar
KatzenyaSax
文章
22
标签
8
分类
0
Follow Me
公告
Hello
最新文章
ki - 核心设计2026-10-14
Ki - 工具结果留痕机制开发 - 记一次失败的开发2026-10-12
JavaGuide - Harness Engineering2026-09-10
JavaGuide - Agent 面试题总结2026-09-08
JavaGuide - MultiAgent2026-08-19
标签
JavaGuide ki HelloAgent 中间件 Java 生活 Agent LLM
归档
  • 十月 20262
  • 九月 20262
  • 八月 20268
  • 七月 20262
  • 六月 20264
  • 十月 20234
网站资讯
文章数目 :
22
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By KatzenyaSax
框架 Hexo|主题 Butterfly