跳至主要内容

Viaje a Seúl Parte 7 | Palacio Gyeongbokgung

· 閱讀時間約 1 分鐘
w0x7ce
MySelf

发布于 2026-02-23 23:03:42(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 193 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

Visitors wearingHanbol t a ticket. 资材提名有境入场 (无门票) (学卜不要)

ViajeASeul·目录三 <上一篇 下一篇> Viaje a Seul Parte 8| Museo de Viaje a Seul Parte 6| Museo Nacional de Folclore de Corea... Educacion de Seúl (cerca del

原始排版图

Viaje a Seúl Parte 7 | Palacio Gyeongbokgung:微信公众号导出原始排版图

Viaje a Seúl Parte 8 | Museo de Educación de Seúl (cerca del Pueblo Hanok de Bukchon)

· 閱讀時間約 1 分鐘
w0x7ce
MySelf

发布于 2026-02-23 23:13:43(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 254 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

Viaje a Seúl Parte 8 | Museo de Educaci6n de Seúl (cerca del Pueblo Hanok de Bukchon) originalw6x7ce EI V1ajero2826年2月23日 23:13 韩

東亞日報创刊社屋址 Donga llboBuilding Site- 120 4 211

2.里4

41号

EiViajerc

1906~1948

女高 g

ViajeASeul·目录三 <上-篇·Viaje a SeulParte7丨Palacio Gyeongbokgung

原始排版图

Viaje a Seúl Parte 8 | Museo de Educación de Seúl (cerca del Pueblo Hanok de Bukchon):微信公众号导出原始排版图

分享图片

· 閱讀時間約 2 分鐘
w0x7ce
MySelf

发布于 2026-02-21 12:08:52(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 878 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

韩国·骚 中国香港 2/21 12:08 高永休

高永休 所持人自署 Passport BOKOS 閃承煌 等品 光武七年八月二十三日 旅行方中通路防碍水無州且保扶助三事沿途各官 川希望京三事 住啡信半角洞 職業 保人李三 女男 休 高永 住 9 道城 郡署 洞第 統第 丘

第七百九十六號

文 要事 各官别般照料善為保護 沿途 情 唱 髙 永 proteetion and assistance as may be requested to allow Signature of the Bearer ment la personne et de lui douner aide et protection en cas de besoin. No. Signature du porteur: The competent The Les Autorities Le Gt day of the jour du tne above Authorities TRANSLATION ci-dessus mentionnee, allant competentes sout priees de laisser passer libre month of the TRADUCTION. mois de la Name and Official Seal of His Imperial Korean Majesty's President of the De partment of Emigration. Noms et cachet officiel du Presider Department de I' Emigration de Sa M l'Empereur de la Core. 5 required. year of Kwang Moo (19 annee de Kwang Moo (19 fficiel du President du nigration de Sa Majeste Kwang Moo(19 Coree the

Songdo Trekking Course

03213

H

WalkAlong Songdo Miraegil 02 03 04 尼配 05 06

  • P0

200 07

原始排版图

分享图片:微信公众号导出原始排版图

明洞街头支付宝广告[破涕为笑] 非常多传教士

· 閱讀時間約 2 分鐘
w0x7ce
MySelf

发布于 2026-02-21 13:08:26(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 384 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

韩国·星密量 中国香港 2/21 13:08

PACIHC

支IAlipay 7-ELEVEN 0000 支|Allpay+

8.8SEC

CHALLENGE 挑战8.8秒 支|Alipay WEACCEPT

ONHAIR GRANDHOTEL SALON

02.722.3650

752-0368

支lAlipay* HAPPYNEWYEAR HOSTEDBY号 ORGANIZEDBYPPLNETWORKS DAQANMM LuckyRewards in MYEONGDONG SUPPORTEDBY支IAlipay HA Free tyoqiA/ yoqils MY SOULCITY DOUBLE imnisere 十 innisFree tentem HOT DEAL DOUBLE NAIL HAIR

A

日号品品 Bangbang Playground 简床器乐区 EangbangPlayground 湖床酒乐区

GLOALHUEO

GXAD

原始排版图

明洞街头支付宝广告[破涕为笑] 非常多传教士:微信公众号导出原始排版图

Xcode AI 編程攻略:讓 AI 代理幫你寫 Swift

· 閱讀時間約 25 分鐘
w0x7ce
MySelf

发布于 2026-02-18 20:34:16(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 12151 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

實派指商:带你玩轉Xcode26的AI腊骏功能 先聊聊:XcodeAI是什磨? 無渝你是 iPhone、iPad、Mac、Apple Watch、Apple TV 遗是Apple Vision Pro 的App,Xcode 都是你雕不開的核心工具。而現在,個工具裡内建了AI一你的開 發效率直接起飛。 Xcode 26.3這次真的来真的了—Apple 直接把 AI代理(Agent)塞造了圈工具理。 以前那种你間它答:的AI助手已經遇時了,现在是AgenticCoding時代: 师统方式: 你:「氧我寫functionAI代强你覆颗版上你白己debug 代理方式: 你:「氧我把适功能微完;AI白己看代碼白己改白己build白己修+完成 德起来很猛對吧?我们来看看怎鹰玩轉它。 關於版本號 寡运篇文章時,Xcode有雨图版本要注意: macOS需求 版本 状报 SDK Xcode 26. Release Candidate 10S 26.2 / mac0S 26.2 macOS Sequo 3 RC (接近正式版) / vision0s 26.2 ia 15.6+ Xcode 26. 10S 26.4 / mac0S 26.4 macOS Tahoe 测腻版(显新功能)

26.2+

4 Beta / vis1on0S 26.4 RC是 Release Candidate,基本上就是正式版前的最後一版,定座比较高。Beta 则是 测試版,有最新的功能但可能曾有bug。 雨個版本都用Swift6.2.3,都支援10S15+的真機調試。如果你要生坛境用,建選 RC;想签鲜显新功能的可以试 Beta. 開始前的举備 你需要道些: 项目 建摄 最低要求 Xcod

26.3 RC 或更新

26.4 Beta(最新功能)

e Tahoe 26.2+ ( 26.4 Beta maco Sequoia 15.6+ S 要) ChatGPT 或Claude 帐號(或API Ke 號 付费號限制更寶 y)

BETA Xcode

Open Existing Project. 小提醒:如果你的事案遗没用Git,建先建一個repo因為AI的歷史回滚功能需要 Git支援。Xcode 不會直接改你的 Git 詹庫,但它的 History 功能會用 Git 作為参考 贴。 把AI調教好 找到設定在哪 打開Xcode,按 (或是選單Xcode>Settings),然後在递 Intelligence. Intellig + β Apple Aocounts

  • Istkigeroa

Behaskors Previders Nsigstion Notiefions Themnes Anthropic 6d9 spas 旦 Acd s Frovider. Souree Contre) squauoduco @ del Cor β Lcaisms Xcode Tools

先看愿私 阅始之前,強烈建贴一下“About Intelligence in Xcode &Privacy",了解—下你 的代碍會怎磨被送到AI那遗、各家AI的疆私政策是什磨。知道运些之後再决定要用哪個服 務,比较安心 你遗择一個第三方產品亚在Cod1ngAss1stant 翰人提示時,低產品可以将你的專案文 件和其他信息分享给它的模型来虚理精求。 選哪個AI最遗合你 OpenAI陣誓 ChatGPT in Xcode是最容易上手的方式,不用 APIKey 也能用。 方式:Intelligence 投定-點OpenAI+選ChatGPT in Xcode+在 ChatGPTin Xcode 那行Turn On →在蕴出的對框中點Next,然後點 Turn On ChatGPT < OpenAI @ General 母ChaGPTin Xeofe @ Acple Aoourts Imoelgerce 8Codx E Behawiors Crdex Nasigatiss Nctfcsfers Tlerss Tenes of HL. tdtrg h 9w/tis 图 Soure Cortrl u3du22 B S Locetions

要不要登入? 免帐赋有基本功能和使用限制,付邮赋(Plus/Pro)限制宽整很多,回愿也更快。如果想 升级付冀帐號,可以在 ChatGPT 1n Xcode 段定底部贴 Upgrade to ChatGPT Plus. 登入方式:在 ChatGPT 1n Xcode 锐定中敏 toggle-在 ChatGPT 行贴 Sign In → 在下一低封话框再點一次SignIn-在跳出的测器视窗中输入你的瓷密碼、 要 ChatGPT in Xcode 的活,在 OpenAI > ChatGPT in Xcode 設定中把 toggle 博就行。 Codex 是 OpenAI 的“代理版:,當你在 Coding Assistant 選捶 Codex 时,它雷自 勤透遇Xcode提供的MCP伺服器捶得Xcode能力存取權限 敏用方式:IntelLigence-OpenAI設定-找到Codex那行,黏Get-在弹出的 括框中黏Install-然後定帐號(黏ChatGPTAccount旁的...按,選Sign In With a ChatGPT Account或Provide an OpenAI API Key)→ 在跳出的测置 器视窗输入號密碼,或在對话框中输入APIKey後贴Done。 装好之後Xcode 自勤你更新Codex,不用管它。 Anthropic陣警 Claude Agent 是 Anthropic 的代理工具,你在 Coding Assistant 援 Claude Agent 時,它舍自勤撰得Xcode 能力,包括建置和测试你的 App。 怎度装:Intelligence設定-點Anthropic→Claude Agent那行 贴Get-Install,可選一下要用哪他模型(Model弹出逻車中選) Anthropic chuade Agent General 10F Apple Aocounts

  • Iseligercs

Behskers chad Nrigation Q Nctiftcafos Themes Edftng l Shertovls Sourte Contreo) Comporerts Locetons

模型怎度選? 模型 sndo 離摄的同题、聚決策 日常登,推意用运图 auuos Haiku 快速同答、简单查询 登入號:點Account 旁遗的..-選Sign In With a Claude.ai Account或 Provide an Anthropic API Key-在跳出的测器视窗输入帐號密碼,或在到括框中 输人 API Key 後贴 Done, 可通設定:你可以敏Share Claude Agent Usage Data with Anthropic:来分享 使用数據。想了解更多资,可以點Anthropic設定底部的Anthropic Privacy Policy. 装好之後 Xcode 富自勤葡你更新 Claude Agent. CLaude(純聊天版):如果你只是想跟AI聊天周同题,不需要它動你的代强,用這困就好。 在Intelligence >Anthropic 锂點 Claude 行,然催 Sign In。想了解更多 Anthropic 品資讯,可以點故定底部的“Anthropic Terms of Use」。 想用别的AI? 资間盟,Xcode 支援任何相容 Chat Completions API 的服。 新增方式:Intelligence 設定+點Adda Provider 按钮→逝频型:

  • Internet Hosted:雾端服務,输入URL和其他洋雷

  • LocallyHosted:本地模型,翰入薄口和可還的描述

Add a Model Provider mation for the provic the infon Internet Hosted Locally Hosted URL https:;/model.example.com API Key Optional API Key Header x-api-key Example Description Add Cancel

API要支援道雨固端站: {你的 URL}/v1/models {伟的 URL)/v1/chat/conpletions 為此我编寡了一图小工具具證使用可以警考 https://github.com/tianrking/xcode-proxy 自訂代理環境(進隋) 如果你想微調Codex和ClaudeAgent的行為,可以透過配置文件来設定。这些配置文件 放在Xcode專用的資科夹径:

  • /Library/Developer/Xcode/CodingAssistant/codex

Codex:

你可以在里面設定:

  • 预設模型

  • 翘外的MCP 何股器

  • 自訂技能(Skills)

注意:在Xcode外部執行的代理工具需要另外在它們自已的位置配置。 镶AI自己幹活 代理跟普通AI差在哪? 普通AI就像疑司—你同它答,但事情遇是你自己做。 代理AI就像實碧生一你告它目楼,它自己想瓣法完成: 你:「氧我加一個登入功能 Agent :

1.先看看现有的代碍架磷

2。决定要怎磨實作

3.周始寫代碼

4.跑 build 看看有没有

5.有益就自己條

6.跑潮试

了。别试退了就告诉你完成了 Xcode26.3引入了代理编碼功能,這是一種全新的發方式。開壁者可以透退来自 Anthropic和OpenAI的编码代理来標运App。代理可以自主地朝著開者的目標工作 分解任猜到根據專案架福做出决策,亚使用内建工具完成工作。 Claude Agent vs Codex 其實功能差不多,都能:

  • 建置你的App

  • 跑润试

  • 查 Apple 文档

  • 添加 Entitlements

  • 自勤修 bu1ld 锚

差别主雯在:

  • 路工具:Codex 可以经定照(Allow agents to use integratedinternet

access tools;toggle),Claude Agent 要手勤允許每個指令

  • 横型:一個用GPT系列,一個用CLaude系列

遇你喜数的就好。 另外,Xcode 透退Model Context Protocol(HCP)開放它的能力,是一图用放檬 ,旗登者可以震活地使用任何相客的代理或工具Xcode 作。 CodingAssistant怎用才爽 打它 很简單,點工具列左上角那個按钮(Navigator按钮右那图),或是按+0。

如果逸榴题示Set Up按钮,贴聖它然後在Xcode>Settings>IntelLigence 中 敏用一低编码智能產品。 在Coding Assistant 中,點翠工具列上Start New Conversation 按钮右的按 钮,微弹出逻重中選择一個產品。你還择的產品盲额示在息文字橘位中。 如果你遥捶在Intelligence 段定中敏用的代理编碼工具,它需自動猫得Xcode 能力,包 括建置 App、毒 Apple 文棉、添加 Entitlenents 等等。 介面長這檬 Show assistant + Show history Updatethmaintheinpectrtpenthe tark in Maps when you tap it. HowIl proceed:

1. Update LandnazkDetai IMapVLere so I acts as a

tappable UI element.

2. Cn tp,i wi etciedcrdie r

wsteif svsbiel in Maps.

3. Use /App]icatin,shared,open() (oniOs) or

Nrksaceshared,open[1 onmacO5) to openthe Maps URL: Il adctis logic to LandmarkDetalMaplew.svit O, wangtheMa nea apesture andusing the correct mep URL. Let's proceed with the edit LandnarkDetalMapView.sift

kfapIten = 1et placeark =MPark(c Ive updated the inspector map so that when you tap it, the ordhates. Heres how wrs: 2 Chenges In 1Fle Change Auto-apply Add context- Project context 接手别人的代碼?镶AI你看 任何時候你都可以Xcode解释代码、找案来震现新功能,或者只是然悉一下代碼。比如你 下载了Landmarks 能例App,可以遗操代码然後間: 查图 ApP 主要功能是什磨? 資料存在哪理? 资卷行在期理? 这因票案用什度架模?

0

Xcode盲在你的提示下方顯示回愿。回愿中可能包含可以互勤的内容—比如如果回感引用了槽 名,贴量檔名旁遗的前显按钮就可以在源碼编语器中開放它。 深入了解就继遍局:那顾示这個资料的View在硬? 當你输入另一個提示時,CodingAssistant 管把你的提示和回惠附加到劉话中。Xcode 會 维罐你與模型互勤的完整記錄,方便你回题。 看不懂某段代碼?選起来間 在源碼線器中,Control+黏一個符號或代磷遥取,然後按+Opt1on+0或微右 键選单選择 Show Coding Tools > Show Coding Tools.接著點Explain,或在 Coding Tools 弹出视密中输入更具的提示。Cod1ng Ass1stant 在封括區题示提示和 回题、

也可以黏源碼编辑器左遗棚的Coding Ass1stant 按钮,效果一楼。 镶AI戴你寫代碼 给Xcode具體的指令来生成或修改代碼。如果结果不如预期,試著把同题拆解或加入更详细的 明。在每园提示之間,用Prev1ew或PLayground塞查和验證代碼更,然後继体調整 提示来得你想要的行為。 小技巧:不要一次叫AI做超大的功能,拆成小步黑比较好: 氧加一個pr1ce属性和方法到稳别中;

  • 看看结果

割建一图列表视图亚用NavigationStack 包装:

一结果

為列表视图中的项目添加编辑功能」

一看看结果

将列表视圖改为表格视图,蹦示所有性; 每做完一步,先看看结果到不对,再继下一步。

iedesn ialten sher yateh.

當AI處理回愿時,Xcode在訊息文字位顯示进度訊息,然後在對括區發布回愿。回愿可 能包含更描述,包括一些步盟或代碼更。 整更可能超出你的要求,或者基於你之前的提示槽建。回魔可能包含编步亚向你提出追間。 Xcode爆你保持控制框,你可以引導和重定向到話,将模型引向你想要的方向。 你可以回答同题(继镇與助手對話)或翰入新的提示。 要在源碼编朝器中生成於特定符號的代碼,可以使用CodingTools 弹出視窗。Control

  • 點聚一個符號,右键遥单通握 Show CodingTools> Show Coding Tools,然後在

Coding Tools 弹出視菌中输入提示。 變更要怎度套用? 你可以看到Xcode自動癌用到橙案的代强更,它們窗在封括中题示為榴案片段。這些片段 示修改或添加的權案,贴它們可以跳轉到源码编辑器中的具體變更位置。 小技巧:使用片段来導航Xcode愿用的所有曼更,亚在源弱编科器中密查它們。 自勤套用横式(推两新手):點攀例遗右下角的按钮開胶AutomaticalLyApply Changes。AI改完的代理富自動套用到你的楼案。改选的地方窗用多色整更账斓起。

ea

想undo?贴整訊息文字棚位上方的Revert抛。要重新应用整更,贴整Reapply。或者 贴整们遍榴右上角的History按纽查看更歷史亚按提示回浪。 手勤確模式(通合慎的人):照掉自套用後,Xcode建曼更而不是愿用它們,亚在 對括中標配為“ProposedChanges"。回魔可能描述助手建的代碼炭更,亚包含你可以選 捶性癌用或贴人權的建代础。要唐用單因建整更,贴整回中的代碼然後點墅Apply。 要愿用所有建满曼更,贴整讯息文字相位上方的Apply按钮。 給AI更多上下文 预設情况下,Xcode會根擦你的提示和對括史自動收集相上下文發送给模型。除了自動上 下文,你遗可以引用特定符號和棉案、上傅附件,或在提示中引用源码编辑器中的遥取, 用@提到檔案或符號 确入就會跳出還單,你引用特定的權案或符號: @UserDataManager 这留颗别在韩嘛? 考@APIClicnt 的套法,需我改 @Nctuorkm

Update the map to display a @LandmarkMapl LandmarkMapAnnotationView v l LandmarkDetailMapView.swift

上傳權案:點讯息框左下角的Attachments 弹出逝單-遥操Uploadfiles-到活框 中逻择要上傅的權案。 Project Context 開:遗右下角的Project Context 按钮预設是用著的,這允許 Xcode 與模型分享你惠奈的相鼠代碾和其他上下文。如果不希望AI副看你的代碼,可以厢掉 自勤提索功能,然後在提示中添加划檔案和符的明随引用。

Lane *

快速實验:Playground和Preview PLayground和 Preview 是胃新代碼而不餐改App 的好方法。使用 PLayground 在 Canvas 中谨行和显示代磁片段,使用 Preview 跨平台瞻 UI 代强。Xcode 生成的 Playground和Preview代码可能包含示例数據,戴助你更好地理解和可视化Canvas中 的代碼。 生成PLayground:逻一段代码-Control+贴票-ShowCoding Tools→ 贴 Generate a Playground

Message ChatGPT

Explain Document Generate a Playground Generate aPreview 结是會顯示在 Canvas 區域。SwiftUI的話遗會膜便绘你 Preview。如果Canvas , 逻 Editor > Canvas 然後贴 Resume. tood

titix

想了解更多關於Playground macro,可以看Apple 文檔中的“Running code snippets using the playground macro 。默 Prev1ew,可以看 Previewing your app's interface in Xcode。 Build錯了?AI你修 如果编匿App时退到编疆警告或结,Xcode可能可以為你生成修。 源碼辑器密用红底線标出間题,或题示間题摘要和图示。贴量圈示显示更多鼠於間题的信息, 然後點“Generate Fixfor Issue旁逸的 Generate。Xcode 鲁愿用模型生成的 更在Coding Assistant 中示修復。 $e+ D → 0161 长=(

El Viaje 懒得寫文檔?AI你 Xcade為你起草API文權。在源碼编辑器中逻择一個符號,點擎出現的编码智能国示。在 到括框中贴型Document.

Xcode 可以在源文件中符號上方添加 DocC风格的注解。比如選环一個频别,Xcode 會為類 别及其展性和方法(包括方法参数)添加文檔。 Xcode 會在源碼编辑器底部题示编碼智能控制项,键结慧更。要在CodingAssistant 的 到話区查看回愿,點Coding Assistant 按钮。要薇銷更,點Revert 按钮。 Show assistant Undo Document LandmarkMapAnnotationView.... 吕 + Finished Change summary 想看生成的文棉?Product>Build Documentation 老司機的技巧 管理你的對話 任何時候你都可以塞查與Cod1ngAss1stant 的期。對括是出现在對括區的一連串提示和 回。比如你可以在同一對話中要求模型對你正在開登的功能造行一系列警更,然後為代碼不同 部分的另一個功能創建新到活。 可以在对話區或使用工具列的Conversation弹出速单管理對話:

  • 在同一到括中上下勤可以看之前的提示和回

  • 點繁提示右遗的展開三角形可以期示或耀藏回离

  • 選单選援可以跳到最近或之前的對

  • 選单遥授ClearALl可以删除之前的對话

  • 0+#

.o

間新对括黏工具列最左的Start NewConversation按,然後在下面的訊息文字橘位 输入提示。 要遥捶模型,贴聚工具列左遗的NewConversation With按钮。 歷史回滚:回到遇去 这功能超好用,可以镶你回到AI改代码之前的状,或者塞查專案中多個樓案的炭更。 使用Xcode 维摇的封括歷史来按提示回滚更:Conversat1on 弹出覃選握對,贴 整History按钮。Xcode 窖显示按時醒颠序排列的提示列表,右遗有滑标。微底部向上移助 滑标可以按你进行更的顺序微銷更。向上移勤滑样移除更(Xcode言在右顾示),向 下移动滑程恢復下一因提示中的费更。

Xcode會保留该默照之後的所有编辑,以防你以参决定向前恢德任何攀更。在滑助到你想恢得 的點後,點Restore按翘將等案文件更新到微道一黏開始的状感。要保持對話中的所有爱 更(不管常前滑操位置),贴量Cancel. 注意:要使用 History 功能,你的專案必须有 Git 意虚。如果没有意量,贴 History 按纽時含出现Create Repository按超。或者逐摆Integrate>NewGit Repository创建本地愈康。Xcode 不言對你的意速进行更,但它的史功能依赖你事赛的 Git雁史作為参考。 推理模式(Reasoning) 到於某些模型,你可以握模型在生成回应时使用的推理级别。在專案编辑器中,提Cod1ng Assistant訊息文字榴位下方出现的 Reasoning弹出遥單中遥摆级别。 等极 用在哪 低 商单同题,要快 中

一般間髮(预设)

高 辩遥、架横沃策 提示韵小技巧 结化一點: 【背景】我在做一留 sviftuI 列表 App 【目标】加下拉剧斯 【限制】要支援10S17+

擅用@引用: 参考@UserSession 的短計模式,把@PaymentService 也改成那機: 接上你自己的工具 MCP是什魔? Model Context Protocol(HCP)是一低翘放標弹,辖你可以在Terminal 理用 AI 工 具,然後那個工具可以速回你的Xcode 專案。 商量说就是:你用CLI的AI,它可以勤你的Xcode等案。 在Xcode開 在 Intelligence 設定中,允許外部代理编碼工具使用 Xcode 的 MCP 伺服器速接 Xcode: 把 Xcode Tools 打 配置你的CLI工具 在 Terminal中,使用xcrun mcpbridge命令配置代理编码工具使用 XcodeTools。 Claude Code: claude mcp add --[ransport stcio xcode xcrun mncpbridge Codex: codex ncp add xcode xcrun ncpbridge 检查有没有投好: claude mcp list 15!1 dou xapo3 給AI一些專案提示 你可以通捶在代理编碼工具使用的位置添加鼠龄Xcode和事的提示到配置文件中,比如AG ENTS.nd或 CLAUDE.nd文件。

  • MVVM模式

  • SviftUI + Conbine

用5wi ftLint MARK:分隔主解 ##注意事项

  • 路求都要有箔操虚理

13-用async/await,不要用 closure 遗檬AI就知道你们图原的规矩了。 更多於在Xcode内部通行的代理编碼工具配置,可以看上面的「自訂代理瑞境部分。 你的代碼安全 數據怎流動的? 用第三方AI的時候:你同的同题言送给AI提供者,AI需要上下文时可能管抓你專系的相 關代碼也送過去,然後AI回愿顯示在Xcode裡。 需你逻择一個第三方產品亚阴始在Coding Ass1stant 始入提示時,鼓產品可以在滤理你的 請求時將你的事案文件和其他信息分享给它的模型。 怎控制?

  • 關掉ProjectContext:不要自動送代碼過去

  • 手助引用:用指定要送什度

  • 用本地模型:新增Locally Hosted 提供者,数撼不雕开你的 Mac

公司管很? 如果你想為受管理较借照開 Coding Assistant,可以在移勤設借管理(MDM)配置文件中 為CodingAssistantAllowExtcrnalIntcgrotionskey 股蕊falsc,更多資卧,看 Apple 的 Device nanagement restrictions for Mac computers 。 各家的私政策 投定真面底部都有速结:

  • OpenAI:可以查看OpenAI私政策

  • Anthropic:可以丽m Share Claude Agent Usage Data with Anthropic,

看Anthropic Privacy Policy 和 Anthropic Terms of Use 踩坑指南 这些間题都来自官方ReleaseNotes,是真實存在的已知問题。 常見問题 自訂的AI提供者不見了:Xcode26.3已經修好了这個同题(之前重開Xcode後自訂提供 者會消失)。更新到26.3就行。 CodingTools活勤指示自己跑出来:Xcode26.3已經修好了,任完成後活動指示條 不會再自己出現在编朝器中。 AI 無法防間專案:如果你把專案放在Desktop、DownLoads、Documents 这些愿私保護 的資料夹,而且拒了Claude或Codex的防問權限,之後就不會再弹出防問請求,也無法 撤銷这固决定。 解法: l.去系统投定的 Privacy and Security>Files and Folders 看看有没有 Claude 或Codex的限設定,有的話用防周 ?.如果没有这個條目,就把專案搬到 Desktop、Downloads、Documents 之外的位置 贴榴案AI但它收到:粘貼福案到CodingAssistantUI不一定會正確發送内容给代 理。 通方法:把檔案放到已知位置(如Desktop或專案工作目錄),然後告代理已經把檔案 放在那裡它访間。 代理装失败没提示:如果代理下载失败,可能不會照示錯误详情。检查细路,再試一次。 Xcode26.3還有的問题 同题 怎磨瓣 標示可能有误,無大雅 對括歷史標顯示的更行数比實际多 Clear Recents清不掉對話列表 重开Xcode 「Run snippet;工具跑完後 #Prevlew或#PLay Build 当前的 scheme 清除错 ground執行失败 误 用History 視圆或 git 回滚 掉自動套用後undo按钮不出现 崔更 不要打/skill,直接「用xx 自訂斜杠命令和技能被代理拒绝 × skillj Allow agents to use integrated interne Claude Agent 每次都要手動允 t access tools只對Codex 有效 许每個纲路命令 Generate fix for issue 含尊致 Xcode 先存再试 退 某些代理設定(如關测、禁用细路工具)没馬上生 改完設定後重開Xcode 效 外部MCP客户端在關開外部MCP速接後仍题示為活 这些客户端實际上被阻止防間Xc ode,只是UI 顯示問题 動/非活動速接 Xcode26.4Beta的修復 如果你用 26.4 Beta,有個 CodingIntelligence 相的修復: 修好了:Codex的config.tonl文件中配置的MCP 伺服器會被Xcode覆蓝的問题。这 個在26.4 Beta 已經修復了。 效能小撤步

  • 定期清莲對括(用Clear All)

  • 缩小上下文圈(關掉ProjectContext,手動用@指定)

  • 退封模型(筒单問题用Haiku這種轻量级的)

  • 好 Git repo(確保History功能正常速作)

總結一下 Xcode的AI功能確胃能開發醒疑很多,重點是:

  • 遇對工具:ChatGPT、Claude、Codex、Claude Agent 各有侵势

  • 一步一步来:别叫AI一次做太多事

  • 保持掌控:用History回滚,用git 借份

  • 注意私:知道你的代码會被送去哪

附錄:快速参考 常用快速键 快速键 做什度 開 Coding Assistant 3 + 0 3 + Option + θ 顯示Coding Tools Settings 配置文件位置 Codex: -/Library/Developer/Xcode/CodingAssistant/codex MCP設定指令 #Claude Code claude ncp add --transport stdio xcode -- xcrun ncpbridge claude mcp list xapo# apoox ppe dow xapos

  • - xcrun mcpbridge

codex mcp list

版本:基於Xcode26.3RC/26.4Beta官方文檔 参考资料: https://developer.apple.com/documentation/xcode-release- notes/xcode-26_4-release-notes https : //developer.apple. com/documentation/xcode/setting -up-coding- intelligence 支持第三方LLM使用方式https://github.com/tianrking/xcode-proxy

原始排版图

原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。 Xcode AI 編程攻略:讓 AI 代理幫你寫 Swift:微信公众号导出原始排版图(第 1 段,共 2 段) Xcode AI 編程攻略:讓 AI 代理幫你寫 Swift:微信公众号导出原始排版图(第 2 段,共 2 段)

LangExtract 架構分析

· 閱讀時間約 7 分鐘
w0x7ce
MySelf

发布于 2026-02-15 23:57:44(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 2611 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

originalwex7ce EI V1ajero 2026年2月15日 23:58 中国台海 花了點時問把Google開源的LangExtract代磷麟了一遍。就實話,这束西跟 现在市面上大火的LangChain或者LlamaIndex 思路很不一様。它没有整那些 花胡哨的Agent概念,就是踏踏實實解决一個間题:怎百真的合同、财報 裡,把数據招出来,而且遗能精確告我這数據在哪一行。下面是我整理的一些架横 思考和源碼筆記,適合大家做類似系统設計時参考。

APtonny trmrg

它的架楷本質:一個“带記性的Map-Reduce" 看代碼的時候,覺得这不就是個RAG喝?後来發现不封。RAG是“搜->端 <<·<< LangExtract 其震是一個Stateful Map-Reduce(带狀懋的 Map-Reduce)系 统。它不做向量检索(因爲检索意味著會漏束西),而是暴力描全文。这礁起来很 笨,但對於法律合約塞查运種場景,Recal1(召回率)就是命,漏掉一条条款可能就 是百剪的损失,所以全量操描反而是最優解。 畫了個草图来理解它的数據流: Map 随段(带狀感! 切刀: Chunkiterator 输入:一本300真的 PDF 把上一塊的尾巴黏束 切一 記憶缓存: ContextAwarePromptBuilder

Process 降段(兹行) 综程池

LLM 推理

Reduce陷段(硬核處理) 解析器:FormatHandler 找坐檬:WordAligner

生成报表:Visualization 结化数據+字符级坐標

關於“上下文注入”的一點细 在chunking-py和prompting-py理,我看到了一很單但很實用的設計,事門用 来解决“指代消解”間题。 同”。如果直接切開,LLM看到第二页的“他”,根本不知道是旅。 LangExtract的做法是,在處理第二块的時候,强制把第一瑰的最後506個字符塞 到Prompt 的最前面(棵記為[Previouscontext])。這個“默注入”楼 制,原本獨立的Chunk之開有了聊絮。 履存状息 PromstEullder 笔1线(文本:“集三是洁人....) 8人 Churk.1 适是第一境·正常提原 提胞结果:(Nene|张三] 除前把 Ohurk 1 的尾巨存起案 第2埃(文本:“能强了合周.) 提人 Churk 2 .张三是活人”

[三] 众号 播存状息 文楼育 Promstullder 这代磅寫得挺克制,没有引入向量数擦库,就用一個内存字典解决,工程性俱比高。 工廠模式:怎磨侵雅地適配一堆LLM? 它的factory·Py得很標弹,把 Google 自家的 Gemini、OpenAI 還有本地的 0lLama封装得挺好。运裡有個投計很有橙:的定侵於配置。 它富自勤去滞跟境量。你的Docker径只要有GEMINI_API_KEY或者 OPENAI_API_KEY代确锂什磨都不用配,直接create_model(“gemini3")就行 了。 期用 create_model

措環境蔓量 据猫境费量 操OPENAI_KEY 绿现GEMNI_KEY 循 Gemini 配置 准餐 OpenAI 配置

匹配模型ID

度例 GeminiProvider 宽例化 OpenAIProvider 以後如果我們自己要接個内部的Llama 3,照著寫因Provider 继承 BaseLanguageModel就行,展性問题。 怎磨跟“人工智障”门智门勇? 做遇LLM開發的都知道,模型输出格式是最頭疼的。你要JSON,它給你 Markdown;你要文本,它给你加段“Here is your answer”。特别是那個 DeepSeek-R1,翰出前退非要加一段標,把JSON解析器搞扇清, LangExtract不相信模型,它在FormatHandler提察了個状懋機来做“防性编 程”。

清洗脑段 原始输出 針對推理模型 解析段 乾掉Think標筑 去掉Markdown NOS辉 JSON排了?越YAML 携救隋段 试试YAML Nice! 微底排了 成功 用正则硬握 Key-Values 宽容模式 能救多少救多少

代碼狸那個_THINK_TAG_RE正察得挺靈性,直接把推理遇程切掉,無缝適配了現在 最新的推理模型。這就是工程经啊。 核心算法:怎度在原文理找到那個? 這是我覺得整個项目最硬核的地方:WordAligner。提取出“果公司”很容易, 但在50真的文楼理,它具體出现在第真、第行?这叫Grounding(溯源)。 LangExtract用了個"快慢路径"的策略,既保證速度又保證精度。 快路径(FastPath):直接字符串匹配。如果LLM很乖,製粘貼原文,那時 間就找到了。 取了“Apple"),这時候就要上difflib做模期匹配。 但difflib很慢,怎度游?它加了個预剪枝(Pre-pruning): Stage 1: 货径

就调 图口

折算 省了大E CFU 黄黑

组分量高的 這裡没有用Embedding做語義匹配是對的。信息提取要的是字面精確,不是語羲相 似。"iPhone13”和“iPhone14”向量很像,但提取錯了就完蛋了。 玩LangExtract的個小建 看了這多,給想用這個库的兄弟們個實建: 能用geminischema就一定要用。Schema 定羲好了, 别省那點,用Schema: 别省那點,用Schema:能用gemini_schema就一定要用。Schema定義好了, 模型輸出不准,而且話少,省Token就是省。 Buffer設大點:現在的模型ContextWindow都很大(Gemini1.5Pro都 有1M-2M了)。max_char_buffer不要用默的1000,直接幹到50,000甚至更 多。切分越少,語義越完整,提取效果越好。 多輪提取是個好東西:如果你的数據很密集(比如财報裡的表格數據),開雨輪提取 (extraction_passes=2)。第一輪提取大頭,第二輪查漏補缺,親測召回率能提 20%左右。 可視化很有用:它自带的那個visualization模塊生成的HTML很直觀,左原文 右結果,還带高亮跳轉。做演示或者人工複核的時候非常實用。

總結:Google這人寫代碼還是挺講究的。LangExtract没有過度封装,每個 模瑰(Chunking,Prompting,ALignment)都拆得很清楚。如果要做垂直领域 的長文檔提取,别自己頭造輪子了,拿這個改改,對比自己寫的穗。

原始排版图

LangExtract 架構分析:微信公众号导出原始排版图

WebMCP:當谷歌試圖為 AI 代理建立新的網路標準

· 閱讀時間約 13 分鐘
w0x7ce
MySelf

发布于 2026-02-14 17:08:54(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 6990 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

original wex7ce EI V1ajero 2826年2月14日 17:89 中国台海 蓄你到WebMCP这名字時,可智查想到Anthrop1c 開源開發的MCP(Model Context Protocol)。但答款品近推出的WebMCP,然名字相似,是一個完全不 同、專為激贤器時代打造的新标准。 resitt0D Q) WebMCPestadisponibleparalavista previa anticipada Andre Clpriani Bandara

enla fom enquelo agertes dc IAintectanonlos Ebjeo de WMCF esproornruna fmad deqe zsd mayor velociciad, confablidad y precision. Candd statetsi re.lcn elimira la ambiguedad y permite flujos de trabajo de agentes mis rapidos soidos.

AI代理的幕抓取困境 在深入WebNCP之前,先理解一個同题:當AI代理試图关期站交互時,曹發生什度? 傅統方法及其問題 传统上,無是早期的「幕抓取(screen-scrap1ng),退是现代利用CDP(Chrome DevTools Protocol)解析 DOM 栏與無屋疆棵箍(Accessibility Tree)的技術,AI 代理本質上都還是像一個必须看懂介面,的用户。它们透過辱找特定的HTML舒點、模凝滑 鼠贴、解發动想都本来完成任務。 這種高度依赖前端UI结横的式交互方式,存在装難以克服的致命同髓:

1.易錯性高(語意模糊)

即使代理能精举抓到HTML標籤,面到現代前端框架打包出的被辩代码,如果缺乏完美的 ar1a-label,代理仍常會判表单榴位的真實務用途。

2.效率低下(默同步難)

遇到助感渲染的元件(如點後才非同步载人的下拉還单或弹出視窗),代理需要反覆等待钢路 請求舆DOM更新,模凝多步人规操作才能完成一個能单任務。

3.困(結高耦合)

这是最大的痛點。站UI只要稍微改版(例如把單逝按纽改成下拉逛單,或多加了一步確湿 弹黑),原先依類特定DOM结属或操作路狸的代理就橙有可能直接卡死失效。 實際例子:预訂機票 個例子:當你AI代理聚你预訂票時,它可能需要:

  • 在大的DOM中定位出聚地、目的地、日期等位

  • 答试理解每個橘位自定的格式要求與融超通辑

  • 模凝黏蓝虑理非同步弹出的日元件和下拉遥罩

  • 提交後遗要解析真面整化来判疆是否出現结族訊息

這對AI代理来说,既不可靠又低效。奥其旗代理去「猜:介面,不如網站直接提供一份 「使用说明善。

WebMCP是什? WebMCP(Web Model Context Protocol)是谷散提出的一個频真棵,旨在溪钢站能萄 「主勤告:AI代理它提供哪些服務,以及如何使用道些服務。 简重来,WebMCP 做了三件事: AI代理 網站 發現機制 查詢可用工具

结構化定羲 WebMCP JSON Schema

状態同步 寶时可用功能

1.發現模制:代理可以查韵细站支持哪些工具

?.结机化定瓣:透遇JSONSchema 明確定输入输出

3.默同步:代理能钩實時了解常前真面提供了哪些可用功

遍是一個契的」——钢站明磷告诉代理“你可以用我做什磨;,而不是溪代理自已去猜。 WebMCP與MCP的關係

一個容易混渐的贴是:WebMCP和MCP是雨图不同的束西。

MCP(Hodel Context Protoc WebMCP(Web Model Context Protoc 维度 ol) ol) Anthropic Google/Chrome 图除 關發者 通行 服務端 器内(CLient-side) 境 部署方 需要部署專局服務器 直接在期页中使用 式 目棵用 服務端AI愿用 澜贺器内的AI代理 户 協定期 定频 服務端定(STDIO/HTTP) 绥夏 API ( JavaScript + HTML) 型 MCP镶你把工具露:给服端的AI康用,而WebMCP旗你把工具暴露给测質器内 的AI代理。它m的設計要感相似(都来自ModelContext Protocol的理念),但解决 的增景完全不同。

WebMCP的雨種API WebMCP 提供了雨程API,分别通愿不同的開髮場景:

1.命令式API(Imperative API)

適用於辨的動感交互,需要JavaScript執行。 1/姓形一留工具 Window.navigator.nocelContext.registerTool( ',opoippe,:aueu description: Add a new iten to the todo list, inputSchema: '1>afq:ad1 properties: ( text: { type:“string′} } execute:({ text }}=> [ {1xa1}$ opo1 papp, 1xa1 *1xa1. ad }] 1uaquo } na }} ; //姓所工具 window.navigator.nodelContext.unregisterTool(addTodo"); //清空所有工具 window.navigator.nodelContext.clearContext(); //批量投置工具 window.navigator.nodelContext.provideContext(< tools:[/工具原列/] 核心方法: registerTool()-注用草圆工具

  • unregisterTool(》-注崩单国工具

  • provideContext(》-批量設置工具(含覆之前的)

  • clearContext()-活空所有工具

2.宣告式 API(Declarative API)

通用於標的 HTML 表单,無需外 JavaScript 代碼。 sforn toolnane=ny_tool" tooldescription="A simple declarative tool action=/subnit"> clabcl for==text>text label</labclx s.axel,-aweu 1xat,-ad/1 1ndut? cselect nanc='sclect" requ1red toolparantitle=Passible Optiuns toolparandescription=*A nice description"> <option value=*0ption 1'>This 1s option 1</option> coption valuc=*option 3'>This is option 3</optionx </select> cbutton type=*subnit">5ubmit</button> </forn> HTML属性明: toulnane

  • 工具名辆

toaldescriptian 工具描述 数标题(對感JsoN Schema 的 property key)

  • toolparamtitle

参数描述

  • toolparandescription

  • toolautosubnit·自動提交(默韶需要用户手動贴墨提交)

测震器窖自勤将造些HTML元素轉换為AI代理可滋别的JSONSchema。 實際愿用場景 谷歌在文樓中列肇了因典型場票:

1.客户服務

原文:“Help users create detailed customer support tickets, by enabling agents to fill in all of the necessary technical details automatically ." 接AI代理用户自助填腐客诉工單,包括所有技術细第,减少人工满通成本。

2.電商

原文:"Users can better shop your products when agents can easily find what they're looking for, configure particular shopping options, and navigate checkout flows with precision." AI代理可以精璀地提索座品、配置逊项,亚潭確完成结流程。

3.旅游

原文:“Users could more easily get the exact flights they want, by allowing the agent to search, filter results, and handle bookings us1ng structured data to ensure accurate results every tine.* 代理可以使用结化数来搜索、筛逻亚预訂機震,随保每次结果单班。 预實版本详解 目前WebMCP虚於早期预实段,在Chrome中可用。 系統要求

  • Chrome 版本:146.0.7672.0或更高

  • 需要敏 flag:chrome://flags/Nenable-webmcp-testing

ModelContextToolInspector展 谷歌提供了一個專展的Chrone展程序来助發者调試: 功能特黏:

1.列出册的工具:顯示所有已鞋册工具的名、摧述和始入schema

?.手勤敦行工具:跳遇AI代理的不值定性,直接用指定参数敦行

3.奥Genini API集成:使用自然語言测试工具跟用

Live Demo 谷歌提供了一细旅避索Demo:

  • 地址: https://googlechromelabs github.io/webncp-tools/demos/react-

flightsearch/

  • 展示工具:searchFlights搜索航班

最佳實:如何設計好的工具 谷歌在文楼中分享了类困關於工具投計的最佳實: 原子可组合 信任代理流程控制 工具策赔 医分站行武教助 雅虚理限流 WebMCP 命名类義 工具股計 可靠性贝继换恢 正西清晰述 代国中暴格融量 Schema 般 接受期户能入号 明确频型最通辑

1.命名舆語羲

原则:區分「缺行奥敏助

  • X蒲:使用模相的勤网

  • V正確:使用精確描述行為的动词

  • 更好:create-event (立即愈建)vs start-event-creation-process(會疏到

UI表單) 原则:正面、清晰的描述

  • X菜族:“不要用於天氧...」

  • 正確:“此工具可以創建日度事件,安排在特定日期和特同.」

2.Schema設計與翰入處理

原则:接受原始用户输入

  • X结:镶代理計算“午夜始的分铺数

  • 正础:直接接受“11:08"和“15:86”字符串

原则:明確的期型和業通辑

  • 所有参数必须有特定频型(string、munber、enum)

  • 解骤逐项的原因;,而不懂便是是什度;

3.可靠性舆錯恢復

原则:在代码中鹭,在schema中宽 //Schena中定我的束是辅助性的 input5chema: { type: "object*, properties: { age: { type: *nunber", mininun: }

//在execute 中造行景格融耀 execute: ({ age }) =>{ if (age <θ) { return { error: "Age must be non-negative* };

原则:侵雅地感理限流

  • 工具愿允許合理的重被使用(如比较價格)

  • 如果被限流,返回有意的錯误或建用户手勤接手

4.工具策略舆哲學

原则:原子的、可组合的

  • 董免相似工具有组微差兴

  • 将它們合供為單個工具,透退输入参数區分行為

  • 每個工具鹰該是单個函数

原则:信任代理的流程控制

  • 避免则性指令如不要在A之後调用B

  • 管理全局任称流程不是工具的责任

限制與挑 谷歌也诚實地列出了目前WebMCP的限制:

1.需要测上下文

"There is no support for agents or assistive tools to call tools ‘headlessly,' meaning without visible browser UI." 工具调用需要在JavaScript中虚理,因此必须打灣景上下文(潮置器根签或 webview)。目前不支援「無颐:調用(没有可見UI)。

2.UI同步

關者必须確保UI更新以反映匯用的常前状照,無输状照更新来自人机交互遗是工具用。

3.複離性用銷

对於UI 非常擅翘的细站,開者可需要重横或添加JavaScript 来正處理唐用和 UI 状照,

4.工具可發現性

"There is no built-in mechanism for client applications to discover which sites provide callable tools without visiting or query1ng them dtrectly.* 没有内還概制客户端愿用發現哪些網站提供了可细用工具。提索引擎或目錄可能售在未来扮演 这角色。 與Chrome内建AI生的關係 WebMCP是Chrome 整體“Built-in AI:鞋略的重要一。以下看看谷在AI方面的怖 局: Chrome 内建AI API 現状 状態 用途 API Translator API Stable (Chrome 138+) 翻湿用户生成和動照内容 Language Detector Stable (Chrome 138+) 检测输入文本的语言 API Sunmarizer API Stable (Chrome 138+) 温缩長荒内容 创建符合特定寫作任的新内 Writer API 0r1g1n Tr1al 容 修改和重精文本 Rewriter API 0r1gin Tr1al Chrome Extension Origin 向 Gemini Nano 壁送自然 Prompt API 韶言精求 Trial Proofreader API Origin Trial 提供交互式校封 Early Preview (Flag req WebMCP 為AI代理提供结栅化工具 uired) 時間線 Chrome Burlt-in A 复展型辑

2024年5月:Chrome Built-inAI在GoogleI/0 2024 宣布

  • 2024年7月:Summarizer API

  • 2024年8月: Language Detection API

  • 2024年8月:Writer 和 Rewriter API

  • 2024年10月: Translation API

  • 2025年4月:API入點炭更(徙self.ai.改爲self.x)

  • 2025年5月:Google I/0 2025 宣布 Prompt API多模能力

  • 2025年8月:Proofreader API

  • 2026年2月:WebHCP Early Preview 宣布

為什現在是WebMCP? 时機很重要。谷歌選在2026年初推出WebMCP早期预質,反映了频因超势:

1.“代理網路:(AgenticWeb)正在到来

“As the agentic web evolves, we want to help websites play an active role in how AI agents interact with them." 答歌意描到,未来的细站不是“人取的:,也是“AI代理取與操作的」

2.徙「幕抓取到契約式交互]

與其溪AI代理盲目地與UI交互,不如读钢站主助暴霸能力。这是一個思维前式的轉

3.奥MCP生態形成互補

保防端 WebMCP MCP Prempt API Model Context Protocol 内A Protocol

完整A座用 目家健系 MCP(服端)+WebMCP(刹器端)+Prompt API(浏質器内 AI)=完整的 AI 鹰用 登错系。 考速结 https: //developer . chrome . com/blog/webncp-epp?hl=es -419 鲜细参考資料 https : //docs . google.com/document/d/1rtU1fRPSebMqd9abMG_hc6K90A I6soUy3Kh88toAgyk/edit ?tab=t 0 封群組 https://discord .com/invite/zzj2ywFx8B Welcome to Chrome's Early Preview Program for bult-in Al > 3

s xdlebrid,x [4]: Built-in Al Early.Preview Program Disoord Channe] , Not sure why you've been added to this mailing list, and wish to unsubscribe? Send a blank email to chrome-ai-dev-preview+unsubscribe@chromium.org Sorry about any inconvenience this may have caused.

原始排版图

WebMCP:當谷歌試圖為 AI 代理建立新的網路標準:微信公众号导出原始排版图

Cloudflare 推出 Markdown for Agents:自動將網頁轉換為 Markdown 格式

· 閱讀時間約 12 分鐘
w0x7ce
MySelf

发布于 2026-02-13 21:01:36(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 7641 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

CLoudflare推出MarkdownforAgents:自動將網真轉换為 Markdown 格式 wθx7ce EI V1ajero 2826年2月13日 21:82 中国台湾 網路流量格局的變

線上内客和商業被登现的方式正在發生快速整化。遇去,流量主要来自传统搜毒引掌,SE0决 定了谁能被侵先找到。而今,流量越来越多地来自AI爬鑫和代理,它們提主要由人類设計 的、往往缺乏结福的细路中求结橘化数。 作為企案,若想持續保持领先地位,现在是時候不催要考南人類防客或传统的SE0侵化智慧, 更要開始將代理视為一等公民。 為什Markdown如此重要 将原始HTMIL想给AI,就像按字数付费去请包装上的文字,而不是请程面的信件。一個商單 的Markdown 格式#副龄在页面上大的消耗3個token:而其 HTML等價形式h2 class=section-title id-about>About Us</h2x则要消耗 12-15個 token,這遭没 有計算每回真實纲真中都存在的<div>包装器、導航榈和图本標,而这些元素乎没有語 價值。 以您正在阅镇的遗篇博客文章為例,其 HTML 版本估用 16,189個token,而尊换為 Markdown後估3,158個token.运意味著80%的token使用量被前省。 PasiMesSity Riky aegr Dmo TurSpeds saseity LhMCyadfan Q Why markdown is important Feedng rw HTML t anAlislle pang by ter to d pkaig istof te emerini Asime bet Uh on painmed ts rughly 3tos:s HTML ogaert clsetite atAbst /2bm22- 5, andtsfe , s eryh This blog port yo/re eocing takes 16,180 toens in HTL snd350 sokns when oet md ht's a 8 rtiine. Mircicn has quicy becme theNrgce france for agents nd Al sytems as a hcle. Thefmfig better reuls whle mrimizng token wae. Thepr ttb t, nds been st makaesadFrans, goal i ferut allnnenial esand scan the rela cert. The conversion of HTML to merRdown is noe a common step fo any AI pipeline. StiI, his pocess is far from ideal: It wastes computation, adcs costs and processig comdlb rEVa tobe usedinhe first place. 格式 Token 数量 前省比例 16,188 THLH 3,150

80.5%

Markdown Markdown已迅速成為代理和整個AI系统的通用語言。格式明的结福使其非常適合AI 處理,最续能在最小化token浪费的同時得更好的结果。 然而,周题在於频路是由HTML横成的,而非Markdown,而且真面重量多年来一直在標步增 最,这使得真面難以解析。封於代理而言,它們的目标是過滤掉所有非必要元素,亚描相關内 容。 為HTML韩换为Markdown現在已成为任何AI流水综的常見步骤。债管如此,遗困過程通 非理想:它浪費计算资源,增加成本和虚理德性,最重要的是,可能不是内容創作者原本打 算使用其内容的方式。 如果AI代理能购過意图分析和文權轉换的瓣性,而是直接微源眼接收结标化的 Markdown,那官怎楼? 自勤將HTML轉换為Markdown Cloudflare的路现已支援在源额进行即時内容辅换,到於敏用了旅功能的區域,使用内容 商標源(content negotiation headers)。现在,當AI系统向任何使用 Cloudflare 亚用了 Markdown for Agents 的站静求真面時,它們可以在求中表连 對text/narkdown的好。CLoudflare 的频路將自勤且高效地將HTML韩换為 Markdown, 工作原理 要用了 Markdown for Agents 的區域遵取任何真面的 Markdown 版本,客户端需要 在错求中添加Accept商標题,亚將text/markdown作為项之一。Cloudflare 機测到此求,源頭獲取原始HTML版本,在將其提供館客户端之前將其轉换為 Markdown。 flare Gl

以下是使用Arcept協商標原 CLoudflare 的用發者文權請求真面的curl示例: Curl https://developers cloudfLare.com/fundamentals/reference/markdovn-

  • H "Accept: text/narkdown"

或者,如果您正在使用 Workers 温AI代理,可以使用TypeScript: 1oa, 4teMe = J 15U03 headers: { Accept: *text/markdawn, text/html", }, ): const tokencount = r.headers,gct(*xmarkdown-tokens"); const markdown = awalt r.text(); Cloudflare 已經看到一些當今最受数迎的编碼代理—如 CLaude Code和 OpenCode—在 它們的内容請求中送遗些accept标頭。現在,對此铺求的警癌將以Markdown格式返 回。就是磨單 誓應示例 HTTP/2 288 882 2/d11H date: Wed, 11 Feb 2026 11:44:48 GMT content-type: text/narkdown; charset=utf-8 content-length: 2899 vary: accept x-narkdown-tokens: 725 content-signal: ai-train=yes, search=yes, ai-input=yes title: Markdoun for Agents · Cloudflare Agents docs ## what is Mankdown for Agents Markdown has quickly become the Lingua franca for agents and AI system as a whole. The fornat's explicit structure nakes it ideal for AI proc. ultinately resulting in better results while nininizing token waste. 關標頭明 x-markdown-tokens:此標指示Markdown文檔中的预估token數量。您可以在流 程中使用此值,例如計算上下文视留的大小或决定分境策略。 content-signal:指示内容的使用權限,包括 AI 制辣、搜毒结果和AI输入(包括代 理使用)。 内容信號政策 在Cloudflare 上一次的生日遇期,宣布了内容信號(Content Signals)——個允許 任何人表達其内容在被访問後如何被使用的偏好的框架。 當您返回Markdown時,您希望保您的内容正在被代理或AI爬盈使用。这就是為什度 Markdown for Agents 韩换的暮感包含 Content-signal:ai-train=yes, search=yes, al-1nput=ye5棵显信號,敲信碱指示内容可用於 AI训额、搜最结果和AI 输入(包括代理 使用)。此功能将在未来提供定我自定教内容信赋政策的退项。

ai-train=yes, User-Agent: Content-Signal:search=yes, ai-input=yes

有此框架的更多信息,错查看Cloudflare的内容信真面。 https://contentsignals org/ 在CLoudflare博客和開發者文檔上試試看 Cloudflare已經在的開發者文樓和博客上般用了此功能,遂所有AI 根鑫和代理使用 Markdown 而不是 HTML 来消费 CLoudflare 的内容。 现在就通透精求Accept:text/markdown来斌越看: Curl https://blog.cloudflare.con/narkdown-for-agents/ \

  • H "Accept: text/narkdown*

结果如下: description: The way content is discovered online is shifting, fron tr. title: Introducing Markdown for Agents inage: https://blog. cToudflare com/images/markdov # Introducing Markuown far Agents The way content and businesses are discovered online 1s changing rapid 其他轉换為Markdown的方式 如果您正在杨建需要CLoudflare 外部换任意文權的AI系统,或者内容源不提供 Markdown for Agents,Cloudflare 提供其他為文轉换為Markdown 的方式: 方法 用場景 Workers AI AI.toMarkdow 支援多文槽频型,不蛋限於HTML,以及摘要功能 n() Browser Rendering /mark 如果您需要在转换前在真责测觉器中染勤慧真面或感用 程式,则支援 Markdown 韩换 down REST API https://developers.cloudflare,com/workers- ai/features/markdown-conversion/ https://developers.cloudflare.com/browser-rendering/ rest- api/ma rkdown-endpoint/ 追Markdown使用情况 预見AI 系统测宽期路方式的碍曼,CloudfLare Radar 现在包含了 AI機器人和爬晶流量 的内容類型見解,既可在AIIns1ghts页面上全球查看,也可在革圆機器人信息页面上查 看。 新的content_type继度和通流器显示返回给 AI代理和爬囊的内容颜型分值,按 MIME 類 别分组。 Content typeworldwide uofe ed; 3W q padno6 se,xe pue s] Distribution of content types returned to Al agent Plain text Documents Markdown HTML NOSr Other Imagesi

75.2%7%

5.4%

0.1%

<0.1%

8.4%

3.9%

603

ast7量,, Cloudflare Racar 您遗可以查看針對特定代理或爬避遇滤的Markdown請求。以下是返回Markdown 给OAI- Searchbot 的請求,是OpenAI用於為ChatGPT 搜寻提供助力的爬囊: Content type for OAl-SearchBot Distribution of content types retured to the specified bot, grouped by MIME type cate HIML Pain tert Images Pain text Images XML HTML Other JSON

63.8%12.9%

3.4%4%

11.7%

4%

Sat, Feb 7, 00:00 Last,c Cloudflare Radar 這些新数擦将使CLoudflare能约追胀AI机器人、爬邀和代理随著时南推移消费细路内容 的方式的清曼。與往常一楼,Radar上的所有内容都可以通透公共API和数據資源管理器自 由防同。 如何用MarkdownforAgents 通過CLoudflare控制面板敏用 L.登錄CloudfLare 控制面板亚透挥您的帐户(您需要Pro或 Business 計劃)

2.还挥您要配置的區域

3.找Qu1ck Act1ons

1.切换 Markdown for Agents 按钮以用

curl -x PATCH *https: //api .cloudflare,com/client/v4/zones/{zone_tag)/se

  • header Content-Type: application/ son’\

  • -header "Authorization: Bearer fapi_token]*

  • -data-raw '{value*: "a

Howtoenable Dashboard API To enable Markdown for Agents for your zone using APIls, send a PATCH to 0 (uo, 1,ane,) peoed ai ym Jepanuoosupue/sbutasas/(be1suoz)/ssuez/pa/suats/ the Cloudflare API. You wil need to create an API token with the Zone Settings edit pemissions enabled. Example: Enable Markdown for Agents curl X PATCH *https1//api-cloudflare.com/client/v4/zones/(zone_tag)/settings/contel header “Content-Type: application/json’
uo, =anens), meu-eiep- {uayoasde] Jaueog suoezpuouany, Japeou-

可用性和定價 Markdown for Agents 目前向 Pro、Business 和 Enterprise 劃以及 SSL for SaaS 客户免查提供(Beta版)。 Coullare Docs Cloudflare 口 Availability and Pricing Srarc1 sidktr. Ovenee Cet tsted Try it with Cloudflare Act) pe Bup g5eg ro pu#g 9ep Balt Menners Usr prelie urt https:/beg stodtare

限制與注意事頂 在开始使用之前,清注意以下限制:

  • CLoudflare便支持徙HTML酮换,其他频型的文榴可能管在將来被包含

  • CLoudflare不支持来自源显的短缩显愿

  • Markdowmfor Agents 是區减级别設置。如果您需要為域的不同子域使用不同的設

置,需要将它們解揭为章的區域 實際應用場景

1.AI研究助理

async function researchTapic(topic: string){ const searchResults = await searchEngine.search(topic); const articles = await Promise.all( searchResults.nap(async (url) => { const response = await fetch(url, { headers: { Accept: text/markdown return { url, content: a/wait response.text(1, tokens: response.headers -get("x-markdoun-tokens") }: } : summarize(articles);

2.内容索引服務

到於需要横建知碳审或向量索引的企案,Markdown格式提供了更乾净的数球源: inport requests def index_website(url): response - requests,get(url, headers=headers) if respanse.headers.get(*content-type") == text/markdawn: content = response.text 将Markdown内容转换為向量单存 vectar = enbed [content) store_in_database(url, vector, content)

3.自動化測試舆监控

//使用Markdown格式蓬行内容始避更加可靠 async functian validateLantent(url: string. expectedTitle: string) { const response = await fetch(url,{ headers: { Accept: "text/markdown"} }1; :({ const markdown = await response.text(); const lines = markdown.split('\n'); 8 const title = lines.find(line => line.startsWith('# ')); 6 10 if (title?.slice(2) !== expectedTitle){ 11 ectedTitle] { throw new Error('content validation failed'); 12 13 14 未來展望 随著AI代理的普及,Cloudflare预計: L.更多網站將探用Markdown原生格式:為AI優化的内容發布將成為標准做法

2.Token效率將成為SE0的新指標:AI友好的内容將獲得更好的索引效果

3.内容協商將更加智能化:代理和伺服器之間的協商將更加精確地匹配需求

MarkdownforAgents代表了網路内容消費方式的一次重要轉燮。通過在源頭自動將HTML 轉换為Markdown,Cloudflare為AI系統提供了更高效、更具成本效益的内容訪問方 式。

修改于2026年2月13日

原始排版图

Cloudflare 推出 Markdown for Agents:自動將網頁轉換為 Markdown 格式:微信公众号导出原始排版图

深入 Pi:一個極簡主義 AI 編程框架的設計

· 閱讀時間約 14 分鐘
w0x7ce
MySelf

发布于 2026-02-12 00:20:53(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 5224 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

最近在研究各种AI编程助手,偶然控到了一個叫Pi的项目。 今天就把对道個项目的分析整理一下,聊聊Pi是怎度想的,又是怎度實現的。 先聊聊Pi是什 用一句职:P1是一套「榮高精木式的AI工具套件。 跟别人把所有功能塞进一因大monol1th理不同,P1把束西拆成了好袋回狮立的包: 你會直接用的 mom coding-agent 命令行工具 Slack 概器人

核心底座 给用發者用的 agent-core web-uf 终UI Agent 证行時 Web 组件

LLM统一接口

這様做的好虑是什磨?每因包都可以单拿来用,想怎磨拼就怎磨拼。你要做国自己的AI助 手?直接用agent-core。要做個瑞工具?加個tui就行。不需要把整個大都莲走。

一個具體的感受

我第一次用的時候,最震撼的是它的要活性。比如我想用Google的Gemin1,但之前的代强 只能跑在内频的OpenAI兼容接口上—换成别的工具可能就要配置一堆境量或者改配青文 件,但在Pi理就一行代码的事: const model = getModel("openai-conpatibilities*, ny-internal-model, { baseurl: "https://internal .company.com/v1* 这種!不绑死任何束西;的感觉,真的很好。 架構的核心:一個雙層循環 P1的Agent遥行時有個很有意思的設計一斐唇循垢。我一陶始看源碼的时候有黏悟,为什座 要摘雨厚?後来琢磨明白了,這是為了支持雨疆插入消息:的機制 来看图: 用户验送消息

有 Steeing 消息鸣? 有:用户在等我 先虑理注典 有 胡用LLM

LLM决定 铜用工具? 要调用 轨行工具

用户又喻入 不期用 了乘西?

通有工具? 跳泌剩下工具 有

有 Follow-up 消良瞩?

SteeringvsFollow-up:為什要區分? 这個設計我觉得挺巧妙,曾单:

  • Steering:你现AI走偏了,想馬上纵正。這種消息窗插陈:,掌前工具敦行完就虑

理,剩下的工具都不做了。

  • Follow-up:你援AI醉完道事後再醉那事。道種消息乖乖排除,等AI完全間下来再

滤理。 攀個例子:你旗AI你重横一段代码。结果發现它開始别文件了,你赶装输入“停下别 到:。道就是Steering-立刻打。但你也可以「重完後我個测试:,这就是 Follow-up—按部就班。 在终端理:

  • 按Enter =Steering(插原)

  • 按Alt+Enter=Follow-up(排陈)

这種细微的交互差翼,现的是封用户意圈的精確理解。 事件疆動:一切都是流 另一個我觉得設計得好的地方是事件系统。整個Agent谨行時就是一個事件發射器,外维想 随就订阳: 德就打用:

这有什度好滤?解耦。TUI 不用知道Agent内部怎度跑的,只需要事件就行。你想加图 日喆?訂開事件就好。想做因進度條?也訂開事件。 這種设計旗摘展得超级單一你不需要改核心代碼,排烟事件监器就完事。 工具系統:簡单但強大 P1给 AI的工具挺有意思的,就展园最基本的:read、vrite、edit、bash、greP find、ls.没有花裡胡脂的束西。 但每個工具都設計得很考究, read工具的小细節 馨因例子,read工具不只是单地文件: 调用read

是圆像 格式?

測真實類型

检查是否支持 不確定 讀文本 支持

缩放到2000x2000 文件太大?

截取前部分 编碼为base64 否

返回给AI 公众 你看,一個髓单的“错文件!!

  • 官自勤别图像亚虑理

  • 會检查文件大小,太大就藏断(默308行或38KB)

  • 支持分页额取(offset/Limit)

遗些组颌體现的是對生產境的考——AI真的用到这個工具的時候,不會因為一個频百MB 的日融文件就了。 工具接口的設計 工具的接口定美也很值得學智: interface AgentTool<TParameters> { 工具名 Label: string: //期示模 description: string: //始AI 看的就明 parameters: TSchcma; //参数Schcna(用於验) execute:( tootcallId: string. parans: TParaneters, signal?: Abortsignal, /可以中斯 onupdate?:(partial:any)=> vuid // 部分结果回调 = Pronisc<AgentToolResult<TDetails>>;

雨個設計亮點: 参数:用乒按CtrL+C的時候,正在行的工具能收到中断信號,可以做清理工 signal 作 onUpdate回調:支持增量更新。比如bash工具執行一個耗時命令,可以一遗執行一遗 把输出吐出来 这整個交互感凭很「活」,而不是發個請求就乾等。 會話管理:一棵樹的哲學 P1的會括存是因很有意思的設計。它不用多但文件存不同會話,而是把所有束西放在一個 JSONL 文件理,用parentId横成一模樹: 遭次對括的根 我:其管我想用Python 我:智我富伍排序 我:聚我客住排序 qd3ser 量 : Al: 好的用 JavaScript Al:或者用Go Al: 好的用 Python Al: 期用了 write 工具 Al: 寫了 Python 代碼 处:行租 Al: 期用了 bash 工具 為什要這做? 傅统做法是每個會話一個文件,想分支就復制一份。但P1的做法有费圆好處:

1.不浪囊空間:分支不需要復制整困文件,只需要記疑新的parentId

?.可以跳到任何節點:始入/trec,曾期示整模,遇任何一因郁贴都可以提那程“增續

3.墨也方便:盖的窗話可以继结成一CompactionEntry,不占上下文

/tree命令的體驗 运個功能真的好用。有時候你跟AI對适聊得了,想回到五输之前那個状然—不用重新睛個宝 話,直接/tree找到那個部點,远中继就行。整棵树的所有分支都在那理,歷史清活楚 楚。 这種设計我想到Git。鞋然存形式不同,但本货上都是“不可的歷史+指舒。 LLM抽象層:一個接口統治一切 P1 最强大的地方之一是射告種LLM 提供商的支持。OpenAI、Anthrop1c、Google、AbS Bedrock,Azure, Mistral...有 15+ 个 但神奇的是,你用的時候根本感觉不到差翼: 你的代碼 Pi统一层 session.prompt Agent Model 接口 宽现 青现 各種實现 Ilvuado 壹现 Anthropic Google Bedrock

怎做到的? 核心是定了一個Model接口,然後每细提供商去實现它。但显精巧的是strean5.inple 这個函敏—不管底恩API怎度梯,最後都酮成统一的事件流: 11所有提供商都逐回程事件 type Event = |{ type: start*; partial: AssistantMessage } | { type: “thinking_delta'; text: string ) |{ type: "toolcall_start';...} |{ type:done*} 遗檬上就不用管你是用OpenAI遇是Anthropic,虑理方式完全一楼。 為什这重要? 想像一下你公司的要求:必须用Azure OpenAI。但你在家暂情用Anthropic。换成别的工 具可能要改一堆配置,但在P1程就是换個modelID的事。 甚至道可以混著用: 接Ctr+P切旗

遗種霍活性在實原工作中真的很有用。 展系统:無限可能 我覺得P1最牛湿的地方是它的摘展系统。它不只是“支持插件:,而是把整圆系统做成了完 全可编程的。 展能幹什? 乎什座都能: agent_start tol_call 装换内建工具 事件验 替换编辑器 注民工具 自定覆操作 白定菱UI 搞展能力 添加状练橱 注用命令 自定羲灌染 非数解析 剩然操作 注册快捷键 路径遇薄 和内建共存 摧限查

一個簡單的例子

假設你想加因「部善到生產的工具: /// ,pi/agcnt/ cxtensfons/deploy t5 export default function (p1: ExtensionAPI){ //鞋得一留工具。AI可以原用 留工具,AI 可以旗用 pi.registerTool(( name: deploy_production, 'uotonpoud Aoldap. oueu description:“部置代码到生叠喂境”, 量 paraneters: ( type: object", properties: { confirm: { type: “boolean" } execute: async {{ confirn }1=> { if (!confinm){ “需要程才能部 return { content: [f type: text: 1贵账部著通辑 amait runDeplay(); return {content:[{ type:“text*, text:“邮黑成功")]}; }1: 签愿事件,每次bash敦行都配疑一 pi.on("taol call", asyne (event) => { if (event.toolName == *bash"){ console.log行命令:${event.args.command}); ({

就遗磨商单。存成文件,下次敏勤pi就自勤加载了。 携展加載的個来源 Pi會提据固地方找摘展:

揭流查地方 g安装 npm 安装

  • /.,p/agent/exter

  • pl/extensions/

全是的 项目本地的 加截益快行 挂册到原织 設計银分享接展得很简單——發图npn 包就行,别人piinstallnpm:your-packag 就装上了。 設計哲學:Pi跟别人哪狸不一檬 研究了运磨久,我景得Pi最特别的是它的設計哲學。在其他工具都在做加法的時候,它在微 减法。 它明確不的束西 這些是Pi官方文棉理明硫说「不微:的: 别人怎度做 Pi的服度 功能 Sub-agents 内建 用摄展實现,或間tmux 内建 用摘展實现 Plan node MCP 内建或大力支持 不解你做,但你可以寡展 弹出確框 内建 用Docker/客器,或自已展 用TODO.md文件,或自己摘展 Todo系统 用tmux 横台任释 内建 我资得這種“明碴说不:的魅虚挺好的。很多工具什磨都想做,结果成一個大鞋煌。P1知道 自己旅做什度,不该做什磨, 為什这檬設計? P1的作者Maria Zechner 宽過一篇博客解這。核心截贴是: 適愿你的工作流,而不是你適磨工具。 個例子,Sub-agents:

  • Cursor/ClaudeCode 有自己的實现,但你改不了它

  • Pi就:你可以開多個tmux pane,每個跑一個pi,想怎度作就怎度作

  • 或者你寫個58行的提展,實现你自已想要的sub-agent 退辑

後者更露活,但需要你勤手。P1的假設是:用这個工具的人都是開狼者,有能力也有需求自己 定制。

一個對比表格

極簡核心

展一切 靈活但需要動手

完全可定製 用户掌控

傳统路 功能豐富

固定工作流 開箱即用

學智成本低 工具掌控

没有對,只是取舍不同。Pi選握了『给有需求的人充分的自由。 實際使用的體验 我用了這度一段時間,就就真實感受。 好的地方 L.终端原生髓验:就是一個CLI工具,不會有各種IDE的定和限制

2.模型切换超快:CtrL+L打開进挥器,想切哪家切哪家

3.會話树真的好用:聊偏了的時候直接跳回来,不用重新開會話

1.寫展很直觀:TypeScript,API清晰,文權用

需要適的地方 l.入同有門:如果你不熟悉TypeScript 或CLI工具,可能需要點時間

2.需要自己勤手:想要planmode?自己撰展或找别人寫好的包

3.文檔主要是英文:對中文用户不太友好

一個具體的使用場景

個我最近的例子:我想AI葡我密查一段代碼的安全性,但不希望它能修改任何束西。 只给它權限的tool

这種粒度的控制,是很多其他工具做不到的。 對開發者的發 看完Pi的源碼,我有點收稚:

1.抽象層次很重要

Pi把束西分成了三履抽象:

LLM抽象層 统一各種API

Agent抽象層 封装工具和狀態

UI抽象層 獨立的渲染系統

每一都可以立化。想换LLM提供商?只動L1。想换UI?只動L3。这種設計整個 系统很穩定。

2.事件動是解耦的法實

P1的核心和UI之間筹乎没有直接依赖,全靠事件通信。这你可以随便换UI组件— 端、Web、甚至自己寫個 GUI.

3.善用「不做的清單

很多產品不敢「我們不做這個」,怕用户凳得功能少。但P1明確列出了它不做的束西。这 其實是一種自信——核心钩强,用户可以自己實现剩下的。 寫在最後 Pi不是一個「開箱即用到無腦程度的工具。它更像是一個『给開發者的工具套件」——你需要 花點時間理解它,但理解之後,它的上限非常高。 如果你只是偶爾用用AI忙寫代碼,Cursor 或 Claude Code 可能更適合你。但如果你 是固重度用户,有自己的一套工作流,或者想做點自己的束西一Pi很值得一試。 它的核心承諾很單:我不會强迫你按我的方式工作,我给你足购的能力去實現你的方式。

原始排版图

原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。 深入 Pi:一個極簡主義 AI 編程框架的設計:微信公众号导出原始排版图(第 1 段,共 2 段) 深入 Pi:一個極簡主義 AI 編程框架的設計:微信公众号导出原始排版图(第 2 段,共 2 段)

遇見 Dexter:當 AI 學會自己查財報

· 閱讀時間約 11 分鐘
w0x7ce
MySelf

发布于 2026-02-09 00:01:01(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 6822 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

original wex7ce EI V1ajero 2826年2月9日 08:01 中国台湾 偶然在G1tHub上刷到一個專案,看了一下發现有點意思。这是一CLI工具,你给它

一個自然语言的間题,它會自已规刺步里、调用工具、查数據,最後给你一個答案。就像有

個金融分析師助理在你翰活。 先看看效果 DEXTER t lor ceg fisa s FIB a KE i5et

$2.40

你不需要告诉它查什磨接口,不需要代碼,直接用自然語言問就行了。 整體架構 先看整體架,不算福,但設計得摇乾净: 用户提局 D.L1 界面 - Ink/Resrt seAgentRunner Hioc

生级签案 代理需琪

1. 满L

2.统行工具

3.更所状图

工具系统 LLM决策下一多 智名路出餐 堂国股综工具 新数器工具 报需工具 Financlsl Datasets API 核心思路就是:读LLM来决定下一步該做什度,而不是硬缩碼一個流程。 代理循環:它自己思考 最有短的是這因代理循项的設計。它不是一次性把活韩完,而是一步步来: 执行工具 生成答案 用户提图 記到 Scratchpad 返回给用户 更新上下文 初始化 创 Scratchpad 领用次数/相似度 橡查限制 用LLM LM返回决簧 有工具调用 超酒选代次数? 生成答案生成答案 用LLM 执行工具

為什磨要這楼設計? 因為有些同题不是一步能搞定的。比如你同「分析一下须果的投资價值;,它可能需要: L.先查财猜数操

2.看完数後现還需要查一下行案到比

3.现遗缺少最新的新

1.最後综合所有信息给出结输

如果一次性把所有可能的工具都额用一遍,既浪費又不一定有用。它自已判下一步需要什 度,曾更重活。 關键代码遥积: //离化的代理循環 while [iteration < maxIterations) { /11.辉用LLN做法策 const response = awalt cattModel(currentPronpt); //2.有tool_calls?就明率健生成答案了 If [!hasToolcalls(response)) { return generateFinalAnswer(scratchpad.getFullcontext()); //3.有tool_calls?纳行工具或收集结票 for (const toolcall of response.tool_calls)( const result = await executeTool(toolcall); scratchpad.addResult{result);//得到策配本 上下文太畏?清理善的结果 if (estimateTokens (context) > THRESHoLD)( scratchpad. clearoldestResults (KEEP_CoUNT) :

5.椭建下一次达代的提示

currentPranpt = buildIterationPronpt(scratchpad-getResults());

Scratchpad:它的筆記本」 每次查询,Dexter 都會制建一個Scratchpad,就像给 AI 配了一低董记本。运個董记本記 了:

  • 一開始同了什度問题

  • 用了哪些工具

  • 每個工具返回了什度结果

  • AI中附有通赐些思考

套入SONL文件 城用计数 dexter/scratchpadr*-jsonl 用户随量 相似度剂 建Scr 内存流障 Jaccard 0.7 工具现用 上下文清理 A1压考 硫超持久化 持久化格式:每個查询生成一個JSONL文件,每行一條記錄: {"type”:"init"."content":"须果和特斯拉嗯個更值得投资?","tinestanp":"2a26-82 {type":"tool_result,"toolNane*:financial_scarch,"args":{"query”:"AA {"type":"thinking”."content":我對比-下南家公司的估情指情...","timestang”:

三大能力:

L.防重试:通過Jaccard相似度橡测,不會重查一样的束西

2.控成本:需上下文太长時,自勐清理蔷结果

3.可追溯:每次查齿都有完整記条,出問题能查日陆

去重通辑: /1检测相低查牌 findS1m1 larQuery (newouery, previousQueries] const newwords = tokenize(newQuery): 分府 for (const prev of previousQueries){ const similarity - jaccard(newwords, tokenize(prev)); if [similarity >= B,7) return prev; 相似座期值 return nutl;

工具系统:三唇架構 工具系统分了三屠,每唇联责清晰:

建绎工具 进行执行

上下文管理

SC 文 WM推 ETviajero 為什座需要路由? 因為用户的提問是自然語言,不是结横化的API跟用。比如你貌“看看频果最近表現如何」, 它需要理解:

  • 「表现;可能指股价,也可能指财務

最近;是多長時間?

  • 暴要混用哪些具的API?

路由屠用另一個LLM来做这件事,把自然語言翻成具經的工具据用: 11路由量工作流程 func: async (input) => {

111.用LLH理解用户意黑

consl { response } = await callLlm(input.query. { tools: ALL_FINANCE_TOOLS, { /12.提取工具属用 const toolcalls = response.tool_calls; /13,签行执行(多图工具可以同時跑) const results = aivalt Promise.all( LoolCalls.map(tc => FINANCE_TooL_MAP.get(tc-nane) invoke(tcargs)) } ;

4.合饼解果

return combineResults{results);

金融工具群解 Dexter显大的值在於它集成了警富的金融数抽工具。這些工具都是封Financial Datasets API 的封装,AI 能钩像分析師一楼查敏撼。 工具全景圆 get_flings 其他数據 get_news 金徽工具 情格数 get_prices 财瘤辐表 get_income_statements

價格数據工具 get_price_snapshot·取最新格 用示例 get_price_snapshot(( ticker: AAPL }) //返回数城 'price": 178.52, 'se'z inafuryp. "change_percent': 1.33. '000Pezs i.amlax.

  • volure": 52340000,

"open": 176.80, "high": 179.12,

  • lp": 176.28

get_prices-史格数據 胡用示例 get pricest{ ticker: "AAPL*, start_date: 2024-01-01", interval: “day }) 返回数據 {"date": "2024-01-B2", "open': 182.5. "high*: 185.8, "low': 181.2.

财務報表工具 get_income_statements-利潮表 /调用示例 get_income_statenents ({ ticker: "AAPL*, period: "annual*, //annual/quarterly/ ttn Linit: 5 >) 返四数媒(5年年度利强表) "fiscal_date":"2023-09-30", "revenue': 383285668999. "cost_of_revenue": 214137886e, "gross_profit*: 169148000000, "net_incone': 96958aa099, 座史数據

get_balance_sheets·资至負债表get_cash_flow_statements·現金流量 表get_all_financial_statements·一次性孩取三張报表(效率更高) 估值指標工具 get_key_ratios_snapshot-最新估值指棵 //期用示例 get_key_ratias_snapshot(( ticker: *APL= }) /返四数球 "narket_cap': 28066e8899000,

  • pb_ratia*: 45.2,

  • dividend_yield*: .5,

  • eps": 6.16.

  • revenue_per _share": 24.5.

"enterprisc_value': 275900088800 get_key_ratios·愿史估值指标(用於超分析) SEC文件工具 get_filings-取 SEC文件元数據 旗用示例 get_filings({ ticker: "AAPL*, filing_type: *16-Ka, // 10-K / 10-Q / 8-K Linit: 5 }) 返回数策

"filing_type*: "1B-K", '.20-TI-Ezaz. .04ep Bu1T. "report_date': *2023-09-30′,

  • --/Ao6*=s*//:sd.m

get_10K_riling_itens-取 10·K的具错益前 1/调用示例 get_10K_tiling_itens ({ ticker: "AAPL*, accession_unbcr: "6e89320193 23-e68188",

  • .-.-

// Item-1: Business // Item-1A: Risk Factors // Item-7: HD6A }) //返四数城 "Iten-1": "Apple Inc. designs, manufactures..., "Item-iA": "The Conpany's business 1s subject to... .+suotieuedo ja sinnsay. iat-ua11. get_1oQ_filing_itens-学轻童前 get_8K_filing_itens-重大事件公告 其他工具 get_news·公司新Mget_insider_trades·内部交易(高管買賣記 公司折get_insider_trades get_news 条)get_analyst_estimates-分析预期和目标借get_segmented_revenues 分收入 如何使用Dexter 安装 1,克隆事案 git clone https://github.com/virattt/dexter-git cd dexter

2.安额做難(需曼Bun)

11e15ut unq 配置增要量 #3. cp env.example -env 书编帽,cnV,填入API密编 通行 放触交互模式 bun start 登模式(白触重截) Aap unq 支持的模型 Dexter支持多烟LLM 提供商,通遇模型名耦前领自動罐别: 示例模型 提供商 claude-3.5-sonnet Anthropic claude- Google gem1n1-2.5-f1ash gen1n1 - grok-beta grok- XAI ollama: 本地 ollama: 1lama3 OpenA1 無前额 gpt -40 () 使用示例 效励後,直接输入問题 >须果最新的财极怎磨样? 對比—下特斯拉和比亞进的估信 分析英律達的投资價值,用DCF方法 查一下最近有哪些科技公司在回股票 技能系统 Dexter支持自定技能,比如内置的DCF估值技能: nane: dcf-valuation description: DCF 估值分析 ## DCF Valuation Skill []Step 1: Gathcr financial data

  • [1 Step 2: Calculate FCF growth rate

  • [1 Step 3: Estinate WACC

[] 5tep 4: Projcct futurc cash flows

  • [] Step 5: Calculate present value

你可以添加自己的技能到 /.dexter/skills/目,Dexter 自勐現亚加板。 技能系統:把專家知識寫成文檔 遍個設計我置得显巧妙。有些任(比如DCF估值)有一套固定流程,如果把流程硬缩碼 进代碼理售很死板。 Dexter 的做法是:把流程寡成 Markdown 文件,LLM 可以直接懂亚行。

效果:你想加一個新的分析模型,只需要窝個Markdown文件,不需要改代码 技能目结横:

  • /-dexter/skills/

— dcf-valuation/

  • SKILL .nd

/ssfjeue-ad 5KILL.nd your-skitl/ 5KILL .nd

CLI界面:用React寫終端 这個也提有意思的。它用的是Ink(React for CLI),不是俩統的chalk/ora。 yfeld 事件流 tosl.proyres thirkng toe_start tool_end

除入框 答家属示

  • ETviaje

事件题助的状感管理: //Hook訂愿代理事件 const handleEvent = (event) => { switch (event.type) { case 'thinking': break; 1,1je1s 100ol. 0s03 case 'tool_start': setWorkingState({ status:tool', toolNane: event.tool ); break; case 'tool progress': 1 0 updateProgress(event ,message); 11置時更新造座 break; :,auop. ases setAnswer(event answer); break; :{ 代理流式输出事件 for awalt (const event of agent.run(query)) { handleEvent [event ) : } 好處:

  • 组件化组UI,代碼清晰

  • 事件翻動,代理不關心UI怎磨渲染

  • 實時顯示进度,體验更好

多模型支持與成本侵化 Dexer 支持多個LLM提供商,遗做了一些成本化。 支持的提供商 11通通前级白動遮择提供商 "claude-': ChatAnthropic, "genini-': ChatGoogleGenerativeAI. "grok-':ChatopenAI, // XAI API openrouter:': ChatopenAI, // OpenRouter "ewelnoseus : 1eue1lo. Anthropic提示缓存 11敬用系统提示弱级存 function buildAnthropicMessages (systenPrompt, userPrompt) ( return [ new SystemMessage({ content: [{ type: 'text", text: systenPrompt, cache_control: { type: ‘ephemeral'}//照键 1 new HumanMessage(userPrompt) 1: } 效果:系统提示词缓存後,输入成本降低约99% 快速模型分流 const FAST MODELS = { openai: *gpt-4o-mini', anthropic: 'claude-haiku-4-5′ google:“gemini-2.5-flash', 轻量级任移(如摘要)自動使用快速模型,前省成本。 能用在哪? 这固專案雅然是做金融的,但它的架精模式其實挺通用的: 财報解慎 股票分析 病歷分析 珍建謢 金融 估值建模 物查詢 Dexter架辑 故障排查 運维 监控告警 法规检索 法律 日查詢 台同密查 别例分析号

實用俱值: 到於想學習AIAgent開發的開發者,这個專案是一因很好的参考。代碼質量不猫,结橘清 晰,容易改。而且它的金融工具封装也可以直接用在其他项目理。 如果你想自已勤手改改看,可以: L.换成其他数源(比如你自己爬的数)

2.加一些自定裁技能(比如技術分析指標)

3.换成 Web UI(Ink 可以换成 React)

1.做成不同的领域(醫痕、法律、罩商)

專案地址:https://github.com/virattt/dexter 技術: Bun + TypeScript + LangChain + Ink + Financial Datasets API 所需API:

  • OpenAI API(或其他 LLM)

  • Financial Datasets API(金融数)

  • Exa API(可逻,網絡搜索)

原始排版图

原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。 遇見 Dexter:當 AI 學會自己查財報:微信公众号导出原始排版图(第 1 段,共 2 段) 遇見 Dexter:當 AI 學會自己查財報:微信公众号导出原始排版图(第 2 段,共 2 段)