Skill工程:用开放标准重构AI协作范式
1. 项目概述:这不是一次技术迭代,而是一场协作范式的迁移
“从Prompt工程到Skill工程:Agent Skills开放标准彻底改变了AI协作方式”——这个标题里藏着过去三年我亲手带过的17个AI应用落地项目中最痛的转折点。它不是在讲怎么写更漂亮的提示词,也不是在推销某个新API,而是在描述一种 协作关系的重新定义 :当AI不再只是“被提问的工具”,而是能被明确声明能力、可被自动发现、可被安全调用、可被组合编排的“数字同事”时,整个产品设计、系统架构和人机分工逻辑都必须重写。我第一次意识到这点,是在2023年Q4为一家跨境SaaS客户重构客服中台时。当时我们花了三周打磨一套覆盖87种售后场景的Prompt模板,上线后效果不错;但两个月后,客户新增了退货质检环节,需要接入第三方图像识别服务——我们不得不把整套Prompt逻辑推倒重来,因为原系统根本无法“告诉”AI:“你现在要调用一个叫 check_return_image 的技能,输入是base64图片,输出是JSON格式的缺陷坐标和置信度”。这就是Prompt工程的天花板:它把能力藏在文本黑箱里,靠人工记忆、靠文档约定、靠试错调试。而Skill工程的核心,是把能力变成 可声明、可注册、可验证、可路由 的一等公民。它解决的不是“怎么让AI回答得更好”,而是“怎么让AI系统之间、AI与人类之间、AI与传统服务之间,建立起可预测、可审计、可扩展的协作契约”。适合阅读这篇内容的,不是刚学ChatGPT的初学者,而是正在设计AI Agent架构的产品经理、正在搭建智能体中台的后端工程师、正在规划企业级AI集成路线的技术负责人——你们正站在那个必须做出选择的路口:继续在Prompt的迷宫里优化单点体验,还是转向Skill驱动的协作网络。
2. 核心思路拆解:为什么必须放弃“提示即接口”的旧范式?
2.1 Prompt工程的本质局限:它是一门手工艺,不是工程学
很多人没意识到,Prompt工程之所以被称为“工程”,是个美丽的误会。真正的工程学有四个基石: 可复用性、可验证性、可组合性、可演进性 。而Prompt恰恰在这四点上全面失守。我拿自己2022年做的一个典型项目举例:为某银行理财部门开发投教问答Bot。我们最终沉淀了132个Prompt变体,覆盖“净值计算”“风险等级解读”“历史回撤分析”等场景。但这些Prompt无法复用——当客户要求把同样逻辑迁移到APP端时,我们发现移动端Token限制更严,所有Prompt都要重写压缩;无法验证——我们只能靠人工抽检50条问答判断效果,无法自动化测试“当用户问‘如果明天大跌怎么办’时,是否100%触发风险提示技能”;无法组合——想让Bot先查用户持仓,再基于持仓推荐策略,就得把两个Prompt硬拼成一个超长上下文,结果模型经常忽略中间逻辑;更无法演进——当监管新规要求所有话术必须带免责声明时,我们手动改了132个文件,漏掉3个,上线后被合规部叫停。这根本不是工程,这是高级手工艺。它依赖个体经验,抗拒系统化,天然排斥协作。而Skill工程的第一步,就是把“能力”从文本中剥离出来,变成独立、自包含、带契约声明的模块。就像当年Web Service用WSDL定义接口一样,Skill用标准化Schema声明:“我叫 get_user_portfolio ,输入是 user_id: string ,输出是 {assets: [{name, value, risk_level}], total_value: number} ,超时3秒,错误码E404表示用户不存在”。这个声明本身,就完成了从“手艺”到“工程”的跃迁。
2.2 Skill工程的底层逻辑:用契约代替猜测,用注册代替记忆
Skill工程不是给Prompt加个壳,它的核心是建立三层契约体系。第一层是 能力契约(Capability Contract) :明确声明技能能做什么、不能做什么、输入输出格式、性能边界、安全约束。比如 send_email 技能必须声明“不支持HTML附件”“最大收件人5个”“敏感词过滤开关默认开启”。第二层是 执行契约(Execution Contract) :定义技能如何被调用——是HTTP同步请求?还是异步消息队列?认证方式是API Key还是OAuth2?失败后是否自动重试?重试几次?这些不再是团队内部口头约定,而是写死在Skill注册元数据里的强制规则。第三层是 协作契约(Collaboration Contract) :解决多个Skill如何协同。比如 book_flight 技能调用前,必须先由 verify_travel_docs 技能校验护照有效期,这个依赖关系不是靠Prompt里写“请先检查护照”来暗示,而是通过Skill Registry的拓扑图显式声明。我们团队在2024年初落地的Agent中台,就强制所有Skill注册时填写这三类契约字段。结果是什么?产品经理提需求时,不再说“让AI帮用户订机票”,而是说“调用 book_flight_v2 技能,传入 {departure, arrival, date} ,并确保前置校验 verify_travel_docs 已通过”。开发不用猜意图,测试不用看Prompt,运维能直接监控每个Skill的SLA达标率。这种确定性,是Prompt永远给不了的。
2.3 开放标准的价值:打破技能孤岛,构建能力市场
标题里强调“开放标准”,绝非空谈。没有标准,Skill就是新的信息孤岛。我们早期在内部试点时,各团队用不同JSON Schema定义技能,结果A组的 search_knowledge_base 和B组的 query_docs 明明功能相同,却因字段名大小写、嵌套层级、错误码命名不一致,导致无法互通。开放标准解决的正是这个问题——它提供了一套最小公约数:统一的能力ID命名规范(如 com.company.finance.calculate_apr )、统一的输入输出Schema结构(强制包含 input_schema / output_schema / error_codes 字段)、统一的注册发现协议(如基于gRPC的Service Discovery)。我们采用的是OpenSkill Initiative(OSI)v1.2草案,它最大的巧思在于 把技能发现变成了可编程过程 。比如前端想动态渲染一个“智能报销”按钮,不再需要硬编码调用哪个API,而是向Skill Registry发起查询:“给我所有 category=finance 且 tags=[receipt,ocr] 的Skill”,Registry返回匹配列表及实时健康状态。这直接催生了我们内部的“技能市场”:业务方可以像逛应用商店一样浏览、试用、订阅技能;技术团队发布新技能后,自动出现在所有相关业务线的可选列表中。去年Q3,市场部上线新品推广活动,需要生成个性化邮件,他们直接在技能市场搜索 email ,选中 generate_campaign_email_v3 ,配置好模板变量,20分钟完成集成——全程没找一个研发。这才是开放标准带来的真实生产力。
3. 核心细节解析:Skill不是函数,是带身份证的数字员工
3.1 Skill的完整构成:远不止一个API端点
很多工程师第一反应是:“不就是封装个API吗?”大错特错。一个符合开放标准的Skill,是五个物理组件+一个逻辑契约的集合体。第一是 执行引擎(Executor) :真正干活的代码,可以是Python函数、Java微服务、甚至Shell脚本。关键在于它必须遵循标准输入输出格式——我们强制所有Executor接收 {"input": {...}, "context": {...}} ,返回 {"output": {...}, "metadata": {...}} 。第二是 能力声明文件(Capability Manifest) :一个YAML文件,包含技能ID、版本、描述、输入输出Schema(用JSON Schema Draft-07)、支持的认证方式、资源消耗预估(CPU/Mem/IO)。第三是 健康探针(Health Probe) :一个独立HTTP端点,返回 {"status": "healthy", "latency_ms": 42, "last_updated": "2024-06-15T08:23:01Z"} ,供Registry轮询。第四是 沙箱环境(Sandbox) :每个Skill必须能在隔离环境中运行,我们用Docker Compose定义资源限制和网络策略,防止一个技能崩溃拖垮整个Agent。第五是 可观测性埋点(Observability Hooks) :强制注入日志、指标、链路追踪SDK,所有调用必须打标 skill_id 、 version 、 caller_id 。而那个逻辑契约,就是注册到中心Registry时提交的元数据包。举个真实案例:我们为法务部开发的 review_contract_clause 技能,Manifest里明确写了 input_schema 要求 {clause_text: string, jurisdiction: enum[CN, US, SG]} , error_codes 包含 E400_JURISDICTION_UNSUPPORTED 。当业务系统传入 jurisdiction=JP 时,Executor不处理,直接返回标准错误,Registry自动标记该技能对日本法域不可用。这种确定性,让法务同事敢放心把合同初审交给AI——因为他们知道,能力边界是白纸黑字写死的,不是靠Prompt里那句“请专注中国法律”。
3.2 注册与发现机制:让技能自己“找工作”
Skill Registry不是简单的服务目录,它是整个Skill生态的神经中枢。我们采用分层注册设计:第一层是 静态注册 ,由开发者提交Manifest和Executor镜像,Registry校验Schema合法性、签名有效性、健康探针可达性后,生成唯一 skill_id 并存入主库。第二层是 动态注册 ,Executor启动时主动向Registry上报实时状态(负载、延迟、错误率),Registry据此计算SLA得分。第三层是 语义注册 ,允许为Skill添加业务标签( tag: finance , tag: high_risk )和自然语言描述,支持模糊搜索。发现机制则更精妙:我们不提供简单GET /skills ,而是设计了DSL查询语言。比如业务系统想调用“能处理PDF发票的OCR技能”,发请求: POST /skills/discover {query: "category==ocr AND tags contains 'pdf' AND latency_ms < 1000"} 。Registry返回匹配列表,每个结果包含 id 、 version 、 endpoint 、 sla_score 、 last_health_check 。更关键的是,Registry会返回 调用凭证(Invocation Token) :一个短期有效的JWT,内含 caller_id 、 allowed_skills 、 max_calls ,Executor收到请求时先验签,拒绝未授权调用。这解决了最头疼的权限问题——财务系统的 process_payment 技能,绝不允许客服Bot调用。我们曾用这套机制,在2024年春节前紧急上线“红包封面生成”活动:市场部在Registry搜索 image_generation ,选中 create_red_packet_design_v1 ,配置好品牌色和文案,生成Token嵌入H5页面,全程2小时,零代码改动。
3.3 安全与治理:给数字员工发“工牌”和“行为守则”
把AI能力开放成Skill,安全是生死线。我们的治理框架叫“三权分立”: 注册权、调用权、审计权 分离。注册权归属平台团队,只有他们能审核Manifest、批准上线;调用权归属业务方,通过RBAC控制谁能调用哪些Skill——比如HR系统只能调用 get_employee_info ,不能碰 calculate_payroll ;审计权归属安全部门,所有调用必须记录 caller_id 、 skill_id 、 input_hash 、 output_hash 、 timestamp ,存入只读审计库。实操中,我们强制所有Skill Executor在入口处做三件事:1)解析Invocation Token,校验 caller_id 是否在白名单;2)对 input 做哈希,与Token中 input_hash 比对(防篡改);3)调用前检查 max_calls 余量。更狠的是“熔断器”设计:当某个Skill错误率连续5分钟超15%,Registry自动将其 status 设为 degraded ,后续调用将被重定向到降级版本(如返回缓存结果或标准提示语),同时告警给负责人。去年9月, send_sms_alert 技能因运营商接口抖动,错误率飙升,熔断器在47秒内生效,避免了上万条无效短信发送。这背后是严格的契约精神——Skill不是“尽力而为”,而是“按约履行”。我们还给每个Skill配了“数字工牌”:一张嵌入Executor的证书,包含 skill_id 、 issuer (Registry地址)、 valid_from/to 。调用方收到响应时,可验证证书签名,确认没被中间人劫持。这种工业级的安全设计,是Prompt时代想都不敢想的。
4. 实操过程:从零搭建一个可商用的Skill中台
4.1 环境准备与工具链选型:为什么选Kubernetes而非Serverless
搭建Skill中台,第一步是选底座。我们对比了AWS Lambda、Azure Functions、K8s三种方案,最终选定Kubernetes,原因很实在: 可控性、可观测性、一致性 。Serverless虽然省事,但冷启动延迟不可控(我们要求P95<200ms),错误日志分散在CloudWatch,更致命的是——它无法满足“沙箱隔离”要求。Lambda函数共享执行环境,一个技能内存泄漏可能影响其他技能。而K8s的Pod天然隔离,资源限制(CPU/Mem)精确到毫核,Liveness Probe可秒级发现故障。工具链上,我们坚持“少而精”:Registry用Go写,轻量高效;Executor模板用Python(因AI团队熟悉),但强制使用 pydantic 做Schema校验;CI/CD用GitLab CI,每次Push自动构建Docker镜像、跑单元测试、调用Registry API注册。关键决策是 不自研Registry ,而是基于开源项目Kong Gateway二次开发。Kong原生支持Service Discovery和JWT验证,我们只需扩展其插件,增加Skill Manifest校验、SLA计算、审计日志推送。这样省下6个月开发时间,且获得企业级稳定性。部署时,我们把Registry、Gateway、审计服务放在独立Namespace,各业务线的Skill Pod按团队划分Namespace,网络策略禁止跨Namespace访问——安全边界清晰可见。
4.2 技能开发全流程:一个标准Skill的诞生记
以 translate_document 技能为例,走一遍完整流程。第一步: 契约定义 。产品经理和法务确认需求:“支持中英互译,文档不超过10MB,不处理含敏感词内容,响应时间<3s”。技术负责人据此写Manifest YAML:
skill_id: com.company.ai.translate_document
version: 1.3.0
description: "Translate documents between Chinese and English"
input_schema:
type: object
properties:
file_url: {type: string, format: uri}
target_lang: {type: string, enum: [zh, en]}
required: [file_url, target_lang]
output_schema:
type: object
properties:
translated_content: {type: string}
word_count: {type: integer}
error_codes:
E400_FILE_TOO_LARGE: "File exceeds 10MB limit"
E403_SENSITIVE_CONTENT: "Document contains prohibited terms"
第二步: Executor开发 。用Python Flask写,核心逻辑:
@app.route('/invoke', methods=['POST'])
def invoke():
req = request.get_json()
# 1. 验证JWT token(调用Registry验证服务)
# 2. 校验input_schema(用pydantic)
# 3. 下载file_url,检查大小和敏感词
# 4. 调用翻译API(我们用自研模型,非公有云)
# 5. 返回标准格式{"output": {...}, "metadata": {...}}
第三步: 本地测试 。用Postman模拟Registry调用,重点测边界:传10.1MB文件是否返回 E400_FILE_TOO_LARGE ?传含“政治”一词的文档是否返回 E403_SENSITIVE_CONTENT ?第四步: CI/CD流水线 。GitLab CI自动:1)构建Docker镜像;2)运行pytest(覆盖所有错误码路径);3)调用Registry API注册,传Manifest和镜像地址;4)Registry返回 skill_id 和 endpoint 。第五步: 灰度发布 。Registry将新版本标记为 canary ,只对 team=ai-research 的调用方开放,观察24小时错误率和延迟。全部达标后,切为 stable 。整个流程,从写Manifest到生产可用,平均耗时4.2小时,比过去开发同等功能的Prompt Bot快8倍。
4.3 生产环境配置:让Skill真正扛住流量洪峰
生产配置是成败关键。我们为每个Skill设置三级资源保障:第一级是 K8s Resource Limits : requests.cpu=200m, limits.cpu=1000m, requests.memory=512Mi, limits.memory=2Gi 。第二级是 Executor内建限流 :用 redis-py 实现令牌桶,每秒最多处理50个请求,超限返回 E429_TOO_MANY_REQUESTS 。第三级是 Gateway全局熔断 :Kong插件监控5分钟错误率,超10%自动开启熔断,后续请求返回 503 Service Unavailable 并重定向到降级页面。网络层面,我们强制所有Skill走Internal Load Balancer,禁用公网IP,调用方必须通过Gateway代理。安全加固上,Executor镜像基于 distroless 基础镜像,无shell,无包管理器;所有Secret通过K8s Secret挂载,不写入代码;日志统一输出到Loki,字段包含 skill_id 、 caller_id 、 duration_ms 、 status_code 。最关键的配置是 健康探针 : livenessProbe 每10秒调用 /health ,超时3秒失败; readinessProbe 每5秒调用 /readyz ,检查下游依赖(如翻译模型服务)是否就绪。去年双11, generate_promo_code 技能遭遇流量突增,K8s自动扩到12个Pod,所有Pod的 readinessProbe 检测到Redis延迟升高,主动将自身标记为 unready ,流量被平滑切到旧版本,用户无感知。这种韧性,是Prompt工程永远无法企及的。
4.4 技能编排实战:用Skill组合出“智能报销助理”
最后看一个完整业务场景:智能报销助理。它不是单个Skill,而是5个Skill的协同:1) scan_receipt (OCR识别发票);2) extract_expense (解析金额、日期、商户);3) validate_policy (校验是否符合报销政策);4) calculate_tax (计算进项税);5) submit_to_erp (提交至SAP)。编排不是写代码,而是定义DAG(有向无环图)。我们在Registry UI里拖拽: scan_receipt → extract_expense → 并行分支: validate_policy 和 calculate_tax → 汇聚 → submit_to_erp 。每个节点配置超时、重试次数、错误处理策略(如 validate_policy 失败时,跳过 calculate_tax ,直接通知用户)。执行时,Agent Runtime引擎按DAG调度,每个Skill调用都携带 trace_id ,Jaeger链路追踪显示完整调用树。用户上传发票后,系统3.2秒内返回结果,其中 scan_receipt 耗时1.1秒, extract_expense 耗时0.8秒, validate_policy 耗时0.3秒(缓存命中), submit_to_erp 耗时0.7秒。所有耗时、错误、输入输出都实时写入审计库。当财务部发现某类发票总被误判为“不合规”,我们直接在审计库查 skill_id=validate_policy + status_code=E403 ,定位到规则引擎里一条过期的政策条款,20分钟修复上线。这种可追溯、可调试、可优化的体验,彻底改变了AI协作的方式——它不再是黑箱里的魔法,而是白盒中的精密仪器。
5. 常见问题与排查技巧实录:那些踩过的坑,比文档更有价值
5.1 “Skill注册成功,但调用返回404”——八成是网关路由没配
这是新手最高频的报错。表面看是Skill问题,实则是Gateway配置疏漏。我们遇到过三次典型场景:第一次,开发者注册时填了 skill_id=com.company.ai.translate ,但Gateway的路由规则写成 /api/skills/translate/** ,少了 com.company.ai. 前缀,导致404。解决方案:Registry注册成功后,自动生成Gateway路由配置,禁止手工修改。第二次,K8s Service名称和Skill ID不一致,比如Skill ID是 translate_v2 ,但Service名是 translator-svc ,Gateway找不到后端。解决方案:强制Service名等于 skill_id 转小写加连字符,如 com-company-ai-translate-v2 。第三次最隐蔽:Gateway启用了HTTPS重定向,但Executor只监听HTTP,调用方发HTTPS请求,Gateway重定向后Executor收不到。解决方案:所有Executor必须同时监听HTTP和HTTPS,或Gateway配置 ssl_verify=false (仅内网)。> 提示:排查时,先curl Gateway的健康探针 curl -v https://gateway/api/skills/health ,确认网关本身正常;再curl Skill的健康探针 curl -v https://gateway/api/skills/com.company.ai.translate/health ,看是否通;最后用Registry提供的测试Token调用,逐步缩小范围。
5.2 “调用延迟忽高忽低”——别急着扩容,先查SLA漂移
某次 send_notification 技能P95延迟从200ms飙到1200ms,运维第一反应是扩Pod。我拦住他,登录Registry Dashboard,发现该Skill的 sla_score 从99.8%暴跌到82.1%,但错误率没变。点开详情,看到 latency_ms 指标里, p99 是1500ms,但 p50 才180ms——说明是少数请求拖慢了整体。进一步查审计日志,发现所有高延迟请求都来自同一个 caller_id=marketing-campaign-2024 ,且 input 里 message 字段长达12KB(远超设计的2KB)。根源是市场部活动页没做前端截断。解决方案:1)在Gateway层加请求体大小限制;2)给 send_notification 技能加 input_schema 校验, message: {type: string, maxLength: 2048} ;3)对 caller_id 做速率限制。> 注意:永远先看Registry的SLA仪表盘,再看K8s监控。SLA是业务视角,K8s指标是基础设施视角,两者偏差往往指向设计缺陷。
5.3 “技能返回结果不稳定”——90%是上下文污染,不是模型问题
summarize_meeting 技能有时总结得很好,有时漏关键结论。我们抓包发现,输入 context 里混入了调试用的 debug_info 字段,而Executor没做字段清理,导致模型注意力被干扰。更普遍的问题是:多个Skill共用一个Executor进程,前一个请求的 context 变量没清空,被后一个请求读取。解决方案:1)强制Executor每次调用前,用 pydantic 严格校验 input ,多余字段直接丢弃;2)Executor用 threading.local() 隔离上下文,或改用async/await避免共享状态;3)在Registry注册时,勾选“stateless”选项,Registry会强制每次调用新建进程。另一个坑是 output_schema 太宽松。比如定义 output: {summary: string} ,但模型有时返回 {summary: "...", action_items: [...]} ,下游系统解析失败。必须写死 additionalProperties: false 。> 实操心得:在Manifest里,宁可 input_schema 严苛,也别 output_schema 宽松。输入可过滤,输出错位会崩掉整个调用链。
5.4 “技能市场搜不到我的Skill”——标签和分类比功能更重要
法务部开发的 review_contract 技能,注册时只填了 category=legal ,结果市场部搜索“合同审查”找不到。因为搜索用的是语义标签,不是 category 字段。我们后来规定:所有Skill必须填至少3个业务标签,如 contract 、 review 、 compliance ,并用自然语言写 description :“帮助法务人员快速识别合同中的违约责任条款和争议解决方式”。Registry的搜索引擎会对 description 做TF-IDF加权, contract 和 review 权重最高。另一个问题是版本号。 review_contract_v1 和 review_contract_v2 在市场里显示为两个技能,用户不知道该选哪个。解决方案:Registry UI强制显示 latest_stable 版本,并隐藏旧版,除非用户主动切换。> 关键技巧:写 description 时,用业务语言,不用技术语言。不说“调用NLP模型提取条款”,而说“帮你10秒找出合同里隐藏的付款陷阱”。
5.5 “审计日志爆炸式增长”——不是存储问题,是采样策略错了
上线三个月,审计库每天写入2TB日志,成本失控。根因是默认记录所有字段,包括原始 input 和 output 。我们调整策略:1)对 input 和 output 只记录SHA256哈希,不存原文;2)只对 status_code != 200 的请求记录完整 input ;3)对高频Skill(如 get_user_profile )启用1%采样,低频Skill(如 generate_audit_report )100%记录。调整后日志量降到每天12GB。更重要的是,加了 caller_id 维度聚合,能一眼看出哪个业务系统调用最猛。> 经验:审计不是为了存全量,而是为了可追溯。哈希值足够定位问题,全量日志只在重大事故时临时开启。
6. 技能演进与未来扩展:当Skill成为企业的数字资产
6.1 从Skill到Skill Graph:让能力关系自己生长
当前Skill Registry是扁平列表,但真实世界的能力是网状的。比如 book_hotel 技能,必然依赖 check_availability 和 process_payment ,而 process_payment 又依赖 verify_identity 。我们正在构建Skill Graph:用Neo4j存储技能间的 DEPENDS_ON 、 ALTERNATIVE_TO 、 COMPOSES 关系。当 check_availability 升级,Graph自动标记所有上游依赖者,触发CI/CD流水线重测。更妙的是,Graph能反向推荐:用户调用 book_hotel 时,系统自动提示“检测到您常调用 add_to_calendar ,是否一键组合?” 这种基于关系的智能,让Skill不再孤立,而成为有机生长的数字生态。我们已用此Graph,发现了3个长期被忽视的隐性依赖——某财务Skill竟悄悄调用了一个测试环境的汇率API,上线半年无人知晓。
6.2 技能的自我进化:用反馈闭环驱动能力升级
Skill不该是静态的。我们给每个Skill加了 feedback_endpoint :调用方可在返回结果后,发 POST /feedback 报告“结果是否准确”。Registry收集反馈,当 accuracy_rate 低于95%,自动触发重训练流程:1)拉取最近1000条带反馈的 input ;2)用强化学习微调模型;3)生成新版本 v1.3.1 ,灰度发布。 translate_document 技能就这样从初版的82%准确率,半年内提升到98.7%。关键在反馈设计:不问“你满意吗?”,而问“请指出翻译错误的具体位置和正确译文”,这样得到的标注数据可直接用于训练。> 我个人在实际操作中的体会是:把反馈机制设计成调用方的“顺手动作”,比任何激励都有效。我们把反馈按钮嵌在结果卡片右上角,点击即发送,无需表单,用户流失率低于3%。
6.3 跨组织Skill协作:当标准成为行业通用语言
我们正推动Skill标准走出公司。今年已和3家合作伙伴签署协议,互相注册核心Skill:银行提供 verify_account ,物流提供 track_parcel ,我们提供 generate_invoice 。调用时,对方系统只需向我们的Registry发起 /discover 查询,拿到Endpoint和Token,即可安全调用。所有交互遵守OSI标准,无需定制开发。这正在形成事实上的行业能力网络——就像当年SWIFT之于银行清算。下一个目标,是让政府服务平台也能注册 issue_license 技能,企业系统调用时,自动完成资质核验。当Skill成为跨组织协作的通用语言,AI协作方式的变革才算真正完成。这不是技术的胜利,而是契约精神的胜利:用清晰的规则,取代模糊的猜测;用可验证的承诺,取代不可靠的经验。
更多推荐
所有评论(0)