Prodagent MCP Server

by limenagent• 133•• Scanned•Claim this listing•Request removal
Developer Toolsadkagent frameworkagent runtimeageticai agents

A minimal, readable agent-framework kernel — understand how LangGraph/ADK work under the hood. 1800行代码的 agent 框架内核,理解 LangGraph/ADK 底层的工作原理

Prodagent is an open-source mcp server by limenagent, written mainly in Python, with 133 GitHub stars and the MIT license. Its code was last updated Oct 21, 2026.

prodagent:1800 行,讲透一个 Agent 框架内核

CI License: MIT Python runtime deps: 0 tests: offline

中文 · English · 配套文档:中文 · English

prodagent 是一个刻意做小、但生产级要点一样不缺的教学型 Agent 运行时:内核六个部件各管一件事、 净代码约 1800 行、运行时零三方依赖,测试全部离线可跑。一个周末读一遍,你会看清 ReAct、先规划 后执行、多 Agent 协作其实都是用同一套原语拼出来的——再回头看 LangGraph、Google ADK,会轻松 很多。它也是极客时间专栏《生产级 Agent 框架设计与实现》的配套开源项目;同主题幻灯片 《Agent 框架祛魅》(PDF)也放在仓库里。

同一副骨架,只是换了身衣服

主流框架做到最后,做的都是同一小撮决策,只是名字起得不一样。认识了 prodagent 的六个部件,再看 任何一个框架,你都知道该往哪儿找:

要解决的事prodagent(本项目)你可能已经熟悉的同类做法
一张可复用的步骤蓝图Plan = Node / Edge / ChannelLangGraph 的 StateGraph;ADK 的 workflow / agent 图;CrewAI 的 Process + Task
一次执行和它的状态Run + 通道与合并规则LangGraph 的 State + checkpointer;ADK 的 Session
驱动执行的引擎Scheduler 每波重算一次“就绪集合”(BSP)LangGraph 的 Pregel 超步;ADK 的 Runner;CrewAI 的 kickoff 循环
运行时跳转与扇出Goto / SendLangGraph 的 Command(goto/send);ADK 的 transfer;OpenAI 的 handoff
停下来等人Interrupt,之后 resumeLangGraph 的 interrupt() + Command(resume);ADK 的人工输入
事实源 / 重放 / 时间旅行只追加的 EventLog,状态是事件折叠出来的LangGraph 的 checkpointer + time travel;ADK 的会话重放
运行轨迹 / 产出文件build_trace;BlobStore + 指针事件OpenTelemetry spans;ADK 会话 artifacts
多 Agent子 Run(委派)/ 不回头的 Goto(交接)/ 黑板LangGraph 子图 + Send;ADK 子 Agent 与 transfer;CrewAI 层级制
从外面看得见、拦得住Bus:旁观 / 裁决 / 订阅LangGraph 的 callbacks 与 stream;ADK 的 EventBus

没有魔法,也没有藏起来的东西:内核 14 个文件,一个周末就能读完。

它长什么样

flowchart TB
  subgraph APP["应用层(策略):ReAct · plan-first · 多 Agent · 你"]
  end
  subgraph K["内核(机制)· 六个部件"]
    P["Plan:Node / Edge / Channel"] --> R["Run:一次执行"] --> S["Scheduler:就绪 → 波次 → 折叠"]
    S --> L["EventLog:事实源"]
    S --> BI["Bus / Interrupt"]
  end
  APP -->|用同一套原语拼出来| K

机制在内,策略在外。 内核里没有 ReAct 类,也没有“运行模式”开关——所有模式都在上层用同一套 原语拼出来;换一种编排,内核一行都不用动。

30 秒跑起来:不要 API Key、不花一分钱

git clone https://github.com/limenagent/prodagent && cd prodagent
pip install -e .

prodagent run            # 离线跑通完整流程,中途在终端答一句人工审批
prodagent run --trace    # 同一次运行,渲染成父子 Run 的因果树
make play                # 网页版:轨迹 / 事件 / 状态 / 文件 / 图

每个示例背后都是一个“照剧本演戏”的 ScriptedLlm:完全离线、结果确定,想跑多少遍都行,一分钱 不花。哪天想接真模型,设一个 OPENAI_API_KEY 就能换成任意 OpenAI 兼容接口,其余代码一行不改。 更多场景(先规划后执行、黑板、断点续跑、背压、长期记忆)都在 examples/ 目录。

15 行看懂 API

from src import Agent, Workflow, go, send, wait_human

# 一个自主 Agent:模型 + 工具
agent = Agent(name="researcher", model=llm, instruction="...", tools=[search])
await agent.run("帮我查 X")

# 确定性流程图 / 交接:节点既能是函数,也能直接是一个 Agent
wf = Workflow()
wf.add_node("diagnose", diagnose_fn)
wf.add_node("repair", repair_agent, terminal=True)
wf.add_edge("diagnose", "repair")
wf.entry("diagnose")
await wf.run("故障")

节点就是一个 async def fn(input, ctx):直接 return,就是把结果交给下游。要改道就 go(目标, 值)—— 循环、回边、交接都靠它(不画回边就是交接 transfer,控制权一去不返);要扇出就 return [send("模板", x) for x in items]——分几份运行时才知道,同一波并发跑;要停下等人就 wait_human("问题")——问题和之后的回答都是日志里的事实,恢复时从事实原样继续。

再往深读

如果它帮你真正看懂了 Agent 框架、而不是又背了一堆 API,欢迎点个 GitHub Star ⭐,让更多人 找到它。

Prodagent alternatives

View more →

Similar mcp servers in Developer Tools, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Prodagent (this page)
limenagent
133MITOct 21, 2026Scanned, no flagged issues
MCP Use
mcp-use
11kMITOct 30, 2026Scanned, no flagged issues
MobileBuildMCP
getsentry
6.5kMITNov 1, 2026Scanned, no flagged issues
Gemini Notebook MCP CLI
jacob-bd
6.4kMITOct 27, 2026Scanned, no flagged issues
Mcporter
openclaw
5.1kMITOct 27, 2026Scanned, no flagged issues
Flint Chart
microsoft
4.5kMITNov 1, 2026Scanned, no flagged issues