GraphGPT
GraphGPT 是一个 Python 优先、面向 LangGraph 1.x / LangChain 1.x 的声明式状态图编译器。
它把版本化 YAML 编译为原生 StateGraph / CompiledStateGraph,不引入第二套运行时。
当前版本:v0.9.0。GraphGPT 支持循环、条件路由和持久化,因此它并不把图限制为 DAG。
核心能力
- 严格的
graphgpt.dev/v1alpha1YAML DSL 与 JSON Schema; - YAML → 纯领域 IR → 语义诊断 → 原生 LangGraph 编译;
- 普通边、条件边、循环、messages state、Reducer、interrupt 和内存持久化;
- Command 动态跳转、Send fan-out、retry/cache、可映射子图与跨文件诊断;
- 显式注册、受 allowlist 保护的 Python callable、LangChain Runnable、model/agent 和 ToolNode;
- 版本化第三方插件协议、插件发现/健康检查及独立插件项目生成;
- 框架无关的远程调用契约,以及 Dify Custom Tool、n8n Agent 子工作流导出;
- 环境变量 Secret 引用、诊断脱敏,以及精确到 YAML 文件/行/列的 SourceMap;
validate、inspect、run、init、export、schema、doctor、devCLI;- 标准
langgraph.json生成,适配 LangGraph CLI、Agent Server 与 LangSmith Studio; - LangSmith 环境变量透传,以及可选 Langfuse callback;
- Chat、Branch、Loop、Tool-use、RAG 五个离线可运行模板。
快速开始
pip install graphgpt-builder
graphgpt init ./my-agent --template branch
cd my-agent
uv sync
uv run graphgpt validate workflow.yaml
uv run graphgpt run workflow.yaml --input '{"approved": true}'
若要使用 graphgpt dev 的官方 CLI 委托,可在生成的项目中执行
uv add "graphgpt-builder[cli]>=0.9,<0.10"。Langfuse 追踪同理使用 langfuse extra,
LangSmith SDK 已随核心 LangGraph 生态安装并通过标准环境变量启用。
在 Python 中也可以只采用编译器核心:
from graphgpt import BindingRegistry, StateInput, invoke_workflow
registry = BindingRegistry({"step": lambda state: {"result": "ok"}})
print(invoke_workflow("workflow.yaml", StateInput({}), registry=registry))
StateInput 与 RuntimeCommand 是显式的信任边界:普通 JSON 只能作为已声明状态字段,不能
伪装成 resume / goto / update 等控制指令。需要原生高级 API 时仍可使用 compile_workflow。
插件生态
创建一个可独立测试、构建和发布到 PyPI 的社区插件:
graphgpt plugin init ./graphgpt-acme --name acme
cd graphgpt-acme
uv sync --extra dev
uv run pytest
uv build
安装插件后可检查 entry point、协议版本和能力声明:
graphgpt plugin list
graphgpt plugin list --output json
插件作者指南见 docs/PLUGINS.md,已验证集成和社区插件目录见
ECOSYSTEM.md。第三方插件在独立包中维护,不会把 provider SDK 引入核心。
智能体框架生态
GraphGPT 不复制 Dify 或 n8n 的执行引擎,而是把图暴露为稳定的工具契约,再生成框架原生、 可审查的薄适配资产:
graphgpt ecosystem list
# 导入 Dify 的 Custom Tool(OpenAPI)
graphgpt ecosystem export workflow.yaml \
--target dify \
--base-url https://graphgpt.example.com \
--output dist/dify
# 导入 n8n 并作为 sub-workflow / AI workflow tool 调用
graphgpt ecosystem export workflow.yaml \
--target n8n \
--base-url https://graphgpt.example.com \
--output dist/n8n
两种导出都包含 graphgpt.contract.json。默认契约采用 Bearer 认证,不会把密钥写入文件;
n8n 工作流默认保持未激活,导入后需显式选择凭据。base-url 指向部署方提供的 GraphGPT
执行端点,核心包不会另起一套应用服务器。详细契约和第三方适配器扩展方式见
docs/ECOSYSTEM_ADAPTERS.md。
通用流程转换器
GraphGPT 使用 graphgpt.dev/universal/v1alpha1 统一 IR 在 MCP、Agent Skills、GraphGPT
Workflow、LangGraph 图结构、Dify 与 n8n 之间转换。每次转换都会生成 conversion-report.json,
明确标注 exact、adapted、lossy 或 unsupported:
graphgpt formats
graphgpt detect ./some-asset
graphgpt convert ./some-asset \
--from auto \
--to mcp \
--base-url https://graphgpt.example.com \
--output ./converted
# CI 中拒绝有损转换
graphgpt convert ./workflow.yaml --to skill --output ./skill --fail-on-lossy
转换器不执行输入代码。MCP 输出是能力快照、LangGraph 输出是结构 JSON;需要运行时的目标
通过安全的 HTTP/MCP 工具边界连接原执行引擎,避免把任意 Python 或厂商节点静默改写为
错误语义。完整矩阵和扩展协议见
docs/UNIVERSAL_CONVERTER.md。
最小 DSL
apiVersion: graphgpt.dev/v1alpha1
kind: Workflow
metadata:
name: hello
spec:
state:
fields:
result: {type: string}
security:
allowedModules: [my_agent]
nodes:
hello:
use: python:my_agent.nodes.hello
edges:
- {from: $start, to: hello}
- {from: hello, to: $end}
graphgpt validate 不导入节点代码或访问网络。只有 compile / run 阶段才解析绑定,
且 python: 引用必须位于 security.allowedModules 中。
langchain:agent 节点可声明逐工具审批,审批直接映射至官方 HITL middleware:
approval:
mode: per_call
tools:
write_file:
allowedDecisions: [approve, reject]
审批工作流必须配置 checkpointer;每个 per_call 中断按 interrupt ID 独立恢复。
架构
核心依赖方向固定为:domain <- application <- adapters/CLI。DSL 模型不会直接泄漏到
LangGraph 编译器,LangSmith 和 Langfuse 也只是外层观测适配器。详见
docs/ARCHITECTURE.md 和
docs/RESEARCH.md。长期路线见
docs/PROJECT_PLAN.md。
开发
uv run ruff check .
uv run mypy
uv run pytest --cov=graphgpt
uv build
欢迎提交 bug、RFC、集成和社区插件。参与前请阅读 CONTRIBUTING.md、
GOVERNANCE.md、SECURITY.md 与
CODE_OF_CONDUCT.md。
许可证:Apache-2.0。
Metadata
Release files for graphgpt-builder 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| graphgpt_builder-0.9.0.tar.gz | 398.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| graphgpt_builder-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 455.5 kB
Release files / graphgpt_builder-0.9.0.tar.gz
| Download URL | graphgpt_builder-0.9.0.tar.gz |
|---|---|
| Size | 398.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24d73dae3bf44405133adeb657979c6f984f3e7e57b39531b92925ef469b6dae
|
|
BLAKE2b-256 checksum How to use checksums |
a0ec11bf6b4239f1f6bba84b5b32a2c91b002cd7c2d57ee6754ee212f4b53fff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / graphgpt_builder-0.9.0-py3-none-any.whl
| Download URL | graphgpt_builder-0.9.0-py3-none-any.whl |
|---|---|
| Size | 57.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8614261dab187119740faba374c41c266b92ed1590bd06fdebb7cacf0351a850
|
|
BLAKE2b-256 checksum How to use checksums |
18d3ce4cf2efc3b3c417afc4d1ff360cec1f0ca484a2cf9db192946add5fd35d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for graphgpt-builder 0.9.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.