03 · Agent运行时核心-pi-agent-core
03 — Agent 运行时核心 (pi-agent-core) 这是最核心的文档。理解了这一篇,你就理解了 Agent 的本质。 问题一个 Agent 需要持续地与 LLM 交互:发送上下文 → 接收响应 → 执行工具 → 将工具结果加入上下文 → 再次发送。这个循环何时继续、何时停止?工具调用如何执行?如果 LLM 返回错误怎么办?如果用户想在 Agent 工作时插入新指令怎么办? pi-agent-core 提供了两套实现来回答这些问题: 经典 Agent(agent.ts + agent-loop.ts)— 简单的 while 循环,适合理解概念 AgentHarness(harness/ 目录)— 生产级状态机,支持崩溃恢复、多 lane、compaction 第一层:经典 AgentAgent 类packages/agent/src/agent.ts Agent 类持有 AgentState: 1234567891011interface AgentState { systemPrompt: string; model: Model<any&...
02 · LLM抽象层-pi-ai
02 — LLM 抽象层 (pi-ai)问题OpenAI、Anthropic、Google 等 LLM 供应商的 API 各不相同:消息格式不同、流式事件不同、工具调用格式不同、认证方式不同。如果 Agent 代码直接调用某个 provider 的 SDK,切换 provider 需要大面积改码。 pi-ai 的任务是提供一个统一抽象层,让上层 Agent 代码只面对一套接口,无需关心底层是哪个 provider。 核心类型Api 与 Providerpackages/ai/src/types.ts:17-29 定义了已知的 API 类型: 123456789101112export type KnownApi = | "openai-completions" | "openai-responses" | "anthropic-messages" | "bedrock-converse-stream" | "google-generative-ai" | "g...
01 · 整体架构与包依赖
01 — 整体架构与包依赖问题一个生产级 Agent 系统涉及 LLM 调用、工具执行、状态管理、会话持久化、终端渲染、多进程协作等多个关注点。如果把它们全部塞进一个包,代码会迅速变成无法维护的巨型模块。 Pi 的解法是 严格分层:每一层只依赖下一层,职责边界清晰。 11 个包的职责 包名 npm 包 职责 层级 telemetry pi-telemetry 厂商中立的遥测契约(span、属性、schema 类型推断) 基础设施 ai pi-ai 多 provider LLM 统一接口、模型管理、认证 LLM 层 agent pi-agent-core Agent 运行时:主循环、工具调用、状态机、compaction 运行时层 protocol pi-protocol 传输中立的二进制 RPC 协议(CBOR + 长度前缀帧) 通信层 session-backends pi-session-backend-sqlite-node SQLite 会话持久化实现 存储层 coding-agent pi-coding-agent 交互式编码 Agent ...
00 · Pi 项目导读与学习路线
Pi Agent Harness 项目解构 — 导读与学习路线项目定位Pi(v0.85.1)是 earendil-works 开发的 Agent harness(Agent 运行时框架)。它不是一个简单的 LLM 封装库,而是一套从 LLM provider 抽象、Agent 运行时、会话持久化、到交互式终端 UI 的完整工程实现。 学习这个项目的价值在于:你可以看到一个 生产级 Agent 如何解决以下工程问题—— 如何统一 10+ 个 LLM provider(OpenAI、Anthropic、Google 等)的接口差异 如何实现一个可恢复、可中断的 Agent 主循环 如何在工具调用过程中保证状态一致性(即使进程崩溃也能恢复) 如何在上下文窗口接近满时自动压缩对话 如何设计一个可扩展的工具系统和插件系统 如何实现终端差分渲染 前置知识 领域 要求 说明 TypeScript 中级 需理解泛型、类型推断、TypeBox schema LLM API 基础 了解 chat completion、streaming、tool calling 概念 Node...
RAG本地知识库搭建
一、Talon 是什么?Talon 是一个用 Rust 编写的本地优先混合检索与 MCP(模型上下文协议)服务器。它专门为 Obsidian 知识库设计,能够索引你的笔记库,并通过混合搜索(BM25 + 语义向量 + 重排序)以及知识图谱(基于双向链接)提供智能检索服务。 核心能力: 混合检索:结合关键词匹配(BM25)和语义向量检索,再通过重排序模型优化结果 知识图谱排名:利用 Obsidian 的双向链接、反向链接、标签等作为排名信号 MCP 服务器:提供 talon_search、talon_read、talon_related 三个工具,供任何支持 MCP 的 AI Agent(Claude Desktop、Cursor、Codex 等)调用 Recall Hook:可在每次 Agent 对话时自动检索相关笔记并注入上下文 二、前置准备2.1 安装 Node.js(Windows 11)Talon 可以通过 npm 安装,因此需要 Node.js。 访问 Node.js 官网 下载 LTS 版本(推荐 22.0.0 或更高) 运行安装程序,按默认选项完成安装 安装...
Prompt 工程学习笔记
Prompt 工程学习笔记基础部分基础提示词 vs 结构化提示词裸提问效果不稳定,同一问题不同表述可能得到截然不同的回答。结构化提示词更可控。 结构化公式:角色 + 背景 + 任务 + 约束 对比示例: 裸提问:”什么是微调?” 结构化提问:”你是一位机器学习讲师,面向有编程基础但零AI经验的开发者。请解释什么是微调,要求:1)先给一句话定义 2)用类比解释 3)给出一个实际场景” 核心原则:给模型的信息越明确,输出的可控性越强。 系统提示词(System Prompt)系统提示词用于设定 AI 的角色、行为边界和输出风格。它在多轮对话中持续生效,相当于给 AI 设定”人设”。 三种典型用法: 角色人设:”你是一位资深架构师”——决定回答的专业深度和视角 风格约束:”回答不超过50字,不带表情”——控制输出形式 格式约束:”只输出JSON,字段:name, reason”——让输出可被程序解析 与用户消息的区别:系统提示词是”规则”,用户消息是”提问”。模型会优先遵循系统提示的约束。 Few-Shot 提示通过示例教模型”怎么做”,而非直接描述规则。适用于需要特定输出...
访谈记录
通话录音总结:关于 CreatorOS 项目的采访交流 录音文件:2026-08-09 22-01-45.aac 时长:约 32 分 30 秒 录音日期:2026-08-09 转写方式:本地 faster-whisper(small 模型)离线转写,人工校对整理 对话双方:甲(采访者,录音发起方);乙(CreatorOS 项目作者) **⚠️ 说明:本文档由语音识别自动生成并整理,部分人名、产品名、数字可能存在识别误差(如 Claude Code 被识别为 “claw code”、Remotion 被识别为 “vimotion” 等),引用前建议对照原始录音核实。完整逐句转写见同目录 **transcript_full.txt。 一、一句话概要**甲看到乙在朋友圈/抖音发布的 **CreatorOS(一款 AI 智能体创作工具)后深受震撼,来电了解项目细节。乙介绍了产品的开发方式(100% AI 编程)、商业模式(买断制 + 分销 + token 返佣)、技术栈与开发方法论,双方还交流了各自公司的加班现状、AI 编程工具选型和使用国外大模型的经验。 二、Crea...
Python语法速查
Python 语法迁移笔记 — Java工程师版 定位:从 Java 到 Python 的快速迁移速查手册适用:有编程基础、需要快速上手 Python 工程开发的开发者核心原则:对比理解,而非从零学习 一、核心差异总览先建立整体认知,Python 与 Java 的本质差异: 维度 Java Python 语言类型 静态类型,编译型 动态类型,解释型 语法风格 严格结构,大括号{} 缩进表示代码块 类型声明 String name = "Tom" name = "Tom"(无声明) 语句结束 分号; 换行即结束 命名规范 camelCase snake_case 入口方法 public static void main() 无强制入口,直接执行 空值 null None 布尔值 true / false True / False(首字母大写) 字符串 "" 不可变 "" 不可变,f"" 格式化 集合 List<T> 泛型...
一行代码让网页拥有 AI 大脑:阿里 Page-Agent 实战完全指南
2026 年初,阿里巴巴开源的 Page-Agent 在 GitHub 上引发了轰动。这款仅有 10K+ Stars 的项目,凭借其独特的「页面内置 GUI 智能体」定位,迅速成为前端开发者社区的焦点。 你是否曾经面对过这样的场景?公司的 ERP 系统需要填写 30 个字段的表单,或者需要在多个页面之间来回切换复制粘贴数据,又或者希望给产品添加一个 AI 助手却不想重构后端。 Page-Agent 正是为解决这些痛点而生。它不需要 Python、不需要无头浏览器、更不需要复杂的服务器部署,只需要一行 <script> 标签,就能让你的网页拥有自然语言控制能力。 本文将带你全面掌握 Page-Agent,从快速入门到生产环境部署,从基础用法到高级配置,手把手教你将 AI 能力融入你的 Web 应用。 一、Page-Agent 是什么Page-Agent 是阿里巴巴开源的一款「运行在网页内部的 GUI 智能体」。它的核心能力是:将用户的自然语言指令转化为网页上的实际操作,比如点击按钮、填写表单、滚动页面等。 1.1 核心定位与传统浏览器自动化工具不同,Page-Agent...
Agent-Browser:AI 时代的浏览器自动化新范式
组件官网地址:agent-browser — AI 代理的无头浏览器自动化 CLI 引言:从爬虫脚本到 AI 助手在过去的二十余年里,浏览器自动化技术经历了从 Selenium、Puppeteer 到 Playwright 的演进。这些工具各有特点,但在 AI 大语言模型蓬勃发展的今天,它们都面临着一个共同的挑战:如何让 AI 智能体高效地与浏览器交互? 传统浏览器自动化工具的设计初衷是为人类程序员服务的。它们返回复杂的 JSON 对象、完整的 DOM 树或海量的调试信息。这些数据格式对于人类开发者来说或许是友好的,但对于 tokens 资源弥足珍贵的 AI 上下文窗口而言,却是一种沉重的负担。 **Vercel Labs 推出的 **agent-browser 正是为解决这一痛点而诞生的。作为一个 100% 原生 Rust 编写的浏览器自动化 CLI 工具,它将 AI 智能体的体验置于设计的核心位置,提供紧凑的文本输出、确定性的元素引用机制,以及完整的自动化能力。 核心特性:专为 AI 设计的浏览器自动化Agent 优先的设计理念传统的浏览器自动化工具往往以「功能完备」为目标,...

