[ 
https://issues.apache.org/jira/browse/CAMEL-23613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18083520#comment-18083520
 ] 

Raymond commented on CAMEL-23613:
---------------------------------

An important topic, and I applaud the efforts. 

Here some of my thoughts:

Apache Camel originally started as a developer-focused framework. Primarily 
used by Java developers. Its versatility however made it excellent to use by 
integration specialist (XML/YAML DSL), in (low-code) tools, and now the same 
applies for AI Agents. It must be said that much has been done in the last 
years to facilitate this. 

Nevertheless, the developer gap you mentioned in the post on Zulip is very 
real. I first encountered it when developing the Assimbly 
[Runtime|https://github.com/assimbly/runtime] and 
[Gateway|https://github.com/assimbly/gateway]. This runtime is used standalone, 
but also for example in the iPaaS [Fluxygen|https://fluxygen.com/]. As I need 
to support various frontends (in for example Angular and React) I needed a 
strict contract. Here were some of my initial design reasoning:

1. I draw inspiration from ElasticSearch that is built on top of Lucene. Lucene 
is an excellent Java Search framework/library, but it has no easy way to manage 
it. ElasticSearch in core just built a REST API around Lucene.

2. I divided my work in two API layers. One is the Java API layer (with an 
implementation for Apache Camel). I used for this [How To Design A Good API and 
Why it Matters|https://www.youtube.com/watch?v=aAb7hSCtvGw] which is a Google 
Tech talk of almost 20 years old, but still have a lot of valid points. For the 
second layer I created a REST OpenAPI layer.

3. As base formats I used XML, YAML and JSON, where JSON mostly used in 
machine-to-machine traffic. Personally I find XML or YAML more human-readable, 
but JSON is more compact and better supported. I am a supporter of 
[JSON5|https://json5.org/] (aka JSON for humans). 

4. The most important thing is of course the data model. For this I developed 
[DIL (Data Integration 
Language)|https://raymondmeester.medium.com/data-integration-language-ada578784efa].
 I put a lot of my thoughts behind the language in some blog post a few years 
ago, but the basic idea is that it's both readable for computers and humans, 
with a formalization in a schema. DIL is more focused on design-time (on top of 
route template/kamelets), but maybe it can be used as inspiration.

I think you've already covered the main guiding principles above:

1. API-Driven
2. Protocol-based
3. Local-first

I would add some more:

*1. Runtime independent* 

Be as runtime independent as possible, thus not specific things for main, 
Spring or Quarkus. Even to some degree independent of Java if it's need to be 
called from external tools. Of course there is no other framework that can 
communicate with external protocols than Camel, so it makes sense to utilize 
the framework for it.

*2. Embeddable*
I am personally not a huge fan of LSP, or any "server" implementation that 
needs to be run outside the CamelContext. I would like to embed it within 
Assimbly or any other Camel runtime.

*3. Modular*

You are mentioning runtime information/operation. I think it's good to first 
focus on a specific area to implement with a narrow scope. However, this is 
something that probably people will ask for extension. So it's good to make 
some core, with modular extensions. Such as design-time (developing routes) or 
config-time (Context configuration). Last one I 
[discussed|https://camel.zulipchat.com/#narrow/channel/257298-camel/topic/Uniform.20central.20configuration.3F]
 a while ago on Zulip. 

*4. Conceptual*

Either you need to be conceptual (naming) as close as possible to Camel, or 
make a strict distinction. Something in between will not work.

I think to have more feedback from the community, probably one or two 
prototypes are needed to be guided by blog posts, and (code) examples. This is 
in practice they only way that most people get a feeling for it, and is now 
with AI relatively good to do.

Thanks looking forward to this effort!   
h1.  

> Explore a shared contract for Camel runtime to enable AI agent and human 
> collaboration
> --------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23613
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23613
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 4.x
>            Reporter: Otavio Rodolfo Piske
>            Priority: Major
>             Fix For: 4.x
>
>
> During our AI working group discussion, we identified a gap in the developer 
> experience:
> *Context:*
>  * Humans and AI agents currently lack a shared, structured view of a running 
> Camel application.
>  * Humans rely on visual tools (Karavan, Kaoto, TUI, dev consoles), while 
> agents interact through logs, MCP tools, and file system changes — but these 
> views are disconnected. As integration development shifts toward AI-assisted 
> workflows (prompt-first, with visual tools as a display layer), we need a 
> common contract that both humans and agents can consume to understand the 
> state of a Camel application at design time and runtime.
> *Proposal:*
>  # Design a contract (set of APIs / protocol) that exposes Camel runtime 
> state: route topology, endpoint inventory, message flow metrics, error 
> states, REST/OpenAPI specs, and dev console information.
>  # Evaluate the [Agent-Client 
> Protocol|https://agentclientprotocol.com/get-started/introduction] as a 
> potential standard for agent-IDE/tool communication, rather than inventing a 
> custom protocol.
>  # Revisit the existing Camel LSP work to assess whether it can be 
> improved/extended (with AI assistance) to provide protocol-level integration 
> and editing capabilities.
>  # Coordinate with the community to ensure this contract becomes the de-facto 
> way of consuming Camel runtime information
> {*}Goals{*}:
>  * Enable a faster feedback loop where a developer can prompt an agent, the 
> agent modifies a route, a running Camel instance hot-reloads it, and both 
> human and agent can verify the result through the same interface.
>  * Provide a consistent experience across the SDLC — the same contract serves 
> design-time visualization, local development, and production observability.
>  * Start with local-first (single laptop, no cloud dependency) to validate 
> the approach and build field confidence.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to