开源 Agent 这个圈子,大部分项目给你的是一套 SDK 或者一个框架:LangGraph、AutoGen、CrewAI 都是如此。能力不缺,缺的是”能直接用的那层”——前端界面、会话管理、任务拆解、文件产出,全要自己补。京东 2025 年 7 月开源的 JoyAgent-JDGenie 走的是另一条路:它开源的是一个端到端的产品,不是让你二开的脚手架。GitHub 上目前 11.9K 星,Apache 2.0 协议,默认分支就是 data_agent。
它到底是个什么东西
用一句话说:你给它一句任务,它还你一个交付物。比如”做一份最近美元和黄金的走势分析”,它会自己拆步骤、自己搜资料、自己算数据,最后吐一份网页版报告出来,也可以要 PPT 或者 Markdown。文件、表格、代码执行都在它的工具集里,不需要你写胶水代码。
项目本身是混合栈:后端 Java(Spring Boot,:8080),前端 React(:3000),工具层 Python(:1601)。整套东西打成一个镜像,docker run 起来就能用,这点对不想折腾编译的人挺友好。
它跟 Dify、n8n 这类平台不是一回事。Dify 是给你搭 AI 应用的场地,我写过它的入门;n8n 是自动化积木,这篇讲过定位。JDGenie 更像是把”通用助手”做成了一个开箱即用的成品,你要加能力就往上面挂子智能体。官方对比表里把这两类都归成”只开源了框架”,这话带立场,听听就行——它们解决的是不同问题。
架构:三层,两个核心角色
请求链路很直白:前端把 query 通过 SSE 推给后端,后端先交给规划器,规划器把任务拆成一到五个有先后关系的子任务,再交给执行器按 DAG 并发跑,执行器每一步要么调工具、要么调模型、要么落文件。工具调用统一走 genie-tool 这个 Python 服务,搜索、代码解释器、文件读写、报告生成、PPT 生成都在里面,模型接口在 application.yml 的 llm.default 里配(base_url / apikey / model / max_tokens)。
两个设计细节值得注意。一是它支持两种模式:react(边想边做)和 plan and executor(先规划再执行),配置里能选,复杂任务用后者,简单问答用前者更省 token。二是子智能体是插件式的,你实现一个 BaseTool 接口——给个名字、描述、参数 schema、执行方法——就能挂上去,不需要改引擎。外部工具还能通过 mcp_server_url 塞进来,格式是逗号分隔的 SSE 地址。
跑起来要改什么
三步:clone、改配置、build & run。真正花时间的是第二步,两个文件:
genie-backend/src/main/resources/application.yml:填base_url、apikey、model、max_tokens。用 DeepSeek 的话max_tokens记得设 8192,写大了会报错。genie-tool/.env_template:填OPENAI_API_KEY、OPENAI_BASE_URL、DEFAULT_MODEL,外加一个SERPER_SEARCH_API_KEY(搜索工具用 Serper,没这个 key 搜索链路直接断)。DeepSeek 走的是DEEPSEEK_API_KEY/DEEPSEEK_API_BASE,模型名写deepseek/deepseek-chat。
然后 docker build -t genie:latest .,docker run -d -p 3000:3000 -p 8080:8080 -p 1601:1601 --name genie-app genie:latest,浏览器开 3000 就能用。不想用 Docker 的话,环境是 JDK 17 + Python 3.11 + uv,仓库里带了 check_dep_port.sh 和 Genie_start.sh,先查端口占用再一键起,Ctrl+C 全杀。
说点实话
第一,别被 75.15% 这个数字带跑。那是 GAIA 验证集的自测成绩,同一张表里 Alita v2.1 是 0.8727、Skywork 0.8242、蚂蚁 AWorld 0.7758,都排在它前面。JDGenie 的位置是中上,不是第一。它的卖点从来不是分数,是”开箱即用的完整产品”这个形态——AutoGPT 当年也是通用 Agent 的思路,但给的是个需要自己拼的骨架;MetaGPT 更像多角色协作的范式演示。JDGenie 至少把报告、PPT 这些”最后一百米”给做完了。
第二,双栈是有代价的。Java 改逻辑、Python 改工具、前端改界面,出问题要跨三套栈排查。而且规划器、执行器的 system prompt 全塞在 yml 的长字符串里,中文加转义,改一个字都容易踩坑。想要”改两行 Python 就跑”的体验,这套不合适。
第三,成本不是零。max_steps 默认 40,执行器单步观察上限 10000 token,一个稍复杂的任务跑十几步很常见。模型 API 加 Serper 的调用费,跑批之前先算账。另外它没有多租户和账号体系,团队内部用要自己在前面套一层网关。
适合谁:想要一个”提问出报告”的通用助手、能接受 Java 栈、有私有化部署需求的团队,或者想研究多智能体产品级实现的人——它的前端、引擎、子智能体是一起开源的,这种完整度在开源项目里不多见。不适合谁:只想接个 API 写几十行代码的,那用官方 Agents SDK 更轻。
真要上手,建议先拿一个小任务把链路跑通:搜一条新闻出个网页报告,确认 LLM、Serper、工具服务三个环节都通了,再往复杂任务上加。别一上来就丢”分析某个行业”这种大活,调试成本会让你怀疑人生。