Levix 空间站 Weekly #11

什么是 Agent2Agent（A2A）协议？

Agent2Agent（A2A）协议是由谷歌发布的全新开放标准，旨在解决当前 AI 代理之间协作困难的问题。目前的 AI 代理虽然能够完成特定任务，但在相互传递工作时需要依赖定制化的代码，这使得跨代理协作变得复杂且不灵活。A2A 协议通过定义一种轻量级的通信机制，允许一个代理发现、认证并从另一个代理接收结果流，无需共享提示上下文或重新实现认证机制。

A2A 协议的出现是为了解决多代理协作中的痛点，例如不稳定的交接、安全限制以及供应商锁定等问题。它通过定义 “代理卡”（Agent Card）、“任务”（Task）状态机以及流式传输的 “消息”（Messages）或 “工件”（Artifacts），使得客户端代理能够与远程代理进行安全且高效的通信。A2A 协议并不取代现有的模型上下文协议（MCP），而是作为其补充，填补了代理之间的协作空白。

在 A2A 协议中，客户端代理负责发现远程代理的代理卡，决定是否满足其认证方法，并通过 JSON-RPC 消息创建任务。任务一旦创建，客户端代理将作为任务的管理者，监听状态事件、转发远程代理请求的输入，并最终收集工件以供后续使用。而远程代理则负责执行任务的核心工作，并通过流式事件向客户端代理反馈任务状态和工件更新。

A2A 协议的通信机制是单向的，仅客户端代理能够发起 JSON-RPC 请求，而远程代理则负责更新任务状态。这种通信模式类似于 “前台与后台” 的协作关系，客户端代理负责接收新订单并传达澄清信息，远程代理则专注于完成任务，直到结果交付。

A2A 协议在架构上位于 MCP 之上，与工作流编排工具并行。它专注于网络层面的代理间通信，而 MCP 则专注于单个代理内部的工具调用。这种分层设计使得框架和供应商能够在底层进行创新，同时保持协议的简洁性和通用性。

在安全性方面，A2A 协议通过签名代理卡、多种认证方式以及运行时策略来确保通信的安全性。代理卡可以通过 JSON Web Signature（JWS）进行签名，客户端代理可以验证签名以防止代理卡被篡改。此外，A2A 协议还支持多种认证方式，包括简单的 Bearer 令牌、双向 TLS 以及企业级的单点登录流程。远程代理还可以在模型运行前对负载进行检查，拒绝过大或风险较高的负载。

在可观察性方面，A2A 协议的每个状态或工件事件都携带时间戳、任务 ID 和可选的跟踪头。通过将 A2A 客户端包装在 OpenTelemetry 中间件中，可以轻松实现端到端的跟踪，无需手动解析 JSON 数据。这些跟踪数据可以被集成到企业的可观察性平台中，以便在问题影响客户之前及时发现并解决。

在发现机制方面，目前 A2A 协议的发现机制主要依赖于团队内部的 YAML 文件或谷歌的 Vertex AI 目录。未来，随着公共注册中心的成熟，可能会出现类似 npm 的代理注册中心，但目前还没有统一的 “验证徽章”。

A2A 协议相比 MCP 在安全性上有显著提升。MCP 会暴露工具的自然语言提示，容易受到注入攻击和参数篡改。而 A2A 协议将这些细节隐藏在远程代理的内部，客户端代理只能看到高级任务和受限的工件，从而消除了整个类别攻击的可能性。

尽管 A2A 协议的愿景非常美好，但截至 2025 年 5 月，其实际应用仍处于早期阶段。大约有 50 家供应商宣布支持 A2A 协议，但大多数代理仍处于 “私信获取演示” 的阶段。目前，LangGraph、CrewAI 和 AutoGen 的适配器已经较为成熟，而 Flowise 和 n8n 仍处于社区测试阶段。此外，目前还没有公共注册中心，团队主要依赖 YAML 文件或 Vertex AI 的私有目录来管理代理。很少有代理提供签名的代理卡，而速率限制或计费上限则需要通过自定义中间件实现。在性能方面，谷歌的参考服务器在本地测试中每个跳数增加约 30 毫秒的延迟。

A2A 协议适用于跨供应商工作流、安全敏感的黑盒代理、混合技术栈以及需要进度更新的长时间运行任务。它为不同供应商的代理提供了共享握手、认证和流式通信的能力，而无需暴露底层提示细节。然而，对于运行在同一进程中的代理、小型脚本任务、一次性数据拉取或主要依赖复杂参数验证的工具，A2A 协议可能过于复杂，直接使用 API 调用或简单的 REST 端点可能更为合适。

A2A 协议为 AI 代理之间的协作提供了一种标准化、安全且高效的解决方案。尽管目前其生态系统仍在发展和完善中，但它已经为原型开发和内部工作流提供了足够的支持，有望在未来推动多代理协作的广泛应用。

#Google #AI #Agent2Agent

What is the Agent2Agent (A2A) Protocol?

面向成熟团队的 AI

Alice Moore 探讨了当前 AI 在开发领域中的应用现状以及对成熟团队带来的挑战。尽管 AI 工具如 Bolt、v0 和 Lovable 能够快速生成应用，但这种 “演示优先” 的 AI 方式并不适合成熟团队，因为它在设计、开发和营销等方面都带来了问题。

对于设计师而言，现有的 AI 设计工具会生成与品牌风格不一致的颜色、边框半径和字体，导致设计系统被破坏，需要花费大量时间修复这些问题。开发人员也面临着类似的困境，AI 生成的代码往往是单个庞大的组件，缺乏测试、无障碍标签和关注点分离，难以维护和重构。营销人员虽然能够快速生成落地页，但页面中的数据大多是虚假的，需要重新编写代码以连接 CMS 和分析工具，导致开发工作量增加。

AI 应该成为成熟团队的助力，而不是单纯的快速生成工具。为此，AI 工具的构建者和使用者需要进行思维转变。工具构建者需要尊重现有的技术栈，确保 AI 输出的结果与团队的现有组件、令牌、数据和测试保持一致；将 AI 工具嵌入到团队已经使用的软件中，如 Figma、IDE 和无头 CMS 等；并且提供足够的控制权，让专业人员能够审查和调整 AI 生成的代码。而专业人员则需要为 AI 提供上下文，如文档、原型、设计令牌和测试用例；对最终结果负责，确保用户体验、性能和文案质量；同时认识到 AI 的局限性，将其作为不同专业领域之间的翻译层，而不是替代团队的工具。

Alice 介绍了 Builder.io 在构建 “成熟 AI” 方面的实践。Builder.io 于 2019 年推出，最初是一个无头 CMS 加可视编辑器，目标是让开发人员能够使用自己的 JavaScript 框架组件，并让非开发人员在不接触代码的情况下进行组件排列。其编辑器基于开源项目 Mitosis，能够将组件描述一次并编译到团队运行的任何 JS 框架中。在生成式 AI 浪潮到来之前，Builder.io 的产品已经具备了三个 “成熟部分”：功能完备的可视编辑、确定性的组件映射和真实的 CMS 数据源。这使得 Builder.io 在添加 AI 功能时，能够专注于减少繁琐工作，而不是重新发明基础功能。

目前，Builder.io 的产品通过一系列可逐步采用的层来工作，无需进行大规模的重写。例如，其 “可视编辑器 → 代码” 功能允许用户通过 AI 提示生成页面，然后手动调整任何类、令牌或断点；“Figma → 可视编辑器（和代码）” 功能可以将 Figma 设计转换为干净的响应式框架代码；即将推出的 “仓库 → 可视编辑器 → 仓库 PR” 功能将允许用户直接从 GitHub 仓库导入代码进行修改并自动发送为 PR；“组件映射” 功能可以让用户将 Figma 组件与代码组件进行匹配，确保生成的代码使用真实的组件和令牌；“Builder 发布” 功能则是一个完整的无头 CMS，支持实时内容和分析，使营销人员能够独立运行 A/B 测试。

尽管已经取得了一定的进展，但 Builder.io 仍在努力改进。未来的工作包括减少手动上下文输入，让组件和令牌的映射更加自动化；提供更深入的控制，让高级用户能够在编辑器中直接查看和调整 AI 草案的各个部分；以及支持更广泛的设计系统，使映射过程更加便捷。

AI 的发展不应该让人类陷入繁琐的清理工作中，而是应该通过 “成熟 AI” 将 80/20 规则纠正过来，让人类专注于无法被模型伪造的工艺。工具构建者需要提供可靠的框架，专业人员需要提供上下文和责任感，每一次的组件映射、令牌锁定和人工审查都使得下一次的生成更加可预测，而可预测性正是真正提升效率的关键。

#AI #思考

AI for grown-ups

Vibe coding：成为 AI 开发人员的路线图

Gwen Davis 为开发者提供了一份从普通程序员成长为 AI 开发专家的详细指南。随着 AI 技术在各个领域的广泛应用，预计到 2027 年，将有 80% 的开发者需要掌握基本的 AI 技能，因此现在正是进入这一领域的绝佳时机。

开发者需要首先掌握几种关键的编程语言和框架，如 Python、Java 和 C++，这些语言在 AI 和机器学习领域有着广泛的应用。同时，TensorFlow、Keras、PyTorch 和 Scikit-learn 等框架也是开发者必不可少的工具。GitHub 提供了丰富的学习资源，例如 GitHub Learning Lab、The Algorithms、TensorFlow Tutorials 和 PyTorch Examples，帮助开发者快速提升相关技能。此外，GitHub Copilot 作为一款 AI 辅助编程工具，能够为开发者提供实时代码建议，帮助他们更高效地学习和使用新的编程语言和框架。

在机器学习方面，Gwen 建议开发者深入了解 深度学习、自然语言处理（NLP） 和 计算机视觉 等关键子领域。这些领域不仅推动了 AI 技术的发展，也在实际应用中扮演着重要角色。开发者可以通过 GitHub 上的开源项目，如 Awesome Machine Learning、Keras、NLTK 和 OpenCV，获取相关工具和教程，参与 Kaggle 竞赛解决方案的开发，或者为带有 “good first issue” 标签的开源 AI 项目贡献代码，从而积累实践经验。

开发者需要通过构建一个出色的 GitHub 个人作品集来展示自己的技能和项目成果。这包括合理组织代码仓库、突出展示优秀项目、创建专业的个人简介、利用 GitHub Pages 构建个人网站以及积极参与开源项目贡献。通过这些方式，开发者可以在开发者社区中脱颖而出，吸引潜在雇主或合作伙伴的注意。

Gwen 建议开发者获取 GitHub Copilot 认证，以证明自己能够熟练运用 AI 驱动的工具来提升开发效率。GitHub 提供了认证课程，涵盖 AI 驱动开发、工作流自动化以及与 CI/CD 管道的集成等主题。通过学习官方文档、完成实践练习以及在实际项目中应用 GitHub Copilot，开发者可以为认证考试做好准备，并在通过考试后获得数字徽章，将其展示在 LinkedIn、GitHub 个人资料或个人作品集中，进一步提升自己的职业竞争力。

Gwen 鼓励开发者抓住 AI 革命带来的机遇，利用 GitHub 提供的工具和资源，开始构建和探索 AI 项目，塑造未来的技术发展。

#AI #Github #指南

Vibe coding: Your roadmap to becoming an AI developer

全面了解 GitHub Copilot 的强大模式

Alexandra Lietzke 介绍了 GitHub Copilot 的强大功能 ——Agent 模式。Agent 模式是一种自主、实时且同步的协作工具，能够根据自然语言提示执行多步骤的编码任务，帮助开发者快速实现从需求到原型的转变。

Agent 模式的核心在于其能够理解开发者的意图，构建解决方案并不断迭代直至达到预期结果。它不仅可以分析代码库以获取完整上下文，还能规划并执行多步骤解决方案、运行命令或测试、调用外部工具完成特定任务，甚至提出架构改进意见。通过一个系统提示，Agent 模式可以自主运行命令、应用编辑、检测错误并实时调整，开发者可以清晰地看到其推理过程和所使用的工具。

Agent 模式适用于不同层次的开发者。对于新手，它是一个同步开发工具，能够帮助快速构建应用；对于经验丰富的开发者，则可以显著提升工作效率，让他们专注于更高层次的问题解决。Agent 模式还支持通过 Model Context Protocol（MCP）服务器或扩展程序安装更多专业工具，从而扩展其功能，例如自动化 GitHub 工作流、提取和分析仓库数据等。

开发者可以通过多种方式使用 Agent 模式，包括重构代码、迁移项目、编写测试、现代化遗留代码、自动修复代码生成错误、添加新功能、基于功能规格或 UI 草图构建原型等。文章还提到，由于 Agent 模式基于非确定性的大型语言模型（LLM），因此即使在相同的提示和上下文中，其建议也可能有所不同。

开发者可以通过在 VS Code 中打开 Copilot Chat 视图并选择 Agent 模式来开始使用，也可以在 Visual Studio 中进行预览。Agent 模式还可以与其他 GitHub Copilot 功能结合使用，例如自定义指令，以便根据开发者的日常编码实践、工具和开发流程来调整 Copilot 的响应方式。此外，开发者还可以选择不同的 AI 模型来驱动 Agent 模式，以适应不同的开发需求。

Agent 模式为开发者提供了极大的灵活性，可以根据个人需求将其用于构建原型应用、处理现有代码库或自动化工作流程中的低层次任务。开发者可以根据自己的风格和需求定制 Agent 模式，从而更高效地完成开发工作。

#AI #Copilot #Agents #Github #实践

Agent mode 101: All about GitHub Copilot’s powerful mode

使用 GitHub Copilot 进行测试驱动开发 (TDD)

Kedasha Kerr 介绍了如何借助 GitHub Copilot 实现测试驱动开发（TDD）。测试是开发过程中不可或缺但又常常令人感到繁琐的环节，尤其是随着代码库的不断增大和复杂度的提升。而 GitHub Copilot 能够有效帮助开发者自动化部分测试流程，从而提高开发效率。

Kedasha 首先强调了测试的重要性，指出测试是确保代码符合预期行为的关键手段。测试的类型多种多样，包括验收测试、集成测试和单元测试。其中，单元测试通过将代码分解为更小的单元进行测试，确保每个单元都能正常运行，从而增强对整个应用程序的信心。单元测试的另一个优势在于其可自动化性，开发者可以通过运行大量测试来快速了解代码的健康状况，并及时发现潜在问题。

Kedasha 接着介绍了如何使用 GitHub Copilot 编写单元测试。开发者可以在 Visual Studio Code 中使用 GitHub Copilot，通过高亮代码片段并调用 Copilot Chat，利用 /tests add unit tests for my code 命令生成测试代码。Copilot 会根据代码提供测试计划和代码建议，开发者可以将其添加到新文件中，并通过运行 python -m pytest 命令来执行测试。

TDD 是一种先编写测试再开发实现代码的开发方式，其核心在于通过测试来引导开发过程。TDD 的一个关键理念是 “红绿重构”：首先编写测试，测试失败（红阶段），然后编写刚好能让测试通过的代码（绿阶段），最后对代码进行重构以优化结构，同时确保测试始终通过。GitHub Copilot 在 TDD 中的作用尤为突出，开发者可以通过向 Copilot 描述预期功能来生成测试代码，然后让 Copilot 生成实现代码，从而快速完成开发流程。

Kedasha 还强调了编写单元测试时的最佳实践，包括为测试添加文档、保持测试组织有序、创建测试工具以提高效率以及在代码变更时更新测试。此外，文章还提供了多个资源链接，供开发者进一步学习如何使用 GitHub Copilot 进行测试开发。

#Copilot #Github #AI #TDD #测试

GitHub for Beginners: Test-driven development (TDD) with GitHub Copilot

Chrome DevTools 更新

**Gemini 集成：** 开发者可以通过 Gemini 修改和保存 CSS 更改，并将更改保存到本地工作区。此外，Gemini 还可以生成性能洞察的标注，并在性能追踪中添加截图，为开发者提供更直观的视觉辅助。

** 性能面板更新：** 性能面板新增了两项洞察功能 —— 重复的 JavaScript 和 遗留的 JavaScript。前者可以识别页面中重复加载的大体积 JavaScript 模块，后者则能检测到为兼容旧浏览器而加载的 polyfills 和转换代码，帮助开发者优化代码以适应现代浏览器。

** 工作区连接功能：** 开发者可以将本地文件夹连接到 DevTools 的工作区，从而将 JavaScript、HTML 和 CSS 的更改保存回本地源文件，这一功能支持自动和手动连接。

**Lighthouse 12.6.0：**Lighthouse 面板升级到 12.6.0 版本，新增了性能洞察审计功能，开发者可以在 Lighthouse 报告的性能类别中尝试使用这些洞察。

** 其他改进：** 包括网络面板新增服务器计时解析功能、性能面板中 “使用高效的缓存生命周期” 洞察功能改进、以及屏幕阅读器对更多功能的支持等。

#Chrome #Gemini #DevTools

What's new in DevTools, Chrome 137 | Blog | Chrome for Developers

AI 助手辅助性能分析

Chrome DevTools 的 AI 辅助性能分析功能是一项实验性工具，旨在帮助开发者更好地理解和优化网页性能。该功能目前仅在 Chrome Canary 132 及更高版本中提供。开发者可以通过多种方式打开 AI 辅助面板，例如从性能面板的 “洞察” 标签页中选择特定的性能洞察（如 LCP 按阶段、LCP 请求发现等），点击 “询问 AI” 按钮；或者在性能追踪视图中右键单击某个活动并选择 “询问 AI” 选项。此外，也可以通过命令菜单输入 “AI” 并运行 “显示 AI 辅助” 命令，或者从 “更多工具” 菜单中选择 “AI 辅助” 来打开该面板。

AI 辅助面板以开发者选择的性能活动为上下文展开对话，相关活动会在面板左下角显示。如果从性能洞察中打开 AI 辅助，该洞察将作为预选上下文；从追踪视图中打开时，所选活动则作为上下文。AI 辅助会使用选定调用树的计时数据来回答问题，开发者可以在对话开始后通过点击相关按钮查看 AI 使用的原始数据。

为了帮助开发者快速开始对话，AI 辅助提供了示例提示，开发者也可以自行输入问题。如果 AI 没有给出回答，可能是因为问题超出了其能力范围，开发者可以向 Chrome 团队 提交反馈。AI 辅助会保存对话历史记录，即使在 DevTools 或 Chrome 重新加载后，开发者仍可以访问之前的对话。通过面板左上角的控件，开发者可以开始新对话、继续旧对话或删除历史记录。

此外，AI 辅助还提供了反馈机制，开发者可以通过 “点赞” 或 “点踩” 按钮对回答进行评价，或者报告不适当的内容。这些反馈将帮助 Chrome 团队 改进 AI 辅助的回答质量和整体体验。需要注意的是，AI 辅助目前仍处于实验阶段，可能存在一些已知问题，开发者在使用前应了解相关数据使用政策。

#Google #AI

AI assistance for performance | Chrome DevTools | Chrome for Developers

增强 Gemini Nano：利用 LoRA 提供更高质量的摘要

Chrome 团队与 Google Cloud 合作，通过低秩适应（LoRA）技术对 Gemini Nano 模型进行微调，显著提升了文本摘要的生成质量。文章详细阐述了摘要 API 的功能、微调的实验方法、性能评估以及 LoRA 技术的优势，并提供了实时推理演示和反馈渠道。

摘要 API 是 Chrome 内置的一项功能，能够将长文本内容压缩成简洁易懂的摘要，适用于多种场景，如新闻网站的关键点列表或产品评论的情感总结。为了满足不同网站对摘要风格和长度的需求，该 API 提供了多种摘要类型，例如标题式、要点式、极简式和引人入胜的预告式等。文章通过实例展示了如何使用摘要 API 对维基百科页面进行摘要生成，并提供了在线的 API 演示平台，供开发者进行测试和体验。

Chrome 团队详细介绍了如何在 Chrome Canary 中启用微调功能。从版本 138.0.7180.0 开始，用户可以通过特定的 Chrome 标志启用该功能。启用后，用户可以在 DevTools 控制台中输入特定命令以下载补充的 LoRA 模型，并开始实验。

在性能评估方面，Chrome 团队采用了自动评估和自动评分员（Autorater）评估两种方法。自动评估通过软件检查模型输出的质量，重点关注格式错误、句子重复、非英语字符等问题。结果显示，经过微调的 Gemini Nano 在格式错误率上显著降低，无论是文章还是聊天记录的摘要，都表现出更好的性能。自动评分员评估则使用 Gemini 1.5 Pro 模型对 Gemini Nano 的输出质量进行评分，评估指标包括覆盖度、事实性、格式、清晰度等，并针对不同摘要类型增加了额外的评估指标，如吸引力、简洁性和引人入胜程度。评估结果显示，经过 LoRA 微调的 Gemini Nano 在各项指标上均优于基础模型。

LoRA 技术的核心在于通过添加小型的附加组件来引导模型朝着期望的方向发展，而不是调整模型的所有参数。这种方法可以显著减少训练时间和成本，并且只需要训练原始参数的 2% 即可实现显著的输出变化。Chrome 团队通过对比 Gemini Nano 基础模型和经过 LoRA 微调后的模型生成的摘要示例，展示了 LoRA 技术在提升摘要质量和符合特定指令方面的能力。

此外，还提供了一个实时推理演示，展示了 Gemini Nano 和 Gemini Nano with LoRA 在生成 “Ocean Sunfish” 文章的 “tl;dr” 摘要时的性能差异。通过实施微调，Gemini Nano 能够更好地生成符合特定指令的摘要。

Chrome 团队鼓励开发者在 Chrome Canary 中尝试更新后的模型，并分享反馈。开发者可以通过 Chromium 的问题跟踪器提交错误报告或功能请求，以帮助改进 Chrome 的实现。

#Chrome #Google #AI

Enhancing Gemini Nano: delivering higher quality summaries with LoRA | Blog | Chrome for Developers

ChatGPT 和大量过时的、残缺不全的解决方案，解决了我们在其推出之前五十多年都没有遇到过的问题

ChatGPT 在生成代码时存在的问题，尤其是其生成的解决方案可能已经过时甚至错误，却仍然被广泛传播和使用。

有人询问如何实现类似 ChatGPT “Searching the web” 的 CSS 动画渐变文字效果，而 ChatGPT 给出的代码虽然能够实现效果，但却包含了许多冗余和过时的部分。例如，ChatGPT 的代码中使用了 -webkit-text-fill-color 和 background-clip 等属性，这些属性在过去可能是为了兼容某些浏览器而使用，但如今已经不再必要。作者指出，现代浏览器已经广泛支持 background-clip: text，无需再通过 -webkit-text-fill-color 来设置文字透明度，ChatGPT 的这种写法不仅没有提升兼容性，反而增加了不必要的代码量。

Tudor 进一步回顾了 CSS 渐变文字的历史。早在 2010 年，CSS 的 background-clip 属性还不被广泛支持，当时开发者需要借助 -webkit-background-clip 来实现渐变文字效果，并且为了确保在非 WebKit 浏览器中也有基本的文字显示，需要通过复杂的 CSS 属性组合来实现兼容性。然而，随着时间推移，现代浏览器已经完全支持这些功能，过去的兼容性解决方案已经不再需要，但类似 ChatGPT 这样的工具却仍然在生成这些过时的代码。

Tudor 还指出，ChatGPT 在代码中设置 background-size 和 background-position 的方式也显得冗余。在过去，某些浏览器可能不支持在 shorthand 中设置 background-size，但现在这种问题早已不存在。此外，对于水平渐变来说，background-size 的第二个值（高度）是无关紧要的，无论设置为 200% 还是 auto，视觉效果都完全相同。

这种生成过时代码的问题并非 ChatGPT 独有。其他 AI 工具如 Gemini 也存在类似问题，它们往往将旧的流行解决方案与现代 CSS 混合在一起，生成一种 “畸形的混合体”。Tudor 强调，开发者在使用 AI 生成代码时，需要更加谨慎，不能仅仅依赖 AI 的输出，而应该结合最新的技术标准和实践来优化代码。

#AI #思考

ChatGPT and the proliferation of obsolete and broken solutions to problems we hadn’t had for over half a decade before its launch

纯 HTML 和 CSS 实现我的世界。

看了一下 HTML 还挺大的，可能运行起来会有点卡帧。

#前端 #CSS

CSS Minecraft

Open Source Society University 免费自学 CS（计算机科学）的途径。

#课程

寻找你的人生方向

Jessica Livingston 分享了在 Bucknell University 2025 年毕业典礼上的演讲内容。她回顾了自己大学毕业时的迷茫状态，当时她拥有英语学位却无明确职业规划，也没有找到真正感兴趣的事情，花费了十年时间才找到自己的方向。她希望帮助毕业生更快地找到目标，尤其是那些渴望有雄心勃勃计划但尚未找到方向的人。

大多数人在成长过程中一直沿着既定的轨道前进，例如小学、中学、高中和大学，这种经历让人们误以为人生的每个阶段都有明确的下一步。然而，大学毕业是这种 “轨道” 的终点，人们需要意识到，从这一刻起，他们可以自由选择任何方向。尽管这种自由令人兴奋，但也让许多人感到恐惧，因此很多人试图继续寻找新的 “轨道”，例如在知名公司找到一份工作，即使这份工作并不真正吸引他们。

毕业生可以利用大学毕业这个节点重新定义自己。许多人可能会因为过去的学业成绩或经历而对自己缺乏信心，但她鼓励大家不要被这些限制，因为其他人并不了解他们的过去。如果想要改变，就可以从现在开始，变得更加好奇、更有责任感或更有活力，没有人会阻止这种转变。

她分享了自己在毕业后选择了一份并不感兴趣的工作的经历，当时她只是因为有人愿意支付工资而感到高兴。大学毕业后有无数种职业选择，而她当时并没有意识到这一点。她建议毕业生要主动探索这些选择，而不是被动地接受第一个机会。最好的方法是通过与人交流来缩小选择范围。她建议与不同的人交谈，了解他们的工作内容，如果发现自己所在的环境或工作与周围的人不契合，就应该果断离开。

她通过自己的经历说明了这一点。她发现与创业相关的人和事让她感到兴奋，于是决定写一本关于创业的书。尽管许多人对她的项目表示怀疑，但她没有被这些负面评价所影响。要实现雄心勃勃的计划，就必须学会抵抗他人的质疑和拒绝。她以 Y Combinator 的创立为例，说明即使在初期被当作笑话，只要坚信自己的想法，最终也能取得成功。

Jessica Livingston 鼓励毕业生主动掌控自己的人生方向，不要随波逐流。她建议通过与有趣的人交流来找到最适合自己的道路。她希望毕业生能够记住，虽然人生的选择众多，但通过与他人建立联系，可以找到真正让自己兴奋和投入的事业。

#思考 #创业

Find Your People

Defuddle

Defuddle 旨在从网页中提取主要内容，去除不必要的元素，如评论、侧边栏、页眉、页脚等，从而生成简洁易读的 HTML 文档。

Defuddle 的核心功能是通过分析网页的 DOM 结构和样式信息，识别并保留主要的文本内容，同时去除无关的干扰元素。它支持多种输入方式，包括直接从网页 DOM 解析、从 HTML 字符串解析以及从 URL 解析。此外，Defuddle 还提供了丰富的配置选项，用户可以根据需要调整解析行为，例如启用调试模式、转换为 Markdown 格式、保留特定的 HTML 属性等。

在技术实现方面，Defuddle 提供了三种不同的打包版本：核心版本（defuddle），适用于浏览器环境，无额外依赖；完整版本（defuddle/full），包含额外的数学公式解析功能；以及 Node.js 版本（defuddle/node），专为 Node.js 环境优化，支持完整的功能特性。Defuddle 使用 TypeScript 编写，代码结构清晰，易于扩展和维护。

Defuddle 的输出结果是一个包含多种元数据的对象，例如文章标题、作者、描述、发布日期、字数统计等，同时还提供了标准化的 HTML 内容。它通过一系列规则对 HTML 元素进行标准化处理，例如将 H1 转换为 H2、去除代码块的行号和语法高亮、统一脚注格式以及将数学公式转换为标准的 MathML 格式。

#Tools

Supermemory

Supermemory，帮助用户构建属于自己的 “第二大脑”，它类似于为书签提供 ChatGPT 般的智能功能。用户可以通过 Chrome 扩展程序导入推文或保存网站和内容。

Supermemory 的核心功能是为 AI 应用程序提供强大的开发者友好型 API，能够无缝集成外部知识，作为 AI 栈的完美记忆层，提供语义搜索和检索功能，增强模型的相关上下文。用户可以利用它存储和组织知识，通过语义搜索引擎找到基于含义而非仅是关键词匹配的信息，还可以连接到任何数据源，如网站、PDF、图片等。

Supermemory 的应用场景广泛，包括增强 LLM 输出的检索增强生成（RAG）、创建智能可搜索的知识库和文档、构建具有访问支持文档的聊天机器人、查询跨论文、笔记和参考资料的研究助手，以及语义化组织和检索多媒体内容的内容管理系统。

#AI #Tools

Introduction - supermemory | Memory API for the AI era