Eino
字节跳动开源的Go语言AI Agent开发框架,支持多Agent编排、DAG调度、长任务自主执行等能力
时间轴 (近 90 天)
实现 http.RoundTripper 缓存请求体并在 429 或 5xx 时进行指数退避重试,是弥补 Eino 缺少自动重试的可行做法。
Eino ChatModelConfig 的 BaseURL 字段必须包含 /v1,Eino 只追加 /chat/completions,不会自动补全 /v1。
Eino 不会从环境变量读取 OPENAI_API_KEY 或 OPENAI_BASE_URL,必须显式传入。
Eino ChatModelConfig 的 Timeout 字段默认不设置任何超时,必须手动配置或传入自定义 HTTPClient。
Eino 请求体默认极简,仅包含 messages 和 model,不发送 temperature 或 max_tokens。
Eino 的 Temperature、MaxTokens、TopP 等采样参数都是指针类型,设置为零值会真的在请求体中发送对应字段(如 "temperature":0)。
Eino 流式调用 cm.Stream 会自动加上 "stream":true 和 "stream_options":{"include_usage":true}。
对于推理模型,Eino 将响应中的 reasoning_content 映射到 out.ReasoningContent,内联的 <think> 标签保留在 out.Content 中,框架不会剥离。
Eino 对 401、400、429(带 Retry-After)、500 或 503 响应只发送一次请求,绝不自动重试,Retry-After 被忽略。
检查 Eino 错误需要匹配 eino-ext 自己的 *openai.APIError 类型,而不是底层 go-openai 的类型,因为组件做了类型转换。
还有 1 条时间轴事件
全部知识事实 (11)
实现 http.RoundTripper 缓存请求体并在 429 或 5xx 时进行指数退避重试,是弥补 Eino 缺少自动重试的可行做法。
50%待验证Eino ChatModelConfig 的 BaseURL 字段必须包含 /v1,Eino 只追加 /chat/completions,不会自动补全 /v1。
50%待验证Eino 不会从环境变量读取 OPENAI_API_KEY 或 OPENAI_BASE_URL,必须显式传入。
50%待验证Eino ChatModelConfig 的 Timeout 字段默认不设置任何超时,必须手动配置或传入自定义 HTTPClient。
50%待验证Eino 请求体默认极简,仅包含 messages 和 model,不发送 temperature 或 max_tokens。
50%待验证Eino 的 Temperature、MaxTokens、TopP 等采样参数都是指针类型,设置为零值会真的在请求体中发送对应字段(如 "temperature":0)。
50%待验证Eino 流式调用 cm.Stream 会自动加上 "stream":true 和 "stream_options":{"include_usage":true}。
50%待验证对于推理模型,Eino 将响应中的 reasoning_content 映射到 out.ReasoningContent,内联的 <think> 标签保留在 out.Content 中,框架不会剥离。
50%待验证Eino 对 401、400、429(带 Retry-After)、500 或 503 响应只发送一次请求,绝不自动重试,Retry-After 被忽略。
50%待验证检查 Eino 错误需要匹配 eino-ext 自己的 *openai.APIError 类型,而不是底层 go-openai 的类型,因为组件做了类型转换。
50%待验证字节跳动开源的Eino是Go语言社区中较为活跃的Agent开发框架,提供Tool调用、Chain编排、Memory管理等核心能力,设计理念参考LangChain并针对Go并发特性优化
50%