[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-katanemo--plano":3,"tool-katanemo--plano":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":77,"languages":78,"stars":111,"forks":112,"last_commit_at":113,"license":114,"difficulty_score":32,"env_os":115,"env_gpu":116,"env_ram":115,"env_deps":117,"category_tags":123,"github_topics":124,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":142,"updated_at":143,"faqs":144,"releases":174},7752,"katanemo\u002Fplano","plano","Plano is an AI-native proxy and data plane for agentic apps — with built-in orchestration, safety, observability, and smart LLM routing so you stay focused on your agents core logic.","Plano 是一款专为智能体（Agentic）应用打造的 AI 原生代理服务器与数据平面。它旨在解决开发者在将智能体演示转化为生产级应用时面临的难题：无需在每个项目中重复编写繁琐的中间件代码，如复杂的路由逻辑、安全过滤、监控追踪以及不同大模型之间的适配工作。\n\n通过将这些通用基础设施剥离并集中管理，Plano 让开发者能专注于核心业务逻辑的实现。其核心亮点包括：低延迟的智能体编排能力，支持动态添加新智能体而无需修改应用代码；灵活的大模型路由机制，可根据模型名称、语义别名或自动策略进行流量分发；零代码埋点的信号捕获与全链路可观测性；以及基于过滤链的安全护栏，轻松实现防越狱和内容审核。\n\nPlano 基于高性能的 Envoy _proxy_构建，由核心贡献者打造，确保在现代负载下具备工业级的稳定性与扩展性。它语言无关，可无缝集成到现有的任何 AI 框架或架构中。无论是希望快速构建原型的独立开发者，还是追求高可用、高安全性的企业工程团队，Plano 都能帮助你们更高效、更安全地将智能体应用交付至生产环境。","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fsource\u002F_static\u002Fimg\u002FPlanoTagline.svg\" alt=\"Plano Logo\" width=\"75%\" height=auto>\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n\n _The AI-native proxy server and data plane for agentic apps._\u003Cbr>\u003Cbr>\n Plano pulls out the rote plumbing work and decouples you from brittle framework abstractions, centralizing what shouldn’t be bespoke in every codebase - like agent routing and orchestration, rich agentic signals and traces for continuous improvement, guardrail filters for safety and moderation, and smart LLM routing APIs for model agility. Use any language or AI framework, and deliver agents faster to production.\n\n\n[Quickstart Guide](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html) •\n[Build Agentic Apps with Plano](#Build-Agentic-Apps-with-Plano) •\n[Documentation](https:\u002F\u002Fdocs.planoai.dev) •\n[Contact](#Contact)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Docker Image](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fdocker-push-main.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fdocker-push-main.yml)\n[![Build and Deploy Documentation](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fstatic.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fstatic.yml)\n\nStar ⭐️ the repo if you found Plano useful — new releases and updates land here first.\n\u003C\u002Fdiv>\n\n# Overview\nBuilding agentic demos is easy. Shipping agentic applications safely, reliably, and repeatably to production is hard. After the thrill of a quick hack, you end up building the “hidden middleware” to reach production: routing logic to reach the right agent, guardrail hooks for safety and moderation, evaluation and observability glue for continuous learning, and model\u002Fprovider quirks scattered across frameworks and application code.\n\nPlano solves this by moving core delivery concerns into a unified, out-of-process dataplane.\n\n- **🚦 Orchestration:** Low-latency orchestration between agents; add new agents without modifying app code.\n- **🔗 Model Agility:** Route [by model name, alias (semantic names) or automatically via preferences](#use-plano-as-a-llm-router).\n- **🕵 Agentic Signals&trade;:** Zero-code capture of [Signals](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Fsignals.html) plus OTEL traces\u002Fmetrics across every agent.\n- **🛡️ Moderation & Memory Hooks:** Build jailbreak protection, add moderation policies and memory consistently via [Filter Chains](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Ffilter_chain.html).\n\nPlano pulls rote plumbing out of your framework so you can stay focused on what matters most: the core product logic of your agentic applications. Plano is backed by [industry-leading LLM research](https:\u002F\u002Fplanoai.dev\u002Fresearch) and built on [Envoy](https:\u002F\u002Fenvoyproxy.io) by its core contributors, who built critical infrastructure at scale for modern worklaods.\n\n**High-Level Network Sequence Diagram**:\n![high-level network plano arcitecture for Plano](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkatanemo_plano_readme_13896e1e891c.png)\n\n**Jump to our [docs](https:\u002F\u002Fdocs.planoai.dev)** to learn how you can use Plano to improve the speed, safety and obervability of your agentic applications.\n\n> [!IMPORTANT]\n> Plano and the Arch family of LLMs (like Plano-Orchestrator-4B, Arch-Router, etc) are hosted free of charge in the US-central region to give you a great first-run developer experience of Plano. To scale and run in production, you can either run these LLMs locally or contact us on [Discord](https:\u002F\u002Fdiscord.gg\u002FpGZf2gcwEc) for API keys.\n\n---\n\n## Build Agentic Apps with Plano\n\nPlano handles **orchestration, model management, and observability** as modular building blocks - letting you configure only what you need (edge proxying for agentic orchestration and guardrails, or LLM routing from your services, or both together) to fit cleanly into existing architectures. Below is a simple multi-agent travel agent built with Plano that showcases all three core capabilities\n\n> 📁 **Full working code:** See [`demos\u002Fagent_orchestration\u002Ftravel_agents\u002F`](demos\u002Fagent_orchestration\u002Ftravel_agents\u002F) for complete weather and flight agents you can run locally.\n\n\n\n### 1. Define Your Agents in YAML\n\n```yaml\n# config.yaml\nversion: v0.3.0\n\n# What you declare: Agent URLs and natural language descriptions\n# What you don't write: Intent classifiers, routing logic, model fallbacks, provider adapters, or tracing instrumentation\n\nagents:\n  - id: weather_agent\n    url: http:\u002F\u002Flocalhost:10510\n  - id: flight_agent\n    url: http:\u002F\u002Flocalhost:10520\n\nmodel_providers:\n  - model: openai\u002Fgpt-4o\n    access_key: $OPENAI_API_KEY\n    default: true\n  - model: anthropic\u002Fclaude-3-5-sonnet\n    access_key: $ANTHROPIC_API_KEY\n\nlisteners:\n  - type: agent\n    name: travel_assistant\n    port: 8001\n    router: plano_orchestrator_v1  # Powered by our 4B-parameter routing model. You can change this to different models\n    agents:\n      - id: weather_agent\n        description: |\n          Gets real-time weather and forecasts for any city worldwide.\n          Handles: \"What's the weather in Paris?\", \"Will it rain in Tokyo?\"\n\n      - id: flight_agent\n        description: |\n          Searches flights between airports with live status and schedules.\n          Handles: \"Flights from NYC to LA\", \"Show me flights to Seattle\"\n\ntracing:\n  random_sampling: 100  # Auto-capture traces for evaluation\n```\n\n### 2. Write Simple Agent Code\n\nYour agents are just HTTP servers that implement the OpenAI-compatible chat completions endpoint. Use any language or framework:\n\n```python\n# weather_agent.py\nfrom fastapi import FastAPI, Request\nfrom fastapi.responses import StreamingResponse\nfrom openai import AsyncOpenAI\n\napp = FastAPI()\n\n# Point to Plano's LLM gateway - it handles model routing for you\nllm = AsyncOpenAI(base_url=\"http:\u002F\u002Flocalhost:12001\u002Fv1\", api_key=\"EMPTY\")\n\n@app.post(\"\u002Fv1\u002Fchat\u002Fcompletions\")\nasync def chat(request: Request):\n    body = await request.json()\n    messages = body.get(\"messages\", [])\n    days = 7\n\n    # Your agent logic: fetch data, call APIs, run tools\n    # See demos\u002Fagent_orchestration\u002Ftravel_agents\u002F for the full implementation\n    weather_data = await get_weather_data(request, messages, days)\n\n    # Stream the response back through Plano\n    async def generate():\n        stream = await llm.chat.completions.create(\n            model=\"openai\u002Fgpt-4o\",\n            messages=[{\"role\": \"system\", \"content\": f\"Weather: {weather_data}\"}, *messages],\n            stream=True\n        )\n        async for chunk in stream:\n            yield f\"data: {chunk.model_dump_json()}\\n\\n\"\n\n    return StreamingResponse(generate(), media_type=\"text\u002Fevent-stream\")\n```\n\n### 3. Start Plano & Query Your Agents\n\n**Prerequisites:** Follow the [prerequisites guide](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html#prerequisites) to install Plano and set up your environment.\n\n```bash\n# Start Plano\nplanoai up config.yaml\n...\n\n# Query - Plano intelligently routes to both agents in a single conversation\ncurl http:\u002F\u002Flocalhost:8001\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gpt-4o\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"I want to travel from NYC to Paris next week. What is the weather like there, and can you find me some flights?\"}\n    ]\n  }'\n# → Plano routes to weather_agent for Paris weather ✓\n# → Then routes to flight_agent for NYC → Paris flights ✓\n# → Returns a complete travel plan with both weather info and flight options\n```\n\n### 4. Get Observability and Model Agility for Free\n\nEvery request is traced end-to-end with OpenTelemetry - no instrumentation code needed.\n\n![Atomatic Tracing](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkatanemo_plano_readme_2d2fd4ca75c4.png)\n\n### What You Didn't Have to Build\n\n| Infrastructure Concern | Without Plano | With Plano |\n|---------|---------------|------------|\n| **Agent Orchestration** | Write intent classifier + routing logic | Declare agent descriptions in YAML |\n| **Model Management** | Handle each provider's API quirks | Unified LLM APIs with state management |\n| **Rich Tracing** | Instrument every service with OTEL | Automatic end-to-end traces and logs |\n| **Learning Signals** | Build pipeline to capture\u002Fexport spans | Zero-code agentic signals |\n| **Adding Agents** | Update routing code, test, redeploy | Add to config, restart |\n\n**Why it's efficient:** Plano uses purpose-built, lightweight LLMs (like our 4B-parameter orchestrator) instead of heavyweight frameworks or GPT-4 for routing - giving you production-grade routing at a fraction of the cost and latency.\n\n---\n\n## Contact\nTo get in touch with us, please join our [discord server](https:\u002F\u002Fdiscord.gg\u002FpGZf2gcwEc). We actively monitor that and offer support there.\n\n## Getting Started\n\nReady to try Plano? Check out our comprehensive documentation:\n\n- **[Quickstart Guide](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html)** - Get up and running in minutes\n- **[LLM Routing](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Fllm_router.html)** - Route by model name, alias, or intelligent preferences\n- **[Agent Orchestration](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Forchestration.html)** - Build multi-agent workflows\n- **[Filter Chains](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Ffilter_chain.html)** - Add guardrails, moderation, and memory hooks\n- **[Prompt Targets](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Fprompt_target.html)** - Turn prompts into deterministic API calls\n- **[Observability](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Fobservability\u002Fobservability.html)** - Traces, metrics, and logs\n\n## Contribution\nWe would love feedback on our [Roadmap](https:\u002F\u002Fgithub.com\u002Forgs\u002Fkatanemo\u002Fprojects\u002F1) and we welcome contributions to **Plano**! Whether you're fixing bugs, adding new features, improving documentation, or creating tutorials, your help is much appreciated. Please visit our [Contribution Guide](CONTRIBUTING.md) for more details\n\nStar ⭐️ the repo if you found Plano useful — new releases and updates land here first.\n","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fsource\u002F_static\u002Fimg\u002FPlanoTagline.svg\" alt=\"Plano Logo\" width=\"75%\" height=auto>\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n\n _面向代理型应用的原生AI代理服务器与数据平面。_\u003Cbr>\u003Cbr>\n Plano帮你摆脱繁琐的基础架构工作，解耦脆弱的框架抽象，将那些本不该在每个代码库中重复实现的功能集中管理——例如代理路由与编排、用于持续改进的丰富代理信号与追踪、用于安全与内容审核的护栏过滤器，以及支持模型敏捷性的智能LLM路由API。你可以使用任何语言或AI框架，更快地将代理应用部署到生产环境。\n\n\n[快速入门指南](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html) •\n[使用Plano构建代理型应用](#Build-Agentic-Apps-with-Plano) •\n[文档](https:\u002F\u002Fdocs.planoai.dev) •\n[联系我们](#Contact)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Docker镜像](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fdocker-push-main.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fdocker-push-main.yml)\n[![构建并部署文档](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fstatic.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Factions\u002Fworkflows\u002Fstatic.yml)\n\n如果你觉得Plano很有用，请给这个仓库点个星⭐️——新版本和更新都会在这里首发。\n\u003C\u002Fdiv>\n\n# 概述\n构建代理型演示项目很容易。但要以安全、可靠且可重复的方式将代理型应用顺利上线却并不简单。在快速完成一个原型之后，你往往会发现自己不得不开发“隐藏的中间件”来支撑生产环境：用于将请求路由到正确代理的逻辑、用于安全与内容审核的护栏钩子、用于持续学习的评估与可观ility集成，以及分散在不同框架和应用代码中的模型与提供商特有处理逻辑。\n\nPlano通过将核心交付相关功能整合到统一的进程外数据平面中，有效解决了这一问题。\n\n- **🚦 编排：** 代理之间的低延迟编排；无需修改应用代码即可添加新代理。\n- **🔗 模型敏捷性：** 可按[模型名称、别名（语义化名称）]路由，或根据偏好自动路由](#use-plano-as-a-llm-router)。\n- **🕵 Agentic Signals&trade;：** 无需编写代码即可捕获[信号](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Fsignals.html)，同时为每个代理生成OTEL追踪与指标。\n- **🛡️ 内容审核与记忆钩子：** 通过[过滤链](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Ffilter_chain.html)一致地构建防越狱机制、添加内容审核策略并管理记忆。\n\nPlano将这些基础架构工作从你的框架中剥离出来，让你能够专注于最重要的事情：代理型应用的核心业务逻辑。Plano背后有[行业领先的LLM研究](https:\u002F\u002Fplanoai.dev\u002Fresearch)，其核心贡献者基于[Envoy](https:\u002F\u002Fenvoyproxy.io)构建了关键基础设施，可大规模支持现代工作负载。\n\n**高层网络序列图**：\n![Plano的高层网络架构](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkatanemo_plano_readme_13896e1e891c.png)\n\n**立即前往我们的[文档](https:\u002F\u002Fdocs.planoai.dev)**，了解如何利用Plano提升代理型应用的速度、安全性及可观ility。\n\n> [!重要提示]\n> Plano及其Arch系列LLM（如Plano-Orchestrator-4B、Arch-Router等）在美国中部地区免费托管，旨在为你提供出色的首次开发体验。若需扩展规模并在生产环境中运行，你可以选择在本地运行这些LLM，或通过[Discord](https:\u002F\u002Fdiscord.gg\u002FpGZf2gcwEc)联系我们获取API密钥。\n\n---\n\n## 使用Plano构建代理型应用\n\nPlano将**编排、模型管理和可观ility**作为模块化的构建块——让你只需配置所需的部分（用于代理编排和护栏的边缘代理，或从你的服务中进行LLM路由，或者两者结合），从而无缝融入现有架构。下面是一个使用Plano构建的简单多代理旅行助手示例，展示了这三项核心能力。\n\n> 📁 **完整可运行代码：** 请参阅[`demos\u002Fagent_orchestration\u002Ftravel_agents\u002F`](demos\u002Fagent_orchestration\u002Ftravel_agents\u002F)，其中包含可在本地运行的天气和航班代理完整代码。\n\n\n\n### 1. 在YAML中定义你的代理\n\n```yaml\n# config.yaml\nversion: v0.3.0\n\n# 你需要声明的内容：代理URL和自然语言描述\n# 你无需编写的部分：意图分类器、路由逻辑、模型回退、提供商适配器或追踪埋点\n\nagents:\n  - id: weather_agent\n    url: http:\u002F\u002Flocalhost:10510\n  - id: flight_agent\n    url: http:\u002F\u002Flocalhost:10520\n\nmodel_providers:\n  - model: openai\u002Fgpt-4o\n    access_key: $OPENAI_API_KEY\n    default: true\n  - model: anthropic\u002Fclaude-3-5-sonnet\n    access_key: $ANTHROPIC_API_KEY\n\nlisteners:\n  - type: agent\n    name: travel_assistant\n    port: 8001\n    router: plano_orchestrator_v1  # 由我们的4B参数路由模型驱动。你可以更换为其他模型\n    agents:\n      - id: weather_agent\n        description: |\n          提供全球任意城市的实时天气和预报信息。\n          处理诸如“巴黎现在天气如何？”、“东京会下雨吗？”等问题。\n\n      - id: flight_agent\n        description: |\n          搜索机场之间的航班信息，包括实时状态和时刻表。\n          处理诸如“从纽约飞往洛杉矶的航班有哪些？”、“给我看看飞往西雅图的航班”之类的请求。\n\ntracing:\n  random_sampling: 100  # 自动捕获追踪数据以便评估\n```\n\n### 2. 编写简单的代理代码\n\n你的代理只是实现了OpenAI兼容聊天补全接口的HTTP服务器。你可以使用任何语言或框架：\n\n```python\n# weather_agent.py\nfrom fastapi import FastAPI, Request\nfrom fastapi.responses import StreamingResponse\nfrom openai import AsyncOpenAI\n\napp = FastAPI()\n\n# 指向Plano的LLM网关——它会为你处理模型路由\nllm = AsyncOpenAI(base_url=\"http:\u002F\u002Flocalhost:12001\u002Fv1\", api_key=\"EMPTY\")\n\n@app.post(\"\u002Fv1\u002Fchat\u002Fcompletions\")\nasync def chat(request: Request):\n    body = await request.json()\n    messages = body.get(\"messages\", [])\n    days = 7\n\n    # 你的代理逻辑：获取数据、调用API、执行工具\n    # 完整实现请参阅demos\u002Fagent_orchestration\u002Ftravel_agents\u002F\n    weather_data = await get_weather_data(request, messages, days)\n\n    # 将响应流式返回至Plano\n    async def generate():\n        stream = await llm.chat.completions.create(\n            model=\"openai\u002Fgpt-4o\",\n            messages=[{\"role\": \"system\", \"content\": f\"天气：{weather_data}\"}, *messages],\n            stream=True\n        )\n        async for chunk in stream:\n            yield f\"data: {chunk.model_dump_json()}\\n\\n\"\n\n    return StreamingResponse(generate(), media_type=\"text\u002Fevent-stream\")\n```\n\n### 3. 启动Plano并查询你的代理\n\n**先决条件：** 请按照[先决条件指南](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html#prerequisites)安装Plano并设置好环境。\n\n```bash\n# 启动Plano\nplanoai up config.yaml\n...\n\n# 查询 - Plano 在一次对话中智能地将用户路由到两位客服\ncurl http:\u002F\u002Flocalhost:8001\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gpt-4o\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"我下周想从纽约飞往巴黎旅行。那里的天气怎么样？你能帮我找一些航班吗？\"}\n    ]\n  }'\n# → Plano 将请求路由至 weather_agent 获取巴黎的天气信息 ✓\n# → 随后路由至 flight_agent 查询纽约 → 巴黎的航班信息 ✓\n# → 返回包含天气信息和航班选项的完整旅行计划\n```\n\n### 4. 免费获得可观测性和模型敏捷性\n\n每个请求都通过 OpenTelemetry 进行端到端追踪——无需任何额外的埋点代码。\n\n![自动追踪](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkatanemo_plano_readme_2d2fd4ca75c4.png)\n\n### 您无需构建的内容\n\n| 基础设施相关事项 | 不使用 Plano | 使用 Plano |\n|---------|---------------|------------|\n| **代理编排** | 编写意图分类器 + 路由逻辑 | 在 YAML 中声明代理描述 |\n| **模型管理** | 处理各提供商 API 的特殊性 | 统一的 LLM API 并附带状态管理 |\n| **丰富追踪** | 为每个服务手动埋点 OTEL | 自动化的端到端追踪与日志 |\n| **学习信号** | 构建管道以捕获\u002F导出追踪数据 | 无需代码即可获取代理行为信号 |\n| **添加代理** | 更新路由代码、测试并重新部署 | 直接添加到配置文件，重启即可 |\n\n**为何高效：** Plano 使用专门构建的轻量级 LLM（例如我们自己的 40 亿参数调度器）来完成路由任务，而非依赖重量级框架或 GPT-4——这样既能提供生产级别的路由能力，又大幅降低了成本和延迟。\n\n---\n\n## 联系我们\n如需联系我们，请加入我们的 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002FpGZf2gcwEc)。我们会在那里积极回复并提供支持。\n\n## 开始使用\n\n准备好试用 Plano 了吗？请查看我们的完整文档：\n\n- **[快速入门指南](https:\u002F\u002Fdocs.planoai.dev\u002Fget_started\u002Fquickstart.html)** —— 几分钟内即可上手\n- **[LLM 路由](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Fllm_router.html)** —— 可按模型名称、别名或智能偏好进行路由\n- **[代理编排](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Forchestration.html)** —— 构建多代理工作流\n- **[过滤链](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Ffilter_chain.html)** —— 添加安全约束、内容审核及记忆钩子\n- **[提示目标](https:\u002F\u002Fdocs.planoai.dev\u002Fconcepts\u002Fprompt_target.html)** —— 将提示转化为确定性的 API 调用\n- **[可观测性](https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Fobservability\u002Fobservability.html)** —— 追踪数据、指标和日志\n\n## 贡献\n我们非常欢迎对 [路线图](https:\u002F\u002Fgithub.com\u002Forgs\u002Fkatanemo\u002Fprojects\u002F1) 的反馈，并诚挚邀请您为 **Plano** 贡献力量！无论是修复 bug、新增功能、改进文档，还是制作教程，您的帮助都将不胜感激。更多详情请参阅我们的 [贡献指南](CONTRIBUTING.md)。\n\n如果您觉得 Plano 很有用，请给本仓库点个 star ⭐️ —— 我们的最新发布和更新都会首先在这里公布。","# Plano 快速上手指南\n\nPlano 是一个面向智能体（Agentic）应用的 AI 原生代理服务器和数据平面。它通过将路由、编排、安全过滤和可观测性等通用基础设施从应用代码中剥离，帮助开发者更安全、可靠地将智能体应用交付到生产环境。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux (推荐), macOS, 或 Windows (WSL2)。\n*   **运行时依赖**：\n    *   **Docker**：Plano 核心基于 Envoy 构建，推荐使用 Docker 运行。\n    *   **Python 3.8+**：用于编写智能体业务逻辑（也支持其他语言，只要实现 OpenAI 兼容接口）。\n    *   **pip**：用于安装 Plano CLI 工具。\n*   **API Keys**：准备好您的 LLM 提供商密钥（如 `OPENAI_API_KEY`, `ANTHROPIC_API_KEY` 等）。\n\n> **注意**：Plano 的默认编排模型（如 `plano_orchestrator_v1`）在美国中部区域免费提供用于开发测试。若需在生产环境大规模使用或本地部署，请参考官方文档或联系团队获取支持。\n\n## 安装步骤\n\n### 1. 安装 Plano CLI\n使用 pip 安装 Plano 命令行工具：\n\n```bash\npip install planoai\n```\n\n### 2. 配置环境变量\n导出您的 LLM 提供商 API 密钥，以便 Plano 读取：\n\n```bash\nexport OPENAI_API_KEY=\"your-openai-api-key\"\nexport ANTHROPIC_API_KEY=\"your-anthropic-api-key\"\n```\n\n### 3. 验证安装\n检查版本以确保安装成功：\n\n```bash\nplanoai --version\n```\n\n## 基本使用\n\n以下示例展示如何快速构建一个包含“天气查询”和“航班搜索”的多智能体旅行助手。\n\n### 第一步：定义智能体配置 (config.yaml)\n\n创建 `config.yaml` 文件。在此文件中，您只需声明智能体的 URL 和自然语言描述，无需编写复杂的路由逻辑或意图分类器。\n\n```yaml\n# config.yaml\nversion: v0.3.0\n\nagents:\n  - id: weather_agent\n    url: http:\u002F\u002Flocalhost:10510\n  - id: flight_agent\n    url: http:\u002F\u002Flocalhost:10520\n\nmodel_providers:\n  - model: openai\u002Fgpt-4o\n    access_key: $OPENAI_API_KEY\n    default: true\n  - model: anthropic\u002Fclaude-3-5-sonnet\n    access_key: $ANTHROPIC_API_KEY\n\nlisteners:\n  - type: agent\n    name: travel_assistant\n    port: 8001\n    router: plano_orchestrator_v1  # 使用轻量级专用模型进行路由\n    agents:\n      - id: weather_agent\n        description: |\n          Gets real-time weather and forecasts for any city worldwide.\n          Handles: \"What's the weather in Paris?\", \"Will it rain in Tokyo?\"\n\n      - id: flight_agent\n        description: |\n          Searches flights between airports with live status and schedules.\n          Handles: \"Flights from NYC to LA\", \"Show me flights to Seattle\"\n\ntracing:\n  random_sampling: 100  # 自动捕获 traces 用于评估\n```\n\n### 第二步：编写智能体业务代码\n\n您的智能体只需是实现了 OpenAI 兼容接口的 HTTP 服务。以下以 Python FastAPI 为例编写一个简单的天气智能体 (`weather_agent.py`)：\n\n```python\n# weather_agent.py\nfrom fastapi import FastAPI, Request\nfrom fastapi.responses import StreamingResponse\nfrom openai import AsyncOpenAI\n\napp = FastAPI()\n\n# 指向 Plano 的 LLM 网关，由 Plano 处理模型路由\nllm = AsyncOpenAI(base_url=\"http:\u002F\u002Flocalhost:12001\u002Fv1\", api_key=\"EMPTY\")\n\n@app.post(\"\u002Fv1\u002Fchat\u002Fcompletions\")\nasync def chat(request: Request):\n    body = await request.json()\n    messages = body.get(\"messages\", [])\n    days = 7\n\n    # 此处为您的业务逻辑：获取数据、调用外部 API 等\n    # 模拟获取天气数据\n    weather_data = f\"Sunny, 25°C in the requested location (simulated)\"\n\n    # 通过 Plano 流式返回响应\n    async def generate():\n        stream = await llm.chat.completions.create(\n            model=\"openai\u002Fgpt-4o\",\n            messages=[{\"role\": \"system\", \"content\": f\"Weather: {weather_data}\"}, *messages],\n            stream=True\n        )\n        async for chunk in stream:\n            yield f\"data: {chunk.model_dump_json()}\\n\\n\"\n\n    return StreamingResponse(generate(), media_type=\"text\u002Fevent-stream\")\n```\n\n*注：请在终端启动此服务并监听端口 `10510` (对应 config 中的 `weather_agent` url)。同理需启动 `flight_agent` 监听 `10520`。*\n\n### 第三步：启动 Plano 并测试\n\n1.  **启动 Plano 服务**：\n    在终端运行以下命令加载配置：\n\n    ```bash\n    planoai up config.yaml\n    ```\n\n2.  **发送请求测试编排能力**：\n    使用 `curl` 向 Plano 发送请求。Plano 会自动识别用户意图，依次调用天气智能体和航班智能体，并整合结果。\n\n    ```bash\n    curl http:\u002F\u002Flocalhost:8001\u002Fv1\u002Fchat\u002Fcompletions \\\n      -H \"Content-Type: application\u002Fjson\" \\\n      -d '{\n        \"model\": \"gpt-4o\",\n        \"messages\": [\n          {\"role\": \"user\", \"content\": \"I want to travel from NYC to Paris next week. What is the weather like there, and can you find me some flights?\"}\n        ]\n      }'\n    ```\n\n    **预期结果**：\n    *   Plano 自动将天气相关问题路由给 `weather_agent`。\n    *   Plano 自动将航班查询问题路由给 `flight_agent`。\n    *   返回包含天气信息和航班选项的完整旅行计划。\n\n### 第四步：查看可观测性数据\n\nPlano 默认集成 OpenTelemetry。所有请求的端到端追踪（Traces）、指标和日志将自动捕获，无需在代码中添加任何埋点 instrumentation。您可以结合 Jaeger 或 Prometheus 等工具查看详细的智能体交互链路。","某初创团队正在开发一款多智能体旅行规划应用，需要协调航班查询、酒店推荐和行程优化三个独立 Agent 协同工作。\n\n### 没有 plano 时\n- **硬编码路由逻辑**：开发者必须在业务代码中手动编写复杂的路由规则，每次新增或修改 Agent 都需要重构核心代码，导致迭代缓慢且容易出错。\n- **安全过滤分散**：每个 Agent 需单独实现防注入和内容审核逻辑，标准不统一，极易出现安全漏洞让恶意提示词绕过防御。\n- **可观测性缺失**：缺乏统一的追踪机制，当用户投诉行程规划错误时，团队难以定位是哪个模型响应慢或哪个 Agent 决策失误，排查全靠猜。\n- **模型切换成本高**：若想将某个任务的底层模型从 Claude 切换到 GPT-4，需深入各个微服务修改 API 调用代码，维护成本极高。\n\n### 使用 plano 后\n- **声明式编排**：通过配置文件即可定义 Agent 间的流转逻辑，新增“当地美食推荐”Agent 时无需触碰业务代码，plano 自动处理低延迟调度。\n- **统一安全网关**：利用内置的过滤器链（Filter Chains）集中部署防越狱和内容审核策略，所有流量经过 plano 时自动清洗，确保全局安全合规。\n- **全链路信号捕捉**：plano 自动捕获详细的智能体信号和 OTEL 追踪数据，团队可直接在仪表盘看到每一步的耗时与决策依据，快速定位性能瓶颈。\n- **智能模型路由**：只需配置语义别名（如\"fast-model\"），plano 即可根据预设策略自动将请求分发给最优模型，实现底层模型的无缝热切换。\n\nplano 将繁琐的基础设施剥离为统一的数据平面，让团队能专注于旅行规划的核心业务逻辑，显著提升了多智能体应用的交付速度与运行稳定性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkatanemo_plano_2d2fd4ca.png","katanemo","Katanemo","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkatanemo_1b4b74d8.jpg","Intelligent infrastructure primitives for GenAI",null,"https:\u002F\u002Fgithub.com\u002Fkatanemo",[79,83,87,91,95,99,103,107],{"name":80,"color":81,"percentage":82},"Rust","#dea584",72.9,{"name":84,"color":85,"percentage":86},"Python","#3572A5",14.4,{"name":88,"color":89,"percentage":90},"TypeScript","#3178c6",11.5,{"name":92,"color":93,"percentage":94},"Shell","#89e051",0.5,{"name":96,"color":97,"percentage":98},"CSS","#663399",0.3,{"name":100,"color":101,"percentage":102},"Dockerfile","#384d54",0.2,{"name":104,"color":105,"percentage":106},"Hurl","#FF0288",0.1,{"name":108,"color":109,"percentage":110},"JavaScript","#f1e05a",0,6327,399,"2026-04-15T07:32:24","Apache-2.0","未说明","非必需。Plano 作为代理服务器运行，默认使用托管的轻量级路由模型（如 4B 参数模型）；若需在本地生产环境运行这些模型，则需自行配置相应的 GPU 资源，但 README 未指定具体型号或显存要求。",{"notes":118,"python":115,"dependencies":119},"1. Plano 是一个基于 Envoy 构建的原生 AI 代理服务器和数据平面，旨在解耦应用代码与底层基础设施。2. 默认情况下，其核心路由和编排模型（如 Plano-Orchestrator-4B）在美国中部区域免费托管，无需本地算力。3. 若要在生产环境中本地部署这些模型以实现扩展，需联系官方获取 API Key 或自行准备运行环境。4. 支持任意编程语言或 AI 框架编写的 Agent，只要它们实现 OpenAI 兼容的 HTTP 接口。5. 内置 OpenTelemetry 支持，可自动捕获追踪信号而无需额外代码埋点。",[120,121,122],"Envoy (核心基础设施)","FastAPI (示例依赖)","OpenAI SDK (示例依赖)",[14,35],[125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141],"gateway","generative-ai","llm-inference","llms","prompt","proxy","proxy-server","llmops","openai","routing","ai-gateway","llm-gateway","llm-routing","envoy","envoyproxy","ai-gateway-support","llm-proxy","2026-03-27T02:49:30.150509","2026-04-16T01:49:42.847940",[145,150,155,160,165,170],{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},34702,"如何配置 Plano 以支持带有嵌套路径的模型提供商 base_url？","该问题已在主分支中修复，并将包含在 0.3.18 版本中。如果您需要立即使用，可以从 main 分支构建最新版本。修复后，model_provider.base_url 现在支持包含路径（不仅仅是根域名），适用于那些不在 `\u002Fv1\u002Fchat\u002Fcompletions` 根目录下提供推理端点的提供商。","https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fissues\u002F600",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},34703,"当模型名称中包含点号（如 Ollama 的 qwen3:0.6b）时，Prometheus 指标解析出现截断错误怎么办？","此问题在 #570 之后已得到解决。在此之前，集群名称直接使用模型名称（导致点号被截断）；在此之后，集群名称改为使用 `provider + \"_\" + endpoint` 的格式（例如 \"openai_host\"），不再直接包含模型名称中的特殊字符。建议升级到修复后的版本以避免此问题。","https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fissues\u002F504",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},34704,"Plano 是否支持类似 OpenAI Responses API 和 Conversation API 的功能以实现有状态的对话？","是的，该功能已合并到主分支并正式发布。您可以查阅官方文档了解状态管理指南：https:\u002F\u002Fdocs.planoai.dev\u002Fguides\u002Fstate.html。维护者确认可以通过克隆项目并在本地使用 `archgw build` 构建包含这些更改的版本来使用完整上下文工程和记忆功能。","https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fissues\u002F614",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},34705,"运行 archgw up 时遇到 'Additional properties are not allowed ('listen' was unexpected)' 错误如何解决？","这通常是由于配置文件格式错误或版本不匹配导致的。请确保严格遵循项目 README 或特定演示（如 hr_agent）中的配置示例。维护者建议检查 `arch_config.yaml` 文件结构，确认没有多余或不支持的字段（如 'listen'）。如果问题持续，建议在 Discord 频道提供更多上下文以便复现和调试。","https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fissues\u002F221",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},34706,"为什么 AI 助手没有按照系统提示词识别身份，而是回答自己是 Anthropic\u002FClaude？","这通常是因为系统提示词（system prompt）未正确传递或被模型忽略。请检查您的 `arch_config.yaml` 配置，确保在消息列表中正确设置了 `role: system` 的内容，明确指示模型扮演特定角色（如 \"ClubCentric AI Assistant\"）。此外，确认后端服务没有覆盖或过滤掉系统提示词。该问题在社区 Discord 频道中已被标记为解决，通常涉及配置修正。","https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fissues\u002F470",{"id":171,"question_zh":172,"answer_zh":173,"source_url":169},34707,"连接网关时出现 'Failed to connect' 或防火墙相关错误怎么办？","这通常意味着您的网络环境存在防火墙阻止了与 GCP（Google Cloud Platform）端口的连接。维护者建议尝试切换不同的网络环境（例如从公司网络切换到手机热点或家庭网络）进行测试。如果是本地 Docker 环境，还需检查 `host.docker.internal` 是否正确解析以及端口映射是否正常。",[175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270],{"id":176,"version":177,"summary_zh":178,"released_at":179},272050,"0.4.18","## 变更内容\n* @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F863 中添加了一流的小米提供商支持\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F827 中实现了模型亲和性，以在代理循环中保持一致的模型选择\n* @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F878 中发布了 0.4.18 版本\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.17...0.4.18","2026-04-09T20:13:13",{"id":181,"version":182,"summary_zh":183,"released_at":184},272051,"0.4.17","## 变更内容\n* 功能（Web）：合并 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F860 中提交的 DigitalOcean 发布公告更新\n* 功能（Web）：合并 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F862 中提交的 DigitalOcean 发布公告更新\n* 修复：由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F866 中解决所有未处理的 Dependabot 安全告警\n* 由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F868 中将 Docker 镜像发布到 DigitalOcean 容器注册表\n* 支持聊天补全 API 中的开发者角色，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F867 中实现\n* CI（端到端）：由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F865 中稳定偏好演示的 CI 执行流程\n* 发布版本 0.4.17，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F869 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.16...0.4.17","2026-04-03T17:06:19",{"id":186,"version":187,"summary_zh":188,"released_at":189},272052,"0.4.17-rc1","## 变更内容\n* 功能（Web）：合并 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F860 中提交的 DigitalOcean 发布公告更新\n* 功能（Web）：合并 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F862 中提交的 DigitalOcean 发布公告更新\n* 修复：由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F866 中解决所有未处理的 Dependabot 安全告警\n* 由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F868 中将 Docker 镜像发布到 DigitalOcean 容器 Registry\n* 由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F867 中支持聊天补全 API 中的开发者角色\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.16...0.4.17-rc1","2026-04-03T01:14:20",{"id":191,"version":192,"summary_zh":193,"released_at":194},272053,"0.4.16","## 变更内容\n* 由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F857 中为 Python 3.14 更新 black 格式化工具\n* 由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F858 中优化 planoai 的启动\u002F停止 CLI 输出\n* 由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F844 中将 common crate 中的生产环境 panic 替换为优雅的错误处理\n* 修复：由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F854 中在不带 \u002Fv1 路径的情况下路由 Perplexity 的 OpenAI 端点\n* 处理内联路由策略中的空 prefer 值，由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F856 中完成\n* 由 @Spherrrical 发布 0.4.16 版本，详见 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F859\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.15...0.4.16","2026-04-01T00:46:52",{"id":196,"version":197,"summary_zh":198,"released_at":199},272054,"0.4.15","## 变更内容\n* 扩展配置参考文档，补充缺失字段，由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F851 中完成\n* 模型路由：基于成本和延迟的排序，并支持排序后的回退列表，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F849 中完成\n* 重构 model_metrics_sources 结构，按类型和提供商进行组织，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F855 中完成\n* 发布版本 0.4.15，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F853 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.14...0.4.15","2026-03-31T00:38:35",{"id":201,"version":202,"summary_zh":203,"released_at":204},272055,"0.4.14","## 变更内容\n* 编排器存在一个 bug，会在为……设置错误的头部信息，由 @salmanap 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F839 中修复。\n* 发布版本 0.4.14，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F840 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.13...0.4.14","2026-03-20T07:52:13",{"id":206,"version":207,"summary_zh":208,"released_at":209},272056,"0.4.13","## 亮点\n\n**核心功能**\n- **输出过滤链** — 新增对输出过滤链的支持，除了现有的输入\u002F提示过滤器外，还可在大模型响应上添加安全约束和处理逻辑 (#822)\n- **Kubernetes 部署支持** — 为自托管的 Arch-Router（vLLM）新增了 Kubernetes 清单文件和文档，支持 GPU，并包含部署 YAML 和集群内路由配置 (#831)\n\n**改进**\n- **Brightstaff 重构** — 提取了 `AppState` 结构体，优化了错误传播机制，实现了优雅关闭（Ctrl-C），并将处理器重新组织到 `agents\u002F` 和 `llm\u002F` 模块中 (#736)\n- **容器启动可靠性提升** — 在 supervisord 中将配置生成与进程启动分离，确保服务启动前配置已完全渲染 (#838)\n\n**安全**\n- **CVE-2026-0861** — 通过在 Docker 镜像中执行 `apt-get upgrade` 修复了 glibc 漏洞 (#832)\n\n## 变更列表\n* @adilhafeez 在 #831 中添加了自托管 Arch-Router 的 Kubernetes 部署清单文件和文档\n* @adilhafeez 在 #832 中修复 CVE-2026-0861：通过 Dockerfile 中的 `apt-get upgrade` 升级 glibc\n* @adilhafeez 在 #822 中新增输出过滤链\n* @adilhafeez 在 #736 中重构 Brightstaff\n* @adilhafeez 在 #838 中将 supervisord 中的配置生成与进程启动分离\n* @adilhafeez 在 #837 中发布了 0.4.13 版本\n\n**完整变更日志**：0.4.12...0.4.13","2026-03-20T05:52:44",{"id":211,"version":212,"summary_zh":213,"released_at":214},272057,"0.4.12","⏺ ## 亮点\n\n  ### 核心功能\n  - **Codex 支持** — Plano 现已支持 OpenAI Codex (#808)\n  - **路由服务** — 新增路由服务，并支持在请求体中内联 `routing_policy` (#814, #815)\n  - **统一模型覆盖配置** — 为自定义路由器和编排器模型提供单一配置 (#820)\n  - **新增支持模型** — 在 Plano 中添加了新的大语言模型 (#829)\n\n  ### 改进\n  - **原生模式日志** — `planoai logs` 现在可在原生（非 Docker）模式下运行 (#807)\n  - **无 Docker 演示** — 演示现在无需 Docker 即可运行 (#809)\n  - **本地 Arch-Router** — 提供通过 Ollama 自行托管 Arch-Router 的说明 (#819)\n  - **更友好的配置错误提示** — 改进了验证错误信息 (#825)\n\n  ### 文档与基础设施\n  - **Kubernetes 部署指南** (#816)\n  - Claude Code 技能及精简版 CLAUDE.md (#823, #824)\n\n## 变更列表\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F807 中支持 planoai logs 命令的原生模式\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F814 中添加路由服务\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F815 中支持在请求体中内联 routing_policy\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F816 中添加 K8s 部署指南\n* @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F808 中实现通过 Plano 对 Codex 的支持\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F809 中实现无需 Docker 即可运行演示\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F819 中添加本地托管 Arch-Router 的说明\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F823 中添加 Claude Code 技能并精简 CLAUDE.md\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F824 中添加 build-cli 和 build-brightstaff 技能\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F820 中实现自定义路由器和编排器模型的统一覆盖配置\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F825 中改进配置验证错误信息\n* @salmanap 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F829 中将新支持的模型添加到 Plano\n* @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F830 中发布版本 0.4.12\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.11...0.4.12","2026-03-15T20:04:40",{"id":216,"version":217,"summary_zh":218,"released_at":219},272058,"0.4.11","## 亮点\n\n**原生模式现为默认设置** —— 只需运行 `uv tool install planoai` 即可使用。无需 Docker、Rust 工具链或克隆仓库。预编译的二进制文件（Envoy、WASM 插件、brightstaff）将在首次运行时自动下载。\n\n- 使用 `planoai up config.yaml --docker` 以 Docker 模式运行（需手动启用）\n- 下载进度条实时显示二进制文件的下载状态\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.10...0.4.11\n\n## 变更内容\n* 修复：在复制代码块时，从剪贴板中移除末尾的“Copy code”字样，由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F788 中完成\n* 允许通过配置文件设置 OTEL 收集器端点，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F794 中完成\n* 默认以原生模式运行 Plano，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F744 中完成\n* 修复 WASM 插件上传中的 gzip 硬链接错误，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F800 中完成\n* 将 curl 输出替换为下载进度条，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F801 中完成\n* 发布版本 0.4.10，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F802 中完成\n* 修复 sdist 构建问题：使用构建钩子打包配置文件，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F803 中完成\n* 修复 PyPI 发布问题：仅使用 wheel 构建，移除构建钩子，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F804 中完成\n* 使用可编辑安装修复 sdist 构建失败问题，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F805 中完成\n* 发布版本 0.4.11，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F806 中完成\n\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.9...0.4.11","2026-03-05T22:00:37",{"id":221,"version":222,"summary_zh":223,"released_at":224},272059,"0.4.9","\r\n\u003Cimg width=\"1080\" height=\"616\" alt=\"图片\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4c400a2d-9dd8-4082-8036-646b24a113b7\" \u002F>\r\n\r\n\r\n## 变更内容\r\n* 使模型字段可选，并提供默认提供商回退，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F768 中实现\r\n* 向 CLAUDE.md 添加工作流偏好设置，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F770 中实现\r\n* 更新架构图，由 @salmanap 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F774 中完成\r\n* [ISSUE 706]：标准化 Plano 返回的错误，由 @syedhashmi 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F772 中实现\r\n* 添加对后台跟踪收集和跟踪输出的支持，由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F749 中实现\r\n* 从文档中移除公开的示例密码，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F779 中完成\r\n* 添加自定义跟踪属性以扩展可观ility，由 @Spherrrical 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F708 中实现\r\n* 升级 GitHub Actions 以兼容 Node 24，由 @salmanmkc 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F781 中完成\r\n* 将 GitHub Actions 升级到最新版本，由 @salmanmkc 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F782 中完成\r\n* 发布 0.4.9 版本，由 @adilhafeez 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F785 中完成\r\n\r\n## 新贡献者\r\n* @syedhashmi 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F772 中完成了首次贡献\r\n* @salmanmkc 在 https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F781 中完成了首次贡献\r\n\r\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.8...0.4.9","2026-02-27T00:19:58",{"id":226,"version":227,"summary_zh":228,"released_at":229},272060,"0.4.8","## What's Changed\r\n* Add OpenClaw + Plano intelligent routing demo by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F761\r\n* sync CLI templates with demo configs via manifest + CI flow by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F764\r\n* docs: Fix incorrect routing preferences in OpenClaw demo config by @tejasunku in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F765\r\n* Upstream TLS validation and configurable connect timeout by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F766\r\n* release 0.4.8 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F767\r\n\r\n## New Contributors\r\n* @tejasunku made their first contribution in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F765\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.7...0.4.8","2026-02-18T09:54:11",{"id":231,"version":232,"summary_zh":233,"released_at":234},272061,"0.4.7","## What's Changed\r\n\r\n* Supporting OpenClaw routing via Plano\r\n\r\n\u003Cimg width=\"1600\" height=\"900\" alt=\"Your paragraph text\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F09fd4b23-edba-407d-b01a-c3692af189ce\" \u002F>\r\n\r\nPlus many quality of improvement updates\r\n* Add CLAUDE.md for Claude Code onboarding by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F743\r\n* Upgrade Python base images to 3.13.11 to fix CVE-2025-13836 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F751\r\n* updated the models list to include models like Opus 4.6 by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F753\r\n* Rename all arch references to plano by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F745\r\n* Add secret leak prevention to gitignore and pre-commit by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F754\r\n* Add Trivy Docker security scan to CI by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F755\r\n* Fix code scanning and dependabot security alerts by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F756\r\n* Add error handling for OTLP\u002FgRPC listener binding in trace command by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F748\r\n* Consolidate GitHub Actions CI from 15 to 5 workflow files by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F757\r\n* Update GitHub badges after CI consolidation by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F758\r\n* Upgrade repo to Python 3.14 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F759\r\n* Overhaul demos directory: cleanup, restructure, and standardize configs by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F760\r\n* Add demos README with overview of all categories by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F762\r\n* release 0.4.7 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F752\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.6...0.4.7","2026-02-17T13:58:00",{"id":236,"version":237,"summary_zh":238,"released_at":239},272062,"0.4.6","## What's Changed\r\n* Site clean by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F716\r\n* add logo carousel to katanemo.com to showcase companies by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F718\r\n* Removing duplicate lines  by @san81 in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F719\r\n* upgrade rust to 1.93.0 and fix pre-commit by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F720\r\n* fixing the README for multi-agent orchestration by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F722\r\n* remove JPMorganChase logo and replace with new company by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F723\r\n* add log_level env var by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F728\r\n* speed up build with depedency caching and parallel stages by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F727\r\n* fix build break by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F730\r\n* improve e2e tests by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F731\r\n* use standard tracing and logging in brightstaff by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F721\r\n* disable bedrock tests by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F732\r\n* Introduce brand new CLI experience with tracing and quickstart by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F724\r\n* fix cli by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F739\r\n* release 0.4.6 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F740\r\n\r\n## New Contributors\r\n* @san81 made their first contribution in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F719\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.4...0.4.6","2026-02-11T05:01:01",{"id":241,"version":242,"summary_zh":243,"released_at":244},272063,"0.4.4","## What's Changed\r\n* add default agent schema enforcement by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F702\r\n* add ability to set agent timeout by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F710\r\n* Adding support for wildcard models in the model_providers config by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F696\r\n* introduce SEO optimization and improve blog content rendering by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F709\r\n* fixing the build scripts for documentation by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F711\r\n* add envoy retries by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F712\r\n* release 0.4.4 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F713\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.3...0.4.4","2026-01-29T04:45:37",{"id":246,"version":247,"summary_zh":248,"released_at":249},272064,"0.4.3","## What's Changed\r\n* tweaks to web and docs to align to 0.4.2 by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F680\r\n* remove unnecessary clones from code by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F682\r\n* Bump next from 16.0.0 to 16.0.10 in \u002Fpackages\u002Fui by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F684\r\n* don't include internal models in \u002Fv1\u002Fmodels endpoint by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F685\r\n* http-filter: add fully http based demo (remove MCP) by @MeiyuZhong in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F681\r\n* add instructions about planoai and update guide to talk about pre-com… by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F693\r\n* feat: add passthrough_auth option for forwarding client Authorization header by @tqtensor in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F687\r\n* reduce number of info statements in pipeline processor by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F698\r\n* making Messages.Content optional, and having the upstream LLM fail if… by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F699\r\n* Improve supervisord config file so its readable by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F700\r\n* demo: add multi-framework agent demo by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F688\r\n* release 0.4.3 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F701\r\n\r\n## New Contributors\r\n* @dependabot[bot] made their first contribution in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F684\r\n* @MeiyuZhong made their first contribution in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F681\r\n* @tqtensor made their first contribution in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F687\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.2...0.4.3","2026-01-18T08:08:16",{"id":251,"version":252,"summary_zh":253,"released_at":254},272065,"0.4.2","## What's Changed\r\n* Revert \"release 0.4.1\" by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F669\r\n* release 0.4.1 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F670\r\n* update quick start to elevate gateway\u002Fproxy example by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F671\r\n* simplify readme and point links to docs.planoai.dev by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F672\r\n* React: Security vulnerabilities resolved by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F673\r\n* updated readme with a snippet of code to go along with the descriptio… by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F674\r\n* add instructions about uv build\u002Fsync in cli by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F675\r\n* Musa\u002Fdemo fix by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F676\r\n* ensure that request id is consistent by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F677\r\n* Introduce signals change by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F655\r\n* pass request_id in orchestrator and routing model by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F678\r\n* release 0.4.2 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F679\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.1...0.4.2","2026-01-07T21:04:29",{"id":256,"version":257,"summary_zh":258,"released_at":259},272066,"0.4.1","## What's Changed\r\n* update mcp_filter docs and talk about docker build and jaeger ui by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F652\r\n* add open-web-ui-ref to mcp_filter demo readme by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F653\r\n* restructure cli by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F656\r\n* publish planoai package from gh action by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F657\r\n* update workspace by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F659\r\n* update rust to 1.92 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F661\r\n* update envoy to 1.36.4 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F662\r\n* cargo clippy by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F660\r\n* use uv instead of poetry by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F663\r\n* set cli package to planoai instead of cli by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F664\r\n* use uv to publish planoai to pypi by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F665\r\n* release 0.4.1 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F666\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.4.0...0.4.1","2025-12-28T22:29:48",{"id":261,"version":262,"summary_zh":263,"released_at":264},272067,"0.4.0","## What's Changed\r\n* Improve end to end tracing by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F628\r\n* fixed mixed inputs from openai v1\u002Fresponses api by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F632\r\n* enable state management for v1\u002Fresponses by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F631\r\n* orchestration integration by @nehcgs in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F623\r\n* Use mcp tools for filter chain by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F621\r\n* fixed reasoning failures by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F634\r\n* feat: redesign archgw -> plano + website in Next.js by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F613\r\n* include contact page and restructuring by @Spherrrical in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F640\r\n* plano orchestration using plano orchestration 4b model by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F637\r\n* Update docs and README to Plano by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F639\r\n* rename cli to plano by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F647\r\n* rename to planoai by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fpull\u002F650\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Fplano\u002Fcompare\u002F0.3.22...0.4.0","2025-12-24T03:27:52",{"id":266,"version":267,"summary_zh":268,"released_at":269},272068,"0.3.22","## What's Changed\r\n* handle agent error better by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fpull\u002F627\r\n* release 0.3.22 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fpull\u002F629\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fcompare\u002F0.3.21...0.3.22","2025-12-11T19:20:47",{"id":271,"version":272,"summary_zh":273,"released_at":274},272069,"0.3.21","## What's Changed\r\n* Add support for v1\u002Fresponses API by @salmanap in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fpull\u002F622\r\n* release 0.3.21 by @adilhafeez in https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fpull\u002F626\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fkatanemo\u002Farchgw\u002Fcompare\u002F0.3.20...0.3.21","2025-12-04T01:14:13"]