<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>人工智能 |</title><link>https://clementgodbarge.com/zh/tag/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/</link><atom:link href="https://clementgodbarge.com/zh/tag/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/index.xml" rel="self" type="application/rss+xml"/><description>人工智能</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-cn</language><lastBuildDate>Sun, 06 Sep 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>人工智能</title><link>https://clementgodbarge.com/zh/tag/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/</link></image><item><title>篱笆，不是火堆</title><link>https://clementgodbarge.com/zh/post/fence-not-fire/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/zh/post/fence-not-fire/</guid><description>&lt;p&gt;在北拉斯维加斯的一座仓库里，亚马逊开着一台机器，专门切掉二手书的书脊。散页过一遍扫描仪，纸张便送去打浆。
把这桩事比作当代焚书，套话一个不落：影射萨伏那洛拉，配上几张看似珍本的图库照片，当然还少不了柏林的焚书堆。不出所料，大报们口气冷静些，却把同一个类比悬在半空，没有收回。这些文章义愤填膺，可字里行间，人工智能产业竟被轻轻放过，放得出奇。谁来掌控正在被扫描的知识？这个问题得先等一等——我们先把焚书这套胡话清扫干净。&lt;/p&gt;
&lt;h2 id="扫描仪不是火刑堆"&gt;扫描仪不是火刑堆&lt;/h2&gt;
&lt;p&gt;销毁一个实体本，并不能凭这一点就让破坏性扫描成为萨伏那洛拉的篝火或纳粹焚书的当代翻版。那些行为的意义，来自被谴责的对象和谴责的缘由。可怜的修士萨伏那洛拉，一有焚书争议就被拖出来示众；他号召人们焚烧自己的一部分财物，作为公开的忏悔。纳粹的火堆上演的是另一种否弃：当众焚书，宣告这些作者在德国文化生活中没有立足之地。两者的销毁都是表演。破坏性扫描则是数字化中常用的手段，用意截然不同：牺牲书本，是为了保住内容。书毁了，文本却脱离了纸张。谁要是想搬出《华氏451度》，不妨想想：布拉德伯里笔下的消防员，可没打算把文本留到以后用。&lt;/p&gt;
&lt;p&gt;
把“珍本”写进标题，火上浇油，其他媒体也照抄不误。然而，它自己的调查里引述的一位书商就说，这些大宗订单
——也就是说，主要是1970年前后ISBN问世以来出版的版本。这是后备箱旧货摊和慈善商店里的货色，往往一次大扫除就进了垃圾场。在宣告文化浩劫之前，不妨先查查图书馆目录：法定送存图书馆的存在，正是为了保存这类出版物。诚然，有ISBN不等于必有送存本存世；可二手市场上难寻，也不能证明一个文本就此消失。&lt;/p&gt;
&lt;p&gt;打浆毁掉的是实体本，连同上面的题赠和页边批注。批注或流传经历具有历史价值的本子，理应先行识别、妥为保存，最好赶在流入二手市场之前。绝版书的实体本日渐稀少，我们也大可为此担忧。但既然担忧，就该同时问一句：权利人为何既不重印，又不授权读者查阅现有的数字复制件？学者们对这种憋屈再熟悉不过：Google图书替你找到了要的那段话，然后只给你看一小片，而这本书既买不到新的，也无法在线阅读。这里有值得争论的损失。但它们并不能把扫描仪变成纳粹的火堆。&lt;/p&gt;
&lt;p&gt;再说，图书业早就把化浆当作日常。单在法国，
，约占退还经销商的滞销书吨数的60%。这叫库存管理。滞销的多余本子和稀缺的二手书，各自引出的是不同的获取问题；但销毁纸张本身，算不上审查，也算不上暴政。&lt;/p&gt;
&lt;h2 id="书越多人工智能越好"&gt;书越多，人工智能越好？&lt;/h2&gt;
&lt;p&gt;人工智能公司买书、扫书，其实是好消息。一种常因对人类文化理解肤浅而挨批的技术，正在多吸收一些文化——照理说，学者本该乐见其成。&lt;/p&gt;
&lt;p&gt;一种语言积累下来的记录，网络远远替代不了。一种语言有据可查的生命——从小说、回忆录到流行歌曲、对话记录——很大一部分从未从纸面走上网络。这些书中，不少已经比出版它们的出版社活得更长。把它们纳入训练数据，在别无他物可用的地方最为紧要。英语多几本书，也许只带来些微改善；而在一种资料稀少的语言里，这些书可能决定一个系统是可用还是废物。这些工具该不该进入我们的公共服务和日常生活，是一个留给公共讨论的问题。但无论我们决定在哪里用它们，都应当能用自己的语言来用。&lt;/p&gt;
&lt;p&gt;西班牙和荷兰报道的订单，让语言上的利害有了具体的样子。五月，
报道，巴达洛纳的一位书商反复接到订单，要的主要是加泰罗尼亚语的非虚构书：史书、技术手册、旧会议论文集。到了八月，荷兰媒体报道，有人向De Slegte书店求购
。这些书的语言，至少值得与它们书脊的命运同等的关注。对《每日邮报》，这或许要求过高；可就连较为持重的报纸，对所涉语言也几乎无话可说。&lt;/p&gt;
&lt;p&gt;与大出版商签许可协议，同样能提供有价值的材料，但它们的数字书目只覆盖印刷品中的一小部分。从未数字化的书，或出版商已不再持有版权的书，都不在供给之列。再慷慨的许可协议，也顶替不了出版史，更顶替不了一种文化的历史。收购二手书，正是绕过这些商业边界的一条路。&lt;/p&gt;
&lt;h2 id="盗窃不是论证"&gt;“盗窃”不是论证&lt;/h2&gt;
&lt;p&gt;把这叫作“盗窃”，同样无济于事。2025年6月，美国两家地区法院在各自审理的案件中裁定，用图书训练语言模型属于合理使用。在
中，法院强调训练的转换性：这些书被用来构建一个能产生新表达的系统。模型固然会记住段落，但用一本书训练，并不等于整本书随时可以按需调取。反过来，没有逐字复制，也不足以打消一切异议。在
中，法官警告说，人工智能生成的作品可能淹没市场，此类损害若有证据，或可击破合理使用的抗辩；只是这些原告没能拿出有分量的证据，证明自己的作品受到了这种损害。两项裁决都没有给人工智能公司开出无限制的许可，也没有了结伦理之争。它们要求我们分清三件事：书是怎么获取的，复制件是怎么保存的，训练又拿它们做了什么。一句“盗窃”，把这些问题全搁下了。&lt;/p&gt;
&lt;p&gt;顺带一提，Anthropic案的裁决恰恰为裁切机提供了理由。法院认可对购得本子的数字化，却否决了在永久馆藏中囤积盗版书的做法——为此，该公司后来
。数字化之所以过关，一部分原因正是每一本纸质书都在转换中销毁：数字副本取而代之，且不曾外传。让某些人如此不安的销毁，反倒帮Anthropic坐实了其数字化项目属于合理使用。在那个案子里，买、扫、弃，提供了一条合法路径。裁切机在这里是合规的工具。买书能解决获取问题，却不能凭此授予任何人分享所得语料库的权利。&lt;/p&gt;
&lt;p&gt;希望人工智能汲取更多语言、更多学术、更多互联网之前的世界，有充分的理由。这些理由不会因为一家我们不喜欢的公司从中看到了商机就烟消云散。&lt;/p&gt;
&lt;h2 id="借来的义愤"&gt;借来的义愤&lt;/h2&gt;
&lt;p&gt;那么，回到《每日邮报》。它这篇文章隶属于
运动——报业老板与出版商联手发起，目的是为人工智能建立
。两个顺手的偷换在起作用：大科技公司顶替了人工智能，权利人顶替了英国的创造力。读者受邀捍卫文化，而出版商正在谈判出售文化的价码。转发这则报道的学者不妨自问：自己的义愤在替谁效劳？&lt;/p&gt;
&lt;p&gt;大科技公司与
争的是租金，却没有谁反对篱笆。“孤身作者被科技巨头掠夺”的故事，遮住了昂贵许可协议给两大企业阵营各自带来的好处：出版商拿到钱，大科技公司得到一个小对手付不起入场费的市场。彼得·蒂尔把硅谷的偏好说得更露骨：
。&lt;/p&gt;
&lt;p&gt;许可制度未必非得走到这一步。价格可承受、非排他的访问，本可以帮到小开发者。但一个逼着每个新进入者都去和大权利人谈昂贵协议的制度，把购买力变成了入场条件。一笔被包装成对文化产业让步的付款，最终买到的是对未来对手的防护。&lt;/p&gt;
&lt;h2 id="人工智能不属于大科技公司"&gt;人工智能不属于大科技公司&lt;/h2&gt;
&lt;p&gt;还有一层更深的问题。太多对人工智能的批评，把最大的几家商业供应商当成了整个领域。产品霸占头条，这些公司之外的研究与开发便从视野里消失。对大科技公司来说，再没有比这更称心的误解了：它们独占这一领域的野心，成了批评它们的前提。垄断尚未坐实；把它当作既成事实，等于帮了这些公司一个大忙。&lt;/p&gt;
&lt;p&gt;开源人工智能让人们能够构建和改造系统，使之容纳更多样的语言、文化和表达方式。对欧洲、非洲、拉丁美洲各国，以及韩国、日本和印度而言，这是技术与文化主权的现实根基：自己决定系统如何运作、服务哪些语言、用在何处。用不用人工智能、用来做什么，应当始终是公共的选择，而不是被对外国供应商的依赖所左右。&lt;/p&gt;
&lt;p&gt;但若没有修改系统的手段，修改的自由便无从谈起。独立的工作需要专业知识、算力基础设施，以及训练材料的获取渠道。这就又回到了书。如果每个研究团队、每家公共机构都得自己去谈出版协议，或者自建私人书库，那么独立仍旧只是付得起钱的人的特权。&lt;/p&gt;
&lt;h2 id="书早就在那里"&gt;书早就在那里&lt;/h2&gt;
&lt;p&gt;图书馆和档案馆几代人下来，一直在收集这些系统所需的材料。它们的馆藏之所以存在，是因为知识的获取理应比销售知识的商业利益更长久。许多书早已扫描完毕：
收藏了来自研究图书馆的约一千九百万册数字化图书，其中不少仍在版权期内。图书馆扫一本书，书还留着——那里没人需要裁切机。HathiTrust将于
，但也宣布了
项目，为非商业性的人工智能研发提供语料库访问。以这样的条件开放，仍会把一些独立开发者挡在门外。&lt;/p&gt;
&lt;p&gt;然而，拥有这些书，并不赋予图书馆把受版权保护的内容当作训练语料库分发的权利。
允许研究机构和图书馆为科学研究挖掘可合法访问的作品，在权利人未保留权利的情况下，还允许更广泛的挖掘。
：其挖掘例外仅限非商业研究，并限制复制件的转移。两个框架都没有赋予图书馆一项一般性的权利，让它们把受版权保护的馆藏分享出去供他人再利用。&lt;/p&gt;
&lt;p&gt;我们也不妨重新考虑，权利人对图书的计算性使用应当掌控多久。药品专利提供了一个参照：通常二十年的期限，远短于版权对作者终身加身后七十年的保护。书籍能否在首次出版（比方说）二十年后，无需许可费即可用于文本与数据挖掘，而再版与销售的权利依旧受到保护？保护作者卖书的权利，不必等于世世代代管住其内容的每一种用途。&lt;/p&gt;
&lt;p&gt;两年前我在
上主张，文化遗产数据应视为公共品。政府应资助图书馆和档案馆对馆藏进行数字化、转录和著录，并赋予它们法律权限，让由此产生的语料库可供他人再利用。大科技公司可以通过一项专项征费分担开销。&lt;/p&gt;
&lt;p&gt;公共资助应当附带公开的馆藏政策和访问规则，涵盖学术和商业用途，不设排他协议，也不给捐资者特权。开放训练访问，不必意味着不受限制地再分发受版权保护的书。作者应当参与设计这套公共方案，包括它如何处理同意、报酬，以及与作者作品的竞争。用户免费访问，并不排斥由公共资金向作者支付报酬。
——读者借阅时由公共资金向作者付费——就是一个先例。火从来不是重点。篱笆才是。&lt;/p&gt;</description></item><item><title>致各位编辑：要我的声音，先还我的语言</title><link>https://clementgodbarge.com/zh/post/dear-editors/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/zh/post/dear-editors/</guid><description>&lt;p&gt;又是一天，又一家期刊敲锣打鼓地宣布人工智能政策。这回轮到《人文地理学进展》（&lt;em&gt;Progress in Human Geography&lt;/em&gt;）：编辑部发表了
，警告说，拿人工智能来代替自己的阅读、思考和写作，“是一种近乎剽窃的学术伦理违规”。查出违规的论文“可能被撤稿”；从轻发落，也要更正，并在期刊上刊登更正启事。编辑们还补上一句：作者应当“仔细掂量，是否愿意让自己的名字与撤稿和更正启事挂钩”。&lt;/p&gt;
&lt;p&gt;这句话值得停下来玩味。撤稿是学术出版的极刑，向来只留给造假与舞弊。可在这里，它被绑在一桩连这篇社论自己都定义不了的过错上。编辑们承认，此事“确有灰色地带”，“没有清晰的界线可以划出‘不负责任’的区域”。执行只能仰仗“判断，而这些判断可能惹恼某些作者，他们会声称自己并未不当使用人工智能”——换句话说，作者本人的声明也可以被推翻。接下来的忠告是，请“稳稳待在‘负责任’的区域内”；须知，只有险地才需要劝人稳妥。你自己承认划不出那条线，却要惩罚越线的人——这只有一种情况说得通：意在以恐惧治人。这一点先按下不表，稍后再说。&lt;/p&gt;
&lt;h2 id="声音这个借口"&gt;声音这个借口&lt;/h2&gt;
&lt;p&gt;那么，什么才算负责任的使用？作者被告知：“必须格外小心……保留自己的声音”。而滥用，则是借人工智能“以作者本人平素绝不会使用的语言写作”。对母语者，这话说得通：别装成你不是的那个人。可对那些不得不用外语写作的外国人来说，这道训令自己就打了自己的嘴。政策要保护的那个声音，恰恰是期刊自家规矩不肯给我们的东西。&lt;/p&gt;
&lt;p&gt;拿我来做试验品好了。英语是我的第四语言，正是那种我“平素”绝不会用的语言。英语世界的大学把我训练成这样写英文：短句，路标分明，近乎机械——主题句打头，限定语放在规定的位置，衔接词从规定的清单里挑。训练很成功：我的英文里从来就没有什么声音可保护；声音是第一个被舍弃的东西。按编辑们自己的定义，我用英语写下的每一个字都属于不当使用——有没有机器，都一样。&lt;/p&gt;
&lt;h2 id="进退维谷"&gt;进退维谷&lt;/h2&gt;
&lt;p&gt;编辑们说，他们想到我们了：政策承认，非母语者可以受益于人工智能对英文的检查，甚至受益于它的“翻译、写作和编辑服务”。然而，人工智能对写作的介入“至多只能是编辑与校对性质的协助”，绝不能出现“大段由人工智能撰写的文字”。一篇机器翻译的论文，从头一个词到末一个词都是人工智能写的，通篇全是这样的“大段文字”。于是，这项让步唯有在“翻译不算写作”的前提下才能成立。那么，这条线划在哪里？他们早就告诉我们了：“没有清晰的界线”。&lt;/p&gt;
&lt;p&gt;更糟的还在后头：这种怀疑不只是无法证伪，它还带着偏见。2023年，斯坦福的一个团队拿七种常用的人工智能检测器去测人写的作文：非母语者写的托福作文，平均有61%被判为机器生成，而母语者的作文几乎无一误判；有一种检测器甚至把托福作文的97.8%都标了出来（
）。原因颇能说明问题。检测器量的是可预测性，而朝着均值训练出来的二语英文，天生就是可预测的：最可能的词，按最可能的顺序排列。同一项研究在真正的学术写作中也找到了这个信号：非母语第一作者的会议论文，语言变异性更低。那些读起来“像人工智能”的文体特征，正是合格二语英文的特征；而人做判断时，看的线索与机器无异。至此，两难合拢：写我自己的英文，就像机器；用机器，就犯了他们的规矩。&lt;/p&gt;
&lt;h2 id="语言税"&gt;语言税&lt;/h2&gt;
&lt;p&gt;若无威胁相随，这个悖论本可以无伤大雅。可这些威胁暴露出一个更深、更老的问题，而政策对它只字不提：单语主义。
一面要求“尽可能广泛的国际覆盖”，一面在同一页上写着“本刊语言为英语”。&lt;/p&gt;
&lt;p&gt;这种安排的代价并非凭空假设。Amano及其同事调查了908位环境科学家，发现仅仅因为语言，非英语母语者写一篇论文要多花至多51%的时间，被拒的几率是母语者的2.5倍，被要求修改的几率是12.5倍（
）。这笔税，早在任何人工智能政策出台之前就已开征；声明表及其威胁，不过是在税上再加一道稽查。&lt;/p&gt;
&lt;h2 id="fin-dempire"&gt;Fin d’empire&lt;/h2&gt;
&lt;p&gt;单语主义是无人讨论的公理。它是一份帝国遗产，日久天长，又找到了一个实用的理由：翻译又慢又贵，而没有哪个编委会评审得了自己读不懂的东西。可是这套理由在机器翻译的进展面前已经站不住了。当今最先进的机器翻译，完全可以充当作者与编辑之间一道可靠的中间层。&lt;/p&gt;
&lt;p&gt;理想的出路在人：学者本该读得懂不止一种语言。可英语国家的大学偏偏反其道而行，宁愿关闭现代语言学院。请注意，这种关闭是英美独有的现象：别处的学者从来没享受过单语的奢侈。再请注意时机。关掉一所语言学院，等于押下一注：赌英语已经永远赢了，赌今后再不会有值得一读的东西以别的语言写成。这注偏偏押在最不该押的时刻，而且错了两重。其一，机器翻译正让人类第一次有可能彻底不靠通用语；其二，把英语推上默认位置的那个秩序正在退潮：英语世界日益内向，全球化消退，自由贸易在它的发源地遭到质疑，一个多极世界正在成形，其中值得阅读的语言只会越来越多。大学正在培养只读英语的学者，去面对一个英语不再够用的世界。这份损失，编委会将首先继承。&lt;/p&gt;
&lt;h2 id="给编辑们出一道题"&gt;给编辑们出一道题&lt;/h2&gt;
&lt;p&gt;当编委会哀叹读不到作者本人的声音时，问题恐怕有一部分就出在编委会自己身上。&lt;/p&gt;
&lt;p&gt;这是一项严重的指控，所以配一道严肃的测试。《人文地理学进展》愿不愿意评审一篇用法语、意大利语或日语写成、附机器翻译英文版的投稿？期刊自家的指南已经承认了让这件事成为可能的“翻译”服务。答“愿意”，问题就此了结。答“不愿意”，则说明了这项政策究竟在保护什么。&lt;/p&gt;
&lt;p&gt;无论怎样，选择权在编辑手里。如果声音真像他们说的那么要紧，期刊就该接受用作者思考时所用的语言写成的论文。如果不要紧，那么声明表就该废掉，威胁也一并废掉。&lt;/p&gt;</description></item><item><title>tei-mcp v0.3：编码TEI，不动源文本一字</title><link>https://clementgodbarge.com/zh/post/tei-mcp-span-locked/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/zh/post/tei-mcp-span-locked/</guid><description>&lt;p&gt;我
时，目标是阻止AI助手幻觉出TEI标记。模式锚定解决了一部分问题：有了对P5规范的直接、基于工具的访问，模型不必再猜一个元素是什么意思、能带哪些属性。输出能通过验证。&lt;/p&gt;
&lt;p&gt;但在TEI编码里，幻觉有两副面孔，模式只抓得住一副。依规范验证，只能告诉您&lt;em&gt;标记&lt;/em&gt;是否合式；至于标记包裹的&lt;em&gt;文本&lt;/em&gt;，它一言不发。而破坏性更大的幻觉，恰恰就藏在文本本身里。v0.3的头号新功能——区间锁定合成（span-locked composition）——正是专为防范这类幻觉而设计的。&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;目录&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#模式抓不住的幻觉"&gt;模式抓不住的幻觉&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#区间锁定合成"&gt;区间锁定合成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#它是什么不是什么"&gt;它是什么，不是什么&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#为什么意义不止于tei"&gt;为什么意义不止于TEI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#获取更新"&gt;获取更新&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="模式抓不住的幻觉"&gt;模式抓不住的幻觉&lt;/h2&gt;
&lt;p&gt;让模型编码一封十六世纪的法文信，您往往会拿到一份看上去无可挑剔的TEI文档：头部填得满满当当，&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt;标签放得恰到好处，&lt;code&gt;&amp;lt;dateline&amp;gt;&lt;/code&gt;合式规整。用&lt;code&gt;validate_document&lt;/code&gt;跑一遍，通过。&lt;/p&gt;
&lt;p&gt;然后拿正文和源文本比一比。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mesme&lt;/code&gt;变成了&lt;code&gt;même&lt;/code&gt;。一个逗号挪了窝。&lt;code&gt;luy&lt;/code&gt;被悄悄现代化成了&lt;code&gt;lui&lt;/code&gt;。手稿里一处难以辨认的分句，被“修正”成了更通顺的样子。这些改动没有一处是您要求的，也没有一处被标出来。文档在模式上有效，却错得悄无声息。&lt;/p&gt;
&lt;p&gt;对档案工作流来说——编码后的文本将成为永久记录，下游的读者、检索索引和引用都要倚赖它——这才是最要命的失效方式。标签格式不对，不过是烦人；一处五年没人发现的现代化拼写，就是讹误。&lt;/p&gt;
&lt;h2 id="区间锁定合成"&gt;区间锁定合成&lt;/h2&gt;
&lt;p&gt;新版本（v0.3）带来了一套直指这一失效方式的幻觉防范机制。设计目标是让正文幻觉从构造上就不可能发生，而不只是不大可能。&lt;/p&gt;
&lt;p&gt;思路很简单：&lt;strong&gt;模型从不键入正文&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;取而代之的工作流是这样的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;模型调用&lt;code&gt;get_source(&amp;quot;letter_001&amp;quot;)&lt;/code&gt;，取得源纯文本，一个不可变的字符串。&lt;/li&gt;
&lt;li&gt;每想施加一个标签，它就调用&lt;code&gt;tag_span(&amp;quot;letter_001&amp;quot;, start, end, element_path, attrs)&lt;/code&gt;——在源文本的某个字符区间上登记一个TEI元素。&lt;/li&gt;
&lt;li&gt;完事后，它调用&lt;code&gt;compose(&amp;quot;letter_001&amp;quot;)&lt;/code&gt;。服务器把登记的标签与原始纯文本交织起来，渲染出最终的TEI，再&lt;em&gt;逐字节&lt;/em&gt;核验：渲染文档的扁平文本内容必须与源文本相等。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;字节相符，文档就返回。若不相符——哪怕模型的标签只是隐含了一个与源文本差一个字符的正文——&lt;code&gt;compose()&lt;/code&gt;便抛出异常，绝不返回一份已经走样的文档。&lt;/p&gt;
&lt;p&gt;在这条工作流里，不存在任何一条路径能让模型产出正文与源文本不同的TEI文档。这个不变量是机械的，不是行为的。您不必信任模型不会幻觉，只需信任两个字节串之间的一次&lt;code&gt;==&lt;/code&gt;比较。&lt;/p&gt;
&lt;h2 id="它是什么不是什么"&gt;它是什么，不是什么&lt;/h2&gt;
&lt;p&gt;区间锁定合成是对模式锚定的&lt;strong&gt;补充&lt;/strong&gt;，不是替代。模式锚定工具（&lt;code&gt;validate_document&lt;/code&gt;、&lt;code&gt;lookup_element&lt;/code&gt;、&lt;code&gt;valid_children&lt;/code&gt;，以及最初十六个工具中的其余部分）帮模型产出&lt;em&gt;有效&lt;/em&gt;的TEI；区间锁定合成则保证TEI里的正文&lt;em&gt;忠于&lt;/em&gt;源文本。一条可以投入使用的编码工作流必须同时满足这两个维度，如今两者由同一个服务器一并覆盖。&lt;/p&gt;
&lt;p&gt;它也不是包治百病的灵丹。&lt;code&gt;compose()&lt;/code&gt;还不会检查登记的标签是否为已加载的ODD定制所允许——这是后续工作。登记的标签存在进程内存里，重启即失。源文件也必须能从服务器运行的地方读到。这些都有办法解决，没有一项动摇核心不变量。&lt;/p&gt;
&lt;h2 id="为什么意义不止于tei"&gt;为什么意义不止于TEI&lt;/h2&gt;
&lt;p&gt;这个模式可以推而广之。凡是让模型去注释、转换或包裹一段文本，而底层文本的完整性又比模型“改进”它的本事更要紧，同样形态的解法都适用：别让模型重打一遍文本；让它在文本之上生成指令，再由一个确定性的合成器在相等性不变量的约束下执行。&lt;/p&gt;
&lt;p&gt;具体到数字版本，这改变了您可以放心交给模型去做的事。编码忽然成了一项可以委托的任务，不必再手动把每份输出与源文本逐一比对。机器走枯燥的那条路；校勘者审的是标记，不是拼写。&lt;/p&gt;
&lt;h2 id="获取更新"&gt;获取更新&lt;/h2&gt;
&lt;p&gt;已经装了tei-mcp的话：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者全新安装：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;要使用区间锁定合成，请把服务器指向存放源纯文本文件的目录：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TEI_MCP_SPAN_SOURCE_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/sources
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;每个文件的主名即为其文档ID（&lt;code&gt;letter_001.txt&lt;/code&gt; →
&lt;code&gt;letter_001&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;源代码、完整文档以及该不变量的设计说明：
&lt;/p&gt;</description></item><item><title>tei-mcp</title><link>https://clementgodbarge.com/zh/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/zh/code/tei-mcp/</guid><description>&lt;h2 id="tei-mcp给ai智能体用的tei-p5"&gt;tei-mcp：给AI智能体用的TEI P5&lt;/h2&gt;
&lt;p&gt;tei-mcp是一个开源
服务器，让AI编程助手直接访问
规范。AI不必再倚赖记忆中的训练数据——那往往产出貌似合理、实则错误的标记——而可以实时查询规范。&lt;/p&gt;
&lt;h2 id="功能"&gt;功能&lt;/h2&gt;
&lt;p&gt;服务器解析TEI P5的ODD，提供16个工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;按名称&lt;strong&gt;查询&lt;/strong&gt;任何元素、类、宏或模块，不区分大小写，拼错了还会给出建议&lt;/li&gt;
&lt;li&gt;沿完整的TEI类层次&lt;strong&gt;解析属性&lt;/strong&gt;（本地＋继承）&lt;/li&gt;
&lt;li&gt;把&lt;strong&gt;内容模型展开&lt;/strong&gt;成结构化的树，并解析类与宏&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;验证嵌套&lt;/strong&gt;——直接的父子关系，或带路径追踪的递归可达性&lt;/li&gt;
&lt;li&gt;依据TEI P5&lt;strong&gt;验证文档&lt;/strong&gt;：内容模型、属性、封闭取值列表、引用完整性、弃用警告&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;验证单个元素&lt;/strong&gt;，适用于增量编辑的工作流&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;加载ODD定制&lt;/strong&gt;，把模式约束到项目特定的子集&lt;/li&gt;
&lt;li&gt;用正则表达式在所有实体类型中&lt;strong&gt;搜索&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装"&gt;安装&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或直接运行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="用法"&gt;用法&lt;/h2&gt;
&lt;p&gt;加入任何兼容MCP的客户端（Claude、Cursor、Windsurf等）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;源代码与文档见
。&lt;/p&gt;</description></item><item><title>tei-mcp：给AI智能体用的TEI P5</title><link>https://clementgodbarge.com/zh/post/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/zh/post/tei-mcp/</guid><description>&lt;p&gt;如果您用AI编程助手写过TEI XML，大概已经领教过它的错误：元素放错地方，属性凭空捏造，嵌套规则视若无睹。模型对TEI长什么样有个大概印象，对规范本身却没有可靠的知识。&lt;/p&gt;
&lt;p&gt;tei-mcp的解法，是让AI智能体通过工具直接访问TEI P5指南。&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;目录&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcp是什么"&gt;MCP是什么？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tei-mcp做什么"&gt;tei-mcp做什么&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#为什么要紧"&gt;为什么要紧&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#上手"&gt;上手&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="mcp是什么"&gt;MCP是什么？&lt;/h2&gt;
&lt;p&gt;
（Model Context Protocol，MCP）是一项开放标准，让AI应用能接上外部数据源和工具。不妨把它看作AI的USB接口：一套协议，任何兼容的客户端——Claude、Cursor、Windsurf等等——都能借此接入专门的服务。&lt;/p&gt;
&lt;p&gt;MCP服务器对外提供&lt;em&gt;工具&lt;/em&gt;，AI在对话中可以随时调用。模型不必再靠记忆里的训练数据，而可以查询一个实时的、权威的来源。&lt;/p&gt;
&lt;h2 id="tei-mcp做什么"&gt;tei-mcp做什么&lt;/h2&gt;
&lt;p&gt;tei-mcp解析TEI P5的ODD规范，提供16个工具，涵盖校勘者或编码者最常问的问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;这个元素是什么？&lt;/strong&gt; 按名称查询任何元素、类、宏或模块，不区分大小写，拼错了还会给出建议。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;它能带哪些属性？&lt;/strong&gt; 沿完整的类层次解析属性——先列本地属性，再依次列出继承的属性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;它里面能放什么？&lt;/strong&gt; 把内容模型展开成结构化的树，或列出有效子元素的平面清单。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;这个元素能放在这儿吗？&lt;/strong&gt; 检查父子嵌套关系，或在完整的元素层次中追踪可达性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;我的文档有效吗？&lt;/strong&gt; 依据规范验证TEI XML文件：内容模型、属性值、封闭取值列表、引用完整性、弃用警告。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;我的项目模式呢？&lt;/strong&gt; 加载ODD定制文件，把上述一切约束到您项目特定的TEI子集。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="为什么要紧"&gt;为什么要紧&lt;/h2&gt;
&lt;p&gt;TEI编码离不开时时翻查指南。老手把最常见的模式记在心里，可遇到生僻元素或复杂的内容模型，照样得查规范。AI助手没有这种内化的知识，问题更严重：它们会幻觉出看似合理、实则错误的标记。&lt;/p&gt;
&lt;p&gt;有了tei-mcp，AI就不必猜了。写下第一个尖括号之前，它可以先去规范里查答案。结果便是符合TEI P5——或符合您项目ODD定制——的标记。&lt;/p&gt;
&lt;h2 id="上手"&gt;上手&lt;/h2&gt;
&lt;p&gt;从PyPI安装：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后加入您MCP客户端的配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;服务器首次运行时下载TEI规范，可配合任何兼容MCP的客户端使用。&lt;/p&gt;
&lt;p&gt;源代码与完整文档：
&lt;/p&gt;</description></item></channel></rss>