独立运营 · 不出售排名位置  · 我们怎么评估工具 →
Anclum 提交收录
T

thetonymaster/normandy

Build production-ready AI agents in Elixir — structured schemas, tool calling, multi-agent coordination,…

装之前:没有可直接复制的命令 · 许可证 MIT · 链接可访问

第一步:这条暂时没有可执行的下一步,可先看原仓库 https://github.com/thetonymaster/normandy

在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
★ 数取值
2 ★ · thetonymaster/normandy · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
来源明细
从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
收录与活跃
收录于 2026-10-24 · 最近见到 2026-11-14 · 共见到 25 次 · 被 1 个来源列出
评分构成
综合分 103 · 2 ★ · 1 个来源 · repo
常见问题(答案都来自我们的记录)
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库 thetonymaster/normandy;我们收录于 2026-10-24;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。

# Normandy

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

> Build production-ready AI agents in Elixir — structured schemas, tool calling, multi-agent coordination, streaming, and distributed sessions, with first-class Anthropic Claude support.
Normandy is an Elixir framework for building reliable LLM agents on the BEAM. It gives you type-safe input/output schemas with automatic JSON Schema generation, tool/function calling, conversational memory, and OTP-native primitives for multi-agent coordination and distributed, fault-tolerant sessions. It ships with a built-in adapter for Anthropic Claude and a clean protocol for any other LLM provider.
## Features
🧠 Agent system — conversational agents with memory, state, and turn-based history.
📋 Schema DSL — typed, validated structs with JSON Schema generation (nested schemas, anyOf/oneOf/allOf, conditional if/then/else, virtual fields, introspection).
🔧 Tool calling — LLM tool/function calling with automatic execution loops.
🤝 Multi-agent coordination — reactive patterns (race/all/some), agent pools, and supervised agent processes.
🌐 Distributed sessions — single-node to multi-node, fault-tolerant sessions across Tiers 0/1/2 (in-memory/ETS, Postgres, Mnesia, Redis) with eager resume on node loss.
🛡️ Guardrails — input/output admission control with fail-open/closed policies and semantic scope checks.
🌊 Streaming — real-time response streaming with callback-based event processing.
💰 Prompt caching — up to 90% cost reduction via automatic Anthropic prompt caching.
🔄 Resilience — built-in retry (exponential backoff + jitter) and circuit breaker patterns.
📦 Batch processing — concurrent processing of many inputs with progress tracking.
📏 Context management — token counting, automatic truncation, and LLM-based summarization.
🔌 Protocol support — interoperate via Model Context Protocol (MCP) and Agent-to-Agent (A2A).
📊 Observability — Telemetry events, structured lifecycle logging, and OpenTelemetry-compatible spans.
🎯 Type safety — comprehensive type system with Dialyzer support, backed by 900+ tests including property-based testing.
## Installation
Add normandy to your dependencies in mix.exs:
elixir
def deps do
{:normandy, "~> 2.0"}
end
Upgrading from 1.x? See MIGRATING-2.0.md.
Then fetch dependencies:
bash
mix deps.get
## Quick Start
Define structured data, then run an agent against Anthropic Claude:
elixir
# 1. Configure an LLM client (built-in Anthropic Claude adapter; prompt caching is on
# by default)
client = %Normandy.LLM.ClaudioAdapter{apikey: System.getenv("ANTHROPICAPIKEY")}
# 2. Initialize an agent
agent =
Normandy.Agents.BaseAgent.init(%{
client: client,
model: "claude-opus-5-5"
})
# 3. Run a turn: {:ok, agent, response} with the updated agent (it holds the
# conversation), or {:error, exception}, e.g. a %Normandy.LLMError{}
input = %{chatmessage: "Explain Elixir's actor model in one sentence."}
case Normandy.Agents.BaseAgent.run(agent, input) do
{:ok, agent, response} -> IO.puts(response.chatmessage)
{:error, error} -> IO.puts("Turn failed: " <> Exception.message(error))
end
Defining a typed schema is just as direct:
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/zh/s/thetonymaster-normandy/)
来源
github · https://github.com/thetonymaster/normandy
按领域浏览
开源项目
Traction
2 ★
收录于
今天

同类推荐

全部 1,671 →

所属领域与标签

每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。

浏览全部领域 →

← 返回索引