hermes-agent/agent
kshitij c0106e50e7 fix(kimi): send Hermes attribution headers instead of claude-code/0.1.0
The Kimi team noticed that traffic from Hermes Coding Plan users
identifies itself as Claude (User-Agent: claude-code/0.1.0) rather
than the actual client. They asked us to update the UA so they can
properly attribute traffic and understand how their services are
accessed — especially important as they open up to more third-party
agents.

Three code paths were sending wrong/attribution-less headers to Kimi:

1. run_agent.py — _apply_client_headers_for_base_url sent
   {"User-Agent": "claude-code/0.1.0"} for api.kimi.com. Now sends
   the same _AI_GATEWAY_HEADERS set used for Vercel AI Gateway:
   HTTP-Referer + X-Title + HermesAgent/{version} User-Agent.

2. agent/anthropic_adapter.py — the Anthropic Messages path for
   api.kimi.com/coding sent 'claude-code/0.1.0'. Now sends the same
   three-header attribution set.

3. plugins/model-providers/kimi-coding/__init__.py — both kimi and
   kimi_cn profiles sent a static 'hermes-agent/1.0' with no
   HTTP-Referer or X-Title. Now sends the full three-header set with
   a dynamic version, matching the pattern used by the gmi, fireworks,
   xai, and ai-gateway provider profiles.

The attribution header set (HTTP-Referer + X-Title + User-Agent) is
the canonical Hermes pattern used for OpenRouter, Vercel AI Gateway,
Fireworks, and other providers that read these headers for traffic
attribution.
2026-08-11 13:25:37 +05:30
..
lsp
monitoring fix(otlp): span exporter now inherits configured resource_attributes 2026-08-08 18:11:02 -07:00
pet
proxy_sources
secret_sources
transports fix: complete kanban review lifecycle 2026-08-10 12:43:46 -07:00
verify
__init__.py
account_usage.py
agent_init.py fix(agent): cancel in-flight background review before a new live turn 2026-08-09 16:13:52 +05:30
agent_runtime_helpers.py
anthropic_adapter.py fix(kimi): send Hermes attribution headers instead of claude-code/0.1.0 2026-08-11 13:25:37 +05:30
async_utils.py
aux_accounting.py
auxiliary_client.py perf(cli): sub-400ms warm startup — probe-mode check_fns, lazy MCP SDK, banner snapshot, parallel worktree add 2026-08-10 10:40:19 -07:00
azure_identity_adapter.py
backend_identity.py
background_review.py simplify: match delegate_tool.py hasattr pattern, drop change-detector test 2026-08-09 16:13:52 +05:30
battery.py
bedrock_adapter.py
billing_links.py
billing_usage.py
billing_view.py
bounded_response.py
browser_provider.py feat(browser): integrate Browser Use CLI 3.0 2026-08-10 10:45:44 -07:00
browser_registry.py
chat_completion_helpers.py fix: trim comments and fix sibling pop site in summary path 2026-08-10 10:01:44 +05:30
codex_responses_adapter.py
codex_runtime.py
coding_context.py
context_breakdown.py
context_compressor.py fix: double-paren bug in dropped-tools prefix + add empty-response nudge sibling 2026-08-09 16:20:48 +05:30
context_engine.py
context_references.py
conversation_compression.py fix(compression): preserve live tail before snapshot adoption 2026-08-09 22:29:39 +05:30
conversation_loop.py fix: trim comments and fix sibling pop site in summary path 2026-08-10 10:01:44 +05:30
copilot_acp_client.py
credential_persistence.py
credential_pool.py fix(agent): rebind pool entry id after env credential refresh 2026-08-08 19:17:02 -07:00
credential_sources.py
credits_tracker.py
curator.py
curator_backup.py
delegation_context.py
display.py feat(browser): integrate Browser Use CLI 3.0 2026-08-10 10:45:44 -07:00
error_classifier.py
errors.py
estop.py
file_safety.py
gemini_native_adapter.py
gemini_schema.py
i18n.py
image_gen_provider.py
image_gen_registry.py
image_routing.py
insights.py
interrupt_compat.py
iteration_budget.py
jiter_preload.py
kanban_stop.py
learn_prompt.py
learning_graph.py
learning_graph_render.py
learning_mutations.py
lmstudio_reasoning.py
manual_compression_feedback.py
markdown_tables.py
memory_manager.py
memory_provider.py
message_content.py
message_sanitization.py
moa_loop.py
moa_trace.py
model_metadata.py fix(model-metadata): resolve provider prefixes from live registry 2026-08-09 01:51:12 -07:00
models_dev.py
moonshot_schema.py
native_compaction.py
nous_rate_guard.py
onboarding.py
oneshot.py
outbound_webhooks.py
plugin_llm.py
portal_tags.py
process_bootstrap.py
prompt_builder.py feat(kanban): teach workers to flag collision hotspots instead of piling on 2026-08-10 13:11:19 -07:00
prompt_cache_boundary.py refactor(cache): share the boundary-declaration helper and simplify the registry 2026-08-09 15:25:12 +05:30
prompt_caching.py perf(cache): harden the stable-prefix boundary against eviction and memory growth 2026-08-09 15:25:12 +05:30
rate_limit_tracker.py
reactions.py
reasoning_summaries.py
reasoning_timeouts.py
redact.py
relay_llm.py fix(relay): bypass managed execution for nested calls inside managed callbacks 2026-08-08 23:46:17 -07:00
relay_runtime.py fix(relay): bypass managed execution for nested calls inside managed callbacks 2026-08-08 23:46:17 -07:00
relay_tools.py fix(relay): bypass managed execution for nested calls inside managed callbacks 2026-08-08 23:46:17 -07:00
replay_cleanup.py
retry_utils.py
runtime_cwd.py
secret_scope.py
session_activity.py
shell_hooks.py
skill_bundles.py
skill_commands.py refactor(cache): share the boundary-declaration helper and simplify the registry 2026-08-09 15:25:12 +05:30
skill_preprocessing.py
skill_utils.py
ssl_guard.py
ssl_verify.py
stream_diag.py
stream_single_writer.py
subagent_lifecycle.py
subdirectory_hints.py
subscription_view.py
system_prompt.py
think_scrubber.py
thinking_timeout_guidance.py
thread_scoped_output.py
title_generator.py refactor(title): decide on the stored title and the real turns behind it 2026-08-09 04:33:58 -05:00
tool_dispatch_helpers.py
tool_executor.py
tool_guardrails.py
tool_result_classification.py
trace_upload.py
trajectory.py
transcription_provider.py
transcription_registry.py
tts_provider.py
tts_registry.py
turn_context.py fix(agent): stop cron and subagent runs auto-titling their sessions 2026-08-09 04:33:58 -05:00
turn_finalizer.py
turn_retry_state.py
turn_summary.py
usage_pricing.py
verification_evidence.py
verification_stop.py
verify_hooks.py
vertex_adapter.py
video_gen_provider.py
video_gen_registry.py
web_search_provider.py
web_search_registry.py